You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gi...@apache.org on 2021/04/08 00:16:37 UTC

[incubator-nuttx-website] branch asf-site updated: Publishing web: 706feb7a8f09ba9c0ea4111239db9d4c65cf9a00 docs: a9e2195e655f46dd7a886e076724d6273401d241

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b6ff8e5  Publishing web: 706feb7a8f09ba9c0ea4111239db9d4c65cf9a00 docs: a9e2195e655f46dd7a886e076724d6273401d241
b6ff8e5 is described below

commit b6ff8e5a4d323f0fd711f0d8ccfe5de00feb9b25
Author: Ouss4 <ab...@gmail.com>
AuthorDate: Thu Apr 8 00:15:44 2021 +0000

    Publishing web: 706feb7a8f09ba9c0ea4111239db9d4c65cf9a00 docs: a9e2195e655f46dd7a886e076724d6273401d241
---
 content/docs/10.0.0/index.html                     |    2 +-
 content/docs/10.0.1/index.html                     |    2 +-
 .../esp32/boards/esp32-devkitc/index.rst.txt       |  189 +-
 .../_sources/platforms/xtensa/esp32/index.rst.txt  |  629 +++++-
 content/docs/latest/_static/basic.css              |    3 +-
 content/docs/latest/_static/doctools.js            |   14 +-
 content/docs/latest/_static/fonts/FontAwesome.otf  |  Bin 134808 -> 0 bytes
 .../docs/latest/_static/fonts/Inconsolata-Bold.ttf |  Bin 0 -> 109948 bytes
 .../latest/_static/fonts/Inconsolata-Regular.ttf   |  Bin 0 -> 96964 bytes
 content/docs/latest/_static/fonts/Inconsolata.ttf  |  Bin 0 -> 63184 bytes
 content/docs/latest/_static/fonts/Lato-Bold.ttf    |  Bin 0 -> 656544 bytes
 content/docs/latest/_static/fonts/Lato-Regular.ttf |  Bin 0 -> 656568 bytes
 .../latest/_static/fonts/Roboto-Slab-Bold.woff     |  Bin 87624 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Bold.woff2    |  Bin 67312 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Light.woff    |  Bin 88600 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Light.woff2   |  Bin 67884 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Regular.woff  |  Bin 86288 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Regular.woff2 |  Bin 66444 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Thin.woff     |  Bin 87452 -> 0 bytes
 .../latest/_static/fonts/Roboto-Slab-Thin.woff2    |  Bin 66328 -> 0 bytes
 .../docs/latest/_static/fonts/RobotoSlab-Bold.ttf  |  Bin 0 -> 170616 bytes
 .../latest/_static/fonts/RobotoSlab-Regular.ttf    |  Bin 0 -> 169064 bytes
 .../latest/_static/fonts/lato-bold-italic.woff     |  Bin 323344 -> 0 bytes
 .../latest/_static/fonts/lato-bold-italic.woff2    |  Bin 193308 -> 0 bytes
 content/docs/latest/_static/fonts/lato-bold.woff   |  Bin 309728 -> 0 bytes
 content/docs/latest/_static/fonts/lato-bold.woff2  |  Bin 184912 -> 0 bytes
 .../latest/_static/fonts/lato-normal-italic.woff   |  Bin 328412 -> 0 bytes
 .../latest/_static/fonts/lato-normal-italic.woff2  |  Bin 195704 -> 0 bytes
 content/docs/latest/_static/fonts/lato-normal.woff |  Bin 309192 -> 0 bytes
 .../docs/latest/_static/fonts/lato-normal.woff2    |  Bin 182708 -> 0 bytes
 content/docs/latest/_static/language_data.js       |    6 +-
 content/docs/latest/_static/pygments.css           |   10 +-
 content/docs/latest/_static/searchtools.js         |   36 +-
 .../sphinx_tabs/semantic-ui-2.4.1/menu.min.css     |    1 -
 .../sphinx_tabs/semantic-ui-2.4.1/segment.min.css  |    9 -
 .../sphinx_tabs/semantic-ui-2.4.1/tab.min.css      |    9 -
 .../sphinx_tabs/semantic-ui-2.4.1/tab.min.js       |    1 -
 content/docs/latest/_static/sphinx_tabs/tabs.css   |   44 -
 content/docs/latest/_static/sphinx_tabs/tabs.js    |   94 -
 content/docs/latest/_static/tabs.css               |   53 +
 content/docs/latest/_static/tabs.js                |  130 ++
 content/docs/latest/_static/underscore-1.12.0.js   | 2027 ++++++++++++++++++++
 content/docs/latest/_static/underscore-1.3.1.js    |  999 ----------
 content/docs/latest/_static/underscore.js          |   37 +-
 content/docs/latest/applications/index.html        |   31 +-
 content/docs/latest/applications/nsh/builtin.html  |   31 +-
 content/docs/latest/applications/nsh/commands.html |   31 +-
 content/docs/latest/applications/nsh/config.html   |   31 +-
 .../docs/latest/applications/nsh/customizing.html  |   31 +-
 content/docs/latest/applications/nsh/index.html    |   31 +-
 .../docs/latest/applications/nsh/installation.html |   31 +-
 content/docs/latest/applications/nsh/login.html    |   31 +-
 content/docs/latest/applications/nsh/nsh.html      |   31 +-
 content/docs/latest/components/binfmt.html         |   57 +-
 .../latest/components/drivers/block/index.html     |   31 +-
 .../components/drivers/character/analog.html       |   31 +-
 .../latest/components/drivers/character/can.html   |   31 +-
 .../latest/components/drivers/character/foc.html   |   31 +-
 .../latest/components/drivers/character/index.html |   31 +-
 .../components/drivers/character/keypad.html       |   31 +-
 .../latest/components/drivers/character/note.html  |   93 +-
 .../latest/components/drivers/character/pwm.html   |   31 +-
 .../components/drivers/character/quadrature.html   |   31 +-
 .../latest/components/drivers/character/rtc.html   |   31 +-
 .../components/drivers/character/serial.html       |   31 +-
 .../latest/components/drivers/character/timer.html |   57 +-
 .../components/drivers/character/touchscreen.html  |   31 +-
 .../components/drivers/character/watchdog.html     |   49 +-
 content/docs/latest/components/drivers/index.html  |   31 +-
 .../components/drivers/special/ethernet.html       |   31 +-
 .../components/drivers/special/framebuffer.html    |   31 +-
 .../latest/components/drivers/special/i2c.html     |   31 +-
 .../latest/components/drivers/special/index.html   |   31 +-
 .../latest/components/drivers/special/lcd.html     |   31 +-
 .../latest/components/drivers/special/mtd.html     |   31 +-
 .../latest/components/drivers/special/sdio.html    |   31 +-
 .../components/drivers/special/socketcan.html      |   31 +-
 .../latest/components/drivers/special/spi.html     |   31 +-
 .../latest/components/drivers/special/syslog.html  |   37 +-
 .../latest/components/drivers/special/usbdev.html  |   31 +-
 .../latest/components/drivers/special/usbhost.html |   31 +-
 content/docs/latest/components/filesystem.html     |   31 +-
 content/docs/latest/components/index.html          |   31 +-
 content/docs/latest/components/nxflat.html         |   31 +-
 .../latest/components/nxgraphics/appendix.html     |   31 +-
 .../docs/latest/components/nxgraphics/index.html   |   31 +-
 content/docs/latest/components/nxgraphics/nx.html  |  115 +-
 .../latest/components/nxgraphics/nxcursor.html     |   37 +-
 .../docs/latest/components/nxgraphics/nxfonts.html |   57 +-
 .../docs/latest/components/nxgraphics/nxgl.html    |   87 +-
 .../docs/latest/components/nxgraphics/nxtk.html    |   93 +-
 .../docs/latest/components/nxgraphics/sample.html  |   31 +-
 content/docs/latest/components/nxwidgets.html      |   31 +-
 content/docs/latest/components/paging.html         |   37 +-
 content/docs/latest/components/power.html          |   51 +-
 content/docs/latest/contributing/coding_style.html |   33 +-
 .../docs/latest/contributing/documentation.html    |   47 +-
 content/docs/latest/contributing/index.html        |   31 +-
 .../docs/latest/contributing/making-changes.html   |   31 +-
 content/docs/latest/contributing/workflow.html     |   31 +-
 content/docs/latest/genindex.html                  |   25 +-
 content/docs/latest/glossary.html                  |  268 ++-
 content/docs/latest/guides/cpp_cmake.html          |   45 +-
 content/docs/latest/guides/drivers.html            |   31 +-
 content/docs/latest/guides/index.html              |   31 +-
 content/docs/latest/guides/nfs.html                |   53 +-
 content/docs/latest/guides/simulator.html          |   59 +-
 content/docs/latest/guides/tasktrace.html          |   31 +-
 content/docs/latest/guides/tasktraceinternal.html  |   31 +-
 content/docs/latest/guides/tasktraceuser.html      |   31 +-
 content/docs/latest/guides/usbtrace.html           |   31 +-
 content/docs/latest/index.html                     |   30 +-
 content/docs/latest/introduction/about.html        |   31 +-
 .../docs/latest/introduction/detailed_support.html |   31 +-
 .../introduction/development_environments.html     |   31 +-
 content/docs/latest/introduction/index.html        |   31 +-
 content/docs/latest/introduction/inviolables.html  |   31 +-
 content/docs/latest/introduction/licensing.html    |  686 ++++++-
 content/docs/latest/introduction/resources.html    |   31 +-
 .../latest/introduction/supported_platforms.html   |   31 +-
 content/docs/latest/introduction/trademarks.html   |   31 +-
 content/docs/latest/objects.inv                    |  Bin 23463 -> 30779 bytes
 content/docs/latest/platforms/arm/index.html       |   31 +-
 .../arm/nrf52/boards/nrf52832-mdk/index.html       |   31 +-
 .../arm/nrf52/boards/nrf52832-sparkfun/index.html  |   31 +-
 content/docs/latest/platforms/arm/nrf52/index.html |   31 +-
 content/docs/latest/platforms/index.html           |   31 +-
 .../docs/latest/platforms/risc-v/bl602/index.html  |   31 +-
 content/docs/latest/platforms/risc-v/index.html    |   31 +-
 .../xtensa/esp32/boards/esp32-devkitc/index.html   |  211 +-
 .../docs/latest/platforms/xtensa/esp32/index.html  | 1024 +++++++++-
 content/docs/latest/platforms/xtensa/index.html    |   31 +-
 content/docs/latest/quickstart/compiling.html      |   49 +-
 content/docs/latest/quickstart/configuring.html    |   55 +-
 content/docs/latest/quickstart/debugging.html      |   43 +-
 content/docs/latest/quickstart/index.html          |   31 +-
 content/docs/latest/quickstart/install.html        |  222 +--
 content/docs/latest/quickstart/organization.html   |   31 +-
 content/docs/latest/quickstart/running.html        |   94 +-
 content/docs/latest/reference/index.html           |   31 +-
 content/docs/latest/reference/os/addrenv.html      |   63 +-
 content/docs/latest/reference/os/app_vs_os.html    |   31 +-
 content/docs/latest/reference/os/arch.html         |   73 +-
 content/docs/latest/reference/os/board.html        |   35 +-
 content/docs/latest/reference/os/conventions.html  |   31 +-
 content/docs/latest/reference/os/index.html        |   31 +-
 content/docs/latest/reference/os/iob.html          |   73 +-
 content/docs/latest/reference/os/led.html          |   37 +-
 content/docs/latest/reference/os/nuttx.html        |   41 +-
 content/docs/latest/reference/os/paging.html       |   31 +-
 content/docs/latest/reference/os/shm.html          |   35 +-
 content/docs/latest/reference/os/smp.html          |   41 +-
 content/docs/latest/reference/os/time_clock.html   |   51 +-
 content/docs/latest/reference/os/wqueue.html       |   45 +-
 .../latest/reference/user/01_task_control.html     |   93 +-
 .../latest/reference/user/02_task_scheduling.html  |   47 +-
 .../latest/reference/user/03_task_control.html     |   47 +-
 .../latest/reference/user/04_message_queue.html    |   51 +-
 .../reference/user/05_counting_semaphore.html      |   55 +-
 .../latest/reference/user/06_clocks_timers.html    |   69 +-
 content/docs/latest/reference/user/07_signals.html |   69 +-
 content/docs/latest/reference/user/08_pthread.html |  151 +-
 .../docs/latest/reference/user/09_env_vars.html    |   41 +-
 .../docs/latest/reference/user/10_filesystem.html  |   85 +-
 content/docs/latest/reference/user/11_network.html |   53 +-
 .../latest/reference/user/12_shared_memory.html    |   39 +-
 .../docs/latest/reference/user/13_boardctl.html    |   65 +-
 content/docs/latest/reference/user/13_logging.html |   43 +-
 content/docs/latest/reference/user/index.html      |   31 +-
 content/docs/latest/reference/user/structures.html |   67 +-
 content/docs/latest/search.html                    |   26 +-
 content/docs/latest/searchindex.js                 |    2 +-
 content/docs/latest/substitutions.html             |   22 +-
 content/feed.xml                                   |    4 +-
 174 files changed, 7217 insertions(+), 4547 deletions(-)

diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html
index 96b21e6..621b319 100644
--- a/content/docs/10.0.0/index.html
+++ b/content/docs/10.0.0/index.html
@@ -207,7 +207,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 07 April 21 at 00:11</p>
+<p>Last Updated: 08 April 21 at 00:13</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html
index 6abfb3b..4ff166c 100644
--- a/content/docs/10.0.1/index.html
+++ b/content/docs/10.0.1/index.html
@@ -211,7 +211,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 07 April 21 at 00:11</p>
+<p>Last Updated: 08 April 21 at 00:13</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt b/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt
index ad947d9..e816933 100644
--- a/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt
@@ -27,6 +27,75 @@ Features
   - EN and BOOT buttons (BOOT accessible to user)
   - SPI FLASH (size varies according to model
 
+Serial Console
+==============
+
+UART0 is, by default, the serial console.  It connects to the on-board
+CP2102 converter and is available on the USB connector USB CON8 (J1).
+
+It will show up as /dev/ttypUSB[n] where [n] will probably be 0 (is it 1
+on my PC because I have a another device at ttyUSB0).
+
+Buttons and LEDs
+================
+
+Buttons
+-------
+
+There are two buttons labeled Boot and EN.  The EN button is not available
+to software.  It pulls the chip enable line that doubles as a reset line.
+
+The BOOT button is connected to IO0.  On reset it is used as a strapping
+pin to determine whether the chip boots normally or into the serial
+bootloader.  After reset, however, the BOOT button can be used for software
+input.
+
+LEDs
+----
+
+There are several on-board LEDs for that indicate the presence of power
+and USB activity.  None of these are available for use by software.
+
+Ethernet
+========
+
+ESP32 has a 802.11 hardware MAC, so just connects to external PHY chip.
+Due to the limited number of GPIOs in ESP32, it's recommended to use RMII to
+connect to an external PHY chip. Current driver also only supports RMII option.
+
+The RMII GPIO pins are fixed, but the SMI and functional GPIO pins are optional.
+
+RMII GPIO pins are as following::
+
+    ESP32 GPIO          PHY Chip GPIO
+      IO25       <-->       RXD[0]
+      IO26       <-->       RXD[1]
+      IO27       <-->       CRS_DV
+      IO0        <-->       REF_CLK
+      IO19       <-->       TXD[0]
+      IO21       <-->       TX_EN
+      IO22       <-->       TXD[1]
+
+SMI GPIO pins (default option) are as following::
+
+    ESP32 GPIO          PHY Chip GPIO
+      IO18       <-->       MDIO
+      IO23       <-->       MDC
+
+Functional GPIO pins(default option) are as following::
+
+    ESP32 GPIO          PHY Chip GPIO
+      IO5        <-->      Reset_N
+
+Espressif has an `official Ethernet development
+board <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit.html>`_.
+
+This driver has been tested according to this board and ESP32 core
+board + LAN8720 module. If users have some issue about using this driver,
+please refer the upper official document, specially the issue that GPIO0
+causes failing to bring the ESP32 chip up.
+
+
 Pin Mapping
 ===========
 
@@ -44,7 +113,8 @@ Configurations
 nsh
 ---
 
-Basic NuttShell configuration (console enabled in UART0, exposed via USB connection, at 115200 bps).
+Basic NuttShell configuration (console enabled in UART0, exposed via
+USB connection by means of CP2102 converter, at 115200 bps).
 
 wapi
 ----
@@ -83,3 +153,120 @@ outputted::
 
 From the host the message :code:`test` should be outputted.
 
+smp
+---
+
+Another NSH configuration, similar to nsh, but also enables
+SMP operation.  It differs from the nsh configuration only in these
+additional settings:
+
+SMP is enabled::
+
+  CONFIG_SMP=y
+  CONFIG_SMP_IDLETHREAD_STACKSIZE=3072
+  CONFIG_SMP_NCPUS=2
+  CONFIG_SPINLOCK=y
+
+The apps/testing/smp test is included::
+
+  CONFIG_TESTING_SMP=y
+  CONFIG_TESTING_SMP_NBARRIER_THREADS=8
+  CONFIG_TESTING_SMP_PRIORITY=100
+  CONFIG_TESTING_SMP_STACKSIZE=2048
+
+ostest
+------
+
+This is the NuttX test at apps/testing/ostest that is run against all new
+architecture ports to assure a correct implementation of the OS.  The default
+version is for a single CPU but can be modified for an SMP test by adding::
+
+  CONFIG_SMP=y
+  CONFIG_SMP_IDLETHREAD_STACKSIZE=2048
+  CONFIG_SMP_NCPUS=2
+  CONFIG_SPINLOCK=y
+
+mcp2515
+-------
+
+This config is used to communicate with MCP2515 CAN over SPI chip.
+SPI3 is used and kept with the default IOMUX pins, i.e.::
+
+    CS   --> 5
+    SCK  --> 18
+    MOSI --> 23
+    MISO --> 19
+
+The MCP2515 interrupt (INT) pin is connected to the pin 22 of the
+ESP32-Devkit.
+
+mmcsdspi
+--------
+
+This config tests the SPI driver by connecting an SD Card reader over SPI.
+SPI2 is used and kept with the default IOMUX pins, i.e.::
+
+    CS   --> 15
+    SCK  --> 14
+    MOSI --> 13
+    MISO --> 12
+
+Once booted the following command is used to mount a FAT file system::
+
+    mount -t vfat /dev/mmcsd0 /mnt
+
+spiflash
+--------
+
+This config tests the external SPI that comes with an ESP32 module connected
+through SPI1.
+
+By default a SmartFS file system is selected.
+Once booted you can use the following commands to mount the file system::
+
+    mksmartfs /dev/smart0
+    mount -t smartfs /dev/smart0 /mnt
+
+Note that mksmartfs is only needed the first time.
+
+psram
+-----
+
+This config tests the PSRAM driver over SPIRAM interface.
+You can use the ramtest command to test the PSRAM memory. We are testing
+only 64KB on this example (64 * 1024), but you can change this number to
+2MB or 4MB depending on PSRAM chip used on your board::
+
+    nsh> ramtest -w 0x3F800000 65536
+    RAMTest: Marching ones: 3f800000 65536
+    RAMTest: Marching zeroes: 3f800000 65536
+    RAMTest: Pattern test: 3f800000 65536 55555555 aaaaaaaa
+    RAMTest: Pattern test: 3f800000 65536 66666666 99999999
+    RAMTest: Pattern test: 3f800000 65536 33333333 cccccccc
+    RAMTest: Address-in-address test: 3f800000 65536
+
+timer
+-----
+
+This config test the general use purpose timers. It includes the 4 timers,
+adds driver support, registers the timers as devices and includes the timer
+example.
+
+To test it, just run the following::
+
+  nsh> timer -d /dev/timerx
+
+Where x in the timer instance.
+
+watchdog
+--------
+
+This config test the watchdog timers. It includes the 2 MWDTS,
+adds driver support, registers the WDTs as devices and includes the watchdog
+example.
+
+To test it, just run the following::
+
+  nsh> wdog -d /dev/watchdogx
+
+Where x in the watchdog instance.
diff --git a/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt b/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt
index 71d78d0..23cb7da 100644
--- a/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt
@@ -2,16 +2,56 @@
 Espressif ESP32
 ===============
 
-ESP32 series of SoCs from Espressif are single and dual-core chips based on
-Xtensa architecture, with support for Bluetooth and WiFi. 
+The ESP32 is a series of single and dual-core SoCs from Espressif
+based on Harvard architecture Xtensa LX6 CPUs and with on-chip support
+for Bluetooth and WiFi.
+
+All embedded memory, external memory and peripherals are located on the
+data bus and/or the instruction bus of these CPUs. With some minor
+exceptions, the address mapping of two CPUs is symmetric, meaning they
+use the same addresses to access the same memory. Multiple peripherals in
+the system can access embedded memory via DMA.
+
+On dual-core SoCs, the two CPUs are typically named "PRO_CPU" and "APP_CPU"
+(for "protocol" and "application"), however for most purposes the
+two CPUs are interchangeable.
 
 Toolchain
 =========
 
-You can use the prebuilt `compiler <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#xtensa-esp32-elf>`__ for Xtensa architecture and `OpenOCD <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#openocd-esp32>`__ for ESP32 by Espressif. For flashing firmware, you will need to install ``esptool.py`` by running::
+You must use the custom Xtensa toolchain in order to build the ESP32 Core
+BSP. You can use the prebuilt `compiler <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#xtensa-esp32-elf>`__
+for Xtensa architecture and `OpenOCD <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#openocd-esp32>`__
+for ESP32 by Espressif.
+
+For flashing firmware, you will need to install ``esptool.py`` by running::
 
     pip install esptool
 
+Building from source
+--------------------
+
+You can also build the toolchain yourself. The steps to
+build toolchain with crosstool-NG on Linux are as follows
+
+.. code-block:: console
+
+  $ git clone https://github.com/espressif/crosstool-NG.git
+  $ cd crosstool-NG
+  $ git checkout esp-2019r2
+  $ git submodule update --init
+
+  $ ./bootstrap && ./configure --enable-local && make
+
+  $ ./ct-ng xtensa-esp32-elf
+  $ ./ct-ng build
+
+  $ chmod -R u+w builds/xtensa-esp32-elf
+
+  $ export PATH="crosstool-NG/builds/xtensa-esp32-elf/bin:$PATH"
+
+These steps are given in setup guide in
+`ESP-IDF repository <https://docs.espressif.com/projects/esp-idf/en/latest/get-started/linux-setup-scratch.html>`_.
 
 Flashing
 ========
@@ -27,14 +67,18 @@ Bootloader and partitions
 
 ESP32 requires a bootloader to be flashed as well as a set of FLASH partitions. This is only needed the first time
 (or any time you which to modify either of these). An easy way is to use prebuilt binaries for NuttX from `here <https://github.com/espressif/esp-nuttx-bootloader>`_. In there you will find instructions to rebuild these if necessary. 
-Once you downloaded both binaries, you can flash them by adding an ``ESPTOOL_BINDIR`` parameter, pointing to the directiry where these binaries were downloaded::
+Once you downloaded both binaries, you can flash them by adding an ``ESPTOOL_BINDIR`` parameter, pointing to the directiry where these binaries were downloaded:
+
+.. code-block:: console
 
-    make download ESPTOOL_PORT=<port> ESPTOOL_BINDIR=<dir>
+   $ make download ESPTOOL_PORT=<port> ESPTOOL_BINDIR=<dir>
 
 .. note:: It is recommended that if this is the first time you are using the board with NuttX that you perform a complete
-   SPI FLASH erase::
+   SPI FLASH erase.
+
+   .. code-block:: console
        
-       esptool.py erase_flash
+      $ esptool.py erase_flash
 
 Peripheral Support
 ==================
@@ -47,6 +91,174 @@ Peripheral Support NOTES
 ?          ?       ?
 ========== ======= =====
 
+Memory Map
+==========
+
+Address Mapping
+---------------
+
+================== ========== ========== =============== ===============
+BUS TYPE           START      LAST       DESCRIPTION     NOTES
+================== ========== ========== =============== ===============
+                   0x00000000 0x3F3FFFFF                 Reserved
+Data               0x3F400000 0x3F7FFFFF External Memory
+Data               0x3F800000 0x3FBFFFFF External Memory
+                   0x3FC00000 0x3FEFFFFF                 Reserved
+Data               0x3FF00000 0x3FF7FFFF Peripheral
+Data               0x3FF80000 0x3FFFFFFF Embedded Memory
+Instruction        0x40000000 0x400C1FFF Embedded Memory
+Instruction        0x400C2000 0x40BFFFFF External Memory
+.                  0x40C00000 0x4FFFFFFF                 Reserved
+Data / Instruction 0x50000000 0x50001FFF Embedded Memory
+
+.                  0x50002000 0xFFFFFFFF                 Reserved
+================== ========== ========== =============== ===============
+
+
+Embedded Memory
+---------------
+
+=========== ========== ========== =============== ===============
+BUS TYPE    START      LAST       DESCRIPTION     NOTES
+=========== ========== ========== =============== ===============
+Data        0x3ff80000 0x3ff81fff RTC FAST Memory PRO_CPU Only
+.           0x3ff82000 0x3ff8ffff                 Reserved
+Data        0x3ff90000 0x3ff9ffff Internal ROM 1
+.           0x3ffa0000 0x3ffadfff                 Reserved
+Data        0x3ffae000 0x3ffdffff Internal SRAM 2 DMA
+Data        0x3ffe0000 0x3fffffff Internal SRAM 1 DMA
+=========== ========== ========== =============== ===============
+
+Boundary Address
+---------------
+
+====================== ========== ========== =============== ===============
+BUS TYPE               START      LAST       DESCRIPTION     NOTES
+====================== ========== ========== =============== ===============
+Instruction            0x40000000 0x40007fff Internal ROM 0  Remap
+Instruction            0x40008000 0x4005ffff Internal ROM 0
+.                      0x40060000 0x4006ffff                 Reserved
+Instruction            0x40070000 0x4007ffff Internal SRAM 0 Cache
+Instruction            0x40080000 0x4009ffff Internal SRAM 0
+Instruction            0x400a0000 0x400affff Internal SRAM 1
+Instruction            0x400b0000 0x400b7FFF Internal SRAM 1 Remap
+Instruction            0x400b8000 0x400bffff Internal SRAM 1
+Instruction            0x400c0000 0x400c1FFF RTC FAST Memory PRO_CPU Only
+Data / Instruction     0x50000000 0x50001fff RTC SLOW Memory
+
+====================== ========== ========== =============== ===============
+
+External Memory
+---------------
+
+=========== ========== ========== =============== ===============
+BUS TYPE    START      LAST       DESCRIPTION     NOTES
+=========== ========== ========== =============== ===============
+Data        0x3f400000 0x3f7fffff External Flash  Read
+Data        0x3f800000 0x3fbfffff External SRAM   Read and Write
+=========== ========== ========== =============== ===============
+
+Boundary Address
+----------------
+
+Instruction 0x400c2000 0x40bfffff 11512 KB External Flash Read
+
+Linker Segments
+---------------
+
++---------------------+------------+------------+------+------------------------------+
+| DESCRIPTION         | START      | END        | ATTR | LINKER SEGMENT NAME          |
++=====================+============+============+======+==============================+
+| FLASH mapped data:  | 0x3f400010 | 0x3fc00010 | R    | drom0_0_seg                  |
+|     - .rodata       |            |            |      |                              |
+|     - Constructors  |            |            |      |                              |
+|       /destructors  |            |            |      |                              |
++---------------------+------------+------------+------+------------------------------+
+| COMMON data RAM:    | 0x3ffb0000 | 0x40000000 | RW   | dram0_0_seg  (NOTE 1,2)      |
+|  - .bss/.data       |            |            |      |                              |
++---------------------+------------+------------+------+------------------------------+
+| IRAM for PRO cpu:   | 0x40080000 | 0x400a0000 | RX   | iram0_0_seg                  |
+|  - Interrupt Vectors|            |            |      |                              |
+|  - Low level        |            |            |      |                              |
+|    handlers         |            |            |      |                              |
+|  - Xtensa/Espressif |            |            |      |                              |
+|    libraries        |            |            |      |                              |
++---------------------+------------+------------+------+------------------------------+
+| RTC fast memory:    | 0x400c0000 | 0x400c2000 | RWX  | rtc_iram_seg (PRO_CPU only)  |
+|  - .rtc.text        |            |            |      |                              |
+|    (unused?)        |            |            |      |                              |
++---------------------+------------+------------+------+------------------------------+
+| FLASH:              | 0x400d0018 | 0x40400018 | RX   | iram0_2_seg  (actually FLASH)|
+|  - .text            |            |            |      |                              |
++---------------------+------------+------------+------+------------------------------+
+| RTC slow memory:    | 0x50000000 | 0x50001000 | RW   | rtc_slow_seg (NOTE 3)        |
+|  - .rtc.data/rodata |            |            |      |                              |
+|    (unused?)        |            |            |      |                              |
++---------------------+------------+------------+------+------------------------------+
+
+.. note::
+
+  (1) Linker script will reserve space at the beginning of the segment
+      for BT and at the end for trace memory.
+  (2) Heap ends at the top of dram_0_seg
+  (3) Linker script will reserve space at the beginning of the segment
+      for co-processor reserve memory and at the end for ULP coprocessor
+      reserve memory.
+
+64-bit Timers
+=============
+
+ESP32 has 4 generic timers of 64 bits (2 from Group 0 and 2 from Group 1). They're
+accessible as character drivers, the configuration along with a guidance on how
+to run the example and the description of the application level interface
+can be found :doc:`here </components/drivers/character/timer>`.
+
+Watchdog Timers
+===============
+
+ESP32 has 3 WDTs. 2 MWDTS from the Timers Module and 1 RWDT from the RTC Module
+(Currently not supported yet). They're accessible as character drivers,
+The configuration along with a guidance on how to run the example and the description
+of the application level interface can be found
+:doc:`here </components/drivers/character/watchdog>`.
+
+SMP
+===
+
+The ESP32 has 2 CPUs.  Support is included for testing an SMP configuration.
+That configuration is still not yet ready for usage but can be enabled with
+the following configuration settings,
+in :menuselection:`RTOS Features --> Tasks and Scheduling`, with::
+
+    CONFIG_SPINLOCK=y
+    CONFIG_SMP=y
+    CONFIG_SMP_NCPUS=2
+    CONFIG_SMP_IDLETHREAD_STACKSIZE=3072
+
+Debug Tip:  During debug session, OpenOCD may mysteriously switch from one
+CPU to another.  This behavior can be eliminated by uncommenting one of the
+following in ``scripts/esp32.cfg``::
+
+  # Only configure the PRO CPU
+  #set ESP32_ONLYCPU 1
+  # Only configure the APP CPU
+  #set ESP32_ONLYCPU 2
+
+Open Issues
+-----------
+
+  1. Cache Issues.  I have not thought about this yet, but certainly caching is
+     an issue in an SMP system:
+
+     - Cache coherency.  Are there separate caches for each CPU?  Or a single
+       shared cache?  If the are separate then keep the caches coherent will
+       be an issue.
+     - Caching MAY interfere with spinlocks as they are currently implemented.
+       Waiting on a cached copy of the spinlock may result in a hang or a
+       failure to wait.
+
+  2. Assertions.  On a fatal assertions, other CPUs need to be stopped.
+
 WiFi
 ====
 
@@ -68,6 +280,409 @@ Bluetooth
 
 Bluetooth is not currently supported.
 
+Debugging with OpenOCD
+======================
+
+First you in need some debug environment which would be a JTAG emulator
+and the ESP32 OpenOCD software which is available here:
+https://github.com/espressif/openocd-esp32
+
+OpenOCD Documentation
+---------------------
+
+There is on overview of the use of OpenOCD `here <https://dl.espressif.com/doc/esp-idf/latest/openocd.html>`.
+This document is also available in `ESP-IDF source tree <https://github.com/espressif/esp-idf>`_
+in ``docs`` directory.
+
+OpenOCD Configuration File
+--------------------------
+
+A template ESP32 OpenOCD configuration file is provided in
+ESP-IDF ``docs`` directory (``esp32.cfg``).  Since you are not using
+FreeRTOS, you will need to uncomment the line::
+
+  set ESP32_RTOS none
+
+in the OpenOCD configuration file.  You will also need to change
+the source line from::
+
+  find interface/ftdi/tumpa.cfg
+
+to reflect the physical JTAG adapter connected.
+
+A copy of this OpenOCD configuration file available in the NuttX
+source tree at ``nuttx/boards/xtensa/esp32/esp32-devkitc/scripts/esp32.cfg``.
+It has these modifications:
+
+  - The referenced "set ESP32_RTOS none" line has been uncommented
+  - The "find interface/ftdi/tumpa.cfg" was removed. This means that you will
+    need to specify the interface configuration file on the OpenOCD
+    command line.
+
+Another OpenOCD configuration file is available in the NuttX source tree at
+``nuttx/boards/xtensa/esp32/esp32-devkitc/scripts/esp32-ft232h.cfg``.
+It has been tested with:
+
+  - `ESP32-DevKitC V4 <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html>`_
+
+  - Akizukidenshi's FT232HL, a FT232H based JTAG adapter
+    (http://akizukidenshi.com/catalog/g/gK-06503/) with JP3 and JP4 closed,
+    and connected to ESP32 as:
+
+    +------------------+-------------+
+    | ESP32-DevKitC V4 | FT232HL     |
+    +=======+==========+=============+
+    | J2    |  J3      | J2          |
+    +-------+----------+-------------+
+    | IO13  |          | AD0   (TCK) |
+    +-------+----------+-------------+
+    | IO12  |          | AD1   (TDI) |
+    +-------+----------+-------------+
+    |       |  IO15    | AD2   (TDO) |
+    +-------+----------+-------------+
+    | IO14  |          | AD3   (TMS) |
+    +-------+----------+-------------+
+    | GND   |          | GND         |
+    +-------+----------+-------------+
+
+The following version of OpenOCD from ESP-IDF (macOS version)::
+
+  % openocd --version
+  Open On-Chip Debugger  v0.10.0-esp32-20191114 (2019-11-14-14:19)
+  Licensed under GNU GPL v2
+  For bug reports, read
+          http://openocd.org/doc/doxygen/bugs.html
+
+General OpenOCD build instructions
+----------------------------------
+
+Installing OpenOCD.  The sources for the ESP32-enabled variant of
+OpenOCD are available from Espressifs GitHub. To download the source,
+use the following commands:
+
+.. code-block:: console
+
+   $ git clone https://github.com/espressif/openocd-esp32.git
+   $ cd openocd-esp32
+   $ git submodule init
+   $ git submodule update
+
+Then look at the README and the docs/INSTALL.txt files in the
+openocd-esp32 directory for further instructions.  There area
+separate README files for Linux/Cygwin, macOS, and Windows.  Here
+is what I ended up doing (under Linux):
+
+.. code-block:: console
+
+  $ cd openocd-esp32
+  $ ./bootstrap
+  $ ./configure
+  $ make
+
+If you do not do the install step, then you will have a localhost
+version of the OpenOCD binary at ``openocd-esp32/src``.
+
+Starting the OpenOCD Server
+---------------------------
+
+  - cd to openocd-esp32 directory
+  - copy the modified esp32.cfg script to this directory
+
+Then start OpenOCD by executing a command like the following.  Here
+I assume that:
+
+  - You did not install OpenOCD; binaries are available at
+    openocd-esp32/src and interface scripts are in
+    openocd-eps32/tcl/interface
+  - I select the configuration for the Olimex ARM-USB-OCD
+    debugger.
+
+Then the command to start OpenOCD is:
+
+.. code-block:: console
+
+  $ ./src/openocd -s ./tcl -f tcl/interface/ftdi/olimex-arm-usb-ocd.cfg -f ./esp32.cfg
+
+I then see::
+
+  Open On-Chip Debugger 0.10.0-dev-g3098897 (2016-11-14-12:19)
+  Licensed under GNU GPL v2
+  For bug reports, read
+          http://openocd.org/doc/doxygen/bugs.html
+  adapter speed: 200 kHz
+  force hard breakpoints
+  Info : clock speed 200 kHz
+  Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
+  Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
+  Info : esp32.cpu0: Debug controller was reset (pwrstat=0x5F, after clear 0x0F).
+  Info : esp32.cpu0: Core was reset (pwrstat=0x5F, after clear 0x0F).
+
+Connecting a debugger to OpenOCD
+--------------------------------
+
+OpenOCD should now be ready to accept gdb connections. If you have
+compiled the ESP32 toolchain using Crosstool-NG, or if you have
+downloaded a precompiled toolchain from the Espressif website, you
+should already have xtensa-esp32-elf-gdb, a version of gdb that can
+be used for this
+
+First, make sure the project you want to debug is compiled and
+flashed into the ESP32’s SPI flash. Then, in a different console
+than OpenOCD is running in, invoke gdb. For example, for the
+template app, you would do this like such::
+
+.. code-block:: console
+
+  $ cd nuttx
+  $ xtensa-esp32-elf-gdb -ex 'target remote localhost:3333' nuttx
+
+This should give you a gdb prompt.
+
+Breakpoints
+-----------
+
+You can set up to 2 hardware breakpoints, which can be anywhere in the
+address space. Also 2 hardware watchpoints.
+
+The openocd esp32.cfg file currently forces gdb to use hardware
+breakpoints, I believe because software breakpoints (or, at least, the
+memory map for automatically choosing them) aren't implemented yet
+(as of 2016-11-14).
+
+JTAG Emulator
+-------------
+
+The documentation indicates that you need to use an external JTAG
+like the TIAO USB Multi-protocol Adapter and the Flyswatter2.
+The instructions at http://www.esp32.com/viewtopic.php?t=381 show
+use of an FTDI C232HM-DDHSL-0 USB 2.0 high speed to MPSSE cable.
+
+The ESP32 DevkitC v4 board has no on board JTAG connector.  It will
+be necessary to make a cable or some other board to connect a JTAG
+emulator.  Refer to http://www.esp32.com/viewtopic.php?t=381 "How
+to debug ESP32 with JTAG / OpenOCD / GDB 1st part connect the
+hardware."
+
+Relevant pin-out:
+
+========= =============
+PIN LABEL JTAG FUNCTION
+========= =============
+IO14      TMS
+IO12      TDI
+GND       GND
+IO13      TCK
+x         x
+IO15      TDO
+========= =============
+
+You can find the mapping of JTAG signals to ESP32 GPIO numbers in
+"ESP32 Pin List" document found
+`here <http://espressif.com/en/support/download/documents?keys=&field_type_tid%5B%5D=13>`_.
+
+I put the ESP32 on a prototyping board and used a standard JTAG 20-pin
+connector with an older Olimex JTAG that I had.  Here is how I wired
+the 20-pin connector:
+
+===================== ===============
+20-PIN JTAG CONNECTOR ESP32 PIN LABEL
+===================== ===============
+ 1 VREF  INPUT        3V3
+ 3 nTRST OUTPUT       N/C
+ 5 TDI   OUTPUT       IO12
+ 7 TMS   OUTPUT       IO14
+ 9 TCLK  OUTPUT       IO13
+11 RTCK  INPUT        N/C
+13 TDO   INPUT        IO15
+15 RESET I/O          N/C
+17 DBGRQ OUTPUT       N/C
+19 5V    OUTPUT       N/C
+ 2 VCC   INPUT        3V3
+ 4 GND   N/A          GND
+ 6 GND   N/A          GND
+ 8 GND   N/A          GND
+10 GND   N/A          GND
+12 GND   N/A          GND
+14 GND   N/A          GND
+16 GND   N/A          GND
+18 GND   N/A          GND
+20 GND   N/A          GND
+===================== ===============
+
+Executing and Debugging from FLASH and IRAM
+===========================================
+
+FLASH
+-----
+
+OpenOCD currently doesn't have a FLASH driver for ESP32, so you can load
+code into IRAM only via JTAG. FLASH-resident sections like .FLASH.rodata
+will fail to load.  The bootloader in ROM doesn't parse ELF, so any image
+which is bootloaded from FLASH has to be converted into a custom image
+format first.
+
+The tool esp-idf uses for flashing is a command line Python tool called
+"esptool.py" which talks to a serial bootloader in ROM.  A version is
+supplied in the esp-idf codebase in components/esptool_py/esptool, the
+"upstream" for that tool is here and now supports ESP32::
+
+  https://github.com/espressif/esptool/
+
+To FLASH an ELF via the command line is a two step process, something like
+this::
+
+  esptool.py --chip esp32 elf2image --flash_mode dio --flash_size 4MB -o nuttx.bin nuttx
+  esptool.py --chip esp32 --port COMx write_flash 0x1000 bootloader.bin 0x8000 partition_table.bin 0x10000 nuttx.bin
+
+The first step converts an ELF image into an ESP32-compatible binary
+image format, and the second step flashes it (along with bootloader image and
+partition table binary.)
+The offset for the partition table may vary, depending on ESP-IDF
+configuration, ``CONFIG_PARTITION_TABLE_OFFSET``, which is by default 0x8000
+as of writing this.
+
+To put the ESP32 into serial flashing mode, it needs to be reset with IO0 held
+low.  On the Core boards this can be accomplished by holding the button marked
+"Boot" and pressing then releasing the button marked "EN".  Actually, esptool.py
+can enter bootloader mode automatically (via RTS/DTR control lines), but
+unfortunately a timing interaction between the Windows CP2012 driver and the
+hardware means this doesn't currently work on Windows.
+
+Secondary Boot Loader / Partition Table
+---------------------------------------
+
+See:
+
+  - https://github.com/espressif/esp-idf/tree/master/components/bootloader
+  - https://github.com/espressif/esp-idf/tree/master/components/partition_table .
+
+The secondary boot loader by default programs a RTC watchdog timer.
+As NuttX doesn't know the timer, it reboots every ~9 seconds. You can
+disable the timer by tweaking sdkconfig CONFIG_BOOTLOADER_WDT_ENABLE
+and rebuild the boot loader.
+
+Running from IRAM with OpenOCD
+------------------------------
+
+Running from IRAM is a good debug option.  You should be able to load the
+ELF directly via JTAG in this case, and you may not need the bootloader.
+
+NuttX supports a configuration option, CONFIG_ESP32_DEVKITC_RUN_IRAM, that may be
+selected for execution from IRAM.  This option simply selects the correct
+linker script for IRAM execution.
+
+Skipping the Secondary Bootloader
+---------------------------------
+
+It is possible to skip the secondary bootloader and run out of IRAM using
+only the primary bootloader if your application of small enough (< 128KiB code,
+<180KiB data), then you can simplify initial bring-up by avoiding second stage
+bootloader. Your application will be loaded into IRAM using first stage
+bootloader present in ESP32 ROM. To achieve this, you need two things:
+
+  1. Have a linker script which places all code into IRAM and all data into
+     IRAM/DRAM
+
+  2. Use "esptool.py" utility to convert application .elf
+     file into binary format which can be loaded by first stage bootloader.
+
+Again you would need to link the ELF file and convert it to binary format suitable
+for flashing into the board.  The command should to convert ELF file to binary
+image looks as follows::
+
+  esptool.py --chip esp32 elf2image --flash_mode "dio" --flash_freq "40m" --flash_size "2MB" -o nuttx.bin nuttx
+
+To flash binary image to your development board, use the same esptool.py utility::
+
+  esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 write_flash -z --flash_mode dio --flash_freq 40m --flash_size 2MB 0x1000 nuttx.bin
+
+The argument before app.bin (0x1000) indicates the offset in flash where binary
+will be written. ROM bootloader expects to find an application (or second stage
+bootloader) image at offset 0x1000, so we are writing the binary there.
+
+Sample OpenOCD Debug Steps
+--------------------------
+
+I did the initial bring-up using the IRAM configuration and OpenOCD.  Here
+is a synopsis of my debug steps:
+
+boards/xtensa/esp32/esp32-devkitc/configs/nsh with::
+
+  CONFIG_DEBUG_ASSERTIONS=y
+  CONFIG_DEBUG_FEATURES=y
+  CONFIG_DEBUG_SYMBOLS=y
+  CONFIG_ESP32_DEVKITC_RUN_IRAM=y
+
+I also made this change configuration which will eliminate all attempts to
+re-configure serial. It will just use the serial settings as they were left
+by the bootloader::
+
+  CONFIG_SUPPRESS_UART_CONFIG=y
+
+Start OpenOCD::
+
+  cd ../openocde-esp32
+  cp ../nuttx/boards/xtensa/esp32/esp32-devkitc/scripts/esp32.cfg .
+  sudo ./src/openocd -s ./tcl/ -f tcl/interface/ftdi/olimex-arm-usb-ocd.cfg -f ./esp32.cfg
+
+Start GDB and load code::
+
+  cd ../nuttx
+  xtensa-esp32-elf-gdb -ex 'target remote localhost:3333' nuttx
+  (gdb) load nuttx
+  (gdb) mon reg pc [value report by load for entry point]
+  (gdb) s
+
+Single stepping works fine for me as do breakpoints::
+
+  Breakpoint 1, up_timer_initialize () at chip/esp32_timerisr.c:172
+  72 {
+  (gdb) n
+  esp32.cpu0: Target halted, pc=0x400835BF
+  187 g_tick_divisor = divisor;
+  (gdb) ...
+
+Using QEMU
+==========
+
+First follow the instructions `here <https://github.com/espressif/qemu/wiki>`_ to build QEMU.
+Enable the ESP32_QEMU_IMAGE config found in "Board Selection -> ESP32 binary image for QEMU".
+Download the bootloader and the partition table from https://github.com/espressif/esp-nuttx-bootloader/releases
+and place them in a directory, say ../esp-bins.
+Build and generate the QEMU image: `make ESPTOOL_BINDIR=../esp-bins`
+A new image "esp32_qemu_image.bin" will be created.  It can be run as::
+
+ ~/PATH_TO_QEMU/qemu/build/xtensa-softmmu/qemu-system-xtensa -nographic \
+    -machine esp32 \
+    -drive file=esp32_qemu_image.bin,if=mtd,format=raw
+
+Things to Do
+============
+
+1. Lazy co-processor save logic supported by Xtensa. That logic works like this:
+
+   a. CPENABLE is set to zero on each context switch, disabling all co-
+      processors.
+   b. If/when the task attempts to use the disabled co-processor, an
+      exception  occurs
+   c. The co-processor exception handler re-enables the co-processor.
+
+   Instead, the NuttX logic saves and restores CPENABLE on each context
+   switch.  This has disadvantages in that (1) co-processor context will
+   be saved and restored even if the co-processor was never used, and (2)
+   tasks must explicitly enable and disable co-processors.
+
+2. Currently the Xtensa port copies register state save information from
+   the stack into the TCB.  A more efficient alternative would be to just
+   save a pointer to a register state save area in the TCB.  This would
+   add some complexity to signal handling and also also the
+   up_initialstate().  But the performance improvement might be worth
+   the effort.
+
+3. See SMP-related issues above
+
+4. See OpenOCD for the ESP32 above
+
 Supported Boards
 ================
 
diff --git a/content/docs/latest/_static/basic.css b/content/docs/latest/_static/basic.css
index 24bc73e..be19270 100644
--- a/content/docs/latest/_static/basic.css
+++ b/content/docs/latest/_static/basic.css
@@ -4,7 +4,7 @@
  *
  * Sphinx stylesheet -- basic theme.
  *
- * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -764,6 +764,7 @@ div.code-block-caption code {
 }
 
 table.highlighttable td.linenos,
+span.linenos,
 div.doctest > div.highlight span.gp {  /* gp: Generic.Prompt */
     user-select: none;
 }
diff --git a/content/docs/latest/_static/doctools.js b/content/docs/latest/_static/doctools.js
index daccd20..61ac9d2 100644
--- a/content/docs/latest/_static/doctools.js
+++ b/content/docs/latest/_static/doctools.js
@@ -4,7 +4,7 @@
  *
  * Sphinx JavaScript utilities for all documentation.
  *
- * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -29,9 +29,14 @@ if (!window.console || !console.firebug) {
 
 /**
  * small helper function to urldecode strings
+ *
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
  */
 jQuery.urldecode = function(x) {
-  return decodeURIComponent(x).replace(/\+/g, ' ');
+  if (!x) {
+    return x
+  }
+  return decodeURIComponent(x.replace(/\+/g, ' '));
 };
 
 /**
@@ -285,9 +290,10 @@ var Documentation = {
   initOnKeyListeners: function() {
     $(document).keydown(function(event) {
       var activeElementType = document.activeElement.tagName;
-      // don't navigate when in search box or textarea
+      // don't navigate when in search box, textarea, dropdown or button
       if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
-          && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {
+          && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey
+          && !event.shiftKey) {
         switch (event.keyCode) {
           case 37: // left
             var prevHref = $('link[rel="prev"]').prop('href');
diff --git a/content/docs/latest/_static/fonts/FontAwesome.otf b/content/docs/latest/_static/fonts/FontAwesome.otf
deleted file mode 100644
index 401ec0f..0000000
Binary files a/content/docs/latest/_static/fonts/FontAwesome.otf and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Inconsolata-Bold.ttf b/content/docs/latest/_static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 0000000..809c1f5
Binary files /dev/null and b/content/docs/latest/_static/fonts/Inconsolata-Bold.ttf differ
diff --git a/content/docs/latest/_static/fonts/Inconsolata-Regular.ttf b/content/docs/latest/_static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 0000000..fc981ce
Binary files /dev/null and b/content/docs/latest/_static/fonts/Inconsolata-Regular.ttf differ
diff --git a/content/docs/latest/_static/fonts/Inconsolata.ttf b/content/docs/latest/_static/fonts/Inconsolata.ttf
new file mode 100644
index 0000000..4b8a36d
Binary files /dev/null and b/content/docs/latest/_static/fonts/Inconsolata.ttf differ
diff --git a/content/docs/latest/_static/fonts/Lato-Bold.ttf b/content/docs/latest/_static/fonts/Lato-Bold.ttf
new file mode 100644
index 0000000..1d23c70
Binary files /dev/null and b/content/docs/latest/_static/fonts/Lato-Bold.ttf differ
diff --git a/content/docs/latest/_static/fonts/Lato-Regular.ttf b/content/docs/latest/_static/fonts/Lato-Regular.ttf
new file mode 100644
index 0000000..0f3d0f8
Binary files /dev/null and b/content/docs/latest/_static/fonts/Lato-Regular.ttf differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Bold.woff b/content/docs/latest/_static/fonts/Roboto-Slab-Bold.woff
deleted file mode 100644
index 6cb6000..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Bold.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Bold.woff2 b/content/docs/latest/_static/fonts/Roboto-Slab-Bold.woff2
deleted file mode 100644
index 7059e23..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Bold.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Light.woff b/content/docs/latest/_static/fonts/Roboto-Slab-Light.woff
deleted file mode 100644
index 337d287..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Light.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Light.woff2 b/content/docs/latest/_static/fonts/Roboto-Slab-Light.woff2
deleted file mode 100644
index 20398af..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Light.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Regular.woff b/content/docs/latest/_static/fonts/Roboto-Slab-Regular.woff
deleted file mode 100644
index f815f63..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Regular.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Regular.woff2 b/content/docs/latest/_static/fonts/Roboto-Slab-Regular.woff2
deleted file mode 100644
index f2c76e5..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Regular.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Thin.woff b/content/docs/latest/_static/fonts/Roboto-Slab-Thin.woff
deleted file mode 100644
index 6b30ea6..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Thin.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/Roboto-Slab-Thin.woff2 b/content/docs/latest/_static/fonts/Roboto-Slab-Thin.woff2
deleted file mode 100644
index 328f5bb..0000000
Binary files a/content/docs/latest/_static/fonts/Roboto-Slab-Thin.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/RobotoSlab-Bold.ttf b/content/docs/latest/_static/fonts/RobotoSlab-Bold.ttf
new file mode 100644
index 0000000..df5d1df
Binary files /dev/null and b/content/docs/latest/_static/fonts/RobotoSlab-Bold.ttf differ
diff --git a/content/docs/latest/_static/fonts/RobotoSlab-Regular.ttf b/content/docs/latest/_static/fonts/RobotoSlab-Regular.ttf
new file mode 100644
index 0000000..eb52a79
Binary files /dev/null and b/content/docs/latest/_static/fonts/RobotoSlab-Regular.ttf differ
diff --git a/content/docs/latest/_static/fonts/lato-bold-italic.woff b/content/docs/latest/_static/fonts/lato-bold-italic.woff
deleted file mode 100644
index 88ad05b..0000000
Binary files a/content/docs/latest/_static/fonts/lato-bold-italic.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-bold-italic.woff2 b/content/docs/latest/_static/fonts/lato-bold-italic.woff2
deleted file mode 100644
index c4e3d80..0000000
Binary files a/content/docs/latest/_static/fonts/lato-bold-italic.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-bold.woff b/content/docs/latest/_static/fonts/lato-bold.woff
deleted file mode 100644
index c6dff51..0000000
Binary files a/content/docs/latest/_static/fonts/lato-bold.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-bold.woff2 b/content/docs/latest/_static/fonts/lato-bold.woff2
deleted file mode 100644
index bb19504..0000000
Binary files a/content/docs/latest/_static/fonts/lato-bold.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-normal-italic.woff b/content/docs/latest/_static/fonts/lato-normal-italic.woff
deleted file mode 100644
index 76114bc..0000000
Binary files a/content/docs/latest/_static/fonts/lato-normal-italic.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-normal-italic.woff2 b/content/docs/latest/_static/fonts/lato-normal-italic.woff2
deleted file mode 100644
index 3404f37..0000000
Binary files a/content/docs/latest/_static/fonts/lato-normal-italic.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-normal.woff b/content/docs/latest/_static/fonts/lato-normal.woff
deleted file mode 100644
index ae1307f..0000000
Binary files a/content/docs/latest/_static/fonts/lato-normal.woff and /dev/null differ
diff --git a/content/docs/latest/_static/fonts/lato-normal.woff2 b/content/docs/latest/_static/fonts/lato-normal.woff2
deleted file mode 100644
index 3bf9843..0000000
Binary files a/content/docs/latest/_static/fonts/lato-normal.woff2 and /dev/null differ
diff --git a/content/docs/latest/_static/language_data.js b/content/docs/latest/_static/language_data.js
index d2b4ee9..863704b 100644
--- a/content/docs/latest/_static/language_data.js
+++ b/content/docs/latest/_static/language_data.js
@@ -5,7 +5,7 @@
  * This script contains the language-specific data used by searchtools.js,
  * namely the list of stopwords, stemmer, scorer and splitter.
  *
- * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -13,7 +13,8 @@
 var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
 
 
-/* Non-minified version JS is _stemmer.js if file is provided */ 
+/* Non-minified version is copied as a separate JS file, is available */
+
 /**
  * Porter Stemmer
  */
@@ -199,7 +200,6 @@ var Stemmer = function() {
 
 
 
-
 var splitChars = (function() {
     var result = {};
     var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
diff --git a/content/docs/latest/_static/pygments.css b/content/docs/latest/_static/pygments.css
index be9feff..582d5c3 100644
--- a/content/docs/latest/_static/pygments.css
+++ b/content/docs/latest/_static/pygments.css
@@ -1,8 +1,8 @@
-pre { line-height: 125%; margin: 0; }
-td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
-span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
-td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
-span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
+pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
 .highlight .hll { background-color: #ffffcc }
 .highlight { background: #f8f8f8; }
 .highlight .c { color: #408080; font-style: italic } /* Comment */
diff --git a/content/docs/latest/_static/searchtools.js b/content/docs/latest/_static/searchtools.js
index 970d0d9..1a90152 100644
--- a/content/docs/latest/_static/searchtools.js
+++ b/content/docs/latest/_static/searchtools.js
@@ -4,7 +4,7 @@
  *
  * Sphinx JavaScript utilities for the full-text search.
  *
- * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
@@ -59,10 +59,10 @@ var Search = {
   _pulse_status : -1,
 
   htmlToText : function(htmlString) {
-      var htmlElement = document.createElement('span');
-      htmlElement.innerHTML = htmlString;
-      $(htmlElement).find('.headerlink').remove();
-      docContent = $(htmlElement).find('[role=main]')[0];
+      var virtualDocument = document.implementation.createHTMLDocument('virtual');
+      var htmlElement = $(htmlString, virtualDocument);
+      htmlElement.find('.headerlink').remove();
+      docContent = htmlElement.find('[role=main]')[0];
       if(docContent === undefined) {
           console.warn("Content block not found. Sphinx search tries to obtain it " +
                        "via '[role=main]'. Could you check your theme or template.");
@@ -248,7 +248,7 @@ var Search = {
       // results left, load the summary and display it
       if (results.length) {
         var item = results.pop();
-        var listItem = $('<li style="display:none"></li>');
+        var listItem = $('<li></li>');
         var requestUrl = "";
         var linkUrl = "";
         if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
@@ -273,9 +273,9 @@ var Search = {
         if (item[3]) {
           listItem.append($('<span> (' + item[3] + ')</span>'));
           Search.output.append(listItem);
-          listItem.slideDown(5, function() {
+          setTimeout(function() {
             displayNextItem();
-          });
+          }, 5);
         } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
           $.ajax({url: requestUrl,
                   dataType: "text",
@@ -285,16 +285,16 @@ var Search = {
                       listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
                     }
                     Search.output.append(listItem);
-                    listItem.slideDown(5, function() {
+                    setTimeout(function() {
                       displayNextItem();
-                    });
+                    }, 5);
                   }});
         } else {
           // no source available, just display title
           Search.output.append(listItem);
-          listItem.slideDown(5, function() {
+          setTimeout(function() {
             displayNextItem();
-          });
+          }, 5);
         }
       }
       // search finished, update title and status message
@@ -380,6 +380,13 @@ var Search = {
   },
 
   /**
+   * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
+   */
+  escapeRegExp : function(string) {
+    return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
+  },
+
+  /**
    * search for full-text terms in the index
    */
   performTermsSearch : function(searchterms, excluded, terms, titleterms) {
@@ -402,13 +409,14 @@ var Search = {
       ];
       // add support for partial matches
       if (word.length > 2) {
+        var word_regex = this.escapeRegExp(word);
         for (var w in terms) {
-          if (w.match(word) && !terms[word]) {
+          if (w.match(word_regex) && !terms[word]) {
             _o.push({files: terms[w], score: Scorer.partialTerm})
           }
         }
         for (var w in titleterms) {
-          if (w.match(word) && !titleterms[word]) {
+          if (w.match(word_regex) && !titleterms[word]) {
               _o.push({files: titleterms[w], score: Scorer.partialTitle})
           }
         }
diff --git a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css b/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css
deleted file mode 100644
index 900ee97..0000000
--- a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.ui.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin:1rem 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;background:#fff;font-weight:400;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem;min-height:2.85714286em}.ui.menu:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.menu:first-child{margin-top:0}.ui.menu:last-child{margin-botto [...]
diff --git a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css b/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css
deleted file mode 100644
index 3c56f9a..0000000
--- a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * # Semantic UI 2.4.1 - Segment
- * http://github.com/semantic-org/semantic-ui/
- *
- *
- * Released under the MIT license
- * http://opensource.org/licenses/MIT
- *
- */.ui.segment{position:relative;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;padding:1em 1em;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background:none transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:none;border-bottom:1px solid r [...]
diff --git a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css b/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css
deleted file mode 100644
index 83636d1..0000000
--- a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * # Semantic UI 2.4.0 - Tab
- * http://github.com/semantic-org/semantic-ui/
- *
- *
- * Released under the MIT license
- * http://opensource.org/licenses/MIT
- *
- */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolu [...]
diff --git a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js b/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js
deleted file mode 100644
index fcfa16a..0000000
--- a/content/docs/latest/_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(E,O,w,k){"use strict";O=void 0!==O&&O.Math==Math?O:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),E.fn.tab=function(r){var l,d=E.isFunction(this)?E(O):E(this),u=d.selector||"",b=(new Date).getTime(),g=[],f=r,F="string"==typeof f,S=[].slice.call(arguments,1),j=!1;return d.each(function(){var h,o,p,m,v,y,T=E.isPlainObject(r)?E.extend(!0,{},E.fn.tab.settings,r):E.extend({},E.fn.tab.settings),L=T.className,x=T.metadata,t=T.selector,A=T.error,e="."+T.namesp [...]
diff --git a/content/docs/latest/_static/sphinx_tabs/tabs.css b/content/docs/latest/_static/sphinx_tabs/tabs.css
deleted file mode 100644
index 1071f8e..0000000
--- a/content/docs/latest/_static/sphinx_tabs/tabs.css
+++ /dev/null
@@ -1,44 +0,0 @@
-.sphinx-tabs {
-    margin-bottom: 2em;
-}
-
-.sphinx-tabs:last-child {
-    margin-bottom: 1em;
-}
-
-.sphinx-tabs .sphinx-menu .item p {
-    margin: 0;
-}
-
-.sphinx-tabs .sphinx-menu a.item {
-    color: #2980b9 !important;
-}
-
-.sphinx-tabs .sphinx-menu {
-    border-bottom-color: #a0b3bf !important;
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-}
-
-.sphinx-tabs .sphinx-menu a.active.item {
-    border-color: #a0b3bf !important;
-}
-
-.sphinx-tab {
-    border-color: #a0b3bf !important;
-    box-sizing: border-box;
-}
-
-.sphinx-tab.tab.active {
-    margin-bottom: 0;
-}
-
-/* Code tabs don't need the code-block border */
-.code-tab.tab {
-    padding: 0.4em !important;
-}
-
-.code-tab.tab div[class^='highlight'] {
-    border: none;
-}
diff --git a/content/docs/latest/_static/sphinx_tabs/tabs.js b/content/docs/latest/_static/sphinx_tabs/tabs.js
deleted file mode 100644
index 37d6a80..0000000
--- a/content/docs/latest/_static/sphinx_tabs/tabs.js
+++ /dev/null
@@ -1,94 +0,0 @@
-if (!String.prototype.startsWith) {
-  Object.defineProperty(String.prototype, 'startsWith', {
-    value: function(search, pos) {
-      pos = !pos || pos < 0 ? 0 : +pos;
-      return this.substring(pos, pos + search.length) === search;
-    }
-  });
-}
-
-// From http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport
-function elementIsInView (el) {
-  if (typeof jQuery === "function" && el instanceof jQuery) {
-    el = el[0];
-  }
-
-  const  rect = el.getBoundingClientRect();
-
-  return (
-    rect.top >= 0 &&
-    rect.left >= 0 &&
-    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
-    rect.right <= (window.innerWidth || document.documentElement.clientWidth)
-  );
-}
-
-$(function() {
-  // Change container tags <div> -> <a>
-  $('.sphinx-menu.menu .item').each(function() {
-    var this_ = $(this);
-    var a_this = $('<a>');
-
-    a_this.html(this_.html());
-    $.each(this_.prop('attributes'), function() {
-      a_this.attr(this.name, this.value);
-    });
-
-    this_.replaceWith(a_this);
-  });
-
-  // We store the data-tab values as sphinx-data-<data-tab value>
-  // Add data-tab attribute with the extracted value
-  $('.sphinx-menu.menu .item, .sphinx-tab.tab').each(function() {
-    var this_ = $(this);
-    const prefix = 'sphinx-data-';
-    const classes = this_.attr('class').split(/\s+/);
-    $.each(classes, function(idx, clazz) {
-      if (clazz.startsWith(prefix)) {
-        this_.attr('data-tab',
-                   clazz.substring(prefix.length));
-      }
-    });
-  });
-
-  // Mimic the Semantic UI behaviour
-  $('.sphinx-menu.menu .item').each(function() {
-    var this1 = $(this);
-    var data_tab = this1.attr('data-tab');
-
-    this1.on('click', function() {
-      // Find offset in view
-      const offset = (this1.offset().top - $(window).scrollTop());
-
-      // Enable all tabs with this id
-
-      // For each tab group
-      $('.sphinx-tabs').each(function() {
-        var this2 = $(this);
-
-        // Check if tab group has a tab matching the clicked tab
-        var has_tab = false;
-        this2.children().eq(0).children().each(function() {
-          has_tab |= $(this).attr('data-tab') === data_tab;
-        });
-
-        if (has_tab) {
-          // Enable just the matching tab
-          var toggle = function() {
-            var this3 = $(this);
-            if (this3.attr('data-tab') === data_tab) {
-              this3.addClass('active');
-            } else {
-              this3.removeClass('active');
-            }
-          };
-          this2.children().eq(0).children('[data-tab]').each(toggle);
-          this2.children('[data-tab]').each(toggle);
-        }
-      });
-
-      // Keep tab with the original view offset
-      $(window).scrollTop(this1.offset().top - offset);
-    });
-  });
-});
diff --git a/content/docs/latest/_static/tabs.css b/content/docs/latest/_static/tabs.css
new file mode 100644
index 0000000..c74e895
--- /dev/null
+++ b/content/docs/latest/_static/tabs.css
@@ -0,0 +1,53 @@
+.sphinx-tabs {
+  margin-bottom: 1rem;
+}
+
+[role="tablist"] {
+  border-bottom: 1px solid #a0b3bf;
+}
+
+.sphinx-tabs-tab {
+  position: relative;
+  font-family: Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;
+  color: #1D5C87;
+  line-height: 24px;
+  margin: 0;
+  font-size: 16px;
+  font-weight: 400;
+  background-color: rgba(255, 255, 255, 0);
+  border-radius: 5px 5px 0 0;
+  border: 0;
+  padding: 1rem 1.5rem;
+  margin-bottom: 0;
+}
+
+.sphinx-tabs-tab[aria-selected="true"] {
+  font-weight: 700;
+  border: 1px solid #a0b3bf;
+  border-bottom: 1px solid white;
+  margin: -1px;
+  background-color: white;
+}
+
+.sphinx-tabs-tab:focus {
+  z-index: 1;
+  outline-offset: 1px;
+}
+
+.sphinx-tabs-panel {
+  position: relative;
+  padding: 1rem;
+  border: 1px solid #a0b3bf;
+  margin: 0px -1px -1px -1px;
+  border-radius: 0 0 5px 5px;
+  border-top: 0;
+  background: white;
+}
+
+.sphinx-tabs-panel.code-tab {
+  padding: 0.4rem;
+}
+
+.sphinx-tab img {
+	margin-bottom: 24 px;
+}
diff --git a/content/docs/latest/_static/tabs.js b/content/docs/latest/_static/tabs.js
new file mode 100644
index 0000000..5fe8525
--- /dev/null
+++ b/content/docs/latest/_static/tabs.js
@@ -0,0 +1,130 @@
+try {
+  var session = window.sessionStorage || {};
+} catch (e) {
+  var session = {};
+}
+
+window.addEventListener("DOMContentLoaded", () => {
+  const allTabs = document.querySelectorAll('.sphinx-tabs-tab');
+  const tabLists = document.querySelectorAll('[role="tablist"]');
+
+  allTabs.forEach(tab => {
+    tab.addEventListener("click", changeTabs);
+  });
+
+  tabLists.forEach(tabList => {
+    tabList.addEventListener("keydown", keyTabs);
+  });
+
+  // Restore group tab selection from session
+  const lastSelected = session.getItem('sphinx-tabs-last-selected');
+  if (lastSelected != null) selectGroupedTabs(lastSelected);
+});
+
+/**
+ * Key focus left and right between sibling elements using arrows
+ * @param  {Node} e the element in focus when key was pressed
+ */
+function keyTabs(e) {
+    const tab = e.target;
+    let nextTab = null;
+    if (e.keyCode === 39 || e.keyCode === 37) {
+      tab.setAttribute("tabindex", -1);
+      // Move right
+      if (e.keyCode === 39) {
+        nextTab = tab.nextElementSibling;
+        if (nextTab === null) {
+          nextTab = tab.parentNode.firstElementChild;
+        }
+      // Move left
+      } else if (e.keyCode === 37) {
+        nextTab = tab.previousElementSibling;
+        if (nextTab === null) {
+          nextTab = tab.parentNode.lastElementChild;
+        }
+      }
+    }
+
+    if (nextTab !== null) {
+      nextTab.setAttribute("tabindex", 0);
+      nextTab.focus();
+    }
+}
+
+/**
+ * Select or deselect clicked tab. If a group tab
+ * is selected, also select tab in other tabLists.
+ * @param  {Node} e the element that was clicked
+ */
+function changeTabs(e) {
+  // Use this instead of the element that was clicked, in case it's a child
+  const selected = this.getAttribute("aria-selected") === "true";
+  const positionBefore = this.parentNode.getBoundingClientRect().top;
+  const closable = this.parentNode.classList.contains("closeable");
+
+  deselectTabList(this);
+
+  if (!selected || !closable) {
+    selectTab(this);
+    const name = this.getAttribute("name");
+    selectGroupedTabs(name, this.id);
+
+    if (this.classList.contains("group-tab")) {
+      // Persist during session
+      session.setItem('sphinx-tabs-last-selected', name);
+    }
+  }
+
+  const positionAfter = this.parentNode.getBoundingClientRect().top;
+  const positionDelta = positionAfter - positionBefore;
+  // Scroll to offset content resizing
+  window.scrollTo(0, window.scrollY + positionDelta);
+}
+
+function selectTab(target) {
+  target.setAttribute("aria-selected", true);
+
+  // Show the associated panel
+  document
+    .getElementById(target.getAttribute("aria-controls"))
+    .removeAttribute("hidden");
+}
+
+/**
+ * Select all other grouped tabs via tab name.
+ * @param  {Node} name name of grouped tab to be selected
+ * @param  {Node} clickedId id of clicked tab
+ */
+function selectGroupedTabs(name, clickedId=null) {
+  const groupedTabs = document.querySelectorAll(`.sphinx-tabs-tab[name="${name}"]`);
+  const tabLists = Array.from(groupedTabs).map(tab => tab.parentNode);
+
+  tabLists
+    .forEach(tabList => {
+      // Don't want to change the tabList containing the clicked tab
+      const clickedTab = tabList.querySelector(`[id="${clickedId}"]`);
+      if (clickedTab === null ) {
+        // Select first tab with matching name
+        const tab = tabList.querySelector(`.sphinx-tabs-tab[name="${name}"]`);
+        deselectTabList(tab);
+        selectTab(tab);
+      }
+    })
+}
+
+/**
+ * Hide the panels associated with all tabs within the
+ * tablist containing this tab.
+ * @param  {Node} tab a tab within the tablist to deselect
+ */
+function deselectTabList(tab) {
+  const parent = tab.parentNode;
+  const grandparent = parent.parentNode;
+
+  Array.from(parent.children)
+  .forEach(t => t.setAttribute("aria-selected", false));
+
+  Array.from(grandparent.children)
+    .slice(1)  // Skip tablist
+    .forEach(p => p.setAttribute("hidden", true));
+}
diff --git a/content/docs/latest/_static/underscore-1.12.0.js b/content/docs/latest/_static/underscore-1.12.0.js
new file mode 100644
index 0000000..3af6352
--- /dev/null
+++ b/content/docs/latest/_static/underscore-1.12.0.js
@@ -0,0 +1,2027 @@
+(function (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+  typeof define === 'function' && define.amd ? define('underscore', factory) :
+  (global = global || self, (function () {
+    var current = global._;
+    var exports = global._ = factory();
+    exports.noConflict = function () { global._ = current; return exports; };
+  }()));
+}(this, (function () {
+  //     Underscore.js 1.12.0
+  //     https://underscorejs.org
+  //     (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+  //     Underscore may be freely distributed under the MIT license.
+
+  // Current version.
+  var VERSION = '1.12.0';
+
+  // Establish the root object, `window` (`self`) in the browser, `global`
+  // on the server, or `this` in some virtual machines. We use `self`
+  // instead of `window` for `WebWorker` support.
+  var root = typeof self == 'object' && self.self === self && self ||
+            typeof global == 'object' && global.global === global && global ||
+            Function('return this')() ||
+            {};
+
+  // Save bytes in the minified (but not gzipped) version:
+  var ArrayProto = Array.prototype, ObjProto = Object.prototype;
+  var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;
+
+  // Create quick reference variables for speed access to core prototypes.
+  var push = ArrayProto.push,
+      slice = ArrayProto.slice,
+      toString = ObjProto.toString,
+      hasOwnProperty = ObjProto.hasOwnProperty;
+
+  // Modern feature detection.
+  var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',
+      supportsDataView = typeof DataView !== 'undefined';
+
+  // All **ECMAScript 5+** native function implementations that we hope to use
+  // are declared here.
+  var nativeIsArray = Array.isArray,
+      nativeKeys = Object.keys,
+      nativeCreate = Object.create,
+      nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;
+
+  // Create references to these builtin functions because we override them.
+  var _isNaN = isNaN,
+      _isFinite = isFinite;
+
+  // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.
+  var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');
+  var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',
+    'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];
+
+  // The largest integer that can be represented exactly.
+  var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;
+
+  // Some functions take a variable number of arguments, or a few expected
+  // arguments at the beginning and then a variable number of values to operate
+  // on. This helper accumulates all remaining arguments past the function’s
+  // argument length (or an explicit `startIndex`), into an array that becomes
+  // the last argument. Similar to ES6’s "rest parameter".
+  function restArguments(func, startIndex) {
+    startIndex = startIndex == null ? func.length - 1 : +startIndex;
+    return function() {
+      var length = Math.max(arguments.length - startIndex, 0),
+          rest = Array(length),
+          index = 0;
+      for (; index < length; index++) {
+        rest[index] = arguments[index + startIndex];
+      }
+      switch (startIndex) {
+        case 0: return func.call(this, rest);
+        case 1: return func.call(this, arguments[0], rest);
+        case 2: return func.call(this, arguments[0], arguments[1], rest);
+      }
+      var args = Array(startIndex + 1);
+      for (index = 0; index < startIndex; index++) {
+        args[index] = arguments[index];
+      }
+      args[startIndex] = rest;
+      return func.apply(this, args);
+    };
+  }
+
+  // Is a given variable an object?
+  function isObject(obj) {
+    var type = typeof obj;
+    return type === 'function' || type === 'object' && !!obj;
+  }
+
+  // Is a given value equal to null?
+  function isNull(obj) {
+    return obj === null;
+  }
+
+  // Is a given variable undefined?
+  function isUndefined(obj) {
+    return obj === void 0;
+  }
+
+  // Is a given value a boolean?
+  function isBoolean(obj) {
+    return obj === true || obj === false || toString.call(obj) === '[object Boolean]';
+  }
+
+  // Is a given value a DOM element?
+  function isElement(obj) {
+    return !!(obj && obj.nodeType === 1);
+  }
+
+  // Internal function for creating a `toString`-based type tester.
+  function tagTester(name) {
+    var tag = '[object ' + name + ']';
+    return function(obj) {
+      return toString.call(obj) === tag;
+    };
+  }
+
+  var isString = tagTester('String');
+
+  var isNumber = tagTester('Number');
+
+  var isDate = tagTester('Date');
+
+  var isRegExp = tagTester('RegExp');
+
+  var isError = tagTester('Error');
+
+  var isSymbol = tagTester('Symbol');
+
+  var isArrayBuffer = tagTester('ArrayBuffer');
+
+  var isFunction = tagTester('Function');
+
+  // Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old
+  // v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).
+  var nodelist = root.document && root.document.childNodes;
+  if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {
+    isFunction = function(obj) {
+      return typeof obj == 'function' || false;
+    };
+  }
+
+  var isFunction$1 = isFunction;
+
+  var hasObjectTag = tagTester('Object');
+
+  // In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.
+  // In IE 11, the most common among them, this problem also applies to
+  // `Map`, `WeakMap` and `Set`.
+  var hasStringTagBug = (
+        supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))
+      ),
+      isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));
+
+  var isDataView = tagTester('DataView');
+
+  // In IE 10 - Edge 13, we need a different heuristic
+  // to determine whether an object is a `DataView`.
+  function ie10IsDataView(obj) {
+    return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer);
+  }
+
+  var isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView);
+
+  // Is a given value an array?
+  // Delegates to ECMA5's native `Array.isArray`.
+  var isArray = nativeIsArray || tagTester('Array');
+
+  // Internal function to check whether `key` is an own property name of `obj`.
+  function has(obj, key) {
+    return obj != null && hasOwnProperty.call(obj, key);
+  }
+
+  var isArguments = tagTester('Arguments');
+
+  // Define a fallback version of the method in browsers (ahem, IE < 9), where
+  // there isn't any inspectable "Arguments" type.
+  (function() {
+    if (!isArguments(arguments)) {
+      isArguments = function(obj) {
+        return has(obj, 'callee');
+      };
+    }
+  }());
+
+  var isArguments$1 = isArguments;
+
+  // Is a given object a finite number?
+  function isFinite$1(obj) {
+    return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));
+  }
+
+  // Is the given value `NaN`?
+  function isNaN$1(obj) {
+    return isNumber(obj) && _isNaN(obj);
+  }
+
+  // Predicate-generating function. Often useful outside of Underscore.
+  function constant(value) {
+    return function() {
+      return value;
+    };
+  }
+
+  // Common internal logic for `isArrayLike` and `isBufferLike`.
+  function createSizePropertyCheck(getSizeProperty) {
+    return function(collection) {
+      var sizeProperty = getSizeProperty(collection);
+      return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;
+    }
+  }
+
+  // Internal helper to generate a function to obtain property `key` from `obj`.
+  function shallowProperty(key) {
+    return function(obj) {
+      return obj == null ? void 0 : obj[key];
+    };
+  }
+
+  // Internal helper to obtain the `byteLength` property of an object.
+  var getByteLength = shallowProperty('byteLength');
+
+  // Internal helper to determine whether we should spend extensive checks against
+  // `ArrayBuffer` et al.
+  var isBufferLike = createSizePropertyCheck(getByteLength);
+
+  // Is a given value a typed array?
+  var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;
+  function isTypedArray(obj) {
+    // `ArrayBuffer.isView` is the most future-proof, so use it when available.
+    // Otherwise, fall back on the above regular expression.
+    return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) :
+                  isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));
+  }
+
+  var isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false);
+
+  // Internal helper to obtain the `length` property of an object.
+  var getLength = shallowProperty('length');
+
+  // Internal helper to create a simple lookup structure.
+  // `collectNonEnumProps` used to depend on `_.contains`, but this led to
+  // circular imports. `emulatedSet` is a one-off solution that only works for
+  // arrays of strings.
+  function emulatedSet(keys) {
+    var hash = {};
+    for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;
+    return {
+      contains: function(key) { return hash[key]; },
+      push: function(key) {
+        hash[key] = true;
+        return keys.push(key);
+      }
+    };
+  }
+
+  // Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't
+  // be iterated by `for key in ...` and thus missed. Extends `keys` in place if
+  // needed.
+  function collectNonEnumProps(obj, keys) {
+    keys = emulatedSet(keys);
+    var nonEnumIdx = nonEnumerableProps.length;
+    var constructor = obj.constructor;
+    var proto = isFunction$1(constructor) && constructor.prototype || ObjProto;
+
+    // Constructor is a special case.
+    var prop = 'constructor';
+    if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);
+
+    while (nonEnumIdx--) {
+      prop = nonEnumerableProps[nonEnumIdx];
+      if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {
+        keys.push(prop);
+      }
+    }
+  }
+
+  // Retrieve the names of an object's own properties.
+  // Delegates to **ECMAScript 5**'s native `Object.keys`.
+  function keys(obj) {
+    if (!isObject(obj)) return [];
+    if (nativeKeys) return nativeKeys(obj);
+    var keys = [];
+    for (var key in obj) if (has(obj, key)) keys.push(key);
+    // Ahem, IE < 9.
+    if (hasEnumBug) collectNonEnumProps(obj, keys);
+    return keys;
+  }
+
+  // Is a given array, string, or object empty?
+  // An "empty" object has no enumerable own-properties.
+  function isEmpty(obj) {
+    if (obj == null) return true;
+    // Skip the more expensive `toString`-based type checks if `obj` has no
+    // `.length`.
+    var length = getLength(obj);
+    if (typeof length == 'number' && (
+      isArray(obj) || isString(obj) || isArguments$1(obj)
+    )) return length === 0;
+    return getLength(keys(obj)) === 0;
+  }
+
+  // Returns whether an object has a given set of `key:value` pairs.
+  function isMatch(object, attrs) {
+    var _keys = keys(attrs), length = _keys.length;
+    if (object == null) return !length;
+    var obj = Object(object);
+    for (var i = 0; i < length; i++) {
+      var key = _keys[i];
+      if (attrs[key] !== obj[key] || !(key in obj)) return false;
+    }
+    return true;
+  }
+
+  // If Underscore is called as a function, it returns a wrapped object that can
+  // be used OO-style. This wrapper holds altered versions of all functions added
+  // through `_.mixin`. Wrapped objects may be chained.
+  function _(obj) {
+    if (obj instanceof _) return obj;
+    if (!(this instanceof _)) return new _(obj);
+    this._wrapped = obj;
+  }
+
+  _.VERSION = VERSION;
+
+  // Extracts the result from a wrapped and chained object.
+  _.prototype.value = function() {
+    return this._wrapped;
+  };
+
+  // Provide unwrapping proxies for some methods used in engine operations
+  // such as arithmetic and JSON stringification.
+  _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;
+
+  _.prototype.toString = function() {
+    return String(this._wrapped);
+  };
+
+  // Internal function to wrap or shallow-copy an ArrayBuffer,
+  // typed array or DataView to a new view, reusing the buffer.
+  function toBufferView(bufferSource) {
+    return new Uint8Array(
+      bufferSource.buffer || bufferSource,
+      bufferSource.byteOffset || 0,
+      getByteLength(bufferSource)
+    );
+  }
+
+  // We use this string twice, so give it a name for minification.
+  var tagDataView = '[object DataView]';
+
+  // Internal recursive comparison function for `_.isEqual`.
+  function eq(a, b, aStack, bStack) {
+    // Identical objects are equal. `0 === -0`, but they aren't identical.
+    // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).
+    if (a === b) return a !== 0 || 1 / a === 1 / b;
+    // `null` or `undefined` only equal to itself (strict comparison).
+    if (a == null || b == null) return false;
+    // `NaN`s are equivalent, but non-reflexive.
+    if (a !== a) return b !== b;
+    // Exhaust primitive checks
+    var type = typeof a;
+    if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;
+    return deepEq(a, b, aStack, bStack);
+  }
+
+  // Internal recursive comparison function for `_.isEqual`.
+  function deepEq(a, b, aStack, bStack) {
+    // Unwrap any wrapped objects.
+    if (a instanceof _) a = a._wrapped;
+    if (b instanceof _) b = b._wrapped;
+    // Compare `[[Class]]` names.
+    var className = toString.call(a);
+    if (className !== toString.call(b)) return false;
+    // Work around a bug in IE 10 - Edge 13.
+    if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) {
+      if (!isDataView$1(b)) return false;
+      className = tagDataView;
+    }
+    switch (className) {
+      // These types are compared by value.
+      case '[object RegExp]':
+        // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')
+      case '[object String]':
+        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
+        // equivalent to `new String("5")`.
+        return '' + a === '' + b;
+      case '[object Number]':
+        // `NaN`s are equivalent, but non-reflexive.
+        // Object(NaN) is equivalent to NaN.
+        if (+a !== +a) return +b !== +b;
+        // An `egal` comparison is performed for other numeric values.
+        return +a === 0 ? 1 / +a === 1 / b : +a === +b;
+      case '[object Date]':
+      case '[object Boolean]':
+        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
+        // millisecond representations. Note that invalid dates with millisecond representations
+        // of `NaN` are not equivalent.
+        return +a === +b;
+      case '[object Symbol]':
+        return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);
+      case '[object ArrayBuffer]':
+      case tagDataView:
+        // Coerce to typed array so we can fall through.
+        return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);
+    }
+
+    var areArrays = className === '[object Array]';
+    if (!areArrays && isTypedArray$1(a)) {
+        var byteLength = getByteLength(a);
+        if (byteLength !== getByteLength(b)) return false;
+        if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;
+        areArrays = true;
+    }
+    if (!areArrays) {
+      if (typeof a != 'object' || typeof b != 'object') return false;
+
+      // Objects with different constructors are not equivalent, but `Object`s or `Array`s
+      // from different frames are.
+      var aCtor = a.constructor, bCtor = b.constructor;
+      if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor &&
+                               isFunction$1(bCtor) && bCtor instanceof bCtor)
+                          && ('constructor' in a && 'constructor' in b)) {
+        return false;
+      }
+    }
+    // Assume equality for cyclic structures. The algorithm for detecting cyclic
+    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
+
+    // Initializing stack of traversed objects.
+    // It's done here since we only need them for objects and arrays comparison.
+    aStack = aStack || [];
+    bStack = bStack || [];
+    var length = aStack.length;
+    while (length--) {
+      // Linear search. Performance is inversely proportional to the number of
+      // unique nested structures.
+      if (aStack[length] === a) return bStack[length] === b;
+    }
+
+    // Add the first object to the stack of traversed objects.
+    aStack.push(a);
+    bStack.push(b);
+
+    // Recursively compare objects and arrays.
+    if (areArrays) {
+      // Compare array lengths to determine if a deep comparison is necessary.
+      length = a.length;
+      if (length !== b.length) return false;
+      // Deep compare the contents, ignoring non-numeric properties.
+      while (length--) {
+        if (!eq(a[length], b[length], aStack, bStack)) return false;
+      }
+    } else {
+      // Deep compare objects.
+      var _keys = keys(a), key;
+      length = _keys.length;
+      // Ensure that both objects contain the same number of properties before comparing deep equality.
+      if (keys(b).length !== length) return false;
+      while (length--) {
+        // Deep compare each member
+        key = _keys[length];
+        if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;
+      }
+    }
+    // Remove the first object from the stack of traversed objects.
+    aStack.pop();
+    bStack.pop();
+    return true;
+  }
+
+  // Perform a deep comparison to check if two objects are equal.
+  function isEqual(a, b) {
+    return eq(a, b);
+  }
+
+  // Retrieve all the enumerable property names of an object.
+  function allKeys(obj) {
+    if (!isObject(obj)) return [];
+    var keys = [];
+    for (var key in obj) keys.push(key);
+    // Ahem, IE < 9.
+    if (hasEnumBug) collectNonEnumProps(obj, keys);
+    return keys;
+  }
+
+  // Since the regular `Object.prototype.toString` type tests don't work for
+  // some types in IE 11, we use a fingerprinting heuristic instead, based
+  // on the methods. It's not great, but it's the best we got.
+  // The fingerprint method lists are defined below.
+  function ie11fingerprint(methods) {
+    var length = getLength(methods);
+    return function(obj) {
+      if (obj == null) return false;
+      // `Map`, `WeakMap` and `Set` have no enumerable keys.
+      var keys = allKeys(obj);
+      if (getLength(keys)) return false;
+      for (var i = 0; i < length; i++) {
+        if (!isFunction$1(obj[methods[i]])) return false;
+      }
+      // If we are testing against `WeakMap`, we need to ensure that
+      // `obj` doesn't have a `forEach` method in order to distinguish
+      // it from a regular `Map`.
+      return methods !== weakMapMethods || !isFunction$1(obj[forEachName]);
+    };
+  }
+
+  // In the interest of compact minification, we write
+  // each string in the fingerprints only once.
+  var forEachName = 'forEach',
+      hasName = 'has',
+      commonInit = ['clear', 'delete'],
+      mapTail = ['get', hasName, 'set'];
+
+  // `Map`, `WeakMap` and `Set` each have slightly different
+  // combinations of the above sublists.
+  var mapMethods = commonInit.concat(forEachName, mapTail),
+      weakMapMethods = commonInit.concat(mapTail),
+      setMethods = ['add'].concat(commonInit, forEachName, hasName);
+
+  var isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');
+
+  var isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');
+
+  var isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');
+
+  var isWeakSet = tagTester('WeakSet');
+
+  // Retrieve the values of an object's properties.
+  function values(obj) {
+    var _keys = keys(obj);
+    var length = _keys.length;
+    var values = Array(length);
+    for (var i = 0; i < length; i++) {
+      values[i] = obj[_keys[i]];
+    }
+    return values;
+  }
+
+  // Convert an object into a list of `[key, value]` pairs.
+  // The opposite of `_.object` with one argument.
+  function pairs(obj) {
+    var _keys = keys(obj);
+    var length = _keys.length;
+    var pairs = Array(length);
+    for (var i = 0; i < length; i++) {
+      pairs[i] = [_keys[i], obj[_keys[i]]];
+    }
+    return pairs;
+  }
+
+  // Invert the keys and values of an object. The values must be serializable.
+  function invert(obj) {
+    var result = {};
+    var _keys = keys(obj);
+    for (var i = 0, length = _keys.length; i < length; i++) {
+      result[obj[_keys[i]]] = _keys[i];
+    }
+    return result;
+  }
+
+  // Return a sorted list of the function names available on the object.
+  function functions(obj) {
+    var names = [];
+    for (var key in obj) {
+      if (isFunction$1(obj[key])) names.push(key);
+    }
+    return names.sort();
+  }
+
+  // An internal function for creating assigner functions.
+  function createAssigner(keysFunc, defaults) {
+    return function(obj) {
+      var length = arguments.length;
+      if (defaults) obj = Object(obj);
+      if (length < 2 || obj == null) return obj;
+      for (var index = 1; index < length; index++) {
+        var source = arguments[index],
+            keys = keysFunc(source),
+            l = keys.length;
+        for (var i = 0; i < l; i++) {
+          var key = keys[i];
+          if (!defaults || obj[key] === void 0) obj[key] = source[key];
+        }
+      }
+      return obj;
+    };
+  }
+
+  // Extend a given object with all the properties in passed-in object(s).
+  var extend = createAssigner(allKeys);
+
+  // Assigns a given object with all the own properties in the passed-in
+  // object(s).
+  // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
+  var extendOwn = createAssigner(keys);
+
+  // Fill in a given object with default properties.
+  var defaults = createAssigner(allKeys, true);
+
+  // Create a naked function reference for surrogate-prototype-swapping.
+  function ctor() {
+    return function(){};
+  }
+
+  // An internal function for creating a new object that inherits from another.
+  function baseCreate(prototype) {
+    if (!isObject(prototype)) return {};
+    if (nativeCreate) return nativeCreate(prototype);
+    var Ctor = ctor();
+    Ctor.prototype = prototype;
+    var result = new Ctor;
+    Ctor.prototype = null;
+    return result;
+  }
+
+  // Creates an object that inherits from the given prototype object.
+  // If additional properties are provided then they will be added to the
+  // created object.
+  function create(prototype, props) {
+    var result = baseCreate(prototype);
+    if (props) extendOwn(result, props);
+    return result;
+  }
+
+  // Create a (shallow-cloned) duplicate of an object.
+  function clone(obj) {
+    if (!isObject(obj)) return obj;
+    return isArray(obj) ? obj.slice() : extend({}, obj);
+  }
+
+  // Invokes `interceptor` with the `obj` and then returns `obj`.
+  // The primary purpose of this method is to "tap into" a method chain, in
+  // order to perform operations on intermediate results within the chain.
+  function tap(obj, interceptor) {
+    interceptor(obj);
+    return obj;
+  }
+
+  // Normalize a (deep) property `path` to array.
+  // Like `_.iteratee`, this function can be customized.
+  function toPath(path) {
+    return isArray(path) ? path : [path];
+  }
+  _.toPath = toPath;
+
+  // Internal wrapper for `_.toPath` to enable minification.
+  // Similar to `cb` for `_.iteratee`.
+  function toPath$1(path) {
+    return _.toPath(path);
+  }
+
+  // Internal function to obtain a nested property in `obj` along `path`.
+  function deepGet(obj, path) {
+    var length = path.length;
+    for (var i = 0; i < length; i++) {
+      if (obj == null) return void 0;
+      obj = obj[path[i]];
+    }
+    return length ? obj : void 0;
+  }
+
+  // Get the value of the (deep) property on `path` from `object`.
+  // If any property in `path` does not exist or if the value is
+  // `undefined`, return `defaultValue` instead.
+  // The `path` is normalized through `_.toPath`.
+  function get(object, path, defaultValue) {
+    var value = deepGet(object, toPath$1(path));
+    return isUndefined(value) ? defaultValue : value;
+  }
+
+  // Shortcut function for checking if an object has a given property directly on
+  // itself (in other words, not on a prototype). Unlike the internal `has`
+  // function, this public version can also traverse nested properties.
+  function has$1(obj, path) {
+    path = toPath$1(path);
+    var length = path.length;
+    for (var i = 0; i < length; i++) {
+      var key = path[i];
+      if (!has(obj, key)) return false;
+      obj = obj[key];
+    }
+    return !!length;
+  }
+
+  // Keep the identity function around for default iteratees.
+  function identity(value) {
+    return value;
+  }
+
+  // Returns a predicate for checking whether an object has a given set of
+  // `key:value` pairs.
+  function matcher(attrs) {
+    attrs = extendOwn({}, attrs);
+    return function(obj) {
+      return isMatch(obj, attrs);
+    };
+  }
+
+  // Creates a function that, when passed an object, will traverse that object’s
+  // properties down the given `path`, specified as an array of keys or indices.
+  function property(path) {
+    path = toPath$1(path);
+    return function(obj) {
+      return deepGet(obj, path);
+    };
+  }
+
+  // Internal function that returns an efficient (for current engines) version
+  // of the passed-in callback, to be repeatedly applied in other Underscore
+  // functions.
+  function optimizeCb(func, context, argCount) {
+    if (context === void 0) return func;
+    switch (argCount == null ? 3 : argCount) {
+      case 1: return function(value) {
+        return func.call(context, value);
+      };
+      // The 2-argument case is omitted because we’re not using it.
+      case 3: return function(value, index, collection) {
+        return func.call(context, value, index, collection);
+      };
+      case 4: return function(accumulator, value, index, collection) {
+        return func.call(context, accumulator, value, index, collection);
+      };
+    }
+    return function() {
+      return func.apply(context, arguments);
+    };
+  }
+
+  // An internal function to generate callbacks that can be applied to each
+  // element in a collection, returning the desired result — either `_.identity`,
+  // an arbitrary callback, a property matcher, or a property accessor.
+  function baseIteratee(value, context, argCount) {
+    if (value == null) return identity;
+    if (isFunction$1(value)) return optimizeCb(value, context, argCount);
+    if (isObject(value) && !isArray(value)) return matcher(value);
+    return property(value);
+  }
+
+  // External wrapper for our callback generator. Users may customize
+  // `_.iteratee` if they want additional predicate/iteratee shorthand styles.
+  // This abstraction hides the internal-only `argCount` argument.
+  function iteratee(value, context) {
+    return baseIteratee(value, context, Infinity);
+  }
+  _.iteratee = iteratee;
+
+  // The function we call internally to generate a callback. It invokes
+  // `_.iteratee` if overridden, otherwise `baseIteratee`.
+  function cb(value, context, argCount) {
+    if (_.iteratee !== iteratee) return _.iteratee(value, context);
+    return baseIteratee(value, context, argCount);
+  }
+
+  // Returns the results of applying the `iteratee` to each element of `obj`.
+  // In contrast to `_.map` it returns an object.
+  function mapObject(obj, iteratee, context) {
+    iteratee = cb(iteratee, context);
+    var _keys = keys(obj),
+        length = _keys.length,
+        results = {};
+    for (var index = 0; index < length; index++) {
+      var currentKey = _keys[index];
+      results[currentKey] = iteratee(obj[currentKey], currentKey, obj);
+    }
+    return results;
+  }
+
+  // Predicate-generating function. Often useful outside of Underscore.
+  function noop(){}
+
+  // Generates a function for a given object that returns a given property.
+  function propertyOf(obj) {
+    if (obj == null) return noop;
+    return function(path) {
+      return get(obj, path);
+    };
+  }
+
+  // Run a function **n** times.
+  function times(n, iteratee, context) {
+    var accum = Array(Math.max(0, n));
+    iteratee = optimizeCb(iteratee, context, 1);
+    for (var i = 0; i < n; i++) accum[i] = iteratee(i);
+    return accum;
+  }
+
+  // Return a random integer between `min` and `max` (inclusive).
+  function random(min, max) {
+    if (max == null) {
+      max = min;
+      min = 0;
+    }
+    return min + Math.floor(Math.random() * (max - min + 1));
+  }
+
+  // A (possibly faster) way to get the current timestamp as an integer.
+  var now = Date.now || function() {
+    return new Date().getTime();
+  };
+
+  // Internal helper to generate functions for escaping and unescaping strings
+  // to/from HTML interpolation.
+  function createEscaper(map) {
+    var escaper = function(match) {
+      return map[match];
+    };
+    // Regexes for identifying a key that needs to be escaped.
+    var source = '(?:' + keys(map).join('|') + ')';
+    var testRegexp = RegExp(source);
+    var replaceRegexp = RegExp(source, 'g');
+    return function(string) {
+      string = string == null ? '' : '' + string;
+      return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
+    };
+  }
+
+  // Internal list of HTML entities for escaping.
+  var escapeMap = {
+    '&': '&amp;',
+    '<': '&lt;',
+    '>': '&gt;',
+    '"': '&quot;',
+    "'": '&#x27;',
+    '`': '&#x60;'
+  };
+
+  // Function for escaping strings to HTML interpolation.
+  var _escape = createEscaper(escapeMap);
+
+  // Internal list of HTML entities for unescaping.
+  var unescapeMap = invert(escapeMap);
+
+  // Function for unescaping strings from HTML interpolation.
+  var _unescape = createEscaper(unescapeMap);
+
+  // By default, Underscore uses ERB-style template delimiters. Change the
+  // following template settings to use alternative delimiters.
+  var templateSettings = _.templateSettings = {
+    evaluate: /<%([\s\S]+?)%>/g,
+    interpolate: /<%=([\s\S]+?)%>/g,
+    escape: /<%-([\s\S]+?)%>/g
+  };
+
+  // When customizing `_.templateSettings`, if you don't want to define an
+  // interpolation, evaluation or escaping regex, we need one that is
+  // guaranteed not to match.
+  var noMatch = /(.)^/;
+
+  // Certain characters need to be escaped so that they can be put into a
+  // string literal.
+  var escapes = {
+    "'": "'",
+    '\\': '\\',
+    '\r': 'r',
+    '\n': 'n',
+    '\u2028': 'u2028',
+    '\u2029': 'u2029'
+  };
+
+  var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g;
+
+  function escapeChar(match) {
+    return '\\' + escapes[match];
+  }
+
+  // JavaScript micro-templating, similar to John Resig's implementation.
+  // Underscore templating handles arbitrary delimiters, preserves whitespace,
+  // and correctly escapes quotes within interpolated code.
+  // NB: `oldSettings` only exists for backwards compatibility.
+  function template(text, settings, oldSettings) {
+    if (!settings && oldSettings) settings = oldSettings;
+    settings = defaults({}, settings, _.templateSettings);
+
+    // Combine delimiters into one regular expression via alternation.
+    var matcher = RegExp([
+      (settings.escape || noMatch).source,
+      (settings.interpolate || noMatch).source,
+      (settings.evaluate || noMatch).source
+    ].join('|') + '|$', 'g');
+
+    // Compile the template source, escaping string literals appropriately.
+    var index = 0;
+    var source = "__p+='";
+    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
+      source += text.slice(index, offset).replace(escapeRegExp, escapeChar);
+      index = offset + match.length;
+
+      if (escape) {
+        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
+      } else if (interpolate) {
+        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
+      } else if (evaluate) {
+        source += "';\n" + evaluate + "\n__p+='";
+      }
+
+      // Adobe VMs need the match returned to produce the correct offset.
+      return match;
+    });
+    source += "';\n";
+
+    // If a variable is not specified, place data values in local scope.
+    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
+
+    source = "var __t,__p='',__j=Array.prototype.join," +
+      "print=function(){__p+=__j.call(arguments,'');};\n" +
+      source + 'return __p;\n';
+
+    var render;
+    try {
+      render = new Function(settings.variable || 'obj', '_', source);
+    } catch (e) {
+      e.source = source;
+      throw e;
+    }
+
+    var template = function(data) {
+      return render.call(this, data, _);
+    };
+
+    // Provide the compiled source as a convenience for precompilation.
+    var argument = settings.variable || 'obj';
+    template.source = 'function(' + argument + '){\n' + source + '}';
+
+    return template;
+  }
+
+  // Traverses the children of `obj` along `path`. If a child is a function, it
+  // is invoked with its parent as context. Returns the value of the final
+  // child, or `fallback` if any child is undefined.
+  function result(obj, path, fallback) {
+    path = toPath$1(path);
+    var length = path.length;
+    if (!length) {
+      return isFunction$1(fallback) ? fallback.call(obj) : fallback;
+    }
+    for (var i = 0; i < length; i++) {
+      var prop = obj == null ? void 0 : obj[path[i]];
+      if (prop === void 0) {
+        prop = fallback;
+        i = length; // Ensure we don't continue iterating.
+      }
+      obj = isFunction$1(prop) ? prop.call(obj) : prop;
+    }
+    return obj;
+  }
+
+  // Generate a unique integer id (unique within the entire client session).
+  // Useful for temporary DOM ids.
+  var idCounter = 0;
+  function uniqueId(prefix) {
+    var id = ++idCounter + '';
+    return prefix ? prefix + id : id;
+  }
+
+  // Start chaining a wrapped Underscore object.
+  function chain(obj) {
+    var instance = _(obj);
+    instance._chain = true;
+    return instance;
+  }
+
+  // Internal function to execute `sourceFunc` bound to `context` with optional
+  // `args`. Determines whether to execute a function as a constructor or as a
+  // normal function.
+  function executeBound(sourceFunc, boundFunc, context, callingContext, args) {
+    if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);
+    var self = baseCreate(sourceFunc.prototype);
+    var result = sourceFunc.apply(self, args);
+    if (isObject(result)) return result;
+    return self;
+  }
+
+  // Partially apply a function by creating a version that has had some of its
+  // arguments pre-filled, without changing its dynamic `this` context. `_` acts
+  // as a placeholder by default, allowing any combination of arguments to be
+  // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.
+  var partial = restArguments(function(func, boundArgs) {
+    var placeholder = partial.placeholder;
+    var bound = function() {
+      var position = 0, length = boundArgs.length;
+      var args = Array(length);
+      for (var i = 0; i < length; i++) {
+        args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];
+      }
+      while (position < arguments.length) args.push(arguments[position++]);
+      return executeBound(func, bound, this, this, args);
+    };
+    return bound;
+  });
+
+  partial.placeholder = _;
+
+  // Create a function bound to a given object (assigning `this`, and arguments,
+  // optionally).
+  var bind = restArguments(function(func, context, args) {
+    if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function');
+    var bound = restArguments(function(callArgs) {
+      return executeBound(func, bound, context, this, args.concat(callArgs));
+    });
+    return bound;
+  });
+
+  // Internal helper for collection methods to determine whether a collection
+  // should be iterated as an array or as an object.
+  // Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
+  // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094
+  var isArrayLike = createSizePropertyCheck(getLength);
+
+  // Internal implementation of a recursive `flatten` function.
+  function flatten(input, depth, strict, output) {
+    output = output || [];
+    if (!depth && depth !== 0) {
+      depth = Infinity;
+    } else if (depth <= 0) {
+      return output.concat(input);
+    }
+    var idx = output.length;
+    for (var i = 0, length = getLength(input); i < length; i++) {
+      var value = input[i];
+      if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) {
+        // Flatten current level of array or arguments object.
+        if (depth > 1) {
+          flatten(value, depth - 1, strict, output);
+          idx = output.length;
+        } else {
+          var j = 0, len = value.length;
+          while (j < len) output[idx++] = value[j++];
+        }
+      } else if (!strict) {
+        output[idx++] = value;
+      }
+    }
+    return output;
+  }
+
+  // Bind a number of an object's methods to that object. Remaining arguments
+  // are the method names to be bound. Useful for ensuring that all callbacks
+  // defined on an object belong to it.
+  var bindAll = restArguments(function(obj, keys) {
+    keys = flatten(keys, false, false);
+    var index = keys.length;
+    if (index < 1) throw new Error('bindAll must be passed function names');
+    while (index--) {
+      var key = keys[index];
+      obj[key] = bind(obj[key], obj);
+    }
+    return obj;
+  });
+
+  // Memoize an expensive function by storing its results.
+  function memoize(func, hasher) {
+    var memoize = function(key) {
+      var cache = memoize.cache;
+      var address = '' + (hasher ? hasher.apply(this, arguments) : key);
+      if (!has(cache, address)) cache[address] = func.apply(this, arguments);
+      return cache[address];
+    };
+    memoize.cache = {};
+    return memoize;
+  }
+
+  // Delays a function for the given number of milliseconds, and then calls
+  // it with the arguments supplied.
+  var delay = restArguments(function(func, wait, args) {
+    return setTimeout(function() {
+      return func.apply(null, args);
+    }, wait);
+  });
+
+  // Defers a function, scheduling it to run after the current call stack has
+  // cleared.
+  var defer = partial(delay, _, 1);
+
+  // Returns a function, that, when invoked, will only be triggered at most once
+  // during a given window of time. Normally, the throttled function will run
+  // as much as it can, without ever going more than once per `wait` duration;
+  // but if you'd like to disable the execution on the leading edge, pass
+  // `{leading: false}`. To disable execution on the trailing edge, ditto.
+  function throttle(func, wait, options) {
+    var timeout, context, args, result;
+    var previous = 0;
+    if (!options) options = {};
+
+    var later = function() {
+      previous = options.leading === false ? 0 : now();
+      timeout = null;
+      result = func.apply(context, args);
+      if (!timeout) context = args = null;
+    };
+
+    var throttled = function() {
+      var _now = now();
+      if (!previous && options.leading === false) previous = _now;
+      var remaining = wait - (_now - previous);
+      context = this;
+      args = arguments;
+      if (remaining <= 0 || remaining > wait) {
+        if (timeout) {
+          clearTimeout(timeout);
+          timeout = null;
+        }
+        previous = _now;
+        result = func.apply(context, args);
+        if (!timeout) context = args = null;
+      } else if (!timeout && options.trailing !== false) {
+        timeout = setTimeout(later, remaining);
+      }
+      return result;
+    };
+
+    throttled.cancel = function() {
+      clearTimeout(timeout);
+      previous = 0;
+      timeout = context = args = null;
+    };
+
+    return throttled;
+  }
+
+  // When a sequence of calls of the returned function ends, the argument
+  // function is triggered. The end of a sequence is defined by the `wait`
+  // parameter. If `immediate` is passed, the argument function will be
+  // triggered at the beginning of the sequence instead of at the end.
+  function debounce(func, wait, immediate) {
+    var timeout, previous, args, result, context;
+
+    var later = function() {
+      var passed = now() - previous;
+      if (wait > passed) {
+        timeout = setTimeout(later, wait - passed);
+      } else {
+        timeout = null;
+        if (!immediate) result = func.apply(context, args);
+        // This check is needed because `func` can recursively invoke `debounced`.
+        if (!timeout) args = context = null;
+      }
+    };
+
+    var debounced = restArguments(function(_args) {
+      context = this;
+      args = _args;
+      previous = now();
+      if (!timeout) {
+        timeout = setTimeout(later, wait);
+        if (immediate) result = func.apply(context, args);
+      }
+      return result;
+    });
+
+    debounced.cancel = function() {
+      clearTimeout(timeout);
+      timeout = args = context = null;
+    };
+
+    return debounced;
+  }
+
+  // Returns the first function passed as an argument to the second,
+  // allowing you to adjust arguments, run code before and after, and
+  // conditionally execute the original function.
+  function wrap(func, wrapper) {
+    return partial(wrapper, func);
+  }
+
+  // Returns a negated version of the passed-in predicate.
+  function negate(predicate) {
+    return function() {
+      return !predicate.apply(this, arguments);
+    };
+  }
+
+  // Returns a function that is the composition of a list of functions, each
+  // consuming the return value of the function that follows.
+  function compose() {
+    var args = arguments;
+    var start = args.length - 1;
+    return function() {
+      var i = start;
+      var result = args[start].apply(this, arguments);
+      while (i--) result = args[i].call(this, result);
+      return result;
+    };
+  }
+
+  // Returns a function that will only be executed on and after the Nth call.
+  function after(times, func) {
+    return function() {
+      if (--times < 1) {
+        return func.apply(this, arguments);
+      }
+    };
+  }
+
+  // Returns a function that will only be executed up to (but not including) the
+  // Nth call.
+  function before(times, func) {
+    var memo;
+    return function() {
+      if (--times > 0) {
+        memo = func.apply(this, arguments);
+      }
+      if (times <= 1) func = null;
+      return memo;
+    };
+  }
+
+  // Returns a function that will be executed at most one time, no matter how
+  // often you call it. Useful for lazy initialization.
+  var once = partial(before, 2);
+
+  // Returns the first key on an object that passes a truth test.
+  function findKey(obj, predicate, context) {
+    predicate = cb(predicate, context);
+    var _keys = keys(obj), key;
+    for (var i = 0, length = _keys.length; i < length; i++) {
+      key = _keys[i];
+      if (predicate(obj[key], key, obj)) return key;
+    }
+  }
+
+  // Internal function to generate `_.findIndex` and `_.findLastIndex`.
+  function createPredicateIndexFinder(dir) {
+    return function(array, predicate, context) {
+      predicate = cb(predicate, context);
+      var length = getLength(array);
+      var index = dir > 0 ? 0 : length - 1;
+      for (; index >= 0 && index < length; index += dir) {
+        if (predicate(array[index], index, array)) return index;
+      }
+      return -1;
+    };
+  }
+
+  // Returns the first index on an array-like that passes a truth test.
+  var findIndex = createPredicateIndexFinder(1);
+
+  // Returns the last index on an array-like that passes a truth test.
+  var findLastIndex = createPredicateIndexFinder(-1);
+
+  // Use a comparator function to figure out the smallest index at which
+  // an object should be inserted so as to maintain order. Uses binary search.
+  function sortedIndex(array, obj, iteratee, context) {
+    iteratee = cb(iteratee, context, 1);
+    var value = iteratee(obj);
+    var low = 0, high = getLength(array);
+    while (low < high) {
+      var mid = Math.floor((low + high) / 2);
+      if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;
+    }
+    return low;
+  }
+
+  // Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.
+  function createIndexFinder(dir, predicateFind, sortedIndex) {
+    return function(array, item, idx) {
+      var i = 0, length = getLength(array);
+      if (typeof idx == 'number') {
+        if (dir > 0) {
+          i = idx >= 0 ? idx : Math.max(idx + length, i);
+        } else {
+          length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
+        }
+      } else if (sortedIndex && idx && length) {
+        idx = sortedIndex(array, item);
+        return array[idx] === item ? idx : -1;
+      }
+      if (item !== item) {
+        idx = predicateFind(slice.call(array, i, length), isNaN$1);
+        return idx >= 0 ? idx + i : -1;
+      }
+      for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
+        if (array[idx] === item) return idx;
+      }
+      return -1;
+    };
+  }
+
+  // Return the position of the first occurrence of an item in an array,
+  // or -1 if the item is not included in the array.
+  // If the array is large and already in sort order, pass `true`
+  // for **isSorted** to use binary search.
+  var indexOf = createIndexFinder(1, findIndex, sortedIndex);
+
+  // Return the position of the last occurrence of an item in an array,
+  // or -1 if the item is not included in the array.
+  var lastIndexOf = createIndexFinder(-1, findLastIndex);
+
+  // Return the first value which passes a truth test.
+  function find(obj, predicate, context) {
+    var keyFinder = isArrayLike(obj) ? findIndex : findKey;
+    var key = keyFinder(obj, predicate, context);
+    if (key !== void 0 && key !== -1) return obj[key];
+  }
+
+  // Convenience version of a common use case of `_.find`: getting the first
+  // object containing specific `key:value` pairs.
+  function findWhere(obj, attrs) {
+    return find(obj, matcher(attrs));
+  }
+
+  // The cornerstone for collection functions, an `each`
+  // implementation, aka `forEach`.
+  // Handles raw objects in addition to array-likes. Treats all
+  // sparse array-likes as if they were dense.
+  function each(obj, iteratee, context) {
+    iteratee = optimizeCb(iteratee, context);
+    var i, length;
+    if (isArrayLike(obj)) {
+      for (i = 0, length = obj.length; i < length; i++) {
+        iteratee(obj[i], i, obj);
+      }
+    } else {
+      var _keys = keys(obj);
+      for (i = 0, length = _keys.length; i < length; i++) {
+        iteratee(obj[_keys[i]], _keys[i], obj);
+      }
+    }
+    return obj;
+  }
+
+  // Return the results of applying the iteratee to each element.
+  function map(obj, iteratee, context) {
+    iteratee = cb(iteratee, context);
+    var _keys = !isArrayLike(obj) && keys(obj),
+        length = (_keys || obj).length,
+        results = Array(length);
+    for (var index = 0; index < length; index++) {
+      var currentKey = _keys ? _keys[index] : index;
+      results[index] = iteratee(obj[currentKey], currentKey, obj);
+    }
+    return results;
+  }
+
+  // Internal helper to create a reducing function, iterating left or right.
+  function createReduce(dir) {
+    // Wrap code that reassigns argument variables in a separate function than
+    // the one that accesses `arguments.length` to avoid a perf hit. (#1991)
+    var reducer = function(obj, iteratee, memo, initial) {
+      var _keys = !isArrayLike(obj) && keys(obj),
+          length = (_keys || obj).length,
+          index = dir > 0 ? 0 : length - 1;
+      if (!initial) {
+        memo = obj[_keys ? _keys[index] : index];
+        index += dir;
+      }
+      for (; index >= 0 && index < length; index += dir) {
+        var currentKey = _keys ? _keys[index] : index;
+        memo = iteratee(memo, obj[currentKey], currentKey, obj);
+      }
+      return memo;
+    };
+
+    return function(obj, iteratee, memo, context) {
+      var initial = arguments.length >= 3;
+      return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);
+    };
+  }
+
+  // **Reduce** builds up a single result from a list of values, aka `inject`,
+  // or `foldl`.
+  var reduce = createReduce(1);
+
+  // The right-associative version of reduce, also known as `foldr`.
+  var reduceRight = createReduce(-1);
+
+  // Return all the elements that pass a truth test.
+  function filter(obj, predicate, context) {
+    var results = [];
+    predicate = cb(predicate, context);
+    each(obj, function(value, index, list) {
+      if (predicate(value, index, list)) results.push(value);
+    });
+    return results;
+  }
+
+  // Return all the elements for which a truth test fails.
+  function reject(obj, predicate, context) {
+    return filter(obj, negate(cb(predicate)), context);
+  }
+
+  // Determine whether all of the elements pass a truth test.
+  function every(obj, predicate, context) {
+    predicate = cb(predicate, context);
+    var _keys = !isArrayLike(obj) && keys(obj),
+        length = (_keys || obj).length;
+    for (var index = 0; index < length; index++) {
+      var currentKey = _keys ? _keys[index] : index;
+      if (!predicate(obj[currentKey], currentKey, obj)) return false;
+    }
+    return true;
+  }
+
+  // Determine if at least one element in the object passes a truth test.
+  function some(obj, predicate, context) {
+    predicate = cb(predicate, context);
+    var _keys = !isArrayLike(obj) && keys(obj),
+        length = (_keys || obj).length;
+    for (var index = 0; index < length; index++) {
+      var currentKey = _keys ? _keys[index] : index;
+      if (predicate(obj[currentKey], currentKey, obj)) return true;
+    }
+    return false;
+  }
+
+  // Determine if the array or object contains a given item (using `===`).
+  function contains(obj, item, fromIndex, guard) {
+    if (!isArrayLike(obj)) obj = values(obj);
+    if (typeof fromIndex != 'number' || guard) fromIndex = 0;
+    return indexOf(obj, item, fromIndex) >= 0;
+  }
+
+  // Invoke a method (with arguments) on every item in a collection.
+  var invoke = restArguments(function(obj, path, args) {
+    var contextPath, func;
+    if (isFunction$1(path)) {
+      func = path;
+    } else {
+      path = toPath$1(path);
+      contextPath = path.slice(0, -1);
+      path = path[path.length - 1];
+    }
+    return map(obj, function(context) {
+      var method = func;
+      if (!method) {
+        if (contextPath && contextPath.length) {
+          context = deepGet(context, contextPath);
+        }
+        if (context == null) return void 0;
+        method = context[path];
+      }
+      return method == null ? method : method.apply(context, args);
+    });
+  });
+
+  // Convenience version of a common use case of `_.map`: fetching a property.
+  function pluck(obj, key) {
+    return map(obj, property(key));
+  }
+
+  // Convenience version of a common use case of `_.filter`: selecting only
+  // objects containing specific `key:value` pairs.
+  function where(obj, attrs) {
+    return filter(obj, matcher(attrs));
+  }
+
+  // Return the maximum element (or element-based computation).
+  function max(obj, iteratee, context) {
+    var result = -Infinity, lastComputed = -Infinity,
+        value, computed;
+    if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {
+      obj = isArrayLike(obj) ? obj : values(obj);
+      for (var i = 0, length = obj.length; i < length; i++) {
+        value = obj[i];
+        if (value != null && value > result) {
+          result = value;
+        }
+      }
+    } else {
+      iteratee = cb(iteratee, context);
+      each(obj, function(v, index, list) {
+        computed = iteratee(v, index, list);
+        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {
+          result = v;
+          lastComputed = computed;
+        }
+      });
+    }
+    return result;
+  }
+
+  // Return the minimum element (or element-based computation).
+  function min(obj, iteratee, context) {
+    var result = Infinity, lastComputed = Infinity,
+        value, computed;
+    if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {
+      obj = isArrayLike(obj) ? obj : values(obj);
+      for (var i = 0, length = obj.length; i < length; i++) {
+        value = obj[i];
+        if (value != null && value < result) {
+          result = value;
+        }
+      }
+    } else {
+      iteratee = cb(iteratee, context);
+      each(obj, function(v, index, list) {
+        computed = iteratee(v, index, list);
+        if (computed < lastComputed || computed === Infinity && result === Infinity) {
+          result = v;
+          lastComputed = computed;
+        }
+      });
+    }
+    return result;
+  }
+
+  // Sample **n** random values from a collection using the modern version of the
+  // [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
+  // If **n** is not specified, returns a single random element.
+  // The internal `guard` argument allows it to work with `_.map`.
+  function sample(obj, n, guard) {
+    if (n == null || guard) {
+      if (!isArrayLike(obj)) obj = values(obj);
+      return obj[random(obj.length - 1)];
+    }
+    var sample = isArrayLike(obj) ? clone(obj) : values(obj);
+    var length = getLength(sample);
+    n = Math.max(Math.min(n, length), 0);
+    var last = length - 1;
+    for (var index = 0; index < n; index++) {
+      var rand = random(index, last);
+      var temp = sample[index];
+      sample[index] = sample[rand];
+      sample[rand] = temp;
+    }
+    return sample.slice(0, n);
+  }
+
+  // Shuffle a collection.
+  function shuffle(obj) {
+    return sample(obj, Infinity);
+  }
+
+  // Sort the object's values by a criterion produced by an iteratee.
+  function sortBy(obj, iteratee, context) {
+    var index = 0;
+    iteratee = cb(iteratee, context);
+    return pluck(map(obj, function(value, key, list) {
+      return {
+        value: value,
+        index: index++,
+        criteria: iteratee(value, key, list)
+      };
+    }).sort(function(left, right) {
+      var a = left.criteria;
+      var b = right.criteria;
+      if (a !== b) {
+        if (a > b || a === void 0) return 1;
+        if (a < b || b === void 0) return -1;
+      }
+      return left.index - right.index;
+    }), 'value');
+  }
+
+  // An internal function used for aggregate "group by" operations.
+  function group(behavior, partition) {
+    return function(obj, iteratee, context) {
+      var result = partition ? [[], []] : {};
+      iteratee = cb(iteratee, context);
+      each(obj, function(value, index) {
+        var key = iteratee(value, index, obj);
+        behavior(result, value, key);
+      });
+      return result;
+    };
+  }
+
+  // Groups the object's values by a criterion. Pass either a string attribute
+  // to group by, or a function that returns the criterion.
+  var groupBy = group(function(result, value, key) {
+    if (has(result, key)) result[key].push(value); else result[key] = [value];
+  });
+
+  // Indexes the object's values by a criterion, similar to `_.groupBy`, but for
+  // when you know that your index values will be unique.
+  var indexBy = group(function(result, value, key) {
+    result[key] = value;
+  });
+
+  // Counts instances of an object that group by a certain criterion. Pass
+  // either a string attribute to count by, or a function that returns the
+  // criterion.
+  var countBy = group(function(result, value, key) {
+    if (has(result, key)) result[key]++; else result[key] = 1;
+  });
+
+  // Split a collection into two arrays: one whose elements all pass the given
+  // truth test, and one whose elements all do not pass the truth test.
+  var partition = group(function(result, value, pass) {
+    result[pass ? 0 : 1].push(value);
+  }, true);
+
+  // Safely create a real, live array from anything iterable.
+  var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
+  function toArray(obj) {
+    if (!obj) return [];
+    if (isArray(obj)) return slice.call(obj);
+    if (isString(obj)) {
+      // Keep surrogate pair characters together.
+      return obj.match(reStrSymbol);
+    }
+    if (isArrayLike(obj)) return map(obj, identity);
+    return values(obj);
+  }
+
+  // Return the number of elements in a collection.
+  function size(obj) {
+    if (obj == null) return 0;
+    return isArrayLike(obj) ? obj.length : keys(obj).length;
+  }
+
+  // Internal `_.pick` helper function to determine whether `key` is an enumerable
+  // property name of `obj`.
+  function keyInObj(value, key, obj) {
+    return key in obj;
+  }
+
+  // Return a copy of the object only containing the allowed properties.
+  var pick = restArguments(function(obj, keys) {
+    var result = {}, iteratee = keys[0];
+    if (obj == null) return result;
+    if (isFunction$1(iteratee)) {
+      if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);
+      keys = allKeys(obj);
+    } else {
+      iteratee = keyInObj;
+      keys = flatten(keys, false, false);
+      obj = Object(obj);
+    }
+    for (var i = 0, length = keys.length; i < length; i++) {
+      var key = keys[i];
+      var value = obj[key];
+      if (iteratee(value, key, obj)) result[key] = value;
+    }
+    return result;
+  });
+
+  // Return a copy of the object without the disallowed properties.
+  var omit = restArguments(function(obj, keys) {
+    var iteratee = keys[0], context;
+    if (isFunction$1(iteratee)) {
+      iteratee = negate(iteratee);
+      if (keys.length > 1) context = keys[1];
+    } else {
+      keys = map(flatten(keys, false, false), String);
+      iteratee = function(value, key) {
+        return !contains(keys, key);
+      };
+    }
+    return pick(obj, iteratee, context);
+  });
+
+  // Returns everything but the last entry of the array. Especially useful on
+  // the arguments object. Passing **n** will return all the values in
+  // the array, excluding the last N.
+  function initial(array, n, guard) {
+    return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));
+  }
+
+  // Get the first element of an array. Passing **n** will return the first N
+  // values in the array. The **guard** check allows it to work with `_.map`.
+  function first(array, n, guard) {
+    if (array == null || array.length < 1) return n == null || guard ? void 0 : [];
+    if (n == null || guard) return array[0];
+    return initial(array, array.length - n);
+  }
+
+  // Returns everything but the first entry of the `array`. Especially useful on
+  // the `arguments` object. Passing an **n** will return the rest N values in the
+  // `array`.
+  function rest(array, n, guard) {
+    return slice.call(array, n == null || guard ? 1 : n);
+  }
+
+  // Get the last element of an array. Passing **n** will return the last N
+  // values in the array.
+  function last(array, n, guard) {
+    if (array == null || array.length < 1) return n == null || guard ? void 0 : [];
+    if (n == null || guard) return array[array.length - 1];
+    return rest(array, Math.max(0, array.length - n));
+  }
+
+  // Trim out all falsy values from an array.
+  function compact(array) {
+    return filter(array, Boolean);
+  }
+
+  // Flatten out an array, either recursively (by default), or up to `depth`.
+  // Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.
+  function flatten$1(array, depth) {
+    return flatten(array, depth, false);
+  }
+
+  // Take the difference between one array and a number of other arrays.
+  // Only the elements present in just the first array will remain.
+  var difference = restArguments(function(array, rest) {
+    rest = flatten(rest, true, true);
+    return filter(array, function(value){
+      return !contains(rest, value);
+    });
+  });
+
+  // Return a version of the array that does not contain the specified value(s).
+  var without = restArguments(function(array, otherArrays) {
+    return difference(array, otherArrays);
+  });
+
+  // Produce a duplicate-free version of the array. If the array has already
+  // been sorted, you have the option of using a faster algorithm.
+  // The faster algorithm will not work with an iteratee if the iteratee
+  // is not a one-to-one function, so providing an iteratee will disable
+  // the faster algorithm.
+  function uniq(array, isSorted, iteratee, context) {
+    if (!isBoolean(isSorted)) {
+      context = iteratee;
+      iteratee = isSorted;
+      isSorted = false;
+    }
+    if (iteratee != null) iteratee = cb(iteratee, context);
+    var result = [];
+    var seen = [];
+    for (var i = 0, length = getLength(array); i < length; i++) {
+      var value = array[i],
+          computed = iteratee ? iteratee(value, i, array) : value;
+      if (isSorted && !iteratee) {
+        if (!i || seen !== computed) result.push(value);
+        seen = computed;
+      } else if (iteratee) {
+        if (!contains(seen, computed)) {
+          seen.push(computed);
+          result.push(value);
+        }
+      } else if (!contains(result, value)) {
+        result.push(value);
+      }
+    }
+    return result;
+  }
+
+  // Produce an array that contains the union: each distinct element from all of
+  // the passed-in arrays.
+  var union = restArguments(function(arrays) {
+    return uniq(flatten(arrays, true, true));
+  });
+
+  // Produce an array that contains every item shared between all the
+  // passed-in arrays.
+  function intersection(array) {
+    var result = [];
+    var argsLength = arguments.length;
+    for (var i = 0, length = getLength(array); i < length; i++) {
+      var item = array[i];
+      if (contains(result, item)) continue;
+      var j;
+      for (j = 1; j < argsLength; j++) {
+        if (!contains(arguments[j], item)) break;
+      }
+      if (j === argsLength) result.push(item);
+    }
+    return result;
+  }
+
+  // Complement of zip. Unzip accepts an array of arrays and groups
+  // each array's elements on shared indices.
+  function unzip(array) {
+    var length = array && max(array, getLength).length || 0;
+    var result = Array(length);
+
+    for (var index = 0; index < length; index++) {
+      result[index] = pluck(array, index);
+    }
+    return result;
+  }
+
+  // Zip together multiple lists into a single array -- elements that share
+  // an index go together.
+  var zip = restArguments(unzip);
+
+  // Converts lists into objects. Pass either a single array of `[key, value]`
+  // pairs, or two parallel arrays of the same length -- one of keys, and one of
+  // the corresponding values. Passing by pairs is the reverse of `_.pairs`.
+  function object(list, values) {
+    var result = {};
+    for (var i = 0, length = getLength(list); i < length; i++) {
+      if (values) {
+        result[list[i]] = values[i];
+      } else {
+        result[list[i][0]] = list[i][1];
+      }
+    }
+    return result;
+  }
+
+  // Generate an integer Array containing an arithmetic progression. A port of
+  // the native Python `range()` function. See
+  // [the Python documentation](https://docs.python.org/library/functions.html#range).
+  function range(start, stop, step) {
+    if (stop == null) {
+      stop = start || 0;
+      start = 0;
+    }
+    if (!step) {
+      step = stop < start ? -1 : 1;
+    }
+
+    var length = Math.max(Math.ceil((stop - start) / step), 0);
+    var range = Array(length);
+
+    for (var idx = 0; idx < length; idx++, start += step) {
+      range[idx] = start;
+    }
+
+    return range;
+  }
+
+  // Chunk a single array into multiple arrays, each containing `count` or fewer
+  // items.
+  function chunk(array, count) {
+    if (count == null || count < 1) return [];
+    var result = [];
+    var i = 0, length = array.length;
+    while (i < length) {
+      result.push(slice.call(array, i, i += count));
+    }
+    return result;
+  }
+
+  // Helper function to continue chaining intermediate results.
+  function chainResult(instance, obj) {
+    return instance._chain ? _(obj).chain() : obj;
+  }
+
+  // Add your own custom functions to the Underscore object.
+  function mixin(obj) {
+    each(functions(obj), function(name) {
+      var func = _[name] = obj[name];
+      _.prototype[name] = function() {
+        var args = [this._wrapped];
+        push.apply(args, arguments);
+        return chainResult(this, func.apply(_, args));
+      };
+    });
+    return _;
+  }
+
+  // Add all mutator `Array` functions to the wrapper.
+  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
+    var method = ArrayProto[name];
+    _.prototype[name] = function() {
+      var obj = this._wrapped;
+      if (obj != null) {
+        method.apply(obj, arguments);
+        if ((name === 'shift' || name === 'splice') && obj.length === 0) {
+          delete obj[0];
+        }
+      }
+      return chainResult(this, obj);
+    };
+  });
+
+  // Add all accessor `Array` functions to the wrapper.
+  each(['concat', 'join', 'slice'], function(name) {
+    var method = ArrayProto[name];
+    _.prototype[name] = function() {
+      var obj = this._wrapped;
+      if (obj != null) obj = method.apply(obj, arguments);
+      return chainResult(this, obj);
+    };
+  });
+
+  // Named Exports
+
+  var allExports = {
+    __proto__: null,
+    VERSION: VERSION,
+    restArguments: restArguments,
+    isObject: isObject,
+    isNull: isNull,
+    isUndefined: isUndefined,
+    isBoolean: isBoolean,
+    isElement: isElement,
+    isString: isString,
+    isNumber: isNumber,
+    isDate: isDate,
+    isRegExp: isRegExp,
+    isError: isError,
+    isSymbol: isSymbol,
+    isArrayBuffer: isArrayBuffer,
+    isDataView: isDataView$1,
+    isArray: isArray,
+    isFunction: isFunction$1,
+    isArguments: isArguments$1,
+    isFinite: isFinite$1,
+    isNaN: isNaN$1,
+    isTypedArray: isTypedArray$1,
+    isEmpty: isEmpty,
+    isMatch: isMatch,
+    isEqual: isEqual,
+    isMap: isMap,
+    isWeakMap: isWeakMap,
+    isSet: isSet,
+    isWeakSet: isWeakSet,
+    keys: keys,
+    allKeys: allKeys,
+    values: values,
+    pairs: pairs,
+    invert: invert,
+    functions: functions,
+    methods: functions,
+    extend: extend,
+    extendOwn: extendOwn,
+    assign: extendOwn,
+    defaults: defaults,
+    create: create,
+    clone: clone,
+    tap: tap,
+    get: get,
+    has: has$1,
+    mapObject: mapObject,
+    identity: identity,
+    constant: constant,
+    noop: noop,
+    toPath: toPath,
+    property: property,
+    propertyOf: propertyOf,
+    matcher: matcher,
+    matches: matcher,
+    times: times,
+    random: random,
+    now: now,
+    escape: _escape,
+    unescape: _unescape,
+    templateSettings: templateSettings,
+    template: template,
+    result: result,
+    uniqueId: uniqueId,
+    chain: chain,
+    iteratee: iteratee,
+    partial: partial,
+    bind: bind,
+    bindAll: bindAll,
+    memoize: memoize,
+    delay: delay,
+    defer: defer,
+    throttle: throttle,
+    debounce: debounce,
+    wrap: wrap,
+    negate: negate,
+    compose: compose,
+    after: after,
+    before: before,
+    once: once,
+    findKey: findKey,
+    findIndex: findIndex,
+    findLastIndex: findLastIndex,
+    sortedIndex: sortedIndex,
+    indexOf: indexOf,
+    lastIndexOf: lastIndexOf,
+    find: find,
+    detect: find,
+    findWhere: findWhere,
+    each: each,
+    forEach: each,
+    map: map,
+    collect: map,
+    reduce: reduce,
+    foldl: reduce,
+    inject: reduce,
+    reduceRight: reduceRight,
+    foldr: reduceRight,
+    filter: filter,
+    select: filter,
+    reject: reject,
+    every: every,
+    all: every,
+    some: some,
+    any: some,
+    contains: contains,
+    includes: contains,
+    include: contains,
+    invoke: invoke,
+    pluck: pluck,
+    where: where,
+    max: max,
+    min: min,
+    shuffle: shuffle,
+    sample: sample,
+    sortBy: sortBy,
+    groupBy: groupBy,
+    indexBy: indexBy,
+    countBy: countBy,
+    partition: partition,
+    toArray: toArray,
+    size: size,
+    pick: pick,
+    omit: omit,
+    first: first,
+    head: first,
+    take: first,
+    initial: initial,
+    last: last,
+    rest: rest,
+    tail: rest,
+    drop: rest,
+    compact: compact,
+    flatten: flatten$1,
+    without: without,
+    uniq: uniq,
+    unique: uniq,
+    union: union,
+    intersection: intersection,
+    difference: difference,
+    unzip: unzip,
+    transpose: unzip,
+    zip: zip,
+    object: object,
+    range: range,
+    chunk: chunk,
+    mixin: mixin,
+    'default': _
+  };
+
+  // Default Export
+
+  // Add all of the Underscore functions to the wrapper object.
+  var _$1 = mixin(allExports);
+  // Legacy Node.js API.
+  _$1._ = _$1;
+
+  return _$1;
+
+})));
+//# sourceMappingURL=underscore.js.map
diff --git a/content/docs/latest/_static/underscore-1.3.1.js b/content/docs/latest/_static/underscore-1.3.1.js
deleted file mode 100644
index 208d4cd..0000000
--- a/content/docs/latest/_static/underscore-1.3.1.js
+++ /dev/null
@@ -1,999 +0,0 @@
-//     Underscore.js 1.3.1
-//     (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
-//     Underscore is freely distributable under the MIT license.
-//     Portions of Underscore are inspired or borrowed from Prototype,
-//     Oliver Steele's Functional, and John Resig's Micro-Templating.
-//     For all details and documentation:
-//     http://documentcloud.github.com/underscore
-
-(function() {
-
-  // Baseline setup
-  // --------------
-
-  // Establish the root object, `window` in the browser, or `global` on the server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Establish the object that gets returned to break out of a loop iteration.
-  var breaker = {};
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var slice            = ArrayProto.slice,
-      unshift          = ArrayProto.unshift,
-      toString         = ObjProto.toString,
-      hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-    nativeForEach      = ArrayProto.forEach,
-    nativeMap          = ArrayProto.map,
-    nativeReduce       = ArrayProto.reduce,
-    nativeReduceRight  = ArrayProto.reduceRight,
-    nativeFilter       = ArrayProto.filter,
-    nativeEvery        = ArrayProto.every,
-    nativeSome         = ArrayProto.some,
-    nativeIndexOf      = ArrayProto.indexOf,
-    nativeLastIndexOf  = ArrayProto.lastIndexOf,
-    nativeIsArray      = Array.isArray,
-    nativeKeys         = Object.keys,
-    nativeBind         = FuncProto.bind;
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) { return new wrapper(obj); };
-
-  // Export the Underscore object for **Node.js**, with
-  // backwards-compatibility for the old `require()` API. If we're in
-  // the browser, add `_` as a global object via a string identifier,
-  // for Closure Compiler "advanced" mode.
-  if (typeof exports !== 'undefined') {
-    if (typeof module !== 'undefined' && module.exports) {
-      exports = module.exports = _;
-    }
-    exports._ = _;
-  } else {
-    root['_'] = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.3.1';
-
-  // Collection Functions
-  // --------------------
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles objects with the built-in `forEach`, arrays, and raw objects.
-  // Delegates to **ECMAScript 5**'s native `forEach` if available.
-  var each = _.each = _.forEach = function(obj, iterator, context) {
-    if (obj == null) return;
-    if (nativeForEach && obj.forEach === nativeForEach) {
-      obj.forEach(iterator, context);
-    } else if (obj.length === +obj.length) {
-      for (var i = 0, l = obj.length; i < l; i++) {
-        if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
-      }
-    } else {
-      for (var key in obj) {
-        if (_.has(obj, key)) {
-          if (iterator.call(context, obj[key], key, obj) === breaker) return;
-        }
-      }
-    }
-  };
-
-  // Return the results of applying the iterator to each element.
-  // Delegates to **ECMAScript 5**'s native `map` if available.
-  _.map = _.collect = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
-    each(obj, function(value, index, list) {
-      results[results.length] = iterator.call(context, value, index, list);
-    });
-    if (obj.length === +obj.length) results.length = obj.length;
-    return results;
-  };
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
-  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduce && obj.reduce === nativeReduce) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
-    }
-    each(obj, function(value, index, list) {
-      if (!initial) {
-        memo = value;
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, value, index, list);
-      }
-    });
-    if (!initial) throw new TypeError('Reduce of empty array with no initial value');
-    return memo;
-  };
-
-  // The right-associative version of reduce, also known as `foldr`.
-  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
-  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
-    }
-    var reversed = _.toArray(obj).reverse();
-    if (context && !initial) iterator = _.bind(iterator, context);
-    return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator);
-  };
-
-  // Return the first value which passes a truth test. Aliased as `detect`.
-  _.find = _.detect = function(obj, iterator, context) {
-    var result;
-    any(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) {
-        result = value;
-        return true;
-      }
-    });
-    return result;
-  };
-
-  // Return all the elements that pass a truth test.
-  // Delegates to **ECMAScript 5**'s native `filter` if available.
-  // Aliased as `select`.
-  _.filter = _.select = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
-    each(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Return all the elements for which a truth test fails.
-  _.reject = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    each(obj, function(value, index, list) {
-      if (!iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Determine whether all of the elements match a truth test.
-  // Delegates to **ECMAScript 5**'s native `every` if available.
-  // Aliased as `all`.
-  _.every = _.all = function(obj, iterator, context) {
-    var result = true;
-    if (obj == null) return result;
-    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
-    each(obj, function(value, index, list) {
-      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
-    });
-    return result;
-  };
-
-  // Determine if at least one element in the object matches a truth test.
-  // Delegates to **ECMAScript 5**'s native `some` if available.
-  // Aliased as `any`.
-  var any = _.some = _.any = function(obj, iterator, context) {
-    iterator || (iterator = _.identity);
-    var result = false;
-    if (obj == null) return result;
-    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
-    each(obj, function(value, index, list) {
-      if (result || (result = iterator.call(context, value, index, list))) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if a given value is included in the array or object using `===`.
-  // Aliased as `contains`.
-  _.include = _.contains = function(obj, target) {
-    var found = false;
-    if (obj == null) return found;
-    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
-    found = any(obj, function(value) {
-      return value === target;
-    });
-    return found;
-  };
-
-  // Invoke a method (with arguments) on every item in a collection.
-  _.invoke = function(obj, method) {
-    var args = slice.call(arguments, 2);
-    return _.map(obj, function(value) {
-      return (_.isFunction(method) ? method || value : value[method]).apply(value, args);
-    });
-  };
-
-  // Convenience version of a common use case of `map`: fetching a property.
-  _.pluck = function(obj, key) {
-    return _.map(obj, function(value){ return value[key]; });
-  };
-
-  // Return the maximum element or (element-based computation).
-  _.max = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
-    if (!iterator && _.isEmpty(obj)) return -Infinity;
-    var result = {computed : -Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed >= result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Return the minimum element (or element-based computation).
-  _.min = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
-    if (!iterator && _.isEmpty(obj)) return Infinity;
-    var result = {computed : Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed < result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Shuffle an array.
-  _.shuffle = function(obj) {
-    var shuffled = [], rand;
-    each(obj, function(value, index, list) {
-      if (index == 0) {
-        shuffled[0] = value;
-      } else {
-        rand = Math.floor(Math.random() * (index + 1));
-        shuffled[index] = shuffled[rand];
-        shuffled[rand] = value;
-      }
-    });
-    return shuffled;
-  };
-
-  // Sort the object's values by a criterion produced by an iterator.
-  _.sortBy = function(obj, iterator, context) {
-    return _.pluck(_.map(obj, function(value, index, list) {
-      return {
-        value : value,
-        criteria : iterator.call(context, value, index, list)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria, b = right.criteria;
-      return a < b ? -1 : a > b ? 1 : 0;
-    }), 'value');
-  };
-
-  // Groups the object's values by a criterion. Pass either a string attribute
-  // to group by, or a function that returns the criterion.
-  _.groupBy = function(obj, val) {
-    var result = {};
-    var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
-    each(obj, function(value, index) {
-      var key = iterator(value, index);
-      (result[key] || (result[key] = [])).push(value);
-    });
-    return result;
-  };
-
-  // Use a comparator function to figure out at what index an object should
-  // be inserted so as to maintain order. Uses binary search.
-  _.sortedIndex = function(array, obj, iterator) {
-    iterator || (iterator = _.identity);
-    var low = 0, high = array.length;
-    while (low < high) {
-      var mid = (low + high) >> 1;
-      iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
-    }
-    return low;
-  };
-
-  // Safely convert anything iterable into a real, live array.
-  _.toArray = function(iterable) {
-    if (!iterable)                return [];
-    if (iterable.toArray)         return iterable.toArray();
-    if (_.isArray(iterable))      return slice.call(iterable);
-    if (_.isArguments(iterable))  return slice.call(iterable);
-    return _.values(iterable);
-  };
-
-  // Return the number of elements in an object.
-  _.size = function(obj) {
-    return _.toArray(obj).length;
-  };
-
-  // Array Functions
-  // ---------------
-
-  // Get the first element of an array. Passing **n** will return the first N
-  // values in the array. Aliased as `head`. The **guard** check allows it to work
-  // with `_.map`.
-  _.first = _.head = function(array, n, guard) {
-    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
-  };
-
-  // Returns everything but the last entry of the array. Especcialy useful on
-  // the arguments object. Passing **n** will return all the values in
-  // the array, excluding the last N. The **guard** check allows it to work with
-  // `_.map`.
-  _.initial = function(array, n, guard) {
-    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
-  };
-
-  // Get the last element of an array. Passing **n** will return the last N
-  // values in the array. The **guard** check allows it to work with `_.map`.
-  _.last = function(array, n, guard) {
-    if ((n != null) && !guard) {
-      return slice.call(array, Math.max(array.length - n, 0));
-    } else {
-      return array[array.length - 1];
-    }
-  };
-
-  // Returns everything but the first entry of the array. Aliased as `tail`.
-  // Especially useful on the arguments object. Passing an **index** will return
-  // the rest of the values in the array from that index onward. The **guard**
-  // check allows it to work with `_.map`.
-  _.rest = _.tail = function(array, index, guard) {
-    return slice.call(array, (index == null) || guard ? 1 : index);
-  };
-
-  // Trim out all falsy values from an array.
-  _.compact = function(array) {
-    return _.filter(array, function(value){ return !!value; });
-  };
-
-  // Return a completely flattened version of an array.
-  _.flatten = function(array, shallow) {
-    return _.reduce(array, function(memo, value) {
-      if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
-      memo[memo.length] = value;
-      return memo;
-    }, []);
-  };
-
-  // Return a version of the array that does not contain the specified value(s).
-  _.without = function(array) {
-    return _.difference(array, slice.call(arguments, 1));
-  };
-
-  // Produce a duplicate-free version of the array. If the array has already
-  // been sorted, you have the option of using a faster algorithm.
-  // Aliased as `unique`.
-  _.uniq = _.unique = function(array, isSorted, iterator) {
-    var initial = iterator ? _.map(array, iterator) : array;
-    var result = [];
-    _.reduce(initial, function(memo, el, i) {
-      if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
-        memo[memo.length] = el;
-        result[result.length] = array[i];
-      }
-      return memo;
-    }, []);
-    return result;
-  };
-
-  // Produce an array that contains the union: each distinct element from all of
-  // the passed-in arrays.
-  _.union = function() {
-    return _.uniq(_.flatten(arguments, true));
-  };
-
-  // Produce an array that contains every item shared between all the
-  // passed-in arrays. (Aliased as "intersect" for back-compat.)
-  _.intersection = _.intersect = function(array) {
-    var rest = slice.call(arguments, 1);
-    return _.filter(_.uniq(array), function(item) {
-      return _.every(rest, function(other) {
-        return _.indexOf(other, item) >= 0;
-      });
-    });
-  };
-
-  // Take the difference between one array and a number of other arrays.
-  // Only the elements present in just the first array will remain.
-  _.difference = function(array) {
-    var rest = _.flatten(slice.call(arguments, 1));
-    return _.filter(array, function(value){ return !_.include(rest, value); });
-  };
-
-  // Zip together multiple lists into a single array -- elements that share
-  // an index go together.
-  _.zip = function() {
-    var args = slice.call(arguments);
-    var length = _.max(_.pluck(args, 'length'));
-    var results = new Array(length);
-    for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
-    return results;
-  };
-
-  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
-  // we need this function. Return the position of the first occurrence of an
-  // item in an array, or -1 if the item is not included in the array.
-  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
-  // If the array is large and already in sort order, pass `true`
-  // for **isSorted** to use binary search.
-  _.indexOf = function(array, item, isSorted) {
-    if (array == null) return -1;
-    var i, l;
-    if (isSorted) {
-      i = _.sortedIndex(array, item);
-      return array[i] === item ? i : -1;
-    }
-    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
-    for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i;
-    return -1;
-  };
-
-  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
-  _.lastIndexOf = function(array, item) {
-    if (array == null) return -1;
-    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
-    var i = array.length;
-    while (i--) if (i in array && array[i] === item) return i;
-    return -1;
-  };
-
-  // Generate an integer Array containing an arithmetic progression. A port of
-  // the native Python `range()` function. See
-  // [the Python documentation](http://docs.python.org/library/functions.html#range).
-  _.range = function(start, stop, step) {
-    if (arguments.length <= 1) {
-      stop = start || 0;
-      start = 0;
-    }
-    step = arguments[2] || 1;
-
-    var len = Math.max(Math.ceil((stop - start) / step), 0);
-    var idx = 0;
-    var range = new Array(len);
-
-    while(idx < len) {
-      range[idx++] = start;
-      start += step;
-    }
-
-    return range;
-  };
-
-  // Function (ahem) Functions
-  // ------------------
-
-  // Reusable constructor function for prototype setting.
-  var ctor = function(){};
-
-  // Create a function bound to a given object (assigning `this`, and arguments,
-  // optionally). Binding with arguments is also known as `curry`.
-  // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
-  // We check for `func.bind` first, to fail fast when `func` is undefined.
-  _.bind = function bind(func, context) {
-    var bound, args;
-    if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
-    if (!_.isFunction(func)) throw new TypeError;
-    args = slice.call(arguments, 2);
-    return bound = function() {
-      if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
-      ctor.prototype = func.prototype;
-      var self = new ctor;
-      var result = func.apply(self, args.concat(slice.call(arguments)));
-      if (Object(result) === result) return result;
-      return self;
-    };
-  };
-
-  // Bind all of an object's methods to that object. Useful for ensuring that
-  // all callbacks defined on an object belong to it.
-  _.bindAll = function(obj) {
-    var funcs = slice.call(arguments, 1);
-    if (funcs.length == 0) funcs = _.functions(obj);
-    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
-    return obj;
-  };
-
-  // Memoize an expensive function by storing its results.
-  _.memoize = function(func, hasher) {
-    var memo = {};
-    hasher || (hasher = _.identity);
-    return function() {
-      var key = hasher.apply(this, arguments);
-      return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
-    };
-  };
-
-  // Delays a function for the given number of milliseconds, and then calls
-  // it with the arguments supplied.
-  _.delay = function(func, wait) {
-    var args = slice.call(arguments, 2);
-    return setTimeout(function(){ return func.apply(func, args); }, wait);
-  };
-
-  // Defers a function, scheduling it to run after the current call stack has
-  // cleared.
-  _.defer = function(func) {
-    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
-  };
-
-  // Returns a function, that, when invoked, will only be triggered at most once
-  // during a given window of time.
-  _.throttle = function(func, wait) {
-    var context, args, timeout, throttling, more;
-    var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
-    return function() {
-      context = this; args = arguments;
-      var later = function() {
-        timeout = null;
-        if (more) func.apply(context, args);
-        whenDone();
-      };
-      if (!timeout) timeout = setTimeout(later, wait);
-      if (throttling) {
-        more = true;
-      } else {
-        func.apply(context, args);
-      }
-      whenDone();
-      throttling = true;
-    };
-  };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // N milliseconds.
-  _.debounce = function(func, wait) {
-    var timeout;
-    return function() {
-      var context = this, args = arguments;
-      var later = function() {
-        timeout = null;
-        func.apply(context, args);
-      };
-      clearTimeout(timeout);
-      timeout = setTimeout(later, wait);
-    };
-  };
-
-  // Returns a function that will be executed at most one time, no matter how
-  // often you call it. Useful for lazy initialization.
-  _.once = function(func) {
-    var ran = false, memo;
-    return function() {
-      if (ran) return memo;
-      ran = true;
-      return memo = func.apply(this, arguments);
-    };
-  };
-
-  // Returns the first function passed as an argument to the second,
-  // allowing you to adjust arguments, run code before and after, and
-  // conditionally execute the original function.
-  _.wrap = function(func, wrapper) {
-    return function() {
-      var args = [func].concat(slice.call(arguments, 0));
-      return wrapper.apply(this, args);
-    };
-  };
-
-  // Returns a function that is the composition of a list of functions, each
-  // consuming the return value of the function that follows.
-  _.compose = function() {
-    var funcs = arguments;
-    return function() {
-      var args = arguments;
-      for (var i = funcs.length - 1; i >= 0; i--) {
-        args = [funcs[i].apply(this, args)];
-      }
-      return args[0];
-    };
-  };
-
-  // Returns a function that will only be executed after being called N times.
-  _.after = function(times, func) {
-    if (times <= 0) return func();
-    return function() {
-      if (--times < 1) { return func.apply(this, arguments); }
-    };
-  };
-
-  // Object Functions
-  // ----------------
-
-  // Retrieve the names of an object's properties.
-  // Delegates to **ECMAScript 5**'s native `Object.keys`
-  _.keys = nativeKeys || function(obj) {
-    if (obj !== Object(obj)) throw new TypeError('Invalid object');
-    var keys = [];
-    for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
-    return keys;
-  };
-
-  // Retrieve the values of an object's properties.
-  _.values = function(obj) {
-    return _.map(obj, _.identity);
-  };
-
-  // Return a sorted list of the function names available on the object.
-  // Aliased as `methods`
-  _.functions = _.methods = function(obj) {
-    var names = [];
-    for (var key in obj) {
-      if (_.isFunction(obj[key])) names.push(key);
-    }
-    return names.sort();
-  };
-
-  // Extend a given object with all the properties in passed-in object(s).
-  _.extend = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      for (var prop in source) {
-        obj[prop] = source[prop];
-      }
-    });
-    return obj;
-  };
-
-  // Fill in a given object with default properties.
-  _.defaults = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      for (var prop in source) {
-        if (obj[prop] == null) obj[prop] = source[prop];
-      }
-    });
-    return obj;
-  };
-
-  // Create a (shallow-cloned) duplicate of an object.
-  _.clone = function(obj) {
-    if (!_.isObject(obj)) return obj;
-    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
-  };
-
-  // Invokes interceptor with the obj, and then returns obj.
-  // The primary purpose of this method is to "tap into" a method chain, in
-  // order to perform operations on intermediate results within the chain.
-  _.tap = function(obj, interceptor) {
-    interceptor(obj);
-    return obj;
-  };
-
-  // Internal recursive comparison function.
-  function eq(a, b, stack) {
-    // Identical objects are equal. `0 === -0`, but they aren't identical.
-    // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
-    if (a === b) return a !== 0 || 1 / a == 1 / b;
-    // A strict comparison is necessary because `null == undefined`.
-    if (a == null || b == null) return a === b;
-    // Unwrap any wrapped objects.
-    if (a._chain) a = a._wrapped;
-    if (b._chain) b = b._wrapped;
-    // Invoke a custom `isEqual` method if one is provided.
-    if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b);
-    if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a);
-    // Compare `[[Class]]` names.
-    var className = toString.call(a);
-    if (className != toString.call(b)) return false;
-    switch (className) {
-      // Strings, numbers, dates, and booleans are compared by value.
-      case '[object String]':
-        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
-        // equivalent to `new String("5")`.
-        return a == String(b);
-      case '[object Number]':
-        // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
-        // other numeric values.
-        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
-      case '[object Date]':
-      case '[object Boolean]':
-        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
-        // millisecond representations. Note that invalid dates with millisecond representations
-        // of `NaN` are not equivalent.
-        return +a == +b;
-      // RegExps are compared by their source patterns and flags.
-      case '[object RegExp]':
-        return a.source == b.source &&
-               a.global == b.global &&
-               a.multiline == b.multiline &&
-               a.ignoreCase == b.ignoreCase;
-    }
-    if (typeof a != 'object' || typeof b != 'object') return false;
-    // Assume equality for cyclic structures. The algorithm for detecting cyclic
-    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
-    var length = stack.length;
-    while (length--) {
-      // Linear search. Performance is inversely proportional to the number of
-      // unique nested structures.
-      if (stack[length] == a) return true;
-    }
-    // Add the first object to the stack of traversed objects.
-    stack.push(a);
-    var size = 0, result = true;
-    // Recursively compare objects and arrays.
-    if (className == '[object Array]') {
-      // Compare array lengths to determine if a deep comparison is necessary.
-      size = a.length;
-      result = size == b.length;
-      if (result) {
-        // Deep compare the contents, ignoring non-numeric properties.
-        while (size--) {
-          // Ensure commutative equality for sparse arrays.
-          if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
-        }
-      }
-    } else {
-      // Objects with different constructors are not equivalent.
-      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false;
-      // Deep compare objects.
-      for (var key in a) {
-        if (_.has(a, key)) {
-          // Count the expected number of properties.
-          size++;
-          // Deep compare each member.
-          if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break;
-        }
-      }
-      // Ensure that both objects contain the same number of properties.
-      if (result) {
-        for (key in b) {
-          if (_.has(b, key) && !(size--)) break;
-        }
-        result = !size;
-      }
-    }
-    // Remove the first object from the stack of traversed objects.
-    stack.pop();
-    return result;
-  }
-
-  // Perform a deep comparison to check if two objects are equal.
-  _.isEqual = function(a, b) {
-    return eq(a, b, []);
-  };
-
-  // Is a given array, string, or object empty?
-  // An "empty" object has no enumerable own-properties.
-  _.isEmpty = function(obj) {
-    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
-    for (var key in obj) if (_.has(obj, key)) return false;
-    return true;
-  };
-
-  // Is a given value a DOM element?
-  _.isElement = function(obj) {
-    return !!(obj && obj.nodeType == 1);
-  };
-
-  // Is a given value an array?
-  // Delegates to ECMA5's native Array.isArray
-  _.isArray = nativeIsArray || function(obj) {
-    return toString.call(obj) == '[object Array]';
-  };
-
-  // Is a given variable an object?
-  _.isObject = function(obj) {
-    return obj === Object(obj);
-  };
-
-  // Is a given variable an arguments object?
-  _.isArguments = function(obj) {
-    return toString.call(obj) == '[object Arguments]';
-  };
-  if (!_.isArguments(arguments)) {
-    _.isArguments = function(obj) {
-      return !!(obj && _.has(obj, 'callee'));
-    };
-  }
-
-  // Is a given value a function?
-  _.isFunction = function(obj) {
-    return toString.call(obj) == '[object Function]';
-  };
-
-  // Is a given value a string?
-  _.isString = function(obj) {
-    return toString.call(obj) == '[object String]';
-  };
-
-  // Is a given value a number?
-  _.isNumber = function(obj) {
-    return toString.call(obj) == '[object Number]';
-  };
-
-  // Is the given value `NaN`?
-  _.isNaN = function(obj) {
-    // `NaN` is the only value for which `===` is not reflexive.
-    return obj !== obj;
-  };
-
-  // Is a given value a boolean?
-  _.isBoolean = function(obj) {
-    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
-  };
-
-  // Is a given value a date?
-  _.isDate = function(obj) {
-    return toString.call(obj) == '[object Date]';
-  };
-
-  // Is the given value a regular expression?
-  _.isRegExp = function(obj) {
-    return toString.call(obj) == '[object RegExp]';
-  };
-
-  // Is a given value equal to null?
-  _.isNull = function(obj) {
-    return obj === null;
-  };
-
-  // Is a given variable undefined?
-  _.isUndefined = function(obj) {
-    return obj === void 0;
-  };
-
-  // Has own property?
-  _.has = function(obj, key) {
-    return hasOwnProperty.call(obj, key);
-  };
-
-  // Utility Functions
-  // -----------------
-
-  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
-  // previous owner. Returns a reference to the Underscore object.
-  _.noConflict = function() {
-    root._ = previousUnderscore;
-    return this;
-  };
-
-  // Keep the identity function around for default iterators.
-  _.identity = function(value) {
-    return value;
-  };
-
-  // Run a function **n** times.
-  _.times = function (n, iterator, context) {
-    for (var i = 0; i < n; i++) iterator.call(context, i);
-  };
-
-  // Escape a string for HTML interpolation.
-  _.escape = function(string) {
-    return (''+string).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;');
-  };
-
-  // Add your own custom functions to the Underscore object, ensuring that
-  // they're correctly added to the OOP wrapper as well.
-  _.mixin = function(obj) {
-    each(_.functions(obj), function(name){
-      addToWrapper(name, _[name] = obj[name]);
-    });
-  };
-
-  // Generate a unique integer id (unique within the entire client session).
-  // Useful for temporary DOM ids.
-  var idCounter = 0;
-  _.uniqueId = function(prefix) {
-    var id = idCounter++;
-    return prefix ? prefix + id : id;
-  };
-
-  // By default, Underscore uses ERB-style template delimiters, change the
-  // following template settings to use alternative delimiters.
-  _.templateSettings = {
-    evaluate    : /<%([\s\S]+?)%>/g,
-    interpolate : /<%=([\s\S]+?)%>/g,
-    escape      : /<%-([\s\S]+?)%>/g
-  };
-
-  // When customizing `templateSettings`, if you don't want to define an
-  // interpolation, evaluation or escaping regex, we need one that is
-  // guaranteed not to match.
-  var noMatch = /.^/;
-
-  // Within an interpolation, evaluation, or escaping, remove HTML escaping
-  // that had been previously added.
-  var unescape = function(code) {
-    return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'");
-  };
-
-  // JavaScript micro-templating, similar to John Resig's implementation.
-  // Underscore templating handles arbitrary delimiters, preserves whitespace,
-  // and correctly escapes quotes within interpolated code.
-  _.template = function(str, data) {
-    var c  = _.templateSettings;
-    var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
-      'with(obj||{}){__p.push(\'' +
-      str.replace(/\\/g, '\\\\')
-         .replace(/'/g, "\\'")
-         .replace(c.escape || noMatch, function(match, code) {
-           return "',_.escape(" + unescape(code) + "),'";
-         })
-         .replace(c.interpolate || noMatch, function(match, code) {
-           return "'," + unescape(code) + ",'";
-         })
-         .replace(c.evaluate || noMatch, function(match, code) {
-           return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('";
-         })
-         .replace(/\r/g, '\\r')
-         .replace(/\n/g, '\\n')
-         .replace(/\t/g, '\\t')
-         + "');}return __p.join('');";
-    var func = new Function('obj', '_', tmpl);
-    if (data) return func(data, _);
-    return function(data) {
-      return func.call(this, data, _);
-    };
-  };
-
-  // Add a "chain" function, which will delegate to the wrapper.
-  _.chain = function(obj) {
-    return _(obj).chain();
-  };
-
-  // The OOP Wrapper
-  // ---------------
-
-  // If Underscore is called as a function, it returns a wrapped object that
-  // can be used OO-style. This wrapper holds altered versions of all the
-  // underscore functions. Wrapped objects may be chained.
-  var wrapper = function(obj) { this._wrapped = obj; };
-
-  // Expose `wrapper.prototype` as `_.prototype`
-  _.prototype = wrapper.prototype;
-
-  // Helper function to continue chaining intermediate results.
-  var result = function(obj, chain) {
-    return chain ? _(obj).chain() : obj;
-  };
-
-  // A method to easily add functions to the OOP wrapper.
-  var addToWrapper = function(name, func) {
-    wrapper.prototype[name] = function() {
-      var args = slice.call(arguments);
-      unshift.call(args, this._wrapped);
-      return result(func.apply(_, args), this._chain);
-    };
-  };
-
-  // Add all of the Underscore functions to the wrapper object.
-  _.mixin(_);
-
-  // Add all mutator Array functions to the wrapper.
-  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
-    var method = ArrayProto[name];
-    wrapper.prototype[name] = function() {
-      var wrapped = this._wrapped;
-      method.apply(wrapped, arguments);
-      var length = wrapped.length;
-      if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0];
-      return result(wrapped, this._chain);
-    };
-  });
-
-  // Add all accessor Array functions to the wrapper.
-  each(['concat', 'join', 'slice'], function(name) {
-    var method = ArrayProto[name];
-    wrapper.prototype[name] = function() {
-      return result(method.apply(this._wrapped, arguments), this._chain);
-    };
-  });
-
-  // Start chaining a wrapped Underscore object.
-  wrapper.prototype.chain = function() {
-    this._chain = true;
-    return this;
-  };
-
-  // Extracts the result from a wrapped and chained object.
-  wrapper.prototype.value = function() {
-    return this._wrapped;
-  };
-
-}).call(this);
diff --git a/content/docs/latest/_static/underscore.js b/content/docs/latest/_static/underscore.js
index 5b55f32..166240e 100644
--- a/content/docs/latest/_static/underscore.js
+++ b/content/docs/latest/_static/underscore.js
@@ -1,31 +1,6 @@
-// Underscore.js 1.3.1
-// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
-// Underscore is freely distributable under the MIT license.
-// Portions of Underscore are inspired or borrowed from Prototype,
-// Oliver Steele's Functional, and John Resig's Micro-Templating.
-// For all details and documentation:
-// http://documentcloud.github.com/underscore
-(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object [...]
-c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h i [...]
-h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var [...]
-b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.l [...]
-null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.f [...]
-function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g, [...]
-e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d) [...]
-function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a [...]
-return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedInd [...]
-c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length- [...]
-b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];retur [...]
-return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=func [...]
-d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d; [...]
-var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.mem [...]
-c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c)) [...]
-a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)] [...]
-b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function( [...]
-1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){ret [...]
-b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a) [...]
-b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin [...]
-function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return [...]
-u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=func [...]
-function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.ch [...]
-true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
+!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n=n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){
+//     Underscore.js 1.12.0
+//     https://underscorejs.org
+//     (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+//     Underscore may be freely distributed under the MIT license.
+var n="1.12.0",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,g=isFinite,d=!{toString:null}.propertyIsEnumerable("toStrin [...]
\ No newline at end of file
diff --git a/content/docs/latest/applications/index.html b/content/docs/latest/applications/index.html
index 2c329bb..d1b88d0 100644
--- a/content/docs/latest/applications/index.html
+++ b/content/docs/latest/applications/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Applications &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../_static/jquery.js"></script>
         <script src="../_static/underscore.js"></script>
         <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -175,6 +174,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -186,7 +187,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../_sources/applications/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -230,29 +231,21 @@ on how to create a given application.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="nsh/index.html" class="btn btn-neutral float-right" title="NuttShell (NSH)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../components/paging.html" class="btn btn-neutral float-left" title="On-Demand Paging" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="nsh/index.html" class="btn btn-neutral float-right" title="NuttShell (NSH)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../components/paging.html" class="btn btn-neutral float-left" title="On-Demand Paging" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/builtin.html b/content/docs/latest/applications/nsh/builtin.html
index 4eba94b..5efe23f 100644
--- a/content/docs/latest/applications/nsh/builtin.html
+++ b/content/docs/latest/applications/nsh/builtin.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>NSH “Built-In” Applications &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -188,6 +187,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -203,7 +204,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/builtin.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -429,29 +430,21 @@ ampersand (&amp;) after the NSH command.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="installation.html" class="btn btn-neutral float-right" title="Customizing NSH Initialization" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="customizing.html" class="btn btn-neutral float-left" title="Customizing the NuttShell" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="installation.html" class="btn btn-neutral float-right" title="Customizing NSH Initialization" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="customizing.html" class="btn btn-neutral float-left" title="Customizing the NuttShell" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/commands.html b/content/docs/latest/applications/nsh/commands.html
index acb81cd..aced9f0 100644
--- a/content/docs/latest/applications/nsh/commands.html
+++ b/content/docs/latest/applications/nsh/commands.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Commands &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -266,6 +265,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -281,7 +282,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/commands.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -2013,29 +2014,21 @@ nsh&gt;
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="config.html" class="btn btn-neutral float-right" title="Configuration Settings" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="nsh.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="config.html" class="btn btn-neutral float-right" title="Configuration Settings" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="nsh.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/config.html b/content/docs/latest/applications/nsh/config.html
index ddb1643..e799933 100644
--- a/content/docs/latest/applications/nsh/config.html
+++ b/content/docs/latest/applications/nsh/config.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Configuration Settings &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -189,6 +188,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -204,7 +205,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/config.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -1104,29 +1105,21 @@ The default is ‘<code class="docutils literal notranslate"><span class="pre">1
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="customizing.html" class="btn btn-neutral float-right" title="Customizing the NuttShell" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="commands.html" class="btn btn-neutral float-left" title="Commands" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="customizing.html" class="btn btn-neutral float-right" title="Customizing the NuttShell" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="commands.html" class="btn btn-neutral float-left" title="Commands" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/customizing.html b/content/docs/latest/applications/nsh/customizing.html
index f1315d9..222c340 100644
--- a/content/docs/latest/applications/nsh/customizing.html
+++ b/content/docs/latest/applications/nsh/customizing.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Customizing the NuttShell &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -195,6 +194,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -210,7 +211,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/customizing.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -419,29 +420,21 @@ at the other commands in <code class="docutils literal notranslate"><span class=
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="builtin.html" class="btn btn-neutral float-right" title="NSH “Built-In” Applications" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="config.html" class="btn btn-neutral float-left" title="Configuration Settings" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="builtin.html" class="btn btn-neutral float-right" title="NSH “Built-In” Applications" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="config.html" class="btn btn-neutral float-left" title="Configuration Settings" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/index.html b/content/docs/latest/applications/nsh/index.html
index cc08d05..7efa6ea 100644
--- a/content/docs/latest/applications/nsh/index.html
+++ b/content/docs/latest/applications/nsh/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>NuttShell (NSH) &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -184,6 +183,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -197,7 +198,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -345,29 +346,21 @@
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="nsh.html" class="btn btn-neutral float-right" title="Overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../index.html" class="btn btn-neutral float-left" title="Applications" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="nsh.html" class="btn btn-neutral float-right" title="Overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../index.html" class="btn btn-neutral float-left" title="Applications" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/installation.html b/content/docs/latest/applications/nsh/installation.html
index e5cd2ba..f08d48b 100644
--- a/content/docs/latest/applications/nsh/installation.html
+++ b/content/docs/latest/applications/nsh/installation.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Customizing NSH Initialization &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -187,6 +186,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -202,7 +203,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/installation.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -408,29 +409,21 @@ image.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="login.html" class="btn btn-neutral float-right" title="Shell Login" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="builtin.html" class="btn btn-neutral float-left" title="NSH “Built-In” Applications" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="login.html" class="btn btn-neutral float-right" title="Shell Login" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="builtin.html" class="btn btn-neutral float-left" title="NSH “Built-In” Applications" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/login.html b/content/docs/latest/applications/nsh/login.html
index 721fd83..69c133e 100644
--- a/content/docs/latest/applications/nsh/login.html
+++ b/content/docs/latest/applications/nsh/login.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Shell Login &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -190,6 +189,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -205,7 +206,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/login.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -493,29 +494,21 @@ modifying the ROMFS file system.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="../../reference/index.html" class="btn btn-neutral float-right" title="API Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="installation.html" class="btn btn-neutral float-left" title="Customizing NSH Initialization" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="../../reference/index.html" class="btn btn-neutral float-right" title="API Reference" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="installation.html" class="btn btn-neutral float-left" title="Customizing NSH Initialization" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/applications/nsh/nsh.html b/content/docs/latest/applications/nsh/nsh.html
index e208f54..bf9119b 100644
--- a/content/docs/latest/applications/nsh/nsh.html
+++ b/content/docs/latest/applications/nsh/nsh.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Overview &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -194,6 +193,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -209,7 +210,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/applications/nsh/nsh.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -636,29 +637,21 @@ information about the NSH start-up script and how to modify it.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="commands.html" class="btn btn-neutral float-right" title="Commands" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="index.html" class="btn btn-neutral float-left" title="NuttShell (NSH)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="commands.html" class="btn btn-neutral float-right" title="Commands" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="index.html" class="btn btn-neutral float-left" title="NuttShell (NSH)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/binfmt.html b/content/docs/latest/components/binfmt.html
index eed30bd..579114a 100644
--- a/content/docs/latest/components/binfmt.html
+++ b/content/docs/latest/components/binfmt.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Binary Loader &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../_static/jquery.js"></script>
         <script src="../_static/underscore.js"></script>
         <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -215,7 +216,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../_sources/components/binfmt.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -287,7 +288,7 @@ header file are listed below.</p>
 pointer to a write-able instance of <a class="reference internal" href="#c.binfmt_s" title="binfmt_s"><code class="xref c c-struct docutils literal notranslate"><span class="pre">binfmt_s</span></code></a>.</p>
 <dl class="c struct">
 <dt id="c.binfmt_s">
-<em class="property">struct </em><code class="sig-name descname">binfmt_s</code><a class="headerlink" href="#c.binfmt_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">binfmt_s</span></code><a class="headerlink" href="#c.binfmt_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">binfmt_s</span>
 <span class="p">{</span>
   <span class="n">FAR</span> <span class="k">struct</span> <span class="nc">binfmt_s</span> <span class="o">*</span><span class="n">next</span><span class="p">;</span>             <span class="cm">/* Supports a singly-linked list */</span>
@@ -303,7 +304,7 @@ loaded.</p>
 
 <dl class="c struct">
 <dt id="c.binary_s">
-<em class="property">struct </em><code class="sig-name descname">binary_s</code><a class="headerlink" href="#c.binary_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">binary_s</span></code><a class="headerlink" href="#c.binary_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The type <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">binary_s</span></code> is use both to (1) describe the binary
 object to be loaded, and if successfully loaded, (2) to provide
 information about where and how the binary object was loaded. That
@@ -371,7 +372,7 @@ of one C++ constructor or destructor:</p>
 <h4>Binary format management<a class="headerlink" href="#binary-format-management" title="Permalink to this headline">¶</a></h4>
 <dl class="c function">
 <dt id="c.register_binfmt">
-int <code class="sig-name descname">register_binfmt</code><span class="sig-paren">(</span>FAR <em class="property">struct</em> <a class="reference internal" href="#c.binfmt_s" title="binfmt_s">binfmt_s</a> *<em>binfmt</em><span class="sig-paren">)</span><a class="headerlink" href="#c.register_binfmt" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">register_binfmt</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.binfmt_s" title="binfmt_s"><span class="pre">binfmt_s</span></a> <span class="pre">*</span><em><span class="pre">binfmt</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.register_binfmt" title="Permalin [...]
 <dd><p>Register a loader for a binary format.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -384,7 +385,7 @@ failure.</p>
 
 <dl class="c function">
 <dt id="c.unregister_binfmt">
-int <code class="sig-name descname">unregister_binfmt</code><span class="sig-paren">(</span>FAR <em class="property">struct</em> <a class="reference internal" href="#c.binfmt_s" title="binfmt_s">binfmt_s</a> *<em>binfmt</em><span class="sig-paren">)</span><a class="headerlink" href="#c.unregister_binfmt" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">unregister_binfmt</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.binfmt_s" title="binfmt_s"><span class="pre">binfmt_s</span></a> <span class="pre">*</span><em><span class="pre">binfmt</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.unregister_binfmt" title="Perm [...]
 <dd><p>Register a loader for a binary format.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -400,7 +401,7 @@ failure.</p>
 <h4>Basic module management<a class="headerlink" href="#basic-module-management" title="Permalink to this headline">¶</a></h4>
 <dl class="c function">
 <dt id="c.load_module">
-int <code class="sig-name descname">load_module</code><span class="sig-paren">(</span>FAR <em class="property">struct</em> <a class="reference internal" href="#c.binary_s" title="binary_s">binary_s</a> *<em>bin</em><span class="sig-paren">)</span><a class="headerlink" href="#c.load_module" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">load_module</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.binary_s" title="binary_s"><span class="pre">binary_s</span></a> <span class="pre">*</span><em><span class="pre">bin</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.load_module" title="Permalink to this d [...]
 <dd><p>Load a module into memory, bind it to an exported symbol take,
 and prep the module for execution.</p>
 <dl class="field-list simple">
@@ -424,7 +425,7 @@ is returned on success and a negated <code class="docutils literal notranslate">
 
 <dl class="c function">
 <dt id="c.unload_module">
-int <code class="sig-name descname">unload_module</code><span class="sig-paren">(</span>FAR <em class="property">struct</em> <a class="reference internal" href="#c.binary_s" title="binary_s">binary_s</a> *<em>bin</em><span class="sig-paren">)</span><a class="headerlink" href="#c.unload_module" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">unload_module</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.binary_s" title="binary_s"><span class="pre">binary_s</span></a> <span class="pre">*</span><em><span class="pre">bin</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.unload_module" title="Permalink to th [...]
 <dd><p>Unload a (non-executing) module from memory. If the module has been started
 (via <a class="reference internal" href="#c.exec_module" title="exec_module"><code class="xref c c-func docutils literal notranslate"><span class="pre">exec_module()</span></code></a>) and has not exited, calling this will be fatal.</p>
 <p>However, this function must be called after the module exist. How this is
@@ -439,7 +440,7 @@ is returned on success and a negated <code class="docutils literal notranslate">
 
 <dl class="c function">
 <dt id="c.exec_module">
-int <code class="sig-name descname">exec_module</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.binary_s" title="binary_s">binary_s</a> *<em>bin</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.exec_module" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">exec_module</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.binary_s" title="binary_s"><span class="pre">binary_s</span></a> <span class="pre">*</span><em><span class="pre">bin</span></em><span class="sig-paren">)</span><span class=" [...]
 <dd><p>Execute a module that has been loaded into memory by <a class="reference internal" href="#c.load_module" title="load_module"><code class="xref c c-func docutils literal notranslate"><span class="pre">load_module()</span></code></a>.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -459,7 +460,7 @@ is returned on success and a negated <code class="docutils literal notranslate">
 <h4><code class="docutils literal notranslate"><span class="pre">PATH</span></code> traversal logic<a class="headerlink" href="#path-traversal-logic" title="Permalink to this headline">¶</a></h4>
 <dl class="c function">
 <dt id="c.envpath_init">
-ENVPATH_HANDLE <code class="sig-name descname">envpath_init</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span>;<a class="headerlink" href="#c.envpath_init" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">ENVPATH_HANDLE</span> <code class="sig-name descname"><span class="pre">envpath_init</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.envpath_init" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Initialize for the traversal of each value in the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable. The
 usage is sequence is as follows:</p>
 <ol class="arabic simple">
@@ -484,7 +485,7 @@ associated with the <code class="docutils literal notranslate"><span class="pre"
 
 <dl class="c function">
 <dt id="c.envpath_next">
-FAR char *<code class="sig-name descname">envpath_next</code><span class="sig-paren">(</span>ENVPATH_HANDLE <em>handle</em>, FAR <em class="property">const</em> char *<em>relpath</em><span class="sig-paren">)</span><a class="headerlink" href="#c.envpath_next" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">FAR</span> <span class="pre">char</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">envpath_next</span></code><span class="sig-paren">(</span><span class="pre">ENVPATH_HANDLE</span> <em><span class="pre">handle</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><em><span class="pre">relpath</span></em><span class="sig-paren">)</span><a [...]
 <dd><p>Traverse all possible values in the PATH variable in attempt to find the
 full path to an executable file when only a relative path is provided.</p>
 <dl class="field-list simple">
@@ -513,7 +514,7 @@ In this case, there is no point in calling <a class="reference internal" href="#
 
 <dl class="c function">
 <dt id="c.envpath_release">
-void <code class="sig-name descname">envpath_release</code><span class="sig-paren">(</span>ENVPATH_HANDLE <em>handle</em><span class="sig-paren">)</span><a class="headerlink" href="#c.envpath_release" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">envpath_release</span></code><span class="sig-paren">(</span><span class="pre">ENVPATH_HANDLE</span> <em><span class="pre">handle</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.envpath_release" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>Release all resources set aside by envpath_init when the
@@ -559,7 +560,7 @@ header file are listed below.</p>
 <h3>Symbol Table Data Structures<a class="headerlink" href="#symbol-table-data-structures" title="Permalink to this headline">¶</a></h3>
 <dl class="c struct">
 <dt id="c.symbtab_s">
-<em class="property">struct </em><code class="sig-name descname">symbtab_s</code><a class="headerlink" href="#c.symbtab_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">symbtab_s</span></code><a class="headerlink" href="#c.symbtab_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Describes one entry in the symbol table.</p>
 <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">symtab_s</span>
 <span class="p">{</span>
@@ -586,7 +587,7 @@ fixed size arrays completely defined at compilation or link time.</p></li>
 <h3>Symbol Table Function Interfaces<a class="headerlink" href="#symbol-table-function-interfaces" title="Permalink to this headline">¶</a></h3>
 <dl class="c function">
 <dt id="c.symtab_findbyname">
-FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<code class="sig-name descname">symtab_findbyname</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<em>symtab</em>, FAR <em class="property">const</em> char *<em>name</em>, int <em>nsyms</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.symtab_findbyname" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <span class="pre">symtab_s</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">symtab_findbyname</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <span class="pre">symtab_s</spa [...]
 <dd><p>Find the symbol in the symbol table with the matching name.
 The implementation will be linear with respect to <code class="docutils literal notranslate"><span class="pre">nsyms</span></code> if
 <code class="docutils literal notranslate"><span class="pre">CONFIG_SYMTAB_ORDEREDBYNAME</span></code> is not selected, and logarithmic
@@ -601,7 +602,7 @@ the matching name is found; NULL is returned if the entry is not found.</p>
 
 <dl class="c function">
 <dt id="c.symtab_findbyvalue">
-FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<code class="sig-name descname">symtab_findbyvalue</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<em>symtab</em>, FAR void *<em>value</em>, int <em>nsyms</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.symtab_findbyvalue" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <span class="pre">symtab_s</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">symtab_findbyvalue</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <span class="pre">symtab_s</sp [...]
 <dd><p>Find the symbol in the symbol table whose value closest
 (but not greater than), the provided value. This version assumes
 that table is not ordered with respect to symbol value and, hence,
@@ -637,29 +638,21 @@ binary format.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="drivers/index.html" class="btn btn-neutral float-right" title="Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="power.html" class="btn btn-neutral float-left" title="Power Management" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="drivers/index.html" class="btn btn-neutral float-right" title="Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="power.html" class="btn btn-neutral float-left" title="Power Management" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/block/index.html b/content/docs/latest/components/drivers/block/index.html
index 0ce3f09..2c27566 100644
--- a/content/docs/latest/components/drivers/block/index.html
+++ b/content/docs/latest/components/drivers/block/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Block Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -188,6 +187,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -203,7 +204,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/block/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -256,29 +257,21 @@ Block-to-Character (BCH) conversion logic in <code class="docutils literal notra
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="../special/index.html" class="btn btn-neutral float-right" title="Specialized Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../character/foc.html" class="btn btn-neutral float-left" title="FOC Driver Interface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="../special/index.html" class="btn btn-neutral float-right" title="Specialized Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../character/foc.html" class="btn btn-neutral float-left" title="FOC Driver Interface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/analog.html b/content/docs/latest/components/drivers/character/analog.html
index 5a2a4b1..8e3f9f3 100644
--- a/content/docs/latest/components/drivers/character/analog.html
+++ b/content/docs/latest/components/drivers/character/analog.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Analog (ADC/DAC) Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -206,6 +205,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -223,7 +224,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/analog.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -303,29 +304,21 @@ character driver.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="pwm.html" class="btn btn-neutral float-right" title="PWM Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="touchscreen.html" class="btn btn-neutral float-left" title="Touchscreen Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="pwm.html" class="btn btn-neutral float-right" title="PWM Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="touchscreen.html" class="btn btn-neutral float-left" title="Touchscreen Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/can.html b/content/docs/latest/components/drivers/character/can.html
index e25f7f8..63cd457 100644
--- a/content/docs/latest/components/drivers/character/can.html
+++ b/content/docs/latest/components/drivers/character/can.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>CAN Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/can.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -274,29 +275,21 @@ example about how you should think of the CAN read operation:</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="quadrature.html" class="btn btn-neutral float-right" title="Quadrature Encoder Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="pwm.html" class="btn btn-neutral float-left" title="PWM Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="quadrature.html" class="btn btn-neutral float-right" title="Quadrature Encoder Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="pwm.html" class="btn btn-neutral float-left" title="PWM Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/foc.html b/content/docs/latest/components/drivers/character/foc.html
index 374b4d2..cb8de0a 100644
--- a/content/docs/latest/components/drivers/character/foc.html
+++ b/content/docs/latest/components/drivers/character/foc.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>FOC Driver Interface &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/foc.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -286,29 +287,21 @@ arg: <code class="docutils literal notranslate"><span class="pre">struct</span>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="../block/index.html" class="btn btn-neutral float-right" title="Block Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="note.html" class="btn btn-neutral float-left" title="Note Driver Interface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="../block/index.html" class="btn btn-neutral float-right" title="Block Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="note.html" class="btn btn-neutral float-left" title="Note Driver Interface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/index.html b/content/docs/latest/components/drivers/character/index.html
index abeb98a..f5d1124 100644
--- a/content/docs/latest/components/drivers/character/index.html
+++ b/content/docs/latest/components/drivers/character/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Character Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -217,7 +218,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -332,29 +333,21 @@ documented in the following paragraphs.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="serial.html" class="btn btn-neutral float-right" title="Serial Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../index.html" class="btn btn-neutral float-left" title="Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="serial.html" class="btn btn-neutral float-right" title="Serial Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../index.html" class="btn btn-neutral float-left" title="Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/keypad.html b/content/docs/latest/components/drivers/character/keypad.html
index cd7cc8d..a7a50ae 100644
--- a/content/docs/latest/components/drivers/character/keypad.html
+++ b/content/docs/latest/components/drivers/character/keypad.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Keyboard/Keypad Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/keypad.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -367,29 +368,21 @@ these interfaces. These stream interfaces are defined in
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="note.html" class="btn btn-neutral float-right" title="Note Driver Interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="watchdog.html" class="btn btn-neutral float-left" title="Watchdog Timer Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="note.html" class="btn btn-neutral float-right" title="Note Driver Interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="watchdog.html" class="btn btn-neutral float-left" title="Watchdog Timer Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/note.html b/content/docs/latest/components/drivers/character/note.html
index 4735d03..a0d16b2 100644
--- a/content/docs/latest/components/drivers/character/note.html
+++ b/content/docs/latest/components/drivers/character/note.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Note Driver Interface &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -207,6 +206,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -224,7 +225,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/note.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -262,7 +263,7 @@ The device has only ioctl function to control the filter.</p>
 <h3><code class="docutils literal notranslate"><span class="pre">/dev/notectl</span></code> Data Structures<a class="headerlink" href="#dev-notectl-data-structures" title="Permalink to this headline">¶</a></h3>
 <dl class="c struct">
 <dt id="c.note_filter_mode_s">
-<em class="property">struct </em><code class="sig-name descname">note_filter_mode_s</code><a class="headerlink" href="#c.note_filter_mode_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">note_filter_mode_s</span></code><a class="headerlink" href="#c.note_filter_mode_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">note_filter_mode_s</span>
 <span class="p">{</span>
   <span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">flag</span><span class="p">;</span>          <span class="cm">/* Filter mode flag */</span>
@@ -276,19 +277,19 @@ The device has only ioctl function to control the filter.</p>
 <li><p><code class="docutils literal notranslate"><span class="pre">flag</span></code> : Filter mode flag. The bitwise OR of the following defines are available.</p>
 <dl class="c macro">
 <dt id="c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_ENABLE">
-<code class="sig-name descname">NOTE_FILTER_MODE_FLAG_ENABLE</code><a class="headerlink" href="#c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_ENABLE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_MODE_FLAG_ENABLE</span></code><a class="headerlink" href="#c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_ENABLE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Enable instrumentation</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_SYSCALL">
-<code class="sig-name descname">NOTE_FILTER_MODE_FLAG_SYSCALL</code><a class="headerlink" href="#c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_SYSCALL" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_MODE_FLAG_SYSCALL</span></code><a class="headerlink" href="#c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_SYSCALL" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Enable syscall instrumentation</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_IRQ">
-<code class="sig-name descname">NOTE_FILTER_MODE_FLAG_IRQ</code><a class="headerlink" href="#c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_IRQ" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_MODE_FLAG_IRQ</span></code><a class="headerlink" href="#c.note_filter_mode_s.NOTE_FILTER_MODE_FLAG_IRQ" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Enable IRQ instrumentaiton</p>
 </dd></dl>
 
@@ -299,7 +300,7 @@ The device has only ioctl function to control the filter.</p>
 
 <dl class="c struct">
 <dt id="c.note_filter_syscall_s">
-<em class="property">struct </em><code class="sig-name descname">note_filter_syscall_s</code><a class="headerlink" href="#c.note_filter_syscall_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">note_filter_syscall_s</span></code><a class="headerlink" href="#c.note_filter_syscall_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">note_filter_syscall_s</span>
 <span class="p">{</span>
   <span class="kt">uint8_t</span> <span class="n">syscall_mask</span><span class="p">[];</span>
@@ -311,25 +312,25 @@ The device has only ioctl function to control the filter.</p>
 The following helper macros are available:</p>
 <dl class="c macro">
 <dt id="c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_SET">
-<code class="sig-name descname">NOTE_FILTER_SYSCALLMASK_SET</code><span class="sig-paren">(</span><em>nr</em>, <em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_SET" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_SYSCALLMASK_SET</span></code><span class="sig-paren">(</span><em><span class="pre">nr</span></em>, <em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_SET" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set syscall number <cite>nr</cite> as masked. <cite>s</cite> specifies the variable of <cite>struct note_filter_syscall_s</cite></p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_CLR">
-<code class="sig-name descname">NOTE_FILTER_SYSCALLMASK_CLR</code><span class="sig-paren">(</span><em>nr</em>, <em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_CLR" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_SYSCALLMASK_CLR</span></code><span class="sig-paren">(</span><em><span class="pre">nr</span></em>, <em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_CLR" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set syscall number <cite>nr</cite> as unmasked.</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_ISSET">
-<code class="sig-name descname">NOTE_FILTER_SYSCALLMASK_ISSET</code><span class="sig-paren">(</span><em>nr</em>, <em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_ISSET" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_SYSCALLMASK_ISSET</span></code><span class="sig-paren">(</span><em><span class="pre">nr</span></em>, <em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_ISSET" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Check whether syscall number <cite>nr</cite> is masked or not. True if masked.</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_ZERO">
-<code class="sig-name descname">NOTE_FILTER_SYSCALLMASK_ZERO</code><span class="sig-paren">(</span><em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_ZERO" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_SYSCALLMASK_ZERO</span></code><span class="sig-paren">(</span><em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_syscall_s.NOTE_FILTER_SYSCALLMASK_ZERO" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Clear all masks.</p>
 </dd></dl>
 
@@ -339,7 +340,7 @@ The following helper macros are available:</p>
 
 <dl class="c struct">
 <dt id="c.note_filter_irq_s">
-<em class="property">struct </em><code class="sig-name descname">note_filter_irq_s</code><a class="headerlink" href="#c.note_filter_irq_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">note_filter_irq_s</span></code><a class="headerlink" href="#c.note_filter_irq_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">note_filter_irq_s</span>
 <span class="p">{</span>
   <span class="kt">uint8_t</span> <span class="n">irq_mask</span><span class="p">[];</span>
@@ -351,25 +352,25 @@ The following helper macros are available:</p>
 The following helper macros are available:</p>
 <dl class="c macro">
 <dt id="c.note_filter_irq_s.NOTE_FILTER_IRQMASK_SET">
-<code class="sig-name descname">NOTE_FILTER_IRQMASK_SET</code><span class="sig-paren">(</span><em>nr</em>, <em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_SET" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_IRQMASK_SET</span></code><span class="sig-paren">(</span><em><span class="pre">nr</span></em>, <em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_SET" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set IRQ number <cite>nr</cite> as masked. <cite>s</cite> specifies the variable of <cite>struct note_filter_irq_s</cite></p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_irq_s.NOTE_FILTER_IRQMASK_CLR">
-<code class="sig-name descname">NOTE_FILTER_IRQMASK_CLR</code><span class="sig-paren">(</span><em>nr</em>, <em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_CLR" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_IRQMASK_CLR</span></code><span class="sig-paren">(</span><em><span class="pre">nr</span></em>, <em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_CLR" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set IRQ number <cite>nr</cite> as unmasked.</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_irq_s.NOTE_FILTER_IRQMASK_ISSET">
-<code class="sig-name descname">NOTE_FILTER_IRQMASK_ISSET</code><span class="sig-paren">(</span><em>nr</em>, <em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_ISSET" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_IRQMASK_ISSET</span></code><span class="sig-paren">(</span><em><span class="pre">nr</span></em>, <em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_ISSET" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Check whether IRQ number <cite>nr</cite> is masked or not. True if masked.</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.note_filter_irq_s.NOTE_FILTER_IRQMASK_ZERO">
-<code class="sig-name descname">NOTE_FILTER_IRQMASK_ZERO</code><span class="sig-paren">(</span><em>s</em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_ZERO" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTE_FILTER_IRQMASK_ZERO</span></code><span class="sig-paren">(</span><em><span class="pre">s</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.note_filter_irq_s.NOTE_FILTER_IRQMASK_ZERO" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Clear all masks.</p>
 </dd></dl>
 
@@ -382,7 +383,7 @@ The following helper macros are available:</p>
 <h3><code class="docutils literal notranslate"><span class="pre">/dev/notectl</span></code> Ioctls<a class="headerlink" href="#dev-notectl-ioctls" title="Permalink to this headline">¶</a></h3>
 <dl class="c macro">
 <dt id="c.NOTECTL_GETMODE">
-<code class="sig-name descname">NOTECTL_GETMODE</code><a class="headerlink" href="#c.NOTECTL_GETMODE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTECTL_GETMODE</span></code><a class="headerlink" href="#c.NOTECTL_GETMODE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Get note filter mode</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -397,7 +398,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTECTL_SETMODE">
-<code class="sig-name descname">NOTECTL_SETMODE</code><a class="headerlink" href="#c.NOTECTL_SETMODE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTECTL_SETMODE</span></code><a class="headerlink" href="#c.NOTECTL_SETMODE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set note filter mode</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -412,7 +413,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTECTL_GETSYSCALLFILTER">
-<code class="sig-name descname">NOTECTL_GETSYSCALLFILTER</code><a class="headerlink" href="#c.NOTECTL_GETSYSCALLFILTER" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTECTL_GETSYSCALLFILTER</span></code><a class="headerlink" href="#c.NOTECTL_GETSYSCALLFILTER" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Get syscall filter setting</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -427,7 +428,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTECTL_SETSYSCALLFILTER">
-<code class="sig-name descname">NOTECTL_SETSYSCALLFILTER</code><a class="headerlink" href="#c.NOTECTL_SETSYSCALLFILTER" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTECTL_SETSYSCALLFILTER</span></code><a class="headerlink" href="#c.NOTECTL_SETSYSCALLFILTER" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set syscall filter setting</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -442,7 +443,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTECTL_GETIRQFILTER">
-<code class="sig-name descname">NOTECTL_GETIRQFILTER</code><a class="headerlink" href="#c.NOTECTL_GETIRQFILTER" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTECTL_GETIRQFILTER</span></code><a class="headerlink" href="#c.NOTECTL_GETIRQFILTER" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Get IRQ filter setting</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -457,7 +458,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTECTL_SETIRQFILTER">
-<code class="sig-name descname">NOTECTL_SETIRQFILTER</code><a class="headerlink" href="#c.NOTECTL_SETIRQFILTER" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTECTL_SETIRQFILTER</span></code><a class="headerlink" href="#c.NOTECTL_SETIRQFILTER" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set IRQ filter setting</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -488,7 +489,7 @@ The device has read function to get the data and ioctl function to control the b
 <h3><code class="docutils literal notranslate"><span class="pre">/dev/note</span></code> Data Structures<a class="headerlink" href="#dev-note-data-structures" title="Permalink to this headline">¶</a></h3>
 <dl class="c struct">
 <dt id="c.noteram_get_taskname_s">
-<em class="property">struct </em><code class="sig-name descname">noteram_get_taskname_s</code><a class="headerlink" href="#c.noteram_get_taskname_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">noteram_get_taskname_s</span></code><a class="headerlink" href="#c.noteram_get_taskname_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">noteram_get_taskname_s</span>
 <span class="p">{</span>
   <span class="kt">pid_t</span> <span class="n">pid</span><span class="p">;</span>
@@ -507,7 +508,7 @@ The device has read function to get the data and ioctl function to control the b
 <h3><code class="docutils literal notranslate"><span class="pre">/dev/note</span></code> Ioctls<a class="headerlink" href="#dev-note-ioctls" title="Permalink to this headline">¶</a></h3>
 <dl class="c macro">
 <dt id="c.NOTERAM_CLEAR">
-<code class="sig-name descname">NOTERAM_CLEAR</code><a class="headerlink" href="#c.NOTERAM_CLEAR" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_CLEAR</span></code><a class="headerlink" href="#c.NOTERAM_CLEAR" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Clear all contents of the circular buffer</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -521,7 +522,7 @@ The device has read function to get the data and ioctl function to control the b
 
 <dl class="c macro">
 <dt id="c.NOTERAM_GETMODE">
-<code class="sig-name descname">NOTERAM_GETMODE</code><a class="headerlink" href="#c.NOTERAM_GETMODE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_GETMODE</span></code><a class="headerlink" href="#c.NOTERAM_GETMODE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Get overwrite mode</p>
 <dl class="field-list">
 <dt class="field-odd">Argument</dt>
@@ -529,19 +530,19 @@ The device has read function to get the data and ioctl function to control the b
 The overwrite mode takes one of the following values.</p>
 <dl class="c macro">
 <dt id="c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_DISABLE">
-<code class="sig-name descname">NOTERAM_MODE_OVERWRITE_DISABLE</code><a class="headerlink" href="#c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_DISABLE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_MODE_OVERWRITE_DISABLE</span></code><a class="headerlink" href="#c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_DISABLE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Overwrite mode is disabled. When the buffer is full, accepting the data will be stopped.</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_ENABLE">
-<code class="sig-name descname">NOTERAM_MODE_OVERWRITE_ENABLE</code><a class="headerlink" href="#c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_ENABLE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_MODE_OVERWRITE_ENABLE</span></code><a class="headerlink" href="#c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_ENABLE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Overwrite mode is enabled.</p>
 </dd></dl>
 
 <dl class="c macro">
 <dt id="c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_OVERFLOW">
-<code class="sig-name descname">NOTERAM_MODE_OVERWRITE_OVERFLOW</code><a class="headerlink" href="#c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_OVERFLOW" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_MODE_OVERWRITE_OVERFLOW</span></code><a class="headerlink" href="#c.NOTERAM_GETMODE.NOTERAM_MODE_OVERWRITE_OVERFLOW" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Overwrite mode is disabled and the buffer is already full.</p>
 </dd></dl>
 
@@ -555,7 +556,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTERAM_SETMODE">
-<code class="sig-name descname">NOTERAM_SETMODE</code><a class="headerlink" href="#c.NOTERAM_SETMODE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_SETMODE</span></code><a class="headerlink" href="#c.NOTERAM_SETMODE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Set overwrite mode</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -570,7 +571,7 @@ If failed, a negated <code class="docutils literal notranslate"><span class="pre
 
 <dl class="c macro">
 <dt id="c.NOTERAM_GETTASKNAME">
-<code class="sig-name descname">NOTERAM_GETTASKNAME</code><a class="headerlink" href="#c.NOTERAM_GETTASKNAME" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">NOTERAM_GETTASKNAME</span></code><a class="headerlink" href="#c.NOTERAM_GETTASKNAME" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Get task name string</p>
 <dl class="field-list simple">
 <dt class="field-odd">Argument</dt>
@@ -594,7 +595,7 @@ These are kernel APIs and application can use them only in FLAT build.</p>
 <h3>API description<a class="headerlink" href="#api-description" title="Permalink to this headline">¶</a></h3>
 <dl class="c function">
 <dt id="c.sched_note_filter_mode">
-void <code class="sig-name descname">sched_note_filter_mode</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#c.note_filter_mode_s" title="note_filter_mode_s">note_filter_mode_s</a> *<em>oldm</em>, <em class="property">struct</em> <a class="reference internal" href="#c.note_filter_mode_s" title="note_filter_mode_s">note_filter_mode_s</a> *<em>newm</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.sched_note_filte [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">sched_note_filter_mode</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.note_filter_mode_s" title="note_filter_mode_s"><span class="pre">note_filter_mode_s</span></a> <span class="pre">*</span><em><span class="pre">oldm</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal [...]
 <dd><p>Set and get note filter mode.
 (Same as <a class="reference internal" href="#c.NOTECTL_GETMODE" title="NOTECTL_GETMODE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">NOTECTL_GETMODE</span></code></a> / <a class="reference internal" href="#c.NOTECTL_SETMODE" title="NOTECTL_SETMODE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">NOTECTL_SETMODE</span></code></a> ioctls)</p>
 <dl class="field-list simple">
@@ -614,7 +615,7 @@ If 0, the filter mode is not updated.</p></li>
 
 <dl class="c function">
 <dt id="c.sched_note_filter_syscall">
-void <code class="sig-name descname">sched_note_filter_syscall</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#c.note_filter_syscall_s" title="note_filter_syscall_s">note_filter_syscall_s</a> *<em>oldf</em>, <em class="property">struct</em> <a class="reference internal" href="#c.note_filter_syscall_s" title="note_filter_syscall_s">note_filter_syscall_s</a> *<em>newf</em><span class="sig-paren">)</span>;<a class="headerlink" href [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">sched_note_filter_syscall</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.note_filter_syscall_s" title="note_filter_syscall_s"><span class="pre">note_filter_syscall_s</span></a> <span class="pre">*</span><em><span class="pre">oldf</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="refere [...]
 <dd><p>Set and get syscall filter setting.
 (Same as <a class="reference internal" href="#c.NOTECTL_GETSYSCALLFILTER" title="NOTECTL_GETSYSCALLFILTER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">NOTECTL_GETSYSCALLFILTER</span></code></a> / <a class="reference internal" href="#c.NOTECTL_SETSYSCALLFILTER" title="NOTECTL_SETSYSCALLFILTER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">NOTECTL_SETSYSCALLFILTER</span></code></a> ioctls)</p>
 <dl class="field-list simple">
@@ -634,7 +635,7 @@ If 0, the setting is not updated.</p></li>
 
 <dl class="c function">
 <dt id="c.sched_note_filter_irq">
-void <code class="sig-name descname">sched_note_filter_irq</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#c.note_filter_irq_s" title="note_filter_irq_s">note_filter_irq_s</a> *<em>oldf</em>, <em class="property">struct</em> <a class="reference internal" href="#c.note_filter_irq_s" title="note_filter_irq_s">note_filter_irq_s</a> *<em>newf</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.sched_note_filter_irq"  [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">sched_note_filter_irq</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.note_filter_irq_s" title="note_filter_irq_s"><span class="pre">note_filter_irq_s</span></a> <span class="pre">*</span><em><span class="pre">oldf</span></em>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" hr [...]
 <dd><p>Set and get IRQ filter setting.
 (Same as <a class="reference internal" href="#c.NOTECTL_GETIRQFILTER" title="NOTECTL_GETIRQFILTER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">NOTECTL_GETIRQFILTER</span></code></a> / <a class="reference internal" href="#c.NOTECTL_SETIRQFILTER" title="NOTECTL_SETIRQFILTER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">NOTECTL_SETIRQFILTER</span></code></a> ioctls)</p>
 <dl class="field-list simple">
@@ -661,29 +662,21 @@ If 0, the setting is not updated.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="foc.html" class="btn btn-neutral float-right" title="FOC Driver Interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="keypad.html" class="btn btn-neutral float-left" title="Keyboard/Keypad Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="foc.html" class="btn btn-neutral float-right" title="FOC Driver Interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="keypad.html" class="btn btn-neutral float-left" title="Keyboard/Keypad Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/pwm.html b/content/docs/latest/components/drivers/character/pwm.html
index 25f07e8..4872160 100644
--- a/content/docs/latest/components/drivers/character/pwm.html
+++ b/content/docs/latest/components/drivers/character/pwm.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>PWM Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/pwm.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -272,29 +273,21 @@ the specific <em>&lt;chip&gt;</em> PWM peripheral devices.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="can.html" class="btn btn-neutral float-right" title="CAN Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="analog.html" class="btn btn-neutral float-left" title="Analog (ADC/DAC) Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="can.html" class="btn btn-neutral float-right" title="CAN Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="analog.html" class="btn btn-neutral float-left" title="Analog (ADC/DAC) Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/quadrature.html b/content/docs/latest/components/drivers/character/quadrature.html
index fc688b5..22d8c68 100644
--- a/content/docs/latest/components/drivers/character/quadrature.html
+++ b/content/docs/latest/components/drivers/character/quadrature.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Quadrature Encoder Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/quadrature.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -268,29 +269,21 @@ specific <em>&lt;chip&gt;</em> Quadrature Encoder peripheral devices.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="timer.html" class="btn btn-neutral float-right" title="Timer Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="can.html" class="btn btn-neutral float-left" title="CAN Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="timer.html" class="btn btn-neutral float-right" title="Timer Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="can.html" class="btn btn-neutral float-left" title="CAN Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/rtc.html b/content/docs/latest/components/drivers/character/rtc.html
index e0b3102..131605c 100644
--- a/content/docs/latest/components/drivers/character/rtc.html
+++ b/content/docs/latest/components/drivers/character/rtc.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>RTC Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/rtc.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -265,29 +266,21 @@ the specific <em>&lt;chip&gt;</em> RTC peripheral devices.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="watchdog.html" class="btn btn-neutral float-right" title="Watchdog Timer Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="timer.html" class="btn btn-neutral float-left" title="Timer Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="watchdog.html" class="btn btn-neutral float-right" title="Watchdog Timer Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="timer.html" class="btn btn-neutral float-left" title="Timer Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/serial.html b/content/docs/latest/components/drivers/character/serial.html
index 7b9ebd4..ba57f48 100644
--- a/content/docs/latest/components/drivers/character/serial.html
+++ b/content/docs/latest/components/drivers/character/serial.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Serial Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/serial.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -264,29 +265,21 @@ character drivers.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="touchscreen.html" class="btn btn-neutral float-right" title="Touchscreen Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="index.html" class="btn btn-neutral float-left" title="Character Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="touchscreen.html" class="btn btn-neutral float-right" title="Touchscreen Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="index.html" class="btn btn-neutral float-left" title="Character Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/timer.html b/content/docs/latest/components/drivers/character/timer.html
index d0bc23d..302e76c 100644
--- a/content/docs/latest/components/drivers/character/timer.html
+++ b/content/docs/latest/components/drivers/character/timer.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Timer Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -207,6 +206,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -224,7 +225,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/timer.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -257,7 +258,7 @@ directory for the specific processor <em>&lt;architecture&gt;</em> and for
 the specific <em>&lt;chip&gt;</em> timer peripheral devices.</p></li>
 </ul>
 <p>There are two ways to enable Timer Support along with the Timer Example. The first is faster and simpler. Just run the following command to use a ready config file with timer support and example included. You need to check if there’s a timer config file for your specific chip. You may check it at the specific board’s path: <code class="docutils literal notranslate"><span class="pre">/boards/&lt;arch&gt;/&lt;chip&gt;/&lt;variant&gt;/config</span></code>.</p>
-<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ./tools/configure.sh &lt;variant&gt;:timer
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>./tools/configure.sh &lt;variant&gt;:timer
 </pre></div>
 </div>
 <p>And the second way is creating your own config file. To do so, follow the next instructions.</p>
@@ -327,7 +328,7 @@ the specific <em>&lt;chip&gt;</em> timer peripheral devices.</p></li>
 These <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">timer_ops_s</span></code> keeps pointers to the implementation of each operation. Following is the struct.</p>
 <dl class="c struct">
 <dt id="c.timer_ops_s">
-<em class="property">struct </em><code class="sig-name descname">timer_ops_s</code><a class="headerlink" href="#c.timer_ops_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">timer_ops_s</span></code><a class="headerlink" href="#c.timer_ops_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">timer_ops_s</span>
@@ -390,13 +391,13 @@ These <code class="docutils literal notranslate"><span class="pre">struct</span>
 </div>
 <dl class="c macro">
 <dt id="c.TCIOC_START">
-<code class="sig-name descname">TCIOC_START</code><a class="headerlink" href="#c.TCIOC_START" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">TCIOC_START</span></code><a class="headerlink" href="#c.TCIOC_START" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The <code class="docutils literal notranslate"><span class="pre">TCIOC_START</span></code> command calls the <code class="docutils literal notranslate"><span class="pre">start</span></code> operation, which is described below.</p>
 <dl class="c function">
 <dt id="c.start">
-int <code class="sig-name descname">start</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.start" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">start</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#c.start" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The start operation configures the timer, enables the interrupt if <code class="docutils literal notranslate"><span class="pre">TCIOC_NOTIFICATION</span></code> has already been called and finally starts the timer.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -421,13 +422,13 @@ int <code class="sig-name descname">start</code><span class="sig-paren">(</span>
 </div>
 <dl class="c macro">
 <dt id="c.TCIOC_STOP">
-<code class="sig-name descname">TCIOC_STOP</code><a class="headerlink" href="#c.TCIOC_STOP" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">TCIOC_STOP</span></code><a class="headerlink" href="#c.TCIOC_STOP" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The <code class="docutils literal notranslate"><span class="pre">TCIOC_STOP</span></code> command calls the <code class="docutils literal notranslate"><span class="pre">stop</span></code> operation, which is described below.</p>
 <dl class="c function">
 <dt id="c.stop">
-int <code class="sig-name descname">stop</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.stop" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">stop</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#c.stop" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The stop operation stops the timer and disables the interrupt.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Returns</dt>
@@ -452,13 +453,13 @@ int <code class="sig-name descname">stop</code><span class="sig-paren">(</span>v
 </div>
 <dl class="c macro">
 <dt id="c.TCIOC_GETSTATUS">
-<code class="sig-name descname">TCIOC_GETSTATUS</code><a class="headerlink" href="#c.TCIOC_GETSTATUS" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">TCIOC_GETSTATUS</span></code><a class="headerlink" href="#c.TCIOC_GETSTATUS" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The <code class="docutils literal notranslate"><span class="pre">TCIOC_GETSTATUS</span></code> command calls the <code class="docutils literal notranslate"><span class="pre">getstatus</span></code> operation, which is described below.</p>
 <dl class="c function">
 <dt id="c.getstatus">
-int <code class="sig-name descname">getstatus</code><span class="sig-paren">(</span>FAR <em class="property">struct</em> timer_status_s *<em>status</em><span class="sig-paren">)</span><a class="headerlink" href="#c.getstatus" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">getstatus</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <span class="pre">timer_status_s</span> <span class="pre">*</span><em><span class="pre">status</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.getstatus" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The getstatus operation gathers the timer’s current information.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -492,13 +493,13 @@ int <code class="sig-name descname">getstatus</code><span class="sig-paren">(</s
 </div>
 <dl class="c macro">
 <dt id="c.TCIOC_SETTIMEOUT">
-<code class="sig-name descname">TCIOC_SETTIMEOUT</code><a class="headerlink" href="#c.TCIOC_SETTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">TCIOC_SETTIMEOUT</span></code><a class="headerlink" href="#c.TCIOC_SETTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The <code class="docutils literal notranslate"><span class="pre">TCIOC_SETTIMEOUT</span></code> command calls the <code class="docutils literal notranslate"><span class="pre">settimeout</span></code> operation, which is described below.</p>
 <dl class="c function">
 <dt id="c.settimeout">
-int <code class="sig-name descname">settimeout</code><span class="sig-paren">(</span>uint32_t <em>timeout</em><span class="sig-paren">)</span><a class="headerlink" href="#c.settimeout" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">settimeout</span></code><span class="sig-paren">(</span><span class="pre">uint32_t</span> <em><span class="pre">timeout</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.settimeout" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The getstatus operation sets a timeout interval to trigger the alarm and then trigger an interrupt. It defines the timer interval in which the handler will be called.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -529,7 +530,7 @@ int <code class="sig-name descname">settimeout</code><span class="sig-paren">(</
 </div>
 <dl class="c macro">
 <dt id="c.TCIOC_NOTIFICATION">
-<code class="sig-name descname">TCIOC_NOTIFICATION</code><a class="headerlink" href="#c.TCIOC_NOTIFICATION" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">TCIOC_NOTIFICATION</span></code><a class="headerlink" href="#c.TCIOC_NOTIFICATION" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The <code class="docutils literal notranslate"><span class="pre">TCIOC_NOTIFICATION</span></code> is used to configure the timer callback to notify the application via a signal when the timer expires. This command calls the <code class="docutils literal notranslate"><span class="pre">setcallback</span></code> operation. Which will not be described here, since the application does not set a callback directly. Instead, the user should configure a signal handler to catch notifications, a [...]
@@ -553,13 +554,13 @@ int <code class="sig-name descname">settimeout</code><span class="sig-paren">(</
 </div>
 <dl class="c macro">
 <dt id="c.TCIOC_MAXTIMEOUT">
-<code class="sig-name descname">TCIOC_MAXTIMEOUT</code><a class="headerlink" href="#c.TCIOC_MAXTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">TCIOC_MAXTIMEOUT</span></code><a class="headerlink" href="#c.TCIOC_MAXTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The <code class="docutils literal notranslate"><span class="pre">TCIOC_MAXTIMEOUT</span></code> command calls the <code class="docutils literal notranslate"><span class="pre">maxtimeout</span></code> operation, which is described below.</p>
 <dl class="c function">
 <dt id="c.maxtimeout">
-int <code class="sig-name descname">maxtimeout</code><span class="sig-paren">(</span>uint32_t *<em>status</em><span class="sig-paren">)</span><a class="headerlink" href="#c.maxtimeout" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">maxtimeout</span></code><span class="sig-paren">(</span><span class="pre">uint32_t</span> <span class="pre">*</span><em><span class="pre">status</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.maxtimeout" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The maxtimeout operation  gets the maximum timeout value that can be configured.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -600,29 +601,21 @@ int <code class="sig-name descname">maxtimeout</code><span class="sig-paren">(</
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="rtc.html" class="btn btn-neutral float-right" title="RTC Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="quadrature.html" class="btn btn-neutral float-left" title="Quadrature Encoder Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="rtc.html" class="btn btn-neutral float-right" title="RTC Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="quadrature.html" class="btn btn-neutral float-left" title="Quadrature Encoder Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/touchscreen.html b/content/docs/latest/components/drivers/character/touchscreen.html
index 03b5bfe..06c372a 100644
--- a/content/docs/latest/components/drivers/character/touchscreen.html
+++ b/content/docs/latest/components/drivers/character/touchscreen.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Touchscreen Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -219,7 +220,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/touchscreen.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -277,29 +278,21 @@ controller chip.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="analog.html" class="btn btn-neutral float-right" title="Analog (ADC/DAC) Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="serial.html" class="btn btn-neutral float-left" title="Serial Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="analog.html" class="btn btn-neutral float-right" title="Analog (ADC/DAC) Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="serial.html" class="btn btn-neutral float-left" title="Serial Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/character/watchdog.html b/content/docs/latest/components/drivers/character/watchdog.html
index e67053d..883236c 100644
--- a/content/docs/latest/components/drivers/character/watchdog.html
+++ b/content/docs/latest/components/drivers/character/watchdog.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Watchdog Timer Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -208,6 +207,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -225,7 +226,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/character/watchdog.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -268,7 +269,7 @@ for the specific processor <em>&lt;architecture&gt;</em> and for the
 specific <em>&lt;chip&gt;</em> watchdog timer peripheral devices.</p></li>
 </ul>
 <p>There are two ways to enable Watchdog Timer Support along with the Watchdog Example. The first is faster and simpler. Just run the following command to use a ready config file with watchdog timer support and example included. You need to check if there’s a watchdog config file for your specific chip. You may check it at the specific board’s path: <code class="docutils literal notranslate"><span class="pre">/boards/&lt;arch&gt;/&lt;chip&gt;/&lt;board&gt;/config</span></code>.</p>
-<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ./tools/configure.sh &lt;board&gt;:watchdog
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>./tools/configure.sh &lt;board&gt;:watchdog
 </pre></div>
 </div>
 <p>And the second way is creating your own config file. To do so, follow the next instructions.</p>
@@ -345,25 +346,25 @@ the dog will starve and the chip will trigger an interrupt or reset.</p>
 <p>At an application level, the watchdog timer functionalities may be accessed through <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> systems calls. These <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> commands internally call lower-half layer operations and the parameters are forwarded to these operations through the <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> system call. The exampl [...]
 <dl class="c macro">
 <dt id="c.WDIOC_START">
-<code class="sig-name descname">WDIOC_START</code><a class="headerlink" href="#c.WDIOC_START" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">WDIOC_START</span></code><a class="headerlink" href="#c.WDIOC_START" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>This command starts the watchdog timer.</p>
 <dl class="c macro">
 <dt id="c.WDIOC_STOP">
-<code class="sig-name descname">WDIOC_STOP</code><a class="headerlink" href="#c.WDIOC_STOP" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">WDIOC_STOP</span></code><a class="headerlink" href="#c.WDIOC_STOP" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>This command stops the watchdog timer.</p>
 <dl class="c macro">
 <dt id="c.WDIOC_GETSTATUS">
-<code class="sig-name descname">WDIOC_GETSTATUS</code><a class="headerlink" href="#c.WDIOC_GETSTATUS" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">WDIOC_GETSTATUS</span></code><a class="headerlink" href="#c.WDIOC_GETSTATUS" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>This command gets the status of the watchdog timer. It receives a writeable pointer to struct <code class="docutils literal notranslate"><span class="pre">watchdog_status_s</span></code> as parameter. The lower-half driver writes the current status in this struct.</p>
 <dl class="c struct">
 <dt id="c.watchdog_status_s">
-<em class="property">struct </em><code class="sig-name descname">watchdog_status_s</code><a class="headerlink" href="#c.watchdog_status_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">watchdog_status_s</span></code><a class="headerlink" href="#c.watchdog_status_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">watchdog_status_s</span>
@@ -377,19 +378,19 @@ the dog will starve and the chip will trigger an interrupt or reset.</p>
 </div>
 <dl class="c macro">
 <dt id="c.WDIOC_SETTIMEOUT">
-<code class="sig-name descname">WDIOC_SETTIMEOUT</code><a class="headerlink" href="#c.WDIOC_SETTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">WDIOC_SETTIMEOUT</span></code><a class="headerlink" href="#c.WDIOC_SETTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>This command sets the timeout value, i.e., the value that will trigger the reset or interrupt. The argument is a <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code> value in miliseconds.</p>
 <dl class="c macro">
 <dt id="c.WDIOC_CAPTURE">
-<code class="sig-name descname">WDIOC_CAPTURE</code><a class="headerlink" href="#c.WDIOC_CAPTURE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">WDIOC_CAPTURE</span></code><a class="headerlink" href="#c.WDIOC_CAPTURE" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>This command registers an user callback that will be triggered on timeout. It receives as argument a pointer to struct <code class="docutils literal notranslate"><span class="pre">watchdog_capture_s</span></code>. If the user callback is NULL, then it configures only to reset. Not all chips support interrupt on timeout. This command is optional, i.e., if it’s not used, the standard behaviour is to reset on timeout.</p>
 <dl class="c struct">
 <dt id="c.watchdog_capture_s">
-<em class="property">struct </em><code class="sig-name descname">watchdog_capture_s</code><a class="headerlink" href="#c.watchdog_capture_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">watchdog_capture_s</span></code><a class="headerlink" href="#c.watchdog_capture_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">watchdog_capture_s</span>
@@ -401,7 +402,7 @@ the dog will starve and the chip will trigger an interrupt or reset.</p>
 </div>
 <dl class="c macro">
 <dt id="c.WDIOC_KEEPALIVE">
-<code class="sig-name descname">WDIOC_KEEPALIVE</code><a class="headerlink" href="#c.WDIOC_KEEPALIVE" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">WDIOC_KEEPALIVE</span></code><a class="headerlink" href="#c.WDIOC_KEEPALIVE" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>This command resets the watchdog timer AKA ‘<strong>ping</strong>”, “<strong>kick</strong>”, “<strong>pet</strong>”,  “<strong>feed</strong>” the dog”.</p>
 </dd></dl>
 
@@ -458,29 +459,21 @@ If only the High Priority Work Queue is enabled, this one will be used, otherwis
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="keypad.html" class="btn btn-neutral float-right" title="Keyboard/Keypad Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="rtc.html" class="btn btn-neutral float-left" title="RTC Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="keypad.html" class="btn btn-neutral float-right" title="Keyboard/Keypad Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="rtc.html" class="btn btn-neutral float-left" title="RTC Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/index.html b/content/docs/latest/components/drivers/index.html
index b4c6ff7..44ecd50 100644
--- a/content/docs/latest/components/drivers/index.html
+++ b/content/docs/latest/components/drivers/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -188,6 +187,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -201,7 +202,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/components/drivers/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -254,29 +255,21 @@ usually implemented at the architecture or board level.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="character/index.html" class="btn btn-neutral float-right" title="Character Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../binfmt.html" class="btn btn-neutral float-left" title="Binary Loader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="character/index.html" class="btn btn-neutral float-right" title="Character Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../binfmt.html" class="btn btn-neutral float-left" title="Binary Loader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/ethernet.html b/content/docs/latest/components/drivers/special/ethernet.html
index f098aea..4b5ae61 100644
--- a/content/docs/latest/components/drivers/special/ethernet.html
+++ b/content/docs/latest/components/drivers/special/ethernet.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Ethernet Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/ethernet.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -254,29 +255,21 @@ Each Ethernet driver registers itself by calling
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="socketcan.html" class="btn btn-neutral float-right" title="SocketCAN Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="i2c.html" class="btn btn-neutral float-left" title="I2C Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="socketcan.html" class="btn btn-neutral float-right" title="SocketCAN Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="i2c.html" class="btn btn-neutral float-left" title="I2C Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/framebuffer.html b/content/docs/latest/components/drivers/special/framebuffer.html
index 7c02c0e..304f6ad 100644
--- a/content/docs/latest/components/drivers/special/framebuffer.html
+++ b/content/docs/latest/components/drivers/special/framebuffer.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Frame Buffer Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/framebuffer.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -270,29 +271,21 @@ directory.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="lcd.html" class="btn btn-neutral float-right" title="LCD Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="socketcan.html" class="btn btn-neutral float-left" title="SocketCAN Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="lcd.html" class="btn btn-neutral float-right" title="LCD Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="socketcan.html" class="btn btn-neutral float-left" title="SocketCAN Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/i2c.html b/content/docs/latest/components/drivers/special/i2c.html
index 680fa05..39d8743 100644
--- a/content/docs/latest/components/drivers/special/i2c.html
+++ b/content/docs/latest/components/drivers/special/i2c.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>I2C Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/i2c.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -260,29 +261,21 @@ higher level device driver.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="ethernet.html" class="btn btn-neutral float-right" title="Ethernet Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="spi.html" class="btn btn-neutral float-left" title="SPI Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="ethernet.html" class="btn btn-neutral float-right" title="Ethernet Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="spi.html" class="btn btn-neutral float-left" title="SPI Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/index.html b/content/docs/latest/components/drivers/special/index.html
index 64c9b0e..251a51a 100644
--- a/content/docs/latest/components/drivers/special/index.html
+++ b/content/docs/latest/components/drivers/special/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Specialized Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -216,7 +217,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -296,29 +297,21 @@ and thus expose them to applications.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="syslog.html" class="btn btn-neutral float-right" title="SYSLOG" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../block/index.html" class="btn btn-neutral float-left" title="Block Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="syslog.html" class="btn btn-neutral float-right" title="SYSLOG" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../block/index.html" class="btn btn-neutral float-left" title="Block Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/lcd.html b/content/docs/latest/components/drivers/special/lcd.html
index c6538a6..a01c266 100644
--- a/content/docs/latest/components/drivers/special/lcd.html
+++ b/content/docs/latest/components/drivers/special/lcd.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>LCD Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/lcd.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -279,29 +280,21 @@ of the LCD driver in the <code class="docutils literal notranslate"><span class=
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="mtd.html" class="btn btn-neutral float-right" title="Memory Technology Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="framebuffer.html" class="btn btn-neutral float-left" title="Frame Buffer Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="mtd.html" class="btn btn-neutral float-right" title="Memory Technology Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="framebuffer.html" class="btn btn-neutral float-left" title="Frame Buffer Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/mtd.html b/content/docs/latest/components/drivers/special/mtd.html
index bdc2cfc..b9cb4d7 100644
--- a/content/docs/latest/components/drivers/special/mtd.html
+++ b/content/docs/latest/components/drivers/special/mtd.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Memory Technology Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/mtd.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -281,29 +282,21 @@ higher level device driver.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="sdio.html" class="btn btn-neutral float-right" title="SDIO Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="lcd.html" class="btn btn-neutral float-left" title="LCD Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="sdio.html" class="btn btn-neutral float-right" title="SDIO Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="lcd.html" class="btn btn-neutral float-left" title="LCD Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/sdio.html b/content/docs/latest/components/drivers/special/sdio.html
index b58f590..9fd389e 100644
--- a/content/docs/latest/components/drivers/special/sdio.html
+++ b/content/docs/latest/components/drivers/special/sdio.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>SDIO Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/sdio.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -267,29 +268,21 @@ higher level device driver.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="usbhost.html" class="btn btn-neutral float-right" title="USB Host-Side Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="mtd.html" class="btn btn-neutral float-left" title="Memory Technology Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="usbhost.html" class="btn btn-neutral float-right" title="USB Host-Side Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="mtd.html" class="btn btn-neutral float-left" title="Memory Technology Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/socketcan.html b/content/docs/latest/components/drivers/special/socketcan.html
index 73a025c..1d7f122 100644
--- a/content/docs/latest/components/drivers/special/socketcan.html
+++ b/content/docs/latest/components/drivers/special/socketcan.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>SocketCAN Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/socketcan.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -306,29 +307,21 @@ struct</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="framebuffer.html" class="btn btn-neutral float-right" title="Frame Buffer Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="ethernet.html" class="btn btn-neutral float-left" title="Ethernet Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="framebuffer.html" class="btn btn-neutral float-right" title="Frame Buffer Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="ethernet.html" class="btn btn-neutral float-left" title="Ethernet Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/spi.html b/content/docs/latest/components/drivers/special/spi.html
index 0ea1535..5e3e170 100644
--- a/content/docs/latest/components/drivers/special/spi.html
+++ b/content/docs/latest/components/drivers/special/spi.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>SPI Device Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/spi.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -263,29 +264,21 @@ higher level device driver.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="i2c.html" class="btn btn-neutral float-right" title="I2C Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="syslog.html" class="btn btn-neutral float-left" title="SYSLOG" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="i2c.html" class="btn btn-neutral float-right" title="I2C Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="syslog.html" class="btn btn-neutral float-left" title="SYSLOG" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/syslog.html b/content/docs/latest/components/drivers/special/syslog.html
index 7b619cd..b9031bf 100644
--- a/content/docs/latest/components/drivers/special/syslog.html
+++ b/content/docs/latest/components/drivers/special/syslog.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>SYSLOG &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -207,6 +206,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -224,7 +225,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/syslog.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -332,7 +333,7 @@ defined in <code class="docutils literal notranslate"><span class="pre">include/
 <a class="reference internal" href="#c.syslog_channel" title="syslog_channel"><code class="xref c c-func docutils literal notranslate"><span class="pre">syslog_channel()</span></code></a>.</p>
 <dl class="c function">
 <dt id="c.syslog_channel">
-int <code class="sig-name descname">syslog_channel</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> syslog_channel_s *<em>channel</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.syslog_channel" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">syslog_channel</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <span class="pre">syslog_channel_s</span> <span class="pre">*</span><em><span class="pre">channel</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.syslog_chan [...]
 <dd><p>Configure the SYSLOG function to use the provided
 channel to generate SYSLOG output.</p>
 <p><code class="docutils literal notranslate"><span class="pre">syslog_channel()</span></code> is a non-standard, internal OS interface and
@@ -375,7 +376,7 @@ initialized.</p></li>
 calls <a class="reference internal" href="#c.syslog_initialize" title="syslog_initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">syslog_initialize()</span></code></a>.</p>
 <dl class="c function">
 <dt id="c.syslog_initialize">
-int <code class="sig-name descname">syslog_initialize</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.syslog_initialize" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">syslog_initialize</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#c.syslog_initialize" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&lt;nuttx/syslog/syslog.h&gt;</span><span class="cp"></span>
 <span class="cp">#ifndef CONFIG_ARCH_SYSLOG</span>
 <span class="kt">int</span> <span class="nf">syslog_initialize</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span>
@@ -574,7 +575,7 @@ mounting of the file systems.</p>
 SYSLOG file channel:</p>
 <dl class="c function">
 <dt id="c.syslog_file_channel">
-int <code class="sig-name descname">syslog_file_channel</code><span class="sig-paren">(</span>FAR <em class="property">const</em> char *<em>devpath</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.syslog_file_channel" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">syslog_file_channel</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><em><span class="pre">devpath</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.syslog_file_channel" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Configure to use a file in a mounted file system
 at <code class="docutils literal notranslate"><span class="pre">devpath</span></code> as the SYSLOG channel.</p>
 <p>This tiny function is simply a wrapper around
@@ -683,29 +684,21 @@ that may be waiting on the poll method.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="spi.html" class="btn btn-neutral float-right" title="SPI Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="index.html" class="btn btn-neutral float-left" title="Specialized Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="spi.html" class="btn btn-neutral float-right" title="SPI Device Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="index.html" class="btn btn-neutral float-left" title="Specialized Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/usbdev.html b/content/docs/latest/components/drivers/special/usbdev.html
index 21fc8c9..d20ec34 100644
--- a/content/docs/latest/components/drivers/special/usbdev.html
+++ b/content/docs/latest/components/drivers/special/usbdev.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>USB Device-Side Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/usbdev.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -285,29 +286,21 @@ completing the initialization.</p></li>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="../../filesystem.html" class="btn btn-neutral float-right" title="NuttX File System" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="usbhost.html" class="btn btn-neutral float-left" title="USB Host-Side Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="../../filesystem.html" class="btn btn-neutral float-right" title="NuttX File System" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="usbhost.html" class="btn btn-neutral float-left" title="USB Host-Side Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/drivers/special/usbhost.html b/content/docs/latest/components/drivers/special/usbhost.html
index 6bc95bf..c2bf978 100644
--- a/content/docs/latest/components/drivers/special/usbhost.html
+++ b/content/docs/latest/components/drivers/special/usbhost.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>USB Host-Side Drivers &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../../_static/jquery.js"></script>
         <script src="../../../_static/underscore.js"></script>
         <script src="../../../_static/doctools.js"></script>
-        <script src="../../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../../_static/js/theme.js"></script>
 
@@ -201,6 +200,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -218,7 +219,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../../_sources/components/drivers/special/usbhost.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -343,29 +344,21 @@ the function <code class="docutils literal notranslate"><span class="pre">usbhos
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="usbdev.html" class="btn btn-neutral float-right" title="USB Device-Side Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="sdio.html" class="btn btn-neutral float-left" title="SDIO Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="usbdev.html" class="btn btn-neutral float-right" title="USB Device-Side Drivers" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="sdio.html" class="btn btn-neutral float-left" title="SDIO Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/filesystem.html b/content/docs/latest/components/filesystem.html
index d0d6f58..9a53aea 100644
--- a/content/docs/latest/components/filesystem.html
+++ b/content/docs/latest/components/filesystem.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>NuttX File System &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../_static/jquery.js"></script>
         <script src="../_static/underscore.js"></script>
         <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -182,6 +181,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -195,7 +196,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../_sources/components/filesystem.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -252,29 +253,21 @@ scalability from the very tiny platform to the moderate platform.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="nxflat.html" class="btn btn-neutral float-right" title="NXFLAT" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="drivers/special/usbdev.html" class="btn btn-neutral float-left" title="USB Device-Side Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="nxflat.html" class="btn btn-neutral float-right" title="NXFLAT" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="drivers/special/usbdev.html" class="btn btn-neutral float-left" title="USB Device-Side Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/index.html b/content/docs/latest/components/index.html
index 58d0ad7..c48abd2 100644
--- a/content/docs/latest/components/index.html
+++ b/content/docs/latest/components/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>OS Components &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../_static/jquery.js"></script>
         <script src="../_static/underscore.js"></script>
         <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -182,6 +181,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -193,7 +194,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../_sources/components/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -264,29 +265,21 @@
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="power.html" class="btn btn-neutral float-right" title="Power Management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../platforms/xtensa/esp32/boards/esp32-devkitc/index.html" class="btn btn-neutral float-left" title="ESP32 DevKitC" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="power.html" class="btn btn-neutral float-right" title="Power Management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../platforms/xtensa/esp32/boards/esp32-devkitc/index.html" class="btn btn-neutral float-left" title="ESP32 DevKitC" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/nxflat.html b/content/docs/latest/components/nxflat.html
index 25c405a..e788da5 100644
--- a/content/docs/latest/components/nxflat.html
+++ b/content/docs/latest/components/nxflat.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>NXFLAT &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../_static/jquery.js"></script>
         <script src="../_static/underscore.js"></script>
         <script src="../_static/doctools.js"></script>
-        <script src="../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -215,7 +216,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../_sources/components/nxflat.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -617,29 +618,21 @@ you are inspired to port them to a new GCC version.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="nxgraphics/index.html" class="btn btn-neutral float-right" title="NX Graphics Subsystem" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="filesystem.html" class="btn btn-neutral float-left" title="NuttX File System" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="nxgraphics/index.html" class="btn btn-neutral float-right" title="NX Graphics Subsystem" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="filesystem.html" class="btn btn-neutral float-left" title="NuttX File System" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/nxgraphics/appendix.html b/content/docs/latest/components/nxgraphics/appendix.html
index 4267cb1..bf82230 100644
--- a/content/docs/latest/components/nxgraphics/appendix.html
+++ b/content/docs/latest/components/nxgraphics/appendix.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>Appendix &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -217,7 +218,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/components/nxgraphics/appendix.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -1196,29 +1197,21 @@ in the <code class="docutils literal notranslate"><span class="pre">&lt;NuttX-Di
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="../nxwidgets.html" class="btn btn-neutral float-right" title="NxWidgets" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="sample.html" class="btn btn-neutral float-left" title="Sample Code" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="../nxwidgets.html" class="btn btn-neutral float-right" title="NxWidgets" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="sample.html" class="btn btn-neutral float-left" title="Sample Code" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/nxgraphics/index.html b/content/docs/latest/components/nxgraphics/index.html
index 743d70d..044e2b1 100644
--- a/content/docs/latest/components/nxgraphics/index.html
+++ b/content/docs/latest/components/nxgraphics/index.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>NX Graphics Subsystem &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -204,6 +203,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -217,7 +218,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/components/nxgraphics/index.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -435,29 +436,21 @@ and <code class="docutils literal notranslate"><span class="pre">stderr</span></
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="nxgl.html" class="btn btn-neutral float-right" title="NX Graphics Library (NXGL)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="../nxflat.html" class="btn btn-neutral float-left" title="NXFLAT" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="nxgl.html" class="btn btn-neutral float-right" title="NX Graphics Library (NXGL)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="../nxflat.html" class="btn btn-neutral float-left" title="NXFLAT" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/nxgraphics/nx.html b/content/docs/latest/components/nxgraphics/nx.html
index 0cd391b..003de11 100644
--- a/content/docs/latest/components/nxgraphics/nx.html
+++ b/content/docs/latest/components/nxgraphics/nx.html
@@ -22,9 +22,9 @@
 <!DOCTYPE html>
 <html class="writer-html5" lang="en" >
 <head>
-  <meta charset="utf-8">
+  <meta charset="utf-8" />
   
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   
   <title>NX &mdash; NuttX latest documentation</title>
   
@@ -32,17 +32,17 @@
   
   <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
-  <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
+  <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" />
   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
 
   
   
     <link rel="shortcut icon" href="../../_static/favicon.ico"/>
   
+
+  
   
+
   
 
   
@@ -55,7 +55,6 @@
         <script src="../../_static/jquery.js"></script>
         <script src="../../_static/underscore.js"></script>
         <script src="../../_static/doctools.js"></script>
-        <script src="../../_static/language_data.js"></script>
     
     <script type="text/javascript" src="../../_static/js/theme.js"></script>
 
@@ -202,6 +201,8 @@
 
 
 
+
+
 <div role="navigation" aria-label="breadcrumbs navigation">
 
   <ul class="wy-breadcrumbs">
@@ -217,7 +218,7 @@
     
       <li class="wy-breadcrumbs-aside">
         
-            
+          
             <a href="../../_sources/components/nxgraphics/nx.rst.txt" rel="nofollow"> View page source</a>
           
         
@@ -252,13 +253,13 @@
 <p>The interface to the NX server is managed using a opaque handle:</p>
 <dl class="c type">
 <dt id="c.NXHANDLE">
-<em class="property">typedef </em>FAR void *<code class="sig-name descname">NXHANDLE</code><a class="headerlink" href="#c.NXHANDLE" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">typedef</span> </em><span class="pre">FAR</span> <span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">NXHANDLE</span></code><a class="headerlink" href="#c.NXHANDLE" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>The interface to a specific window is managed using an opaque handle:</p>
 <dl class="c type">
 <dt id="c.NXWINDOW">
-<em class="property">typedef </em>FAR void *<code class="sig-name descname">NXWINDOW</code><a class="headerlink" href="#c.NXWINDOW" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">typedef</span> </em><span class="pre">FAR</span> <span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">NXWINDOW</span></code><a class="headerlink" href="#c.NXWINDOW" title="Permalink to this definition">¶</a><br /></dt>
 <dd></dd></dl>
 
 <p>These define callbacks that must be provided to <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>.
@@ -266,7 +267,7 @@ These callbacks will be invoked as part of the processing performed by
 <a class="reference internal" href="#c.nx_eventhandler" title="nx_eventhandler"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_eventhandler()</span></code></a>.</p>
 <dl class="c struct">
 <dt id="c.nx_callback_s">
-<em class="property">struct </em><code class="sig-name descname">nx_callback_s</code><a class="headerlink" href="#c.nx_callback_s" title="Permalink to this definition">¶</a><br /></dt>
+<em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">nx_callback_s</span></code><a class="headerlink" href="#c.nx_callback_s" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">nx_callback_s</span>
 <span class="p">{</span>
   <span class="kt">void</span> <span class="p">(</span><span class="o">*</span><span class="n">redraw</span><span class="p">)(</span><span class="n">NXWINDOW</span> <span class="n">hwnd</span><span class="p">,</span> <span class="n">FAR</span> <span class="k">const</span> <span class="k">struct</span> <span class="nc">nxgl_rect_s</span> <span class="o">*</span><span class="n">rect</span><span class="p">,</span>
@@ -316,7 +317,7 @@ call to <code class="docutils literal notranslate"><span class="pre">nxmu_start(
 </ol>
 <dl class="c function">
 <dt id="c.nxmu_start">
-int <code class="sig-name descname">nxmu_start</code><span class="sig-paren">(</span>int <em>display</em>, int <em>plane</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxmu_start" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nxmu_start</span></code><span class="sig-paren">(</span><span class="pre">int</span> <em><span class="pre">display</span></em>, <span class="pre">int</span> <em><span class="pre">plane</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nxmu_start" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Provides a wrapper function to
 simplify and standardize the starting of the NX server.</p>
 <dl class="field-list simple">
@@ -341,7 +342,7 @@ indicates the nature of the failure.</p>
 <h2>NX Server Callbacks<a class="headerlink" href="#nx-server-callbacks" title="Permalink to this headline">¶</a></h2>
 <dl class="c function">
 <dt id="c.redraw">
-void <code class="sig-name descname">redraw</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s">nxgl_rect_s</a> *<em>rect</em>, bool <em>more</em>, FAR void *<em>arg</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.redraw" title="Permalink to  [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">redraw</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl [...]
 <dd><p>NX requests that the client re-draw the portion of the
 window within with rectangle.</p>
 <dl class="field-list simple">
@@ -359,7 +360,7 @@ coordinates)</p></li>
 
 <dl class="c function">
 <dt id="c.position">
-void <code class="sig-name descname">position</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_size_s" title="nxgl_size_s">nxgl_size_s</a> *<em>size</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" t [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">position</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_size_s" title="nx [...]
 <dd><p>The size or position of the window has changed (or the
 window was just created with zero size.</p>
 <dl class="field-list simple">
@@ -378,7 +379,7 @@ overall display</p></li>
 
 <dl class="c function">
 <dt id="c.mousein">
-void <code class="sig-name descname">mousein</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s">nxgl_point_s</a> *<em>pos</em>, uint8_t <em>buttons</em>, FAR void *<em>arg</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.mousein" title="Per [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">mousein</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nx [...]
 <dd><p>New mouse data is available for the window</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -394,7 +395,7 @@ void <code class="sig-name descname">mousein</code><span class="sig-paren">(</sp
 
 <dl class="c var">
 <dt id="c.kbdin">
-void (*<code class="sig-name descname">kbdin</code>)<span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> hwnd, uint8_t nch, FAR <em class="property">const</em> uint8_t *ch, FAR void *arg<span class="sig-paren">)</span>;<a class="headerlink" href="#c.kbdin" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">kbdin</span></code><span class="pre">)</span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <span class="pre">hwnd</span>, <span class="pre">uint8_t</span> <span class="pre">nch</span>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> [...]
 <dd><p>New keyboard/keypad data is available for the window.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -410,7 +411,7 @@ void (*<code class="sig-name descname">kbdin</code>)<span class="sig-paren">(</s
 
 <dl class="c var">
 <dt id="c.event">
-void (*<code class="sig-name descname">event</code>)<span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> hwnd, <em class="property">enum</em> nx_event_e event, FAR void *arg1, FAR void *arg2<span class="sig-paren">)</span>;<a class="headerlink" href="#c.event" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">event</span></code><span class="pre">)</span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <span class="pre">hwnd</span>, <em class="property"><span class="pre">enum</span></em> <span class="pre">nx_event_e</span> <span class="pre">event</span>, <span class="pre">FAR</s [...]
 <dd><p>This callback is used to communicate server events to the window listener.</p>
 <ul class="simple">
 <li><dl class="simple">
@@ -457,7 +458,7 @@ server are working together properly.</p>
 
 <dl class="c macro">
 <dt id="c.nx_run">
-<code class="sig-name descname">nx_run</code><span class="sig-paren">(</span><em>fb</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_run" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">nx_run</span></code><span class="sig-paren">(</span><em><span class="pre">fb</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_run" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define nx_run(fb) nx_runinstance(NX_DEFAULT_SERVER_MQNAME, dev)</span>
 </pre></div>
 </div>
@@ -465,7 +466,7 @@ server are working together properly.</p>
 
 <dl class="c function">
 <dt id="c.nx_runinstance">
-int <code class="sig-name descname">nx_runinstance</code><span class="sig-paren">(</span>FAR <em class="property">const</em> char *<em>mqname</em>, FAR <em class="property">struct</em> fb_vtable_s *<em>fb</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_runinstance" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_runinstance</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><em><span class="pre">mqname</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <span class="pre">fb_vtable_s</span> <span class="pre">*</span><em><span class="pr [...]
 <dd><p>This is the server entry point. It does not return; the
 calling thread is dedicated to supporting NX server.</p>
 <p>NOTE that multiple instances of the NX server may run at the same time,
@@ -489,7 +490,7 @@ appropriately.</p>
 
 <dl class="c macro">
 <dt id="c.nx_connect">
-<code class="sig-name descname">nx_connect</code><span class="sig-paren">(</span><em>cb</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_connect" title="Permalink to this definition">¶</a><br /></dt>
+<code class="sig-name descname"><span class="pre">nx_connect</span></code><span class="sig-paren">(</span><em><span class="pre">cb</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_connect" title="Permalink to this definition">¶</a><br /></dt>
 <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define nx_connect(cb) nx_connectinstance(NX_DEFAULT_SERVER_MQNAME)</span>
 </pre></div>
 </div>
@@ -497,7 +498,7 @@ appropriately.</p>
 
 <dl class="c function">
 <dt id="c.nx_connectinstance">
-<a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <code class="sig-name descname">nx_connectinstance</code><span class="sig-paren">(</span>FAR <em class="property">const</em> char *<em>svrmqname</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_connectinstance" title="Permalink to this definition">¶</a><br /></dt>
+<a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <code class="sig-name descname"><span class="pre">nx_connectinstance</span></code><span class="sig-paren">(</span><span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><em><span class="pre">svrmqname</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c. [...]
 <dd><p>Open a connection from a client to the NX server. One
 one client connection is normally needed per thread as each connection
 can host multiple windows.</p>
@@ -527,7 +528,7 @@ Failure: NULL is returned and errno is set appropriately.</p>
 
 <dl class="c function">
 <dt id="c.nx_disconnect">
-void <code class="sig-name descname">nx_disconnect</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_disconnect" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">nx_disconnect</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_disconnect" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Disconnect a client from the NX server and/or free
 resources reserved by <a class="reference internal" href="#c.nx_connect" title="nx_connect"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_connect()</span></code></a>/c:func:<cite>nx_connectinstance</cite>.</p>
 <dl class="field-list simple">
@@ -541,7 +542,7 @@ resources reserved by <a class="reference internal" href="#c.nx_connect" title="
 
 <dl class="c function">
 <dt id="c.nx_eventhandler">
-int <code class="sig-name descname">nx_eventhandler</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_eventhandler" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_eventhandler</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_eventhandler" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>The client code must call this function periodically to
 process incoming messages from the server. If <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_BLOCKING</span></code> is
 defined, then this function not return until a server message is
@@ -573,7 +574,7 @@ event, the handle can no longer be used.</p></li>
 
 <dl class="c function">
 <dt id="c.nx_eventnotify">
-int <code class="sig-name descname">nx_eventnotify</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, int <em>signo</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_eventnotify" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_eventnotify</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <span class="pre">int</span> <em><span class="pre">signo</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_eventnotify" title="Permalink to this definitio [...]
 <dd><p>Rather than calling <a class="reference internal" href="#c.nx_eventhandler" title="nx_eventhandler"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_eventhandler()</span></code></a> periodically, the client may
 register to receive a signal when a server event is available. The
 client can then call :c:func:nx_eventhandler` only
@@ -602,7 +603,7 @@ from empty to not empty.</p></li>
 
 <dl class="c function">
 <dt id="c.nx_block">
-int <code class="sig-name descname">nx_block</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR void *<em>arg</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_block" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_block</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">arg</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_b [...]
 <dd><p>The response to this function call is two things: (1)
 any queued callback messages to the window are ‘blocked’ and then (2)
 also subsequent window messaging is blocked.</p>
@@ -634,7 +635,7 @@ appropriately.</p>
 
 <dl class="c function">
 <dt id="c.nx_synch">
-int <code class="sig-name descname">nx_synch</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR void *<em>arg</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_synch" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_synch</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">arg</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_s [...]
 <dd><p>This interface can be used to synchronize the window
 client with the NX server. It really just implements an <em>echo</em>: A synch
 message is sent from the window client to the server which then responds
@@ -683,7 +684,7 @@ appropriately</p>
 
 <dl class="c function">
 <dt id="c.nx_openwindow">
-<a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <code class="sig-name descname">nx_openwindow</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, uint8_t <em>flags</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_callback_s" title="nx_callback_s">nx_callback_s</a> *<em>cb</em>, FAR void *<em>arg</em><span clas [...]
+<a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <code class="sig-name descname"><span class="pre">nx_openwindow</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">flags</span></em>, <span class="pre">FAR</span> <em class="property"><span cla [...]
 <dd><p>Create a new window.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -705,7 +706,7 @@ Failure: NULL is returned and errno is set appropriately.</p>
 
 <dl class="c function">
 <dt id="c.nx_closewindow">
-int <code class="sig-name descname">nx_closewindow</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_closewindow" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_closewindow</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_closewindow" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Destroy a window created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> window.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -724,7 +725,7 @@ one returned by <code class="docutils literal notranslate"><span class="pre">`nx
 
 <dl class="c function">
 <dt id="c.nx_requestbkgd">
-int <code class="sig-name descname">nx_requestbkgd</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_callback_s" title="nx_callback_s">nx_callback_s</a> *<em>cb</em>, FAR void *<em>arg</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_requestbkgd" title="Permalink to this def [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_requestbkgd</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#c.nx_callback_s" title="nx [...]
 <dd><p>NX normally controls a separate window called the
 background window. It repaints the window as necessary using only a
 solid color fill. The background window always represents the entire
@@ -768,7 +769,7 @@ background window are not supported.</p></li>
 
 <dl class="c function">
 <dt id="c.nx_releasebkgd">
-int <code class="sig-name descname">nx_releasebkgd</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_releasebkgd" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_releasebkgd</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_releasebkgd" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Release the background window previously acquired using
 <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a> and return control of the background to NX.</p>
 <dl class="field-list simple">
@@ -786,7 +787,7 @@ This handle must not have been one created by <a class="reference internal" href
 
 <dl class="c function">
 <dt id="c.nx_getposition">
-int <code class="sig-name descname">nx_getposition</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_getposition" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_getposition</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_getposition" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Request the position and size information for the
 selected window. The values will be return asynchronously through the
 client callback function pointer.</p>
@@ -805,7 +806,7 @@ client callback function pointer.</p>
 
 <dl class="c function">
 <dt id="c.nx_setposition">
-int <code class="sig-name descname">nx_setposition</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s">nxgl_point_s</a> *<em>pos</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_setposition" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_setposition</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="pre">nxgl_point_s</span></ [...]
 <dd><p>Set the position and size for the selected window.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -824,7 +825,7 @@ handle must not have been created by <a class="reference internal" href="#c.nx_r
 
 <dl class="c function">
 <dt id="c.nx_setsize">
-int <code class="sig-name descname">nx_setsize</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_size_s" title="nxgl_size_s">nxgl_size_s</a> *<em>size</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_setsize" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_setsize</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_size_s" title="nxgl_size_s"><span class="pre">nxgl_size_s</span></a> <spa [...]
 <dd><p>Set the size of the selected window.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -843,7 +844,7 @@ handle must not have been created by <a class="reference internal" href="#c.nx_r
 
 <dl class="c function">
 <dt id="c.nx_raise">
-int <code class="sig-name descname">nx_raise</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_raise" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_raise</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_raise" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Bring the specified window to the top of the display.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -860,7 +861,7 @@ handle must not have been created by <a class="reference internal" href="#c.nx_r
 
 <dl class="c function">
 <dt id="c.nx_lower">
-int <code class="sig-name descname">nx_lower</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_lower" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_lower</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_lower" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Lower the specified window to the bottom of the display.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -878,7 +879,7 @@ handle must not have been created by <a class="reference internal" href="#c.nx_r
 
 <dl class="c function">
 <dt id="c.nx_modal">
-int <code class="sig-name descname">nx_modal</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, bool <em>modal</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_modal" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_modal</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">bool</span> <em><span class="pre">modal</span></em><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_modal" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>May be used to either (1) raise a window to the top of
 the display and select modal behavior, or (2) disable modal behavior.</p>
 <dl class="field-list simple">
@@ -898,7 +899,7 @@ handle must not have been created by <a class="reference internal" href="#c.nx_r
 
 <dl class="c function">
 <dt id="c.nx_setvisibility">
-int <code class="sig-name descname">nx_setvisibility</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, bool <em>hide</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_setvisibility" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_setvisibility</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">bool</span> <em><span class="pre">hide</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_setvisibility" title="Permalink to this definit [...]
 <dd><p>Select if the window is visible or hidden. A hidden
 window is still present and will update normally, but will not be
 visible on the display until it is unhidden.</p>
@@ -919,7 +920,7 @@ handle must not have been created by <a class="reference internal" href="#c.nx_r
 
 <dl class="c function">
 <dt id="c.nx_ishidden">
-bool <code class="sig-name descname">nx_ishidden</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_ishidden" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">bool</span> <code class="sig-name descname"><span class="pre">nx_ishidden</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_ishidden" title="Permalink to this definition">¶</a><br /></dt>
 <dd><p>Return true if the window is hidden.</p>
 <p><strong>NOTE</strong>: There will be a delay between the time that the visibility of
 the window is changed via <code class="xref c c-func docutils literal notranslate"><span class="pre">nx_setvisibily()</span></code>
@@ -941,7 +942,7 @@ visible</p>
 
 <dl class="c function">
 <dt id="c.nx_fill">
-int <code class="sig-name descname">nx_fill</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s">nxgl_rect_s</a> *<em>rect</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em>[<em>CONFIG_NX [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_fill</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl [...]
 <dd><p>Fill the specified rectangle in the window with the
 specified color.</p>
 <dl class="field-list simple">
@@ -962,7 +963,7 @@ specified color.</p>
 
 <dl class="c function">
 <dt id="c.nx_getrectangle">
-void <code class="sig-name descname">nx_getrectangle</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s">nxgl_rect_s</a> *<em>rect</em>, unsigned int <em>plane</em>, FAR uint8_t *<em>dest</em>, unsigned int <em>deststride</em><span class="sig-paren">)</span>;<a  [...]
+<span class="pre">void</span> <code class="sig-name descname"><span class="pre">nx_getrectangle</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" ti [...]
 <dd><p>Get the raw contents of graphic memory within a
 rectangular region. NOTE: Since raw graphic memory is returned, the
 returned memory content may be the memory of windows above this one and
@@ -988,7 +989,7 @@ the top window.</p>
 
 <dl class="c function">
 <dt id="c.nx_filltrapezoid">
-int <code class="sig-name descname">nx_filltrapezoid</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s">nxgl_rect_s</a> *<em>clip</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_tra [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_filltrapezoid</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" ti [...]
 <dd><p>Fill the specified trapezoidal region in the window
 with the specified color.</p>
 <dl class="field-list simple">
@@ -1010,7 +1011,7 @@ with the specified color.</p>
 
 <dl class="c function">
 <dt id="c.nx_drawline">
-int <code class="sig-name descname">nx_drawline</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">struct</em> nxgl_vector_s *<em>vector</em>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t">nxgl_coord_t</a> <em>width</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em>[<em>CO [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_drawline</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">struct</span></em> <span class="pre">nxgl_vector_s</span> <span class="pre">*</span><em><span class="pre">vector</span></em>, <a class="referenc [...]
 <dd><p>Fill the specified trapezoidal region in the window
 with the specified color. Fill the specified line in the window with the
 specified color. This is simply a wrapper that uses <a class="reference internal" href="nxgl.html#c.nxgl_splitline" title="nxgl_splitline"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxgl_splitline()</span></code></a>
@@ -1046,7 +1047,7 @@ joins. One of:</p>
 
 <dl class="c function">
 <dt id="c.nx_drawcircle">
-int <code class="sig-name descname">nx_drawcircle</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s">nxgl_point_s</a> *<em>center</em>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t">nxgl_coord_t</a> <em>radius</em>, <a cla [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_drawcircle</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" titl [...]
 <dd><p>Draw a circular outline using the specified line
 thickness and color.</p>
 <dl class="field-list simple">
@@ -1069,7 +1070,7 @@ thickness and color.</p>
 
 <dl class="c function">
 <dt id="c.nx_fillcircle">
-int <code class="sig-name descname">nx_fillcircle</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s">nxgl_point_s</a> *<em>center</em>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t">nxgl_coord_t</a> <em>radius</em>, <a cla [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_fillcircle</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" titl [...]
 <dd><p>Fill a circular region using the specified color.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -1090,7 +1091,7 @@ int <code class="sig-name descname">nx_fillcircle</code><span class="sig-paren">
 
 <dl class="c function">
 <dt id="c.nx_setbgcolor">
-int <code class="sig-name descname">nx_setbgcolor</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em>[<em>CONFIG_NX_NPLANES</em>]<span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_setbgcolor" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_setbgcolor</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="pre">nxgl_mxpixel_t</span></a> <em><span class="pre">color</span></em><span class="pre">[</span><em><span cl [...]
 <dd></dd></dl>
 
 <p>Set the color of the background.</p>
@@ -1109,7 +1110,7 @@ int <code class="sig-name descname">nx_setbgcolor</code><span class="sig-paren">
 </dl>
 <dl class="c function">
 <dt id="c.nx_move">
-int <code class="sig-name descname">nx_move</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s">nxgl_rect_s</a> *<em>rect</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_point_s" tit [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_move</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl [...]
 <dd></dd></dl>
 
 <p>Move a rectangular region within the window.</p>
@@ -1130,7 +1131,7 @@ int <code class="sig-name descname">nx_move</code><span class="sig-paren">(</spa
 </dl>
 <dl class="c function">
 <dt id="c.nx_bitmap">
-int <code class="sig-name descname">nx_bitmap</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW">NXWINDOW</a> <em>hwnd</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s">nxgl_rect_s</a> *<em>dest</em>, FAR <em class="property">const</em> void *<em>src</em>[<em>CONFIG_NX_NPLANES</em>], FAR <em class="property">const</em> <em class="p [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_bitmap</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="pre">NXWINDOW</span></a> <em><span class="pre">hwnd</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nx [...]
 <dd><p>Copy a rectangular region of a larger image into the
 rectangle in the specified window.</p>
 <dl class="field-list simple">
@@ -1154,12 +1155,12 @@ lie outside of the display.</p></li>
 
 <dl class="c function">
 <dt id="c.nx_kbdchin">
-int <code class="sig-name descname">nx_kbdchin</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, uint8_t <em>ch</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_kbdchin" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_kbdchin</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">ch</span></em><span class="sig-paren">)</span><span class="pre">;</span><a class="headerlink" href="#c.nx_kbdchin" title="Permalink to this definition">¶</a [...]
 <dd></dd></dl>
 
 <dl class="c function">
 <dt id="c.nx_kbdin">
-int <code class="sig-name descname">nx_kbdin</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, uint8_t <em>nch</em>, FAR <em class="property">const</em> uint8_t *<em>ch</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nx_kbdin" title="Permalink to this definition">¶</a><br /></dt>
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_kbdin</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">nch</span></em>, <span class="pre">FAR</span> <em class="property"><span class="pre">const</span></em> <span class="pre">uint8_t</span> <span class="pre">*</s [...]
 <dd><p>Used by a thread or interrupt handler that manages some
 kind of keypad hardware to report text information to the NX server.
 That text data will be routed by the NX server to the appropriate window
@@ -1174,7 +1175,7 @@ client.</p>
 
 <dl class="c function">
 <dt id="c.nx_mousein">
-int <code class="sig-name descname">nx_mousein</code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t">nxgl_coord_t</a> <em>x</em>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t">nxgl_coord_t</a> <em>y</em>, uint8_t <em>buttons</em><span class="sig-paren">)</span><a class="headerlink" href="#c. [...]
+<span class="pre">int</span> <code class="sig-name descname"><span class="pre">nx_mousein</span></code><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="pre">NXHANDLE</span></a> <em><span class="pre">handle</span></em>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="pre">nxgl_coord_t</span></a> <em><span class="pre">x</span></em>, <a class="reference internal" href="nxgl.html#c.n [...]
 <dd><p>Used by a thread or interrupt handler that manages some
 kind of pointing hardware to report new positional data to the NX
 server. That positional data will be routed by the NX server to the
@@ -1195,29 +1196,21 @@ appropriate window client.</p>
            
           </div>
           <footer>
-  
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-      
-        <a href="nxtk.html" class="btn btn-neutral float-right" title="NX Tool Kit (NXTK)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-      
-      
-        <a href="nxgl.html" class="btn btn-neutral float-left" title="NX Graphics Library (NXGL)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-      
+        <a href="nxtk.html" class="btn btn-neutral float-right" title="NX Tool Kit (NXTK)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="nxgl.html" class="btn btn-neutral float-left" title="NX Graphics Library (NXGL)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
     </div>
-  
 
   <hr/>
 
   <div role="contentinfo">
     <p>
-        
-        &copy; Copyright 2020, The Apache Software Foundation
+        &#169; Copyright 2020, The Apache Software Foundation.
 
     </p>
   </div> 
 
 </footer>
-
         </div>
       </div>
 
diff --git a/content/docs/latest/components/nxgraphics/nxcursor.html b/content/docs/latest/components/nxgraphics/nxcursor.html
... 14977 lines suppressed ...