|  | @@ -1,113 +1,153 @@
 | 
	
		
			
				|  |  | -function toggleCurrent (elem) {
 | 
	
		
			
				|  |  | -    var parent_li = elem.closest('li');
 | 
	
		
			
				|  |  | -    parent_li.siblings('li.current').removeClass('current');
 | 
	
		
			
				|  |  | -    parent_li.siblings().find('li.current').removeClass('current');
 | 
	
		
			
				|  |  | -    parent_li.find('> ul li.current').removeClass('current');
 | 
	
		
			
				|  |  | -    parent_li.toggleClass('current');
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"sphinx-rtd-theme":[function(require,module,exports){
 | 
	
		
			
				|  |  | +var jQuery = (typeof(window) != 'undefined') ? window.jQuery : require('jquery');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Sphinx theme nav state
 | 
	
		
			
				|  |  | +function ThemeNav () {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var nav = {
 | 
	
		
			
				|  |  | +        navBar: null,
 | 
	
		
			
				|  |  | +        win: null,
 | 
	
		
			
				|  |  | +        winScroll: false,
 | 
	
		
			
				|  |  | +        winResize: false,
 | 
	
		
			
				|  |  | +        linkScroll: false,
 | 
	
		
			
				|  |  | +        winPosition: 0,
 | 
	
		
			
				|  |  | +        winHeight: null,
 | 
	
		
			
				|  |  | +        docHeight: null,
 | 
	
		
			
				|  |  | +        isRunning: null
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.enable = function () {
 | 
	
		
			
				|  |  | +        var self = this;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        jQuery(function ($) {
 | 
	
		
			
				|  |  | +            self.init($);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            self.reset();
 | 
	
		
			
				|  |  | +            self.win.on('hashchange', self.reset);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // Set scroll monitor
 | 
	
		
			
				|  |  | +            self.win.on('scroll', function () {
 | 
	
		
			
				|  |  | +                if (!self.linkScroll) {
 | 
	
		
			
				|  |  | +                    self.winScroll = true;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            setInterval(function () { if (self.winScroll) self.onScroll(); }, 25);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // Set resize monitor
 | 
	
		
			
				|  |  | +            self.win.on('resize', function () {
 | 
	
		
			
				|  |  | +                self.winResize = true;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            setInterval(function () { if (self.winResize) self.onResize(); }, 25);
 | 
	
		
			
				|  |  | +            self.onResize();
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.init = function ($) {
 | 
	
		
			
				|  |  | +        var doc = $(document),
 | 
	
		
			
				|  |  | +            self = this;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        this.navBar = $('div.wy-side-scroll:first');
 | 
	
		
			
				|  |  | +        this.win = $(window);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // Set up javascript UX bits
 | 
	
		
			
				|  |  | +        $(document)
 | 
	
		
			
				|  |  | +            // Shift nav in mobile when clicking the menu.
 | 
	
		
			
				|  |  | +            .on('click', "[data-toggle='wy-nav-top']", function() {
 | 
	
		
			
				|  |  | +                $("[data-toggle='wy-nav-shift']").toggleClass("shift");
 | 
	
		
			
				|  |  | +                $("[data-toggle='rst-versions']").toggleClass("shift");
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // Nav menu link click operations
 | 
	
		
			
				|  |  | +            .on('click', ".wy-menu-vertical .current ul li a", function() {
 | 
	
		
			
				|  |  | +                var target = $(this);
 | 
	
		
			
				|  |  | +                // Close menu when you click a link.
 | 
	
		
			
				|  |  | +                $("[data-toggle='wy-nav-shift']").removeClass("shift");
 | 
	
		
			
				|  |  | +                $("[data-toggle='rst-versions']").toggleClass("shift");
 | 
	
		
			
				|  |  | +                // Handle dynamic display of l3 and l4 nav lists
 | 
	
		
			
				|  |  | +                self.toggleCurrent(target);
 | 
	
		
			
				|  |  | +                self.hashChange();
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            .on('click', "[data-toggle='rst-current-version']", function() {
 | 
	
		
			
				|  |  | +                $("[data-toggle='rst-versions']").toggleClass("shift-up");
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // Make tables responsive
 | 
	
		
			
				|  |  | +        $("table.docutils:not(.field-list)")
 | 
	
		
			
				|  |  | +            .wrap("<div class='wy-table-responsive'></div>");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(document).ready(function() {
 | 
	
		
			
				|  |  | -    // Shift nav in mobile when clicking the menu.
 | 
	
		
			
				|  |  | -    $(document).on('click', "[data-toggle='wy-nav-top']", function() {
 | 
	
		
			
				|  |  | -        $("[data-toggle='wy-nav-shift']").toggleClass("shift");
 | 
	
		
			
				|  |  | -        $("[data-toggle='rst-versions']").toggleClass("shift");
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    // Nav menu link click operations
 | 
	
		
			
				|  |  | -    $(document).on('click', ".wy-menu-vertical .current ul li a", function() {
 | 
	
		
			
				|  |  | -        var target = $(this);
 | 
	
		
			
				|  |  | -        // Close menu when you click a link.
 | 
	
		
			
				|  |  | -        $("[data-toggle='wy-nav-shift']").removeClass("shift");
 | 
	
		
			
				|  |  | -        $("[data-toggle='rst-versions']").toggleClass("shift");
 | 
	
		
			
				|  |  | -        // Handle dynamic display of l3 and l4 nav lists
 | 
	
		
			
				|  |  | -        toggleCurrent(target);
 | 
	
		
			
				|  |  | -        if (typeof(window.SphinxRtdTheme) != 'undefined') {
 | 
	
		
			
				|  |  | -            window.SphinxRtdTheme.StickyNav.hashChange();
 | 
	
		
			
				|  |  | +        // Add expand links to all parents of nested ul
 | 
	
		
			
				|  |  | +        $('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () {
 | 
	
		
			
				|  |  | +            var link = $(this);
 | 
	
		
			
				|  |  | +                expand = $('<span class="toctree-expand"></span>');
 | 
	
		
			
				|  |  | +            expand.on('click', function (ev) {
 | 
	
		
			
				|  |  | +                self.toggleCurrent(link);
 | 
	
		
			
				|  |  | +                ev.stopPropagation();
 | 
	
		
			
				|  |  | +                return false;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            link.prepend(expand);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.reset = function () {
 | 
	
		
			
				|  |  | +        // Get anchor from URL and open up nested nav
 | 
	
		
			
				|  |  | +        var anchor = encodeURI(window.location.hash);
 | 
	
		
			
				|  |  | +        if (anchor) {
 | 
	
		
			
				|  |  | +            try {
 | 
	
		
			
				|  |  | +                var link = $('.wy-menu-vertical')
 | 
	
		
			
				|  |  | +                    .find('[href="' + anchor + '"]');
 | 
	
		
			
				|  |  | +                $('.wy-menu-vertical li.toctree-l1 li.current')
 | 
	
		
			
				|  |  | +                    .removeClass('current');
 | 
	
		
			
				|  |  | +                link.closest('li.toctree-l2').addClass('current');
 | 
	
		
			
				|  |  | +                link.closest('li.toctree-l3').addClass('current');
 | 
	
		
			
				|  |  | +                link.closest('li.toctree-l4').addClass('current');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            catch (err) {
 | 
	
		
			
				|  |  | +                console.log("Error expanding nav for anchor", err);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    $(document).on('click', "[data-toggle='rst-current-version']", function() {
 | 
	
		
			
				|  |  | -        $("[data-toggle='rst-versions']").toggleClass("shift-up");
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    // Make tables responsive
 | 
	
		
			
				|  |  | -    $("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    // Add expand links to all parents of nested ul
 | 
	
		
			
				|  |  | -    $('.wy-menu-vertical ul').siblings('a').each(function () {
 | 
	
		
			
				|  |  | -        var link = $(this);
 | 
	
		
			
				|  |  | -            expand = $('<span class="toctree-expand"></span>');
 | 
	
		
			
				|  |  | -        expand.on('click', function (ev) {
 | 
	
		
			
				|  |  | -            toggleCurrent(link);
 | 
	
		
			
				|  |  | -            ev.stopPropagation();
 | 
	
		
			
				|  |  | -            return false;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.onScroll = function () {
 | 
	
		
			
				|  |  | +        this.winScroll = false;
 | 
	
		
			
				|  |  | +        var newWinPosition = this.win.scrollTop(),
 | 
	
		
			
				|  |  | +            winBottom = newWinPosition + this.winHeight,
 | 
	
		
			
				|  |  | +            navPosition = this.navBar.scrollTop(),
 | 
	
		
			
				|  |  | +            newNavPosition = navPosition + (newWinPosition - this.winPosition);
 | 
	
		
			
				|  |  | +        if (newWinPosition < 0 || winBottom > this.docHeight) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.navBar.scrollTop(newNavPosition);
 | 
	
		
			
				|  |  | +        this.winPosition = newWinPosition;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.onResize = function () {
 | 
	
		
			
				|  |  | +        this.winResize = false;
 | 
	
		
			
				|  |  | +        this.winHeight = this.win.height();
 | 
	
		
			
				|  |  | +        this.docHeight = $(document).height();
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.hashChange = function () {
 | 
	
		
			
				|  |  | +        this.linkScroll = true;
 | 
	
		
			
				|  |  | +        this.win.one('hashchange', function () {
 | 
	
		
			
				|  |  | +            this.linkScroll = false;
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | -        link.prepend(expand);
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -});
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// Sphinx theme state
 | 
	
		
			
				|  |  | -window.SphinxRtdTheme = (function (jquery) {
 | 
	
		
			
				|  |  | -    var stickyNav = (function () {
 | 
	
		
			
				|  |  | -        var navBar,
 | 
	
		
			
				|  |  | -            win,
 | 
	
		
			
				|  |  | -            winScroll = false,
 | 
	
		
			
				|  |  | -            linkScroll = false,
 | 
	
		
			
				|  |  | -            winPosition = 0,
 | 
	
		
			
				|  |  | -            enable = function () {
 | 
	
		
			
				|  |  | -                init();
 | 
	
		
			
				|  |  | -                reset();
 | 
	
		
			
				|  |  | -                win.on('hashchange', reset);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                // Set scrolling
 | 
	
		
			
				|  |  | -                win.on('scroll', function () {
 | 
	
		
			
				|  |  | -                    if (!linkScroll) {
 | 
	
		
			
				|  |  | -                        winScroll = true;
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  | -                setInterval(function () {
 | 
	
		
			
				|  |  | -                    if (winScroll) {
 | 
	
		
			
				|  |  | -                        winScroll = false;
 | 
	
		
			
				|  |  | -                        var newWinPosition = win.scrollTop(),
 | 
	
		
			
				|  |  | -                            navPosition = navBar.scrollTop(),
 | 
	
		
			
				|  |  | -                            newNavPosition = navPosition + (newWinPosition - winPosition);
 | 
	
		
			
				|  |  | -                        navBar.scrollTop(newNavPosition);
 | 
	
		
			
				|  |  | -                        winPosition = newWinPosition;
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }, 25);
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            init = function () {
 | 
	
		
			
				|  |  | -                navBar = jquery('nav.wy-nav-side:first');
 | 
	
		
			
				|  |  | -                win = jquery(window);
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            reset = function () {
 | 
	
		
			
				|  |  | -                // Get anchor from URL and open up nested nav
 | 
	
		
			
				|  |  | -                var anchor = encodeURI(window.location.hash);
 | 
	
		
			
				|  |  | -                if (anchor) {
 | 
	
		
			
				|  |  | -                    try {
 | 
	
		
			
				|  |  | -                        var link = $('.wy-menu-vertical')
 | 
	
		
			
				|  |  | -                            .find('[href="' + anchor + '"]');
 | 
	
		
			
				|  |  | -                        $('.wy-menu-vertical li.toctree-l1 li.current')
 | 
	
		
			
				|  |  | -                            .removeClass('current');
 | 
	
		
			
				|  |  | -                        link.closest('li.toctree-l2').addClass('current');
 | 
	
		
			
				|  |  | -                        link.closest('li.toctree-l3').addClass('current');
 | 
	
		
			
				|  |  | -                        link.closest('li.toctree-l4').addClass('current');
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    catch (err) {
 | 
	
		
			
				|  |  | -                        console.log("Error expanding nav for anchor", err);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            },
 | 
	
		
			
				|  |  | -            hashChange = function () {
 | 
	
		
			
				|  |  | -                linkScroll = true;
 | 
	
		
			
				|  |  | -                win.one('hashchange', function () {
 | 
	
		
			
				|  |  | -                    linkScroll = false;
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  | -            };
 | 
	
		
			
				|  |  | -        jquery(init);
 | 
	
		
			
				|  |  | -        return {
 | 
	
		
			
				|  |  | -            enable: enable,
 | 
	
		
			
				|  |  | -            hashChange: hashChange
 | 
	
		
			
				|  |  | -        };
 | 
	
		
			
				|  |  | -    }());
 | 
	
		
			
				|  |  | -    return {
 | 
	
		
			
				|  |  | -        StickyNav: stickyNav
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  | -}($));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    nav.toggleCurrent = function (elem) {
 | 
	
		
			
				|  |  | +        var parent_li = elem.closest('li');
 | 
	
		
			
				|  |  | +        parent_li.siblings('li.current').removeClass('current');
 | 
	
		
			
				|  |  | +        parent_li.siblings().find('li.current').removeClass('current');
 | 
	
		
			
				|  |  | +        parent_li.find('> ul li.current').removeClass('current');
 | 
	
		
			
				|  |  | +        parent_li.toggleClass('current');
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return nav;
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +module.exports.ThemeNav = ThemeNav();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +if (typeof(window) != 'undefined') {
 | 
	
		
			
				|  |  | +    window.SphinxRtdTheme = { StickyNav: module.exports.ThemeNav };
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +},{"jquery":"jquery"}]},{},["sphinx-rtd-theme"]);
 |