diff --git a/esp_modem/.doctrees/README.doctree b/esp_modem/.doctrees/README.doctree index 0f88806ee..dc65a0984 100644 Binary files a/esp_modem/.doctrees/README.doctree and b/esp_modem/.doctrees/README.doctree differ diff --git a/esp_modem/.doctrees/advanced_api.doctree b/esp_modem/.doctrees/advanced_api.doctree index d49603af8..bfa639f4d 100644 Binary files a/esp_modem/.doctrees/advanced_api.doctree and b/esp_modem/.doctrees/advanced_api.doctree differ diff --git a/esp_modem/.doctrees/api_docs.doctree b/esp_modem/.doctrees/api_docs.doctree index 29ff744fc..9b7eac866 100644 Binary files a/esp_modem/.doctrees/api_docs.doctree and b/esp_modem/.doctrees/api_docs.doctree differ diff --git a/esp_modem/.doctrees/cxx_api_docs.doctree b/esp_modem/.doctrees/cxx_api_docs.doctree index 50b014b90..d8fdafcb3 100644 Binary files a/esp_modem/.doctrees/cxx_api_docs.doctree and b/esp_modem/.doctrees/cxx_api_docs.doctree differ diff --git a/esp_modem/.doctrees/cxx_api_links.doctree b/esp_modem/.doctrees/cxx_api_links.doctree index d49cc6dc6..6fb5bc751 100644 Binary files a/esp_modem/.doctrees/cxx_api_links.doctree and b/esp_modem/.doctrees/cxx_api_links.doctree differ diff --git a/esp_modem/.doctrees/environment.pickle b/esp_modem/.doctrees/environment.pickle index 16bb92a0e..c76e4cd22 100644 Binary files a/esp_modem/.doctrees/environment.pickle and b/esp_modem/.doctrees/environment.pickle differ diff --git a/esp_modem/.doctrees/index.doctree b/esp_modem/.doctrees/index.doctree index 0537e1271..799cfe226 100644 Binary files a/esp_modem/.doctrees/index.doctree and b/esp_modem/.doctrees/index.doctree differ diff --git a/esp_modem/.doctrees/internal_design.doctree b/esp_modem/.doctrees/internal_design.doctree index 23e17151b..cc3c2afa2 100644 Binary files a/esp_modem/.doctrees/internal_design.doctree and b/esp_modem/.doctrees/internal_design.doctree differ diff --git a/esp_modem/.doctrees/internal_docs.doctree b/esp_modem/.doctrees/internal_docs.doctree index f5dd92f55..9e7bfa9c4 100644 Binary files a/esp_modem/.doctrees/internal_docs.doctree and b/esp_modem/.doctrees/internal_docs.doctree differ diff --git a/esp_modem/README.html b/esp_modem/README.html index b08ec27dc..de2b80d1b 100644 --- a/esp_modem/README.html +++ b/esp_modem/README.html @@ -12,6 +12,7 @@ + @@ -34,7 +35,7 @@
-

ESP MODEM

+

ESP MODEM

This component is used to communicate with modems in the command mode (using AT commands), as well as the data mode (over PPPoS protocol). The modem device is modeled with a DCE (Data Communication Equipment) object, which is composed of:

@@ -58,9 +59,9 @@ The modem device is modeled with a DCE (Data Communication Equipment) object, wh
-

Modem components

+

Modem components

-

DCE

+

DCE

This is the basic operational unit of the esp_modem component, abstracting a specific module in software, which is basically configured by

-

DTE

+

DTE

Is an abstraction of the physical interface connected to the modem. Current implementation supports only UART

-

PPP netif

+

PPP netif

Is used to attach the specific network interface to a network communication protocol used by the modem. Currently implementation supports only PPPoS protocol.

-

Module

+

Module

Abstraction of the specific modem device. Currently the component supports SIM800, BG96, SIM7600.

-

Use cases

+

Use cases

Users interact with the esp-modem using the DCE’s interface, to basically

-

Extensibility

+

Extensibility

-

CMUX

+

CMUX

Implementation of virtual terminals is an experimental feature, which allows users to also issue commands in the data mode, after creating multiple virtual terminals, designating some of them solely to data mode, others solely to command mode.

-

DTE’s

+

DTE’s

Currently we support only UART, but modern modules support other communication interfaces, such as USB, SPI.

-

Other devices

+

Other devices

Adding a new device is a must-have requirement for the esp-modem component. Different modules support different commands, or some commands might have a different implementation. Adding a new device means to provide a new implementation as a class derived from GenericModule, where we could add new commands or modify the existing ones.

@@ -183,7 +184,7 @@ as a class derived from @@ -200,7 +201,7 @@ as a class derived from Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/_static/_sphinx_javascript_frameworks_compat.js b/esp_modem/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/esp_modem/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * 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) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/esp_modem/_static/basic.css b/esp_modem/_static/basic.css index bf18350b6..088967717 100644 --- a/esp_modem/_static/basic.css +++ b/esp_modem/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/esp_modem/_static/doctools.js b/esp_modem/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/esp_modem/_static/doctools.js +++ b/esp_modem/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * 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) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); } } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/esp_modem/_static/documentation_options.js b/esp_modem/_static/documentation_options.js index b57ae3b83..a750e4d5e 100644 --- a/esp_modem/_static/documentation_options.js +++ b/esp_modem/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/esp_modem/_static/jquery-3.5.1.js b/esp_modem/_static/jquery-3.6.0.js similarity index 98% rename from esp_modem/_static/jquery-3.5.1.js rename to esp_modem/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/esp_modem/_static/jquery-3.5.1.js +++ b/esp_modem/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/esp_modem/_static/jquery.js b/esp_modem/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/esp_modem/_static/jquery.js +++ b/esp_modem/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, // Used when the priority is not in the mapping. objPrioDefault: 0, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings } /** * Search Module */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - 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."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); }, - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ - performSearch : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

' + _('Searching') + '

').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

 

').appendTo(this.out); - this.output = $('
-

Create DTE and DCE

+

Create DTE and DCE

group ESP_MODEM_INIT_DTE
@@ -155,10 +156,10 @@
-

Mode switching commands

+

Mode switching commands

-template<class SpecificModule>
class esp_modem::DCE_T
+template<class SpecificModule>
class DCE_T

General DCE class templated on a specific module. It is responsible for all the necessary transactions related to switching modes and consequent synergy with aggregated objects of DTE, Netif and a specific Module.

Public Functions

@@ -173,7 +174,7 @@
-

Modem commands

+

Modem commands

-

Destroy the DCE

+

Destroy the DCE

The DCE object is created as std::unique_ptr by default and as such doesn’t have to be explicitly destroyed. It simply gets destroyed and cleaned-up automatically if the object goes out of the block scope.

@@ -268,7 +269,7 @@ It simply gets destroyed and cleaned-up automatically if the object goes out of - + @@ -285,7 +286,7 @@ It simply gets destroyed and cleaned-up automatically if the object goes out of ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/cxx_api_links.html b/esp_modem/cxx_api_links.html index 021aba646..e9e6b2ae3 100644 --- a/esp_modem/cxx_api_links.html +++ b/esp_modem/cxx_api_links.html @@ -12,6 +12,7 @@ + @@ -110,7 +111,7 @@ - + @@ -127,7 +128,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/genindex.html b/esp_modem/genindex.html index 9d7310382..1cd6f2a29 100644 --- a/esp_modem/genindex.html +++ b/esp_modem/genindex.html @@ -11,6 +11,7 @@ + @@ -106,6 +107,10 @@
  • esp_modem::BG96 (C++ class)
  • esp_modem::CMux (C++ class) +
  • +
  • esp_modem::CMux::deinit (C++ function) +
  • +
  • esp_modem::CMux::detach (C++ function)
  • esp_modem::CMux::init (C++ function)
  • @@ -266,11 +271,11 @@
  • esp_modem_dce_config (C++ struct)
  • esp_modem_dce_config::apn (C++ member) -
  • -
  • esp_modem_dce_config_t (C++ type)
    • +
    • esp_modem_dce_config_t (C++ type) +
    • ESP_MODEM_DCE_DEFAULT_CONFIG (C macro)
    • esp_modem_dce_device (C++ enum) @@ -290,6 +295,8 @@
    • esp_modem_dce_device_t (C++ type)
    • esp_modem_dce_mode (C++ enum) +
    • +
    • esp_modem_dce_mode::ESP_MODEM_MODE_CMUX (C++ enumerator)
    • esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND (C++ enumerator)
    • @@ -571,7 +578,7 @@ - + @@ -588,7 +595,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 diff --git a/esp_modem/index.html b/esp_modem/index.html index 6889f2f89..4ce46547f 100644 --- a/esp_modem/index.html +++ b/esp_modem/index.html @@ -12,6 +12,7 @@ + @@ -33,7 +34,7 @@
      -

      ESP-MODEM Programmers manual

      +

      ESP-MODEM Programmers manual

      - + @@ -159,7 +160,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/internal_design.html b/esp_modem/internal_design.html index b35f7e59a..664e2ed8a 100644 --- a/esp_modem/internal_design.html +++ b/esp_modem/internal_design.html @@ -12,6 +12,7 @@ + @@ -34,9 +35,9 @@
      -

      Internal design

      +

      Internal design

      -

      Design decisions

      +

      Design decisions

      • Use C++ with additional C API

      • Use exceptions

        @@ -59,17 +60,17 @@ such as implantation of a minimal device (ModuleIf), add new AT commands (oOnly
      -

      DCE collaboration model

      +

      DCE collaboration model

      The diagram describes how the DCE class collaborates with DTE, PPP and the device abstraction

      DCE_architecture

      -

      Terminal inheritance

      +

      Terminal inheritance

      Terminal is a class which can read or write data, and can handle callbacks when data are available. UART specialization is provided implementing these method using the uart driver.

      -

      CMUX terminal

      +

      CMUX terminal

      The below diagram depicts the idea of using CMUX terminal mode using the CMuxInstance class which is a terminal (it implements the basic read/write methods) interfacing arbitrary number of virtual terminals, but at the same time it is also composed of CMux class, which consumes the original terminal and uses its read/write methods @@ -128,7 +129,7 @@ to multiplex the terminal.

      - + @@ -145,7 +146,7 @@ to multiplex the terminal.

      ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/internal_docs.html b/esp_modem/internal_docs.html index cc16ee077..98239c6fe 100644 --- a/esp_modem/internal_docs.html +++ b/esp_modem/internal_docs.html @@ -12,6 +12,7 @@ + @@ -33,7 +34,7 @@
      -

      DCE Internal implementation

      +

      DCE Internal implementation

      This chapter provides a detailed description of the classes and building blocks of the esp-modem component and their responsibilities.

      The esp-modem actually implements the DCE class, which in turn aggregates these thee units:

        @@ -62,7 +63,7 @@
        -template<class SpecificModule>
        class esp_modem::DCE_T
        +template<class SpecificModule>
        class DCE_T
        #include <esp_modem_dce.hpp>

        General DCE class templated on a specific module. It is responsible for all the necessary transactions related to switching modes and consequent synergy with aggregated objects of DTE, Netif and a specific Module.

        @@ -79,7 +80,7 @@
        -class esp_modem::DCE : public esp_modem::DCE_T<GenericModule>
        +class DCE : public esp_modem::DCE_T<GenericModule>
        #include <esp_modem_dce.hpp>

        Common abstraction of the modem DCE, specialized by the GenericModule which is a parent class for the supported devices and most common modems, as well.

        @@ -554,7 +555,7 @@
        -

        DTE abstraction

        +

        DTE abstraction

        DTE is a basic unit to talk to the module using a Terminal interface. It also implements and uses the CMUX to multiplex terminals. Besides the DTE documentation, this section also refers to the

          @@ -568,7 +569,7 @@ terminals. Besides the DTE documentation, this section also refers to the

          Definition of DTE and related classes.

          -class esp_modem::DTE : public esp_modem::CommandableIf
          +class DTE : public esp_modem::CommandableIf
          #include <esp_modem_dte.hpp>

          DTE (Data Terminal Equipment) class

          @@ -677,7 +678,7 @@ terminals. Besides the DTE documentation, this section also refers to the

          -

          Terminal interface

          +

          Terminal interface

          group ESP_MODEM_TERMINAL
          @@ -709,7 +710,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -class esp_modem::Terminal
      +class Terminal
      #include <esp_modem_terminal.hpp>

      Terminal interface. All communication interfaces must comply to this interface in order to be used as a DTE.

      @@ -757,7 +758,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      CMUX implementation

      +

      CMUX implementation

      group ESP_MODEM_CMUX
      @@ -799,7 +800,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -class esp_modem::CMux
      +class CMux
      #include <esp_modem_cmux.hpp>

      CMux class which consumes the original terminal and creates multiple virtual terminals from it. This class itself is not usable as a DTE terminal, only via its instances defined in CMuxInstance

      @@ -816,6 +817,28 @@ terminals. Besides the DTE documentation, this section also refers to the

      +
      +
      +bool deinit()
      +

      Closes and deinits CMux protocol.

      +
      +
      Returns:
      +

      true on success

      +
      +
      +
      + +
      +
      +std::pair<std::shared_ptr<Terminal>, unique_buffer> detach()
      +

      Ejects the attached terminal and buffer, so they could be used as traditional command/data DTE’s.

      +
      +
      Returns:
      +

      pair of the original terminal and buffer

      +
      +
      +
      +
      void set_read_cb(int inst, std::function<bool(uint8_t *data, size_t len)> f)
      @@ -853,7 +876,7 @@ terminals. Besides the DTE documentation, this section also refers to the

      -class esp_modem::CMuxInstance : public esp_modem::Terminal
      +class CMuxInstance : public esp_modem::Terminal
      #include <esp_modem_cmux.hpp>

      This represents a specific instance of a CMUX virtual terminal. This class also implements Terminal interface and as such could be used as a DTE’s terminal.

      @@ -901,14 +924,14 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      Netif

      +

      Netif

      group ESP_MODEM_NETIF

      Network interface layer of the esp-modem.

      -class esp_modem::Netif
      +class Netif
      #include <esp_modem_netif.hpp>

      Network interface class responsible to glue the esp-netif to the modem’s DCE.

      @@ -939,14 +962,14 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      Module abstraction

      +

      Module abstraction

      group ESP_MODEM_MODULE

      Definition of modules representing specific modem devices.

      -class esp_modem::GenericModule : public esp_modem::ModuleIf
      +class GenericModule : public esp_modem::ModuleIf
      #include <esp_modem_dce_module.hpp>

      This is a basic building block for custom modules as well as for the supported modules in the esp-modem component It derives from the ModuleIf.

      @@ -1023,13 +1046,13 @@ terminals. Besides the DTE documentation, this section also refers to the

      -

      Adding new devices

      +

      Adding new devices

      To support a new module, developers would have to implement a new class derived from esp_modem::GenericModule the same way as it is described in the Advanced user manual. The only difference is that the new class (and factory extension) would be available in the esp_modem code base.

      -

      Implement a new generic command

      +

      Implement a new generic command

      Adding a generic command, i.e. the command that is shared for all modules and is included in the esp_modem::GenericModule, has to be declared first in the include/generate/esp_modem_command_declare.inc file, which is the single source of supported command definitions, that is used in:

      @@ -1049,7 +1072,7 @@ of supported command definitions, that is used in:

      human readable argument name is baud, it’s the first argument, so expands to p1 (second argument would be p2, etc)

      -

      Command library

      +

      Command library

      This is a namespace holding a library of typical AT commands used by supported devices. Please refer to the C API Documentation for the list of supported commands.

      @@ -1109,7 +1132,7 @@ Please refer to the
      -

      Modem types

      +

      Modem types

      group ESP_MODEM_TYPES
      @@ -1190,7 +1213,7 @@ Please refer to the
      -class esp_modem::CommandableIf
      +class CommandableIf
      #include <esp_modem_types.hpp>

      Interface for classes eligible to send AT commands (Modules, DCEs, DTEs)

      @@ -1220,7 +1243,7 @@ Please refer to the
      -class esp_modem::ModuleIf
      +class ModuleIf
      #include <esp_modem_types.hpp>

      Interface for classes implementing a module for the modem.

      @@ -1318,7 +1341,7 @@ Please refer to the - + @@ -1335,7 +1358,7 @@ Please refer to the Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 | diff --git a/esp_modem/objects.inv b/esp_modem/objects.inv index 63d36966f..731172858 100644 Binary files a/esp_modem/objects.inv and b/esp_modem/objects.inv differ diff --git a/esp_modem/search.html b/esp_modem/search.html index a477819d5..c6f544f05 100644 --- a/esp_modem/search.html +++ b/esp_modem/search.html @@ -12,6 +12,7 @@ + @@ -115,7 +116,7 @@ ©2016 - 2021, Espressif Systems (Shanghai) Co., Ltd. | - Powered by Sphinx 4.5.0 + Powered by Sphinx 5.0.2 & Alabaster 0.7.12 diff --git a/esp_modem/searchindex.js b/esp_modem/searchindex.js index 6f5703298..ef32af754 100644 --- a/esp_modem/searchindex.js +++ b/esp_modem/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["README","advanced_api","api_docs","cxx_api_docs","cxx_api_links","index","internal_design","internal_docs"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["README.md","advanced_api.rst","api_docs.rst","cxx_api_docs.rst","cxx_api_links.rst","index.rst","internal_design.md","internal_docs.rst"],objects:{"":[[2,0,1,"c.ESP_MODEM_DCE_DEFAULT_CONFIG","ESP_MODEM_DCE_DEFAULT_CONFIG"],[7,0,1,"c.ESP_MODEM_DECLARE_DCE_COMMAND","ESP_MODEM_DECLARE_DCE_COMMAND"],[2,0,1,"c.ESP_MODEM_DTE_DEFAULT_CONFIG","ESP_MODEM_DTE_DEFAULT_CONFIG"],[2,1,1,"_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E","ESP_MODEM_DCE_BG96"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE","ESP_MODEM_DCE_GENETIC"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E","ESP_MODEM_DCE_SIM7000"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E","ESP_MODEM_DCE_SIM7070"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E","ESP_MODEM_DCE_SIM7600"],[2,1,1,"_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E","ESP_MODEM_DCE_SIM800"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE","ESP_MODEM_FLOW_CONTROL_HW"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE","ESP_MODEM_FLOW_CONTROL_NONE"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE","ESP_MODEM_FLOW_CONTROL_SW"],[2,1,1,"_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE","ESP_MODEM_MODE_COMMAND"],[2,1,1,"_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE","ESP_MODEM_MODE_DATA"],[1,2,1,"_CPPv49ModemType","ModemType"],[1,1,1,"_CPPv4N9ModemType4BG96E","ModemType::BG96"],[1,1,1,"_CPPv4N9ModemType13GenericModuleE","ModemType::GenericModule"],[1,1,1,"_CPPv4N9ModemType7SIM7000E","ModemType::SIM7000"],[1,1,1,"_CPPv4N9ModemType7SIM7070E","ModemType::SIM7070"],[1,1,1,"_CPPv4N9ModemType7SIM7600E","ModemType::SIM7600"],[1,1,1,"_CPPv4N9ModemType6SIM800E","ModemType::SIM800"],[7,2,1,"_CPPv410cmux_state","cmux_state"],[7,1,1,"_CPPv4N10cmux_state6FOOTERE","cmux_state::FOOTER"],[7,1,1,"_CPPv4N10cmux_state6HEADERE","cmux_state::HEADER"],[7,1,1,"_CPPv4N10cmux_state4INITE","cmux_state::INIT"],[7,1,1,"_CPPv4N10cmux_state7PAYLOADE","cmux_state::PAYLOAD"],[7,1,1,"_CPPv4N10cmux_state7RECOVERE","cmux_state::RECOVER"],[7,2,1,"_CPPv414command_result","command_result"],[7,1,1,"_CPPv4N14command_result4FAILE","command_result::FAIL"],[7,1,1,"_CPPv4N14command_result2OKE","command_result::OK"],[7,1,1,"_CPPv4N14command_result7TIMEOUTE","command_result::TIMEOUT"],[3,3,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce"],[3,4,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce::config"],[3,4,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce::dte"],[3,4,1,"_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_BG96_dce::netif"],[3,3,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce"],[3,4,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce::config"],[3,4,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce::dte"],[3,4,1,"_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7000_dce::netif"],[3,3,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce"],[3,4,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce::config"],[3,4,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce::dte"],[3,4,1,"_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7070_dce::netif"],[3,3,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce"],[3,4,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce::config"],[3,4,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce::dte"],[3,4,1,"_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM7600_dce::netif"],[3,3,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce"],[3,4,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce::config"],[3,4,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce::dte"],[3,4,1,"_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_SIM800_dce::netif"],[3,3,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce"],[3,4,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce::config"],[3,4,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce::dte"],[3,4,1,"_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t","create_generic_dce::netif"],[3,3,1,"_CPPv415create_uart_dtePK10dte_config","create_uart_dte"],[3,4,1,"_CPPv415create_uart_dtePK10dte_config","create_uart_dte::config"],[3,3,1,"_CPPv414create_vfs_dtePK10dte_config","create_vfs_dte"],[3,4,1,"_CPPv414create_vfs_dtePK10dte_config","create_vfs_dte::config"],[3,5,1,"_CPPv410dce_config","dce_config"],[3,5,1,"_CPPv410dte_config","dte_config"],[7,6,1,"_CPPv4N9esp_modem4BG96E","esp_modem::BG96"],[7,6,1,"_CPPv4N9esp_modem4CMuxE","esp_modem::CMux"],[7,3,1,"_CPPv4N9esp_modem4CMux4initEv","esp_modem::CMux::init"],[7,3,1,"_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE","esp_modem::CMux::set_read_cb"],[7,4,1,"_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE","esp_modem::CMux::set_read_cb::f"],[7,4,1,"_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE","esp_modem::CMux::set_read_cb::inst"],[7,3,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write"],[7,4,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write::data"],[7,4,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write::i"],[7,4,1,"_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t","esp_modem::CMux::write::len"],[7,6,1,"_CPPv4N9esp_modem12CMuxInstanceE","esp_modem::CMuxInstance"],[7,3,1,"_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t","esp_modem::CMuxInstance::read"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t","esp_modem::CMuxInstance::read::data"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t","esp_modem::CMuxInstance::read::len"],[7,3,1,"_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t","esp_modem::CMuxInstance::write"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t","esp_modem::CMuxInstance::write::data"],[7,4,1,"_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t","esp_modem::CMuxInstance::write::len"],[7,6,1,"_CPPv4N9esp_modem13CommandableIfE","esp_modem::CommandableIf"],[7,3,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::command"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::got_line"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::separator"],[7,4,1,"_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc","esp_modem::CommandableIf::command::time_ms"],[7,6,1,"_CPPv4N9esp_modem3DCEE","esp_modem::DCE"],[7,3,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status::bcl"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status::bcs"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi","esp_modem::DCE::get_battery_status::voltage"],[7,3,1,"_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE","esp_modem::DCE::get_imei"],[7,4,1,"_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE","esp_modem::DCE::get_imei::imei"],[7,3,1,"_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE","esp_modem::DCE::get_imsi"],[7,4,1,"_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE","esp_modem::DCE::get_imsi::imsi"],[7,3,1,"_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE","esp_modem::DCE::get_module_name"],[7,4,1,"_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE","esp_modem::DCE::get_module_name::name"],[7,3,1,"_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi","esp_modem::DCE::get_network_attachment_state"],[7,4,1,"_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi","esp_modem::DCE::get_network_attachment_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE23get_network_system_modeERi","esp_modem::DCE::get_network_system_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE23get_network_system_modeERi","esp_modem::DCE::get_network_system_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE","esp_modem::DCE::get_operator_name"],[7,4,1,"_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE","esp_modem::DCE::get_operator_name::name"],[7,3,1,"_CPPv4N9esp_modem3DCE15get_radio_stateERi","esp_modem::DCE::get_radio_state"],[7,4,1,"_CPPv4N9esp_modem3DCE15get_radio_stateERi","esp_modem::DCE::get_radio_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi","esp_modem::DCE::get_signal_quality"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi","esp_modem::DCE::get_signal_quality::ber"],[7,4,1,"_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi","esp_modem::DCE::get_signal_quality::rssi"],[7,3,1,"_CPPv4N9esp_modem3DCE7hang_upEv","esp_modem::DCE::hang_up"],[7,3,1,"_CPPv4N9esp_modem3DCE10power_downEv","esp_modem::DCE::power_down"],[7,3,1,"_CPPv4N9esp_modem3DCE8read_pinERb","esp_modem::DCE::read_pin"],[7,4,1,"_CPPv4N9esp_modem3DCE8read_pinERb","esp_modem::DCE::read_pin::pin_ok"],[7,3,1,"_CPPv4N9esp_modem3DCE5resetEv","esp_modem::DCE::reset"],[7,3,1,"_CPPv4N9esp_modem3DCE16resume_data_modeEv","esp_modem::DCE::resume_data_mode"],[7,3,1,"_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE","esp_modem::DCE::send_sms"],[7,4,1,"_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE","esp_modem::DCE::send_sms::message"],[7,4,1,"_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE","esp_modem::DCE::send_sms::number"],[7,3,1,"_CPPv4N9esp_modem3DCE8set_baudEi","esp_modem::DCE::set_baud"],[7,4,1,"_CPPv4N9esp_modem3DCE8set_baudEi","esp_modem::DCE::set_baud::baud"],[7,3,1,"_CPPv4N9esp_modem3DCE8set_cmuxEv","esp_modem::DCE::set_cmux"],[7,3,1,"_CPPv4N9esp_modem3DCE16set_command_modeEv","esp_modem::DCE::set_command_mode"],[7,3,1,"_CPPv4N9esp_modem3DCE13set_data_modeEv","esp_modem::DCE::set_data_mode"],[7,3,1,"_CPPv4N9esp_modem3DCE8set_echoEKb","esp_modem::DCE::set_echo"],[7,4,1,"_CPPv4N9esp_modem3DCE8set_echoEKb","esp_modem::DCE::set_echo::echo_on"],[7,3,1,"_CPPv4N9esp_modem3DCE16set_flow_controlEii","esp_modem::DCE::set_flow_control"],[7,4,1,"_CPPv4N9esp_modem3DCE16set_flow_controlEii","esp_modem::DCE::set_flow_control::dce_flow"],[7,4,1,"_CPPv4N9esp_modem3DCE16set_flow_controlEii","esp_modem::DCE::set_flow_control::dte_flow"],[7,3,1,"_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi","esp_modem::DCE::set_gnss_power_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi","esp_modem::DCE::set_gnss_power_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi","esp_modem::DCE::set_network_attachment_state"],[7,4,1,"_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi","esp_modem::DCE::set_network_attachment_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands"],[7,4,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands::bands"],[7,4,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands::mode"],[7,4,1,"_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii","esp_modem::DCE::set_network_bands::size"],[7,3,1,"_CPPv4N9esp_modem3DCE16set_network_modeEi","esp_modem::DCE::set_network_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE16set_network_modeEi","esp_modem::DCE::set_network_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator"],[7,4,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator::format"],[7,4,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator::mode"],[7,4,1,"_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE","esp_modem::DCE::set_operator::oper"],[7,3,1,"_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext","esp_modem::DCE::set_pdp_context"],[7,4,1,"_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext","esp_modem::DCE::set_pdp_context::p1"],[7,3,1,"_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE","esp_modem::DCE::set_pin"],[7,4,1,"_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE","esp_modem::DCE::set_pin::pin"],[7,3,1,"_CPPv4N9esp_modem3DCE18set_preferred_modeEi","esp_modem::DCE::set_preferred_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE18set_preferred_modeEi","esp_modem::DCE::set_preferred_mode::mode"],[7,3,1,"_CPPv4N9esp_modem3DCE15set_radio_stateEi","esp_modem::DCE::set_radio_state"],[7,4,1,"_CPPv4N9esp_modem3DCE15set_radio_stateEi","esp_modem::DCE::set_radio_state::state"],[7,3,1,"_CPPv4N9esp_modem3DCE17sms_character_setEv","esp_modem::DCE::sms_character_set"],[7,3,1,"_CPPv4N9esp_modem3DCE12sms_txt_modeEKb","esp_modem::DCE::sms_txt_mode"],[7,4,1,"_CPPv4N9esp_modem3DCE12sms_txt_modeEKb","esp_modem::DCE::sms_txt_mode::txt"],[7,3,1,"_CPPv4N9esp_modem3DCE13store_profileEv","esp_modem::DCE::store_profile"],[7,3,1,"_CPPv4N9esp_modem3DCE4syncEv","esp_modem::DCE::sync"],[7,6,1,"_CPPv4N9esp_modem8DCE_ModeE","esp_modem::DCE_Mode"],[3,6,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T"],[7,6,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T"],[3,7,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T::SpecificModule"],[7,7,1,"_CPPv4I0EN9esp_modem5DCE_TE","esp_modem::DCE_T::SpecificModule"],[3,3,1,"_CPPv4N9esp_modem5DCE_T8set_dataEv","esp_modem::DCE_T::set_data"],[7,3,1,"_CPPv4N9esp_modem5DCE_T8set_dataEv","esp_modem::DCE_T::set_data"],[7,6,1,"_CPPv4N9esp_modem3DTEE","esp_modem::DTE"],[7,3,1,"_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE","esp_modem::DTE::DTE"],[7,4,1,"_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE","esp_modem::DTE::DTE::config"],[7,4,1,"_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE","esp_modem::DTE::DTE::t"],[7,3,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command"],[7,3,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command::command"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::command"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command::got_line"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::got_line"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::separator"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t","esp_modem::DTE::command::time_ms"],[7,4,1,"_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc","esp_modem::DTE::command::time_ms"],[7,3,1,"_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t","esp_modem::DTE::read"],[7,4,1,"_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t","esp_modem::DTE::read::d"],[7,4,1,"_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t","esp_modem::DTE::read::len"],[7,3,1,"_CPPv4N9esp_modem3DTE8set_modeE10modem_mode","esp_modem::DTE::set_mode"],[7,4,1,"_CPPv4N9esp_modem3DTE8set_modeE10modem_mode","esp_modem::DTE::set_mode::m"],[7,3,1,"_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE","esp_modem::DTE::set_read_cb"],[7,4,1,"_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE","esp_modem::DTE::set_read_cb::f"],[7,3,1,"_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t","esp_modem::DTE::write"],[7,4,1,"_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t","esp_modem::DTE::write::data"],[7,4,1,"_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t","esp_modem::DTE::write::len"],[7,6,1,"_CPPv4N9esp_modem13GenericModuleE","esp_modem::GenericModule"],[7,3,1,"_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::GenericModule"],[7,4,1,"_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::GenericModule::dte"],[7,4,1,"_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::GenericModule::pdp"],[7,3,1,"_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::configure_pdp_context"],[7,4,1,"_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE","esp_modem::GenericModule::configure_pdp_context::new_pdp"],[7,3,1,"_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode","esp_modem::GenericModule::set_mode"],[7,4,1,"_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode","esp_modem::GenericModule::set_mode::mode"],[7,3,1,"_CPPv4N9esp_modem13GenericModule15setup_data_modeEv","esp_modem::GenericModule::setup_data_mode"],[7,6,1,"_CPPv4N9esp_modem8ModuleIfE","esp_modem::ModuleIf"],[7,3,1,"_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode","esp_modem::ModuleIf::set_mode"],[7,4,1,"_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode","esp_modem::ModuleIf::set_mode::mode"],[7,3,1,"_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv","esp_modem::ModuleIf::setup_data_mode"],[7,6,1,"_CPPv4N9esp_modem5NetifE","esp_modem::Netif"],[7,3,1,"_CPPv4N9esp_modem5Netif5startEv","esp_modem::Netif::start"],[7,3,1,"_CPPv4N9esp_modem5Netif4stopEv","esp_modem::Netif::stop"],[7,3,1,"_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv","esp_modem::Netif::wait_until_ppp_exits"],[7,6,1,"_CPPv4N9esp_modem10PdpContextE","esp_modem::PdpContext"],[7,6,1,"_CPPv4N9esp_modem7SIM7000E","esp_modem::SIM7000"],[7,6,1,"_CPPv4N9esp_modem7SIM7070E","esp_modem::SIM7070"],[7,6,1,"_CPPv4N9esp_modem7SIM7600E","esp_modem::SIM7600"],[7,6,1,"_CPPv4N9esp_modem6SIM800E","esp_modem::SIM800"],[7,6,1,"_CPPv4N9esp_modem8TerminalE","esp_modem::Terminal"],[7,3,1,"_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t","esp_modem::Terminal::read"],[7,4,1,"_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t","esp_modem::Terminal::read::data"],[7,4,1,"_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t","esp_modem::Terminal::read::len"],[7,3,1,"_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t","esp_modem::Terminal::write"],[7,4,1,"_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t","esp_modem::Terminal::write::data"],[7,4,1,"_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t","esp_modem::Terminal::write::len"],[1,6,1,"_CPPv4I0EN9esp_modem11dce_factory7CreatorE","esp_modem::dce_factory::Creator"],[1,7,1,"_CPPv4I0EN9esp_modem11dce_factory7CreatorE","esp_modem::dce_factory::Creator::T_Module"],[1,6,1,"_CPPv4N9esp_modem11dce_factory7FactoryE","esp_modem::dce_factory::Factory"],[1,3,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::Args"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::T_Module"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::args"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build::cfg"],[1,3,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique"],[1,3,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::Args"],[1,7,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::Args"],[1,7,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::T_Module"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::args"],[1,4,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::args"],[1,4,1,"_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::cfg"],[1,4,1,"_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args","esp_modem::dce_factory::Factory::build_unique::cfg"],[1,6,1,"_CPPv4N9esp_modem11dce_factory13FactoryHelperE","esp_modem::dce_factory::FactoryHelper"],[2,6,1,"_CPPv420esp_modem_dce_config","esp_modem_dce_config"],[2,8,1,"_CPPv4N20esp_modem_dce_config3apnE","esp_modem_dce_config::apn"],[2,5,1,"_CPPv422esp_modem_dce_config_t","esp_modem_dce_config_t"],[2,2,1,"_CPPv420esp_modem_dce_device","esp_modem_dce_device"],[2,1,1,"_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E","esp_modem_dce_device::ESP_MODEM_DCE_BG96"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE","esp_modem_dce_device::ESP_MODEM_DCE_GENETIC"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E","esp_modem_dce_device::ESP_MODEM_DCE_SIM7000"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E","esp_modem_dce_device::ESP_MODEM_DCE_SIM7070"],[2,1,1,"_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E","esp_modem_dce_device::ESP_MODEM_DCE_SIM7600"],[2,1,1,"_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E","esp_modem_dce_device::ESP_MODEM_DCE_SIM800"],[2,5,1,"_CPPv422esp_modem_dce_device_t","esp_modem_dce_device_t"],[2,2,1,"_CPPv418esp_modem_dce_mode","esp_modem_dce_mode"],[2,1,1,"_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE","esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND"],[2,1,1,"_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE","esp_modem_dce_mode::ESP_MODEM_MODE_DATA"],[2,5,1,"_CPPv420esp_modem_dce_mode_t","esp_modem_dce_mode_t"],[2,3,1,"_CPPv417esp_modem_destroyP15esp_modem_dce_t","esp_modem_destroy"],[2,4,1,"_CPPv417esp_modem_destroyP15esp_modem_dce_t","esp_modem_destroy::dce"],[2,6,1,"_CPPv420esp_modem_dte_config","esp_modem_dte_config"],[2,8,1,"_CPPv4N20esp_modem_dte_config15dte_buffer_sizeE","esp_modem_dte_config::dte_buffer_size"],[2,8,1,"_CPPv4N20esp_modem_dte_config16extension_configE","esp_modem_dte_config::extension_config"],[2,8,1,"_CPPv4N20esp_modem_dte_config13task_priorityE","esp_modem_dte_config::task_priority"],[2,8,1,"_CPPv4N20esp_modem_dte_config15task_stack_sizeE","esp_modem_dte_config::task_stack_size"],[2,8,1,"_CPPv4N20esp_modem_dte_config11uart_configE","esp_modem_dte_config::uart_config"],[2,8,1,"_CPPv4N20esp_modem_dte_config10vfs_configE","esp_modem_dte_config::vfs_config"],[2,5,1,"_CPPv422esp_modem_dte_config_t","esp_modem_dte_config_t"],[2,2,1,"_CPPv421esp_modem_flow_ctrl_t","esp_modem_flow_ctrl_t"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE","esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_HW"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE","esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_NONE"],[2,1,1,"_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE","esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_SW"],[2,3,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status"],[2,4,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status::bcl"],[2,4,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status::bcs"],[2,4,1,"_CPPv428esp_modem_get_battery_statusPiPiPi","esp_modem_get_battery_status::voltage"],[2,3,1,"_CPPv418esp_modem_get_imeiPc","esp_modem_get_imei"],[2,4,1,"_CPPv418esp_modem_get_imeiPc","esp_modem_get_imei::imei"],[2,3,1,"_CPPv418esp_modem_get_imsiPc","esp_modem_get_imsi"],[2,4,1,"_CPPv418esp_modem_get_imsiPc","esp_modem_get_imsi::imsi"],[2,3,1,"_CPPv425esp_modem_get_module_namePc","esp_modem_get_module_name"],[2,4,1,"_CPPv425esp_modem_get_module_namePc","esp_modem_get_module_name::name"],[2,3,1,"_CPPv438esp_modem_get_network_attachment_statePi","esp_modem_get_network_attachment_state"],[2,4,1,"_CPPv438esp_modem_get_network_attachment_statePi","esp_modem_get_network_attachment_state::state"],[2,3,1,"_CPPv433esp_modem_get_network_system_modePi","esp_modem_get_network_system_mode"],[2,4,1,"_CPPv433esp_modem_get_network_system_modePi","esp_modem_get_network_system_mode::mode"],[2,3,1,"_CPPv427esp_modem_get_operator_namePc","esp_modem_get_operator_name"],[2,4,1,"_CPPv427esp_modem_get_operator_namePc","esp_modem_get_operator_name::name"],[2,3,1,"_CPPv425esp_modem_get_radio_statePi","esp_modem_get_radio_state"],[2,4,1,"_CPPv425esp_modem_get_radio_statePi","esp_modem_get_radio_state::state"],[2,3,1,"_CPPv428esp_modem_get_signal_qualityPiPi","esp_modem_get_signal_quality"],[2,4,1,"_CPPv428esp_modem_get_signal_qualityPiPi","esp_modem_get_signal_quality::ber"],[2,4,1,"_CPPv428esp_modem_get_signal_qualityPiPi","esp_modem_get_signal_quality::rssi"],[2,3,1,"_CPPv417esp_modem_hang_upv","esp_modem_hang_up"],[2,3,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new"],[2,4,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new::dce_config"],[2,4,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new::dte_config"],[2,4,1,"_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new::netif"],[2,3,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::dce_config"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::dte_config"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::module"],[2,4,1,"_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t","esp_modem_new_dev::netif"],[2,3,1,"_CPPv420esp_modem_power_downv","esp_modem_power_down"],[2,3,1,"_CPPv418esp_modem_read_pinPb","esp_modem_read_pin"],[2,4,1,"_CPPv418esp_modem_read_pinPb","esp_modem_read_pin::pin_ok"],[2,3,1,"_CPPv415esp_modem_resetv","esp_modem_reset"],[2,3,1,"_CPPv426esp_modem_resume_data_modev","esp_modem_resume_data_mode"],[2,3,1,"_CPPv418esp_modem_send_smsPKcPKc","esp_modem_send_sms"],[2,4,1,"_CPPv418esp_modem_send_smsPKcPKc","esp_modem_send_sms::message"],[2,4,1,"_CPPv418esp_modem_send_smsPKcPKc","esp_modem_send_sms::number"],[2,3,1,"_CPPv418esp_modem_set_baudi","esp_modem_set_baud"],[2,4,1,"_CPPv418esp_modem_set_baudi","esp_modem_set_baud::baud"],[2,3,1,"_CPPv418esp_modem_set_cmuxv","esp_modem_set_cmux"],[2,3,1,"_CPPv426esp_modem_set_command_modev","esp_modem_set_command_mode"],[2,3,1,"_CPPv423esp_modem_set_data_modev","esp_modem_set_data_mode"],[2,3,1,"_CPPv418esp_modem_set_echoKb","esp_modem_set_echo"],[2,4,1,"_CPPv418esp_modem_set_echoKb","esp_modem_set_echo::echo_on"],[2,3,1,"_CPPv426esp_modem_set_flow_controlii","esp_modem_set_flow_control"],[2,4,1,"_CPPv426esp_modem_set_flow_controlii","esp_modem_set_flow_control::dce_flow"],[2,4,1,"_CPPv426esp_modem_set_flow_controlii","esp_modem_set_flow_control::dte_flow"],[2,3,1,"_CPPv429esp_modem_set_gnss_power_modei","esp_modem_set_gnss_power_mode"],[2,4,1,"_CPPv429esp_modem_set_gnss_power_modei","esp_modem_set_gnss_power_mode::mode"],[2,3,1,"_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t","esp_modem_set_mode"],[2,4,1,"_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t","esp_modem_set_mode::dce"],[2,4,1,"_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t","esp_modem_set_mode::mode"],[2,3,1,"_CPPv438esp_modem_set_network_attachment_statei","esp_modem_set_network_attachment_state"],[2,4,1,"_CPPv438esp_modem_set_network_attachment_statei","esp_modem_set_network_attachment_state::state"],[2,3,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands"],[2,4,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands::bands"],[2,4,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands::mode"],[2,4,1,"_CPPv427esp_modem_set_network_bandsPKcPKii","esp_modem_set_network_bands::size"],[2,3,1,"_CPPv426esp_modem_set_network_modei","esp_modem_set_network_mode"],[2,4,1,"_CPPv426esp_modem_set_network_modei","esp_modem_set_network_mode::mode"],[2,3,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator"],[2,4,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator::format"],[2,4,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator::mode"],[2,4,1,"_CPPv422esp_modem_set_operatoriiPKc","esp_modem_set_operator::oper"],[2,3,1,"_CPPv425esp_modem_set_pdp_contextP10PdpContext","esp_modem_set_pdp_context"],[2,4,1,"_CPPv425esp_modem_set_pdp_contextP10PdpContext","esp_modem_set_pdp_context::p1"],[2,3,1,"_CPPv417esp_modem_set_pinPKc","esp_modem_set_pin"],[2,4,1,"_CPPv417esp_modem_set_pinPKc","esp_modem_set_pin::pin"],[2,3,1,"_CPPv428esp_modem_set_preferred_modei","esp_modem_set_preferred_mode"],[2,4,1,"_CPPv428esp_modem_set_preferred_modei","esp_modem_set_preferred_mode::mode"],[2,3,1,"_CPPv425esp_modem_set_radio_statei","esp_modem_set_radio_state"],[2,4,1,"_CPPv425esp_modem_set_radio_statei","esp_modem_set_radio_state::state"],[2,3,1,"_CPPv427esp_modem_sms_character_setv","esp_modem_sms_character_set"],[2,3,1,"_CPPv422esp_modem_sms_txt_modeKb","esp_modem_sms_txt_mode"],[2,4,1,"_CPPv422esp_modem_sms_txt_modeKb","esp_modem_sms_txt_mode::txt"],[2,3,1,"_CPPv423esp_modem_store_profilev","esp_modem_store_profile"],[2,3,1,"_CPPv414esp_modem_syncv","esp_modem_sync"],[2,6,1,"_CPPv426esp_modem_uart_term_config","esp_modem_uart_term_config"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9baud_rateE","esp_modem_uart_term_config::baud_rate"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config10cts_io_numE","esp_modem_uart_term_config::cts_io_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9data_bitsE","esp_modem_uart_term_config::data_bits"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config16event_queue_sizeE","esp_modem_uart_term_config::event_queue_size"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config12flow_controlE","esp_modem_uart_term_config::flow_control"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config6parityE","esp_modem_uart_term_config::parity"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config8port_numE","esp_modem_uart_term_config::port_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config10rts_io_numE","esp_modem_uart_term_config::rts_io_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config14rx_buffer_sizeE","esp_modem_uart_term_config::rx_buffer_size"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9rx_io_numE","esp_modem_uart_term_config::rx_io_num"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9stop_bitsE","esp_modem_uart_term_config::stop_bits"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config14tx_buffer_sizeE","esp_modem_uart_term_config::tx_buffer_size"],[2,8,1,"_CPPv4N26esp_modem_uart_term_config9tx_io_numE","esp_modem_uart_term_config::tx_io_num"],[2,6,1,"_CPPv425esp_modem_vfs_term_config","esp_modem_vfs_term_config"],[2,8,1,"_CPPv4N25esp_modem_vfs_term_config7deleterE","esp_modem_vfs_term_config::deleter"],[2,8,1,"_CPPv4N25esp_modem_vfs_term_config2fdE","esp_modem_vfs_term_config::fd"],[2,8,1,"_CPPv4N25esp_modem_vfs_term_config8resourceE","esp_modem_vfs_term_config::resource"],[7,3,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::bcl"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::bcs"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::t"],[7,4,1,"_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi","get_battery_status_sim7xxx::voltage"],[7,5,1,"_CPPv411got_line_cb","got_line_cb"],[7,2,1,"_CPPv410modem_mode","modem_mode"],[7,1,1,"_CPPv4N10modem_mode9CMUX_MODEE","modem_mode::CMUX_MODE"],[7,1,1,"_CPPv4N10modem_mode12COMMAND_MODEE","modem_mode::COMMAND_MODE"],[7,1,1,"_CPPv4N10modem_mode9DATA_MODEE","modem_mode::DATA_MODE"],[7,1,1,"_CPPv4N10modem_mode5UNDEFE","modem_mode::UNDEF"],[7,3,1,"_CPPv418power_down_sim70xxP13CommandableIf","power_down_sim70xx"],[7,4,1,"_CPPv418power_down_sim70xxP13CommandableIf","power_down_sim70xx::t"],[7,3,1,"_CPPv418power_down_sim76xxP13CommandableIf","power_down_sim76xx"],[7,4,1,"_CPPv418power_down_sim76xxP13CommandableIf","power_down_sim76xx::t"],[7,3,1,"_CPPv417power_down_sim8xxP13CommandableIf","power_down_sim8xx"],[7,4,1,"_CPPv417power_down_sim8xxP13CommandableIf","power_down_sim8xx::t"],[7,3,1,"_CPPv420set_data_mode_sim8xxP13CommandableIf","set_data_mode_sim8xx"],[7,4,1,"_CPPv420set_data_mode_sim8xxP13CommandableIf","set_data_mode_sim8xx::t"],[7,3,1,"_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi","set_gnss_power_mode_sim76xx"],[7,4,1,"_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi","set_gnss_power_mode_sim76xx::mode"],[7,4,1,"_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi","set_gnss_power_mode_sim76xx::t"],[7,3,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::bands"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::mode"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::size"],[7,4,1,"_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii","set_network_bands_sim76xx::t"],[7,2,1,"_CPPv414terminal_error","terminal_error"],[7,1,1,"_CPPv4N14terminal_error15BUFFER_OVERFLOWE","terminal_error::BUFFER_OVERFLOW"],[7,1,1,"_CPPv4N14terminal_error14CHECKSUM_ERRORE","terminal_error::CHECKSUM_ERROR"],[7,1,1,"_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE","terminal_error::UNEXPECTED_CONTROL_FLOW"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","enumerator","C++ enumerator"],"2":["cpp","enum","C++ enum"],"3":["cpp","function","C++ function"],"4":["cpp","functionParam","C++ function parameter"],"5":["cpp","type","C++ type"],"6":["cpp","class","C++ class"],"7":["cpp","templateParam","C++ template parameter"],"8":["cpp","member","C++ member"]},objtypes:{"0":"c:macro","1":"cpp:enumerator","2":"cpp:enum","3":"cpp:function","4":"cpp:functionParam","5":"cpp:type","6":"cpp:class","7":"cpp:templateParam","8":"cpp:member"},terms:{"0":[2,7],"1":[2,7],"100":[2,7],"2":[2,7],"3":[2,7],"4":[2,7],"6":7,"64":2,"8212":7,"abstract":[0,5,6],"break":6,"byte":[2,7],"case":[5,6],"catch":6,"char":[2,7],"class":[0,1,3,6,7],"const":[1,2,3,7],"default":[1,2,3,7],"enum":[1,2,7],"function":[1,2,3,7],"int":[2,7],"long":[2,6,7],"new":[0,2,5,6],"null":2,"public":[0,1,2,3,7],"return":[1,2,3,7],"short":[2,7],"static":1,"switch":[0,2,5,7],"throw":[1,6],"true":[2,7],"try":6,"void":[2,3,7],AT:[0,1,2,3,6,7],In:1,Is:0,It:[1,3,7],Not:[2,7],ON:6,The:[0,1,2,3,6,7],These:2,To:7,_:0,abl:7,abort:[3,6],abov:7,access:[2,7],actual:[2,7],ad:[0,5],add:[0,6,7],addit:[6,7],address:0,advanc:[5,7],after:[0,2,7],again:2,aggreg:[3,7],all:[0,1,3,7],alloc:[2,6],allow:0,alreadi:2,also:[0,1,2,6,7],an:[0,1,2,7],ani:1,answer:7,ap:0,ap_to_pppo:0,api:[5,6,7],apn:2,app:[1,2],appli:1,applic:[0,1,2,3],appropri:[1,7],ar:[0,2,3,6,7],arbitrari:6,arg:1,argument:[1,7],assign:7,attach:[0,2,7],attempt:[2,7],automat:[2,3,7],avail:[0,2,6,7],back:[2,7],band:[2,7],base:[1,3,7],basic:[0,1,2,3,6,7],batteri:[2,7],baud:[2,7],baud_rat:2,baudrat:[2,7],bc:[2,7],bcl:[2,7],below:6,ber:[2,7],besid:7,between:[0,7],bg69:1,bg96:[0,1,3,7],bit:[2,7],block:[3,6,7],bool:[2,7],both:7,brief:5,broker:0,buffer:2,buffer_overflow:7,build:[1,7],build_uniqu:1,builder:1,c:[5,6,7],call:[2,7],callback:[6,7],can:[6,7],capac:[2,7],card:[2,7],care:7,cat:[2,7],cellular:[0,2,7],cfg:1,chang:0,channel:[2,7],chapter:[1,7],charat:[2,7],charg:[2,7],check:[2,7],checksum_error:7,choic:1,chosen:[1,2],circuitri:[2,7],clariti:7,clean:3,clenaup:2,client:0,close:[2,7],cmux:[2,5],cmux_mod:7,cmux_stat:7,cmuxinst:[6,7],code:[2,6,7],collabor:5,command:[0,1,5,6],command_mod:7,command_result:[2,7],commandableif:7,common:[0,1,2,6,7],commun:[0,2,3,5,7],compil:6,complet:[2,7],compli:7,compon:[1,5,7],compos:[0,6],config:[0,1,2,3,7],configur:[0,1,3,5,7],configure_pdp_context:7,connect:[0,1,2,7],consequ:[3,7],consist:[2,3,7],consol:0,construct:[3,7],constructor:[1,6],consum:[6,7],context:[2,7],control:[2,7],correctli:7,correspond:1,could:[0,1,6,7],cpp:7,creat:[0,2,5,7],create_bg96_dc:3,create_generic_dc:3,create_sim7000_dc:3,create_sim7070_dc:3,create_sim7600_dc:3,create_sim800_dc:3,create_uart_dt:3,create_vfs_dt:3,creator:1,ct:[2,7],cts_io_num:2,current:[0,2,7],custom:[2,5,7],d:7,data:[0,2,3,6,7],data_bit:2,data_mod:7,dce:[2,4,5],dce_config:[2,3],dce_factori:1,dce_flow:[2,7],dce_mod:7,dce_t:[1,3,7],decis:5,declar:7,dedic:2,defin:[0,1,2,7],definit:7,delet:2,demonstr:1,depict:6,deregist:[2,7],deriv:[0,1,7],describ:[6,7],descript:7,descriptor:2,design:[0,5],desir:[2,7],destroi:[2,5],detach:[2,7],detail:7,develop:7,devic:[1,2,5,6],diagram:6,didn:7,differ:[0,1,6,7],disabl:3,document:7,doesn:[2,3,7],done:[2,7],down:[2,6,7],driver:6,dte:[1,2,5,6],dte_buffer_s:2,dte_config:[2,3],dte_flow:[2,7],due:3,e:[0,1,7],easier:6,echo:[2,7],echo_on:[2,7],either:[1,3,7],elig:7,enumer:[1,2,7],equip:[0,7],error:[2,3,6,7],esp:[2,7],esp_err_t:2,esp_fail:2,esp_modem:[1,3,4,7],esp_modem_c_api:2,esp_modem_c_api_str_max:2,esp_modem_cmux:7,esp_modem_command_declar:7,esp_modem_config:2,esp_modem_dc:7,esp_modem_dce_bg96:2,esp_modem_dce_command:7,esp_modem_dce_config:[2,3],esp_modem_dce_config_t:2,esp_modem_dce_default_config:2,esp_modem_dce_devic:2,esp_modem_dce_device_t:2,esp_modem_dce_factori:1,esp_modem_dce_genet:2,esp_modem_dce_mod:2,esp_modem_dce_mode_t:2,esp_modem_dce_modul:7,esp_modem_dce_sim7000:2,esp_modem_dce_sim7070:2,esp_modem_dce_sim7600:2,esp_modem_dce_sim800:2,esp_modem_dce_t:2,esp_modem_declare_dce_command:7,esp_modem_destroi:2,esp_modem_dt:7,esp_modem_dte_config:[1,2,3,7],esp_modem_dte_config_t:2,esp_modem_dte_default_config:2,esp_modem_flow_control_hw:2,esp_modem_flow_control_non:2,esp_modem_flow_control_sw:2,esp_modem_flow_ctrl_t:2,esp_modem_get_battery_statu:2,esp_modem_get_imei:2,esp_modem_get_imsi:2,esp_modem_get_module_nam:2,esp_modem_get_network_attachment_st:2,esp_modem_get_network_system_mod:2,esp_modem_get_operator_nam:2,esp_modem_get_radio_st:2,esp_modem_get_signal_qu:2,esp_modem_hang_up:2,esp_modem_init_dc:3,esp_modem_init_dt:3,esp_modem_mode_command:2,esp_modem_mode_data:2,esp_modem_modul:7,esp_modem_netif:7,esp_modem_new:2,esp_modem_new_dev:2,esp_modem_power_down:2,esp_modem_read_pin:2,esp_modem_reset:2,esp_modem_resume_data_mod:2,esp_modem_send_sm:2,esp_modem_set_baud:2,esp_modem_set_cmux:2,esp_modem_set_command_mod:2,esp_modem_set_data_mod:2,esp_modem_set_echo:2,esp_modem_set_flow_control:2,esp_modem_set_gnss_power_mod:2,esp_modem_set_mod:2,esp_modem_set_network_attachment_st:2,esp_modem_set_network_band:2,esp_modem_set_network_mod:2,esp_modem_set_oper:2,esp_modem_set_pdp_context:2,esp_modem_set_pin:2,esp_modem_set_preferred_mod:2,esp_modem_set_radio_st:2,esp_modem_sms_character_set:2,esp_modem_sms_txt_mod:2,esp_modem_store_profil:2,esp_modem_sync:2,esp_modem_termin:7,esp_modem_typ:7,esp_modem_uart_term_config:2,esp_modem_vfs_resourc:2,esp_modem_vfs_term_config:2,esp_netif_t:[2,3],esp_ok:2,especi:7,etc:7,event:[0,2],event_queue_s:2,exampl:[0,1],except:[3,6],exercis:0,exist:[0,1,7],expand:7,expect:2,experiment:0,explain:7,explicit:7,explicitli:[3,7],extens:[1,5,7],extension_config:2,f:7,factori:[5,7],factoryhelp:1,fail:[2,7],failur:[2,3,6],fallback:[2,7],fd:2,featur:0,file:[2,7],first:7,flow:[2,7],flow_control:2,focus:0,follow:[2,7],footer:7,forc:[2,7],format:[2,7],forward:[0,7],from:[0,1,2,6,7],full:[2,7],g:[0,1],gener:[1,2,3,5,6],genericmodul:[0,1,6,7],get:[2,3,7],get_battery_statu:[3,4,7],get_battery_status_sim7xxx:7,get_imei:[3,4,7],get_imsi:[3,4,7],get_module_nam:[3,4,7],get_network_attachment_st:[3,4,7],get_network_system_mod:[3,4,7],get_operator_nam:[3,4,7],get_radio_st:[3,4,7],get_signal_qu:[3,4,7],given:[2,7],glue:7,gnss:[2,7],goe:3,got_lin:7,got_line_cb:7,gpr:[2,7],group:[1,2,3,7],gsm:[2,7],h:2,ha:7,handl:[1,2,6],handler:0,hang:[2,7],hang_up:[3,4,7],have:[0,3,7],header:7,helper:[1,7],hold:7,how:6,hpp:[1,7],human:7,hw:[2,7],i2c:1,i:[0,1,7],idea:6,imei:[2,7],implant:6,implement:[0,1,2,5,6],imsi:[2,7],inc:7,includ:[1,2,7],index:7,indic:[2,7],inherit:5,init:[6,7],initi:[2,3,6,7],inlin:[1,3,7],input:7,inst:7,instanc:[2,7],instanti:5,insuffici:3,int_in:7,integ:7,interact:0,interfac:[0,2,3,5,6],intern:5,internet:0,intro:5,io:1,iot:[2,7],ip:0,issu:[0,2],its:[0,2,6,7],itself:7,just:7,keep:7,layer:7,least:2,len:7,length:7,level:[2,7],librari:[0,5],lifecycl:5,line:7,list:[0,2,7],logic:[2,7],low:7,lwip:0,m:[2,7],machin:7,macro:[6,7],mandatori:7,mani:1,manual:[2,7],maximum:7,mean:[0,7],media:0,member:2,memori:3,messag:[2,7],method:[1,6,7],might:[0,6],millisecond:7,minim:6,minimum:[2,7],mode:[0,2,5,6,7],model:[0,1,5],modem:6,modem_consol:[0,1],modem_mod:7,modemtyp:1,modern:0,modifi:0,modul:[2,3,5,6],moduleif:[6,7],more:6,most:[1,2,6,7],mqtt:0,ms:7,multipl:[0,7],multiplex:[6,7],must:[0,7],mv:[2,7],name:[2,7],namespac:7,nat:0,nb:[2,7],necessari:[1,3,7],need:[1,2,7],netif:[1,2,3,5,6],network:[0,1,2,3,6,7],new_pdp:7,none:[2,7],note:[1,2],notif:0,now:2,nullptr:3,num:7,number:[2,6,7],numer:[2,7],o:0,object:[0,1,3,7],off:[2,6,7],ok:[2,7],one:[1,7],ones:0,onli:[0,1,2,6,7],oonli:6,oper:[0,2,7],option:2,order:[1,7],origin:[6,7],other:[5,7],out:[2,3,7],outlin:1,output:2,over:[0,6],overrid:[1,7],p1:[2,7],p2:7,packet:0,paramet:[1,2,3,7],parent:7,pariti:2,part:2,pattern:7,payload:7,pdp:[2,7],pdpcontext:[2,7],pdu:[2,7],perform:2,phone:[2,7],php:[2,7],physic:0,pin:[2,7],pin_ok:[2,7],plain:[1,2],pleas:[1,7],point:[2,7],pointer:[1,2,7],port:2,port_num:2,portion:2,possibl:[0,1],power:[2,7],power_down:[3,4,7],power_down_sim70xx:7,power_down_sim76xx:7,power_down_sim8xx:7,ppp:[1,2,5,6,7],pppo:0,pppos_client:0,prefer:[2,7],preprocessor:7,prioriti:2,privat:6,profil:[2,7],program:6,properti:0,protocol:[0,7],provid:[0,1,6,7],ptr:[3,7],purpos:1,qualiti:[2,7],queue:2,radio:[2,7],rate:[2,7],read:[0,2,6,7],read_pin:[3,4,7],readabl:7,receiv:[0,7],recommend:1,recov:7,refer:[1,3,7],regist:0,relat:[3,7],repeat:[2,7],repres:[0,1,7],requir:0,reset:[2,3,4,7],resourc:2,respond:7,respons:[3,7],result:7,resum:[2,7],resume_data_mod:[3,4,7],return_typ:7,rssi:[2,7],rt:[2,7],rts_io_num:2,runtim:[6,7],rx:2,rx_buffer_s:2,rx_io_num:2,rxd:2,s:[2,3,5,7],same:[6,7],scope:3,second:7,section:7,select:[2,7],send:[0,2,3,6,7],send_command:0,send_sm:[3,4,7],sent:[2,7],separ:7,sequenc:[2,7],servic:[2,7],set:[2,3,7],set_baud:[3,4,7],set_cmux:[3,4,7],set_command_mod:[3,4,7],set_data:[3,7],set_data_mod:[3,4,7],set_data_mode_sim8xx:7,set_echo:[3,4,7],set_flow_control:[3,4,7],set_gnss_power_mod:[3,4,7],set_gnss_power_mode_sim76xx:7,set_mod:[0,7],set_network_attachment_st:[3,4,7],set_network_band:[3,4,7],set_network_bands_sim76xx:7,set_network_mod:[3,4,7],set_oper:[3,4,7],set_pdp_context:[3,4,7],set_pin:[3,4,7],set_preferred_mod:[3,4,7],set_radio_st:[3,4,7],set_read_cb:7,setup:[2,7],setup_data_mod:7,share:[1,3,7],shared_ptr:[1,3,7],should:[1,2,7],show:[2,7],signal:[2,7],sim7000:[1,3,7],sim7070:[1,3,7],sim7600:[0,1,3,7],sim800:[0,1,3,7],sim:[2,7],similar:3,simpl:[0,2],simpli:3,simplifi:7,sing:2,singl:7,size:[2,7],size_t:[2,7],sm:[0,2,7],sms_character_set:[3,4,7],sms_txt_mode:[3,4,7],so:7,softwar:0,sole:[0,7],some:[0,6,7],sourc:7,space:2,special:[6,7],specif:[0,1,2,3,7],specifi:7,specificmodul:[3,6,7],spi:[0,1],stack:2,standard:2,start:7,startup:2,state:[2,7],statu:[2,7],std:[1,3,7],step:1,stop:[2,7],stop_bit:2,store:[2,7],store_profil:[3,4,7],strength:[2,7],string:7,struct:[2,7],structur:[1,5,7],subclass:7,success:[1,2,3,7],successfulli:7,suppli:[1,2,7],support:[0,1,2,7],suppos:7,suspend:[2,7],sw:2,sync:[2,3,4,7],synergi:[3,7],system:[2,7],t:[2,3,7],t_modul:1,taken:7,talk:7,task:2,task_prior:2,task_stack_s:2,templat:[1,3,6,7],temporarili:[2,7],termin:[0,1,2,5],terminal_error:7,text:[2,7],textual:2,th:[2,7],thee:7,thei:7,them:0,therefor:7,thi:[0,1,2,7],time:[6,7],time_m:7,timelin:7,timeout:[2,7],top:1,transact:[3,7],treat:6,trivial:1,truncat:2,turn:7,two:[1,2,7],tx:2,tx_buffer_s:2,tx_io_num:2,txd:2,txt:[2,7],type:[0,2,5],typedef:[2,3,7],typenam:1,typic:[0,1,2,7],uart:[0,1,2,3,6,7],uart_config:2,uart_parity_t:2,uart_port_t:2,uart_stop_bits_t:2,uart_word_length_t:2,uint32_t:[2,7],uint8_t:7,undef:7,underli:7,unexpected_control_flow:7,uniqu:[1,3,7],unique_ptr:[1,3,7],unit:[0,7],unlock:[2,7],unrel:2,unsign:2,unsupport:1,until:7,up:[2,3,7],us:[2,3,5,6,7],usabl:7,usb:0,user:[0,1,2,7],valid:7,valu:[1,2,7],vanilla:1,variou:0,veri:2,vf:[2,3],vfs_config:2,via:[0,7],virtual:[0,1,6,7],voltag:[2,7],wa:[2,7],wai:[1,7],wait:7,wait_until_ppp_exit:7,we:[0,7],well:[0,6,7],what:[2,7],when:[1,6],where:0,which:[0,1,2,6,7],wifi:0,without:6,work:[2,7],workflow:[2,3],would:7,wrapper:6,write:[6,7],written:7,wrong:3},titles:["ESP MODEM","Advanced esp-modem use cases","C API Documentation","C++ API Documentation","<no title>","ESP-MODEM Programmers manual","Internal design","DCE Internal implementation"],titleterms:{"abstract":7,"case":[0,1],"new":[1,7],"switch":3,ad:7,advanc:1,api:[2,3],c:[2,3],cmux:[0,6,7],collabor:6,command:[2,3,7],commun:1,compon:0,configur:2,creat:[1,3],custom:1,dce:[0,1,3,6,7],decis:6,design:6,destroi:3,devic:[0,7],document:[2,3],dte:[0,3,7],esp:[0,1,5],extens:0,factori:1,gener:7,implement:7,inherit:6,instanti:1,interfac:[1,7],intern:[6,7],librari:7,lifecycl:2,manual:5,mode:3,model:6,modem:[0,1,2,3,5,7],modul:[0,1,7],netif:[0,7],other:0,ppp:0,programm:5,s:0,structur:2,termin:[6,7],type:7,us:[0,1]}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "advanced_api", "api_docs", "cxx_api_docs", "cxx_api_links", "index", "internal_design", "internal_docs"], "filenames": ["README.md", "advanced_api.rst", "api_docs.rst", "cxx_api_docs.rst", "cxx_api_links.rst", "index.rst", "internal_design.md", "internal_docs.rst"], "titles": ["ESP MODEM", "Advanced esp-modem use cases", "C API Documentation", "C++ API Documentation", "<no title>", "ESP-MODEM Programmers manual", "Internal design", "DCE Internal implementation"], "terms": {"thi": [0, 1, 2, 7], "commun": [0, 2, 3, 5, 7], "command": [0, 1, 5, 6], "mode": [0, 2, 5, 6, 7], "AT": [0, 1, 2, 3, 6, 7], "well": [0, 6, 7], "data": [0, 2, 3, 6, 7], "over": [0, 6], "pppo": 0, "protocol": [0, 7], "The": [0, 1, 2, 3, 6, 7], "model": [0, 1, 5], "equip": [0, 7], "object": [0, 1, 3, 7], "which": [0, 1, 2, 6, 7], "compos": [0, 6], "termin": [0, 1, 2, 5], "abstract": [0, 5, 6], "current": [0, 2, 7], "onli": [0, 1, 2, 6, 7], "uart": [0, 1, 2, 3, 6, 7], "implement": [0, 1, 2, 5, 6], "repres": [0, 1, 7], "network": [0, 1, 2, 3, 6, 7], "interfac": [0, 2, 3, 5, 6], "specif": [0, 1, 2, 3, 7], "its": [0, 2, 6, 7], "o": 0, "set_mod": [0, 7], "send_command": 0, "event": [0, 2], "basic": [0, 1, 2, 3, 6, 7], "oper": [0, 2, 7], "unit": [0, 7], "_": 0, "softwar": 0, "configur": [0, 1, 3, 5, 7], "i": [0, 1, 7], "media": 0, "defin": [0, 1, 2, 7], "librari": [0, 5], "support": [0, 1, 2, 7], "type": [0, 2, 5], "config": [0, 1, 2, 3, 7], "lwip": 0, "after": [0, 2, 7], "creat": [0, 2, 5, 7], "applic": [0, 1, 2, 3], "interact": 0, "issu": [0, 2], "switch": [0, 2, 5, 7], "between": [0, 7], "Is": 0, "an": [0, 1, 2, 7], "physic": 0, "connect": [0, 1, 2, 7], "attach": [0, 2, 7], "sim800": [0, 1, 3, 7], "bg96": [0, 1, 3, 7], "sim7600": [0, 1, 3, 7], "user": [0, 1, 2, 7], "internet": 0, "via": [0, 7], "cellular": [0, 2, 7], "send": [0, 2, 3, 6, 7], "variou": 0, "e": [0, 1, 7], "g": [0, 1], "sm": [0, 2, 7], "typic": [0, 1, 2, 7], "regist": 0, "handler": 0, "receiv": [0, 7], "notif": 0, "avail": [0, 2, 6, 7], "ip": 0, "address": 0, "chang": 0, "common": [0, 1, 2, 6, 7], "ar": [0, 2, 3, 6, 7], "also": [0, 1, 2, 6, 7], "list": [0, 2, 7], "exampl": [0, 1], "pppos_client": 0, "simpl": [0, 2], "client": 0, "read": [0, 2, 6, 7], "some": [0, 6, 7], "properti": 0, "public": [0, 1, 2, 3, 7], "mqtt": 0, "broker": 0, "modem_consol": [0, 1], "exercis": 0, "all": [0, 1, 3, 7], "possibl": [0, 1], "consol": 0, "ap_to_pppo": 0, "focus": 0, "provid": [0, 1, 6, 7], "wifi": 0, "ap": 0, "forward": [0, 7], "packet": 0, "nat": 0, "from": [0, 1, 2, 6, 7], "virtual": [0, 1, 6, 7], "experiment": 0, "featur": 0, "allow": 0, "multipl": [0, 7], "design": [0, 5], "them": 0, "sole": [0, 7], "we": [0, 7], "modern": 0, "usb": 0, "spi": [0, 1], "ad": [0, 5], "new": [0, 2, 5, 6], "must": [0, 7], "have": [0, 3, 7], "requir": 0, "differ": [0, 1, 6, 7], "might": [0, 6], "mean": [0, 7], "class": [0, 1, 3, 6, 7], "deriv": [0, 1, 7], "genericmodul": [0, 1, 6, 7], "where": 0, "could": [0, 1, 6, 7], "add": [0, 6, 7], "modifi": 0, "exist": [0, 1, 7], "ones": 0, "chapter": [1, 7], "outlin": 1, "extens": [1, 5, 7], "compon": [1, 5, 7], "It": [1, 3, 7], "handl": [1, 2, 6], "mani": 1, "wai": [1, 7], "build": [1, 7], "top": 1, "gener": [1, 2, 3, 5, 6], "share": [1, 3, 7], "uniqu": [1, 3, 7], "vanilla": 1, "pointer": [1, 2, 7], "templat": [1, 3, 6, 7], "dce_t": [1, 3, 7], "one": [1, 7], "function": [1, 2, 3, 7], "group": [1, 2, 3, 7], "esp_modem_dce_factori": 1, "enum": [1, 2, 7], "modemtyp": 1, "choic": 1, "when": [1, 6], "valu": [1, 2, 7], "enumer": [1, 2, 7], "default": [1, 2, 3, 7], "most": [1, 2, 6, 7], "appli": 1, "sim7070": [1, 3, 7], "sim7000": [1, 3, 7], "bg69": 1, "factoryhelp": 1, "includ": [1, 2, 7], "hpp": [1, 7], "helper": [1, 7], "either": [1, 3, 7], "plain": [1, 2], "shared_ptr": [1, 3, 7], "unique_ptr": [1, 3, 7], "typenam": 1, "t_modul": 1, "creator": 1, "dte": [1, 2, 5, 6], "netif": [1, 2, 3, 5, 6], "throw": [1, 6], "base": [1, 3, 7], "suppli": [1, 2, 7], "app": [1, 2], "arg": 1, "inlin": [1, 3, 7], "std": [1, 3, 7], "build_uniqu": 1, "const": [1, 2, 3, 7], "cfg": 1, "chosen": [1, 2], "paramet": [1, 2, 3, 7], "argument": [1, 7], "builder": 1, "constructor": [1, 6], "esp_modem": [1, 3, 4, 7], "structur": [1, 5, 7], "esp_modem_dte_config": [1, 2, 3, 7], "ppp": [1, 2, 5, 6, 7], "return": [1, 2, 3, 7], "success": [1, 2, 3, 7], "static": 1, "necessari": [1, 3, 7], "need": [1, 2, 7], "devic": [1, 2, 5, 6], "ani": 1, "In": 1, "recommend": 1, "order": [1, 7], "appropri": [1, 7], "dce_factori": 1, "pleas": [1, 7], "refer": [1, 3, 7], "note": [1, 2], "trivial": 1, "overrid": [1, 7], "demonstr": 1, "purpos": 1, "unsupport": 1, "i2c": 1, "two": [1, 2, 7], "step": 1, "correspond": 1, "should": [1, 2, 7], "io": 1, "method": [1, 6, 7], "veri": 2, "consist": [2, 3, 7], "part": 2, "workflow": [2, 3], "dce": [2, 4, 5], "instanc": [2, 7], "us": [2, 3, 5, 6, 7], "esp_modem_new": 2, "call": [2, 7], "esp_modem_set_mod": 2, "perform": 2, "desir": [2, 7], "standard": 2, "unrel": 2, "esp": [2, 7], "option": 2, "back": [2, 7], "again": 2, "destroi": [2, 5], "sing": 2, "esp_modem_destroi": 2, "These": 2, "set": [2, 3, 7], "work": [2, 7], "esp_modem_c_api": 2, "typedef": [2, 3, 7], "esp_modem_dce_mod": 2, "esp_modem_dce_mode_t": 2, "esp_modem_dce_devic": 2, "esp_modem_dce_device_t": 2, "esp_modem_mode_command": 2, "startup": 2, "esp_modem_mode_data": 2, "esp_modem_mode_cmux": 2, "multiplex": [2, 6, 7], "esp_modem_dce_genet": 2, "esp_modem_dce_sim7600": 2, "esp_modem_dce_sim7070": 2, "esp_modem_dce_sim7000": 2, "esp_modem_dce_bg96": 2, "esp_modem_dce_sim800": 2, "esp_modem_dce_t": 2, "esp_modem_dte_config_t": 2, "dte_config": [2, 3], "esp_modem_dce_config_t": 2, "dce_config": [2, 3], "esp_netif_t": [2, 3], "now": 2, "null": 2, "failur": [2, 3, 6], "esp_modem_new_dev": 2, "modul": [2, 3, 5, 6], "void": [2, 3, 7], "s": [2, 3, 5, 7], "esp_err_t": 2, "esp_ok": 2, "esp_fail": 2, "actual": [2, 7], "textual": 2, "char": [2, 7], "expect": 2, "output": 2, "point": [2, 7], "alloc": [2, 6], "space": 2, "least": 2, "esp_modem_c_api_str_max": 2, "64": 2, "byte": [2, 7], "truncat": 2, "size": [2, 7], "command_result": [2, 7], "esp_modem_sync": 2, "initi": [2, 3, 6, 7], "sequenc": [2, 7], "sync": [2, 3, 4, 7], "up": [2, 3, 7], "ok": [2, 7], "fail": [2, 7], "timeout": [2, 7], "esp_modem_get_operator_nam": 2, "name": [2, 7], "out": [2, 3, 7], "esp_modem_store_profil": 2, "store": [2, 7], "profil": [2, 7], "esp_modem_set_pin": 2, "pin": [2, 7], "code": [2, 6, 7], "esp_modem_read_pin": 2, "bool": [2, 7], "pin_ok": [2, 7], "check": [2, 7], "sim": [2, 7], "true": [2, 7], "card": [2, 7], "doesn": [2, 3, 7], "t": [2, 3, 7], "unlock": [2, 7], "esp_modem_set_echo": 2, "echo_on": [2, 7], "echo": [2, 7], "repeat": [2, 7], "esp_modem_sms_txt_mod": 2, "txt": [2, 7], "pdu": [2, 7], "esp_modem_sms_character_set": 2, "gsm": [2, 7], "charat": [2, 7], "esp_modem_send_sm": 2, "number": [2, 6, 7], "messag": [2, 7], "phone": [2, 7], "text": [2, 7], "sent": [2, 7], "esp_modem_resume_data_mod": 2, "resum": [2, 7], "th": [2, 7], "wa": [2, 7], "temporarili": [2, 7], "suspend": [2, 7], "esp_modem_set_pdp_context": 2, "struct": [2, 7], "pdpcontext": [2, 7], "p1": [2, 7], "php": [2, 7], "context": [2, 7], "pdp": [2, 7], "setup": [2, 7], "esp_modem_set_command_mod": 2, "esp_modem_set_cmux": 2, "cmux": [2, 5], "esp_modem_get_imsi": 2, "imsi": [2, 7], "esp_modem_get_imei": 2, "imei": [2, 7], "esp_modem_get_module_nam": 2, "esp_modem_set_data_mod": 2, "esp_modem_get_signal_qu": 2, "int": [2, 7], "rssi": [2, 7], "ber": [2, 7], "get": [2, 3, 7], "signal": [2, 7], "qualiti": [2, 7], "strength": [2, 7], "indic": [2, 7], "channel": [2, 7], "bit": [2, 7], "error": [2, 3, 6, 7], "rate": [2, 7], "esp_modem_set_flow_control": 2, "dce_flow": [2, 7], "dte_flow": [2, 7], "hw": [2, 7], "control": [2, 7], "flow": [2, 7], "0": [2, 7], "none": [2, 7], "2": [2, 7], "rt": [2, 7], "ct": [2, 7], "esp_modem_hang_up": 2, "hang": [2, 7], "esp_modem_get_battery_statu": 2, "voltag": [2, 7], "bc": [2, 7], "bcl": [2, 7], "level": [2, 7], "power": [2, 7], "circuitri": [2, 7], "statu": [2, 7], "mv": [2, 7], "charg": [2, 7], "1": [2, 7], "Not": [2, 7], "done": [2, 7], "100": [2, 7], "batteri": [2, 7], "capac": [2, 7], "esp_modem_power_down": 2, "down": [2, 6, 7], "esp_modem_reset": 2, "reset": [2, 3, 4, 7], "esp_modem_set_baud": 2, "baud": [2, 7], "baudrat": [2, 7], "esp_modem_set_oper": 2, "format": [2, 7], "forc": [2, 7], "attempt": [2, 7], "automat": [2, 3, 7], "manual": [2, 7], "deregist": [2, 7], "3": [2, 7], "4": [2, 7], "fallback": [2, 7], "what": [2, 7], "given": [2, 7], "long": [2, 6, 7], "short": [2, 7], "numer": [2, 7], "esp_modem_set_network_attachment_st": 2, "state": [2, 7], "detach": [2, 7], "gpr": [2, 7], "servic": [2, 7], "esp_modem_get_network_attachment_st": 2, "esp_modem_set_radio_st": 2, "radio": [2, 7], "full": [2, 7], "minimum": [2, 7], "esp_modem_get_radio_st": 2, "esp_modem_set_network_mod": 2, "prefer": [2, 7], "esp_modem_set_preferred_mod": 2, "cat": [2, 7], "m": [2, 7], "nb": [2, 7], "iot": [2, 7], "select": [2, 7], "esp_modem_set_network_band": 2, "band": [2, 7], "esp_modem_get_network_system_mod": 2, "show": [2, 7], "system": [2, 7], "esp_modem_set_gnss_power_mod": 2, "gnss": [2, 7], "off": [2, 6, 7], "esp_modem_config": 2, "esp_modem_dte_default_config": 2, "esp_modem_dce_default_config": 2, "apn": 2, "esp_modem_dce_config": [2, 3], "esp_modem_flow_ctrl_t": 2, "esp_modem_flow_control_non": 2, "esp_modem_flow_control_sw": 2, "esp_modem_flow_control_hw": 2, "esp_modem_uart_term_config": 2, "h": 2, "member": 2, "uart_port_t": 2, "port_num": 2, "port": 2, "uart_word_length_t": 2, "data_bit": 2, "uart_stop_bits_t": 2, "stop_bit": 2, "stop": [2, 7], "uart_parity_t": 2, "pariti": 2, "flow_control": 2, "baud_rat": 2, "tx_io_num": 2, "txd": 2, "rx_io_num": 2, "rxd": 2, "rts_io_num": 2, "cts_io_num": 2, "rx_buffer_s": 2, "rx": 2, "buffer": [2, 7], "tx_buffer_s": 2, "tx": 2, "event_queue_s": 2, "queue": 2, "esp_modem_vfs_term_config": 2, "vf": [2, 3], "fd": 2, "alreadi": 2, "file": [2, 7], "descriptor": 2, "delet": 2, "esp_modem_vfs_resourc": 2, "custom": [2, 5, 7], "close": [2, 7], "resourc": 2, "clenaup": 2, "complet": [2, 7], "sw": 2, "follow": [2, 7], "portion": 2, "dedic": 2, "size_t": [2, 7], "dte_buffer_s": 2, "uint32_t": [2, 7], "task_stack_s": 2, "task": 2, "stack": 2, "unsign": 2, "task_prior": 2, "prioriti": 2, "uart_config": 2, "vfs_config": 2, "extension_config": 2, "logic": [2, 7], "access": [2, 7], "similar": 3, "construct": [3, 7], "esp_modem_init_dt": 3, "create_uart_dt": 3, "ptr": [3, 7], "nullptr": 3, "due": 3, "insuffici": 3, "memori": 3, "wrong": 3, "except": [3, 6], "disabl": 3, "abort": [3, 6], "create_vfs_dt": 3, "esp_modem_init_dc": 3, "create_sim7600_dc": 3, "create_sim7070_dc": 3, "create_sim7000_dc": 3, "create_sim800_dc": 3, "create_bg96_dc": 3, "create_generic_dc": 3, "specificmodul": [3, 6, 7], "respons": [3, 7], "transact": [3, 7], "relat": [3, 7], "consequ": [3, 7], "synergi": [3, 7], "aggreg": [3, 7], "set_data": [3, 7], "get_operator_nam": [3, 4, 7], "store_profil": [3, 4, 7], "set_pin": [3, 4, 7], "read_pin": [3, 4, 7], "set_echo": [3, 4, 7], "sms_txt_mode": [3, 4, 7], "sms_character_set": [3, 4, 7], "send_sm": [3, 4, 7], "resume_data_mod": [3, 4, 7], "set_pdp_context": [3, 4, 7], "set_command_mod": [3, 4, 7], "set_cmux": [3, 4, 7], "get_imsi": [3, 4, 7], "get_imei": [3, 4, 7], "get_module_nam": [3, 4, 7], "set_data_mod": [3, 4, 7], "get_signal_qu": [3, 4, 7], "set_flow_control": [3, 4, 7], "hang_up": [3, 4, 7], "get_battery_statu": [3, 4, 7], "power_down": [3, 4, 7], "set_baud": [3, 4, 7], "set_oper": [3, 4, 7], "set_network_attachment_st": [3, 4, 7], "get_network_attachment_st": [3, 4, 7], "set_radio_st": [3, 4, 7], "get_radio_st": [3, 4, 7], "set_network_mod": [3, 4, 7], "set_preferred_mod": [3, 4, 7], "set_network_band": [3, 4, 7], "get_network_system_mod": [3, 4, 7], "set_gnss_power_mod": [3, 4, 7], "explicitli": [3, 7], "simpli": 3, "clean": 3, "goe": 3, "block": [3, 6, 7], "scope": 3, "brief": 5, "intro": 5, "case": [5, 6], "other": [5, 7], "c": [5, 6, 7], "lifecycl": 5, "api": [5, 6, 7], "advanc": [5, 7], "instanti": 5, "factori": [5, 7], "intern": 5, "decis": 5, "collabor": 5, "inherit": 5, "addit": [6, 7], "macro": [6, 7], "wrapper": 6, "try": 6, "catch": 6, "easier": 6, "ON": 6, "init": [6, 7], "treat": 6, "runtim": [6, 7], "program": 6, "break": 6, "more": 6, "privat": 6, "modem": 6, "special": [6, 7], "implant": 6, "minim": 6, "moduleif": [6, 7], "oonli": 6, "compil": 6, "time": [6, 7], "without": 6, "diagram": 6, "describ": [6, 7], "how": 6, "can": [6, 7], "write": [6, 7], "callback": [6, 7], "driver": 6, "below": 6, "depict": 6, "idea": 6, "cmuxinst": [6, 7], "arbitrari": 6, "same": [6, 7], "consum": [6, 7], "origin": [6, 7], "detail": 7, "descript": 7, "turn": 7, "thee": 7, "develop": 7, "would": 7, "explain": 7, "section": 7, "esp_modem_dc": 7, "definit": 7, "dce_mod": 7, "parent": 7, "string": 7, "talk": 7, "besid": 7, "document": 7, "esp_modem_dt": 7, "commandableif": 7, "explicit": 7, "uint8_t": 7, "len": 7, "underli": 7, "written": 7, "d": 7, "payload": 7, "length": 7, "set_read_cb": 7, "f": 7, "valid": 7, "modem_mod": 7, "got_line_cb": 7, "got_lin": 7, "time_m": 7, "respond": 7, "line": 7, "ms": 7, "wait": 7, "answer": 7, "separ": 7, "abov": 7, "esp_modem_termin": 7, "terminal_error": 7, "buffer_overflow": 7, "checksum_error": 7, "unexpected_control_flow": 7, "compli": 7, "subclass": 7, "maximum": 7, "esp_modem_cmux": 7, "cmux_stat": 7, "machin": 7, "header": 7, "footer": 7, "recov": 7, "itself": 7, "usabl": 7, "deinit": 7, "pair": 7, "unique_buff": 7, "eject": 7, "so": 7, "thei": 7, "tradit": 7, "inst": 7, "index": 7, "esp_modem_netif": 7, "layer": 7, "glue": 7, "start": 7, "wait_until_ppp_exit": 7, "until": 7, "esp_modem_modul": 7, "esp_modem_dce_modul": 7, "just": 7, "setup_data_mod": 7, "mandatori": 7, "abl": 7, "configure_pdp_context": 7, "new_pdp": 7, "To": 7, "ha": 7, "declar": 7, "first": 7, "esp_modem_command_declar": 7, "inc": 7, "singl": 7, "sourc": 7, "cpp": 7, "therefor": 7, "care": 7, "taken": 7, "correctli": 7, "specifi": 7, "especi": 7, "keep": 7, "low": 7, "6": 7, "preprocessor": 7, "both": 7, "clariti": 7, "expand": 7, "pattern": 7, "int_in": 7, "input": 7, "integ": 7, "human": 7, "readabl": 7, "second": 7, "p2": 7, "etc": 7, "namespac": 7, "hold": 7, "esp_modem_dce_command": 7, "esp_modem_declare_dce_command": 7, "return_typ": 7, "num": 7, "get_battery_status_sim7xxx": 7, "set_gnss_power_mode_sim76xx": 7, "power_down_sim76xx": 7, "power_down_sim70xx": 7, "set_network_bands_sim76xx": 7, "power_down_sim8xx": 7, "set_data_mode_sim8xx": 7, "esp_modem_typ": 7, "undef": 7, "command_mod": 7, "8212": 7, "suppos": 7, "data_mod": 7, "cmux_mod": 7, "simplifi": 7, "assign": 7, "result": 7, "successfulli": 7, "didn": 7, "timelin": 7, "elig": 7, "millisecond": 7}, "objects": {"": [[2, 0, 1, "c.ESP_MODEM_DCE_DEFAULT_CONFIG", "ESP_MODEM_DCE_DEFAULT_CONFIG"], [7, 0, 1, "c.ESP_MODEM_DECLARE_DCE_COMMAND", "ESP_MODEM_DECLARE_DCE_COMMAND"], [2, 0, 1, "c.ESP_MODEM_DTE_DEFAULT_CONFIG", "ESP_MODEM_DTE_DEFAULT_CONFIG"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E", "ESP_MODEM_DCE_BG96"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE", "ESP_MODEM_DCE_GENETIC"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E", "ESP_MODEM_DCE_SIM7000"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E", "ESP_MODEM_DCE_SIM7070"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E", "ESP_MODEM_DCE_SIM7600"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E", "ESP_MODEM_DCE_SIM800"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE", "ESP_MODEM_FLOW_CONTROL_HW"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE", "ESP_MODEM_FLOW_CONTROL_NONE"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE", "ESP_MODEM_FLOW_CONTROL_SW"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_CMUXE", "ESP_MODEM_MODE_CMUX"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE", "ESP_MODEM_MODE_COMMAND"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE", "ESP_MODEM_MODE_DATA"], [1, 2, 1, "_CPPv49ModemType", "ModemType"], [1, 1, 1, "_CPPv4N9ModemType4BG96E", "ModemType::BG96"], [1, 1, 1, "_CPPv4N9ModemType13GenericModuleE", "ModemType::GenericModule"], [1, 1, 1, "_CPPv4N9ModemType7SIM7000E", "ModemType::SIM7000"], [1, 1, 1, "_CPPv4N9ModemType7SIM7070E", "ModemType::SIM7070"], [1, 1, 1, "_CPPv4N9ModemType7SIM7600E", "ModemType::SIM7600"], [1, 1, 1, "_CPPv4N9ModemType6SIM800E", "ModemType::SIM800"], [7, 2, 1, "_CPPv410cmux_state", "cmux_state"], [7, 1, 1, "_CPPv4N10cmux_state6FOOTERE", "cmux_state::FOOTER"], [7, 1, 1, "_CPPv4N10cmux_state6HEADERE", "cmux_state::HEADER"], [7, 1, 1, "_CPPv4N10cmux_state4INITE", "cmux_state::INIT"], [7, 1, 1, "_CPPv4N10cmux_state7PAYLOADE", "cmux_state::PAYLOAD"], [7, 1, 1, "_CPPv4N10cmux_state7RECOVERE", "cmux_state::RECOVER"], [7, 2, 1, "_CPPv414command_result", "command_result"], [7, 1, 1, "_CPPv4N14command_result4FAILE", "command_result::FAIL"], [7, 1, 1, "_CPPv4N14command_result2OKE", "command_result::OK"], [7, 1, 1, "_CPPv4N14command_result7TIMEOUTE", "command_result::TIMEOUT"], [3, 3, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce"], [3, 4, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce::config"], [3, 4, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce::dte"], [3, 4, 1, "_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_BG96_dce::netif"], [3, 3, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce"], [3, 4, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce::config"], [3, 4, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce::dte"], [3, 4, 1, "_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7000_dce::netif"], [3, 3, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce"], [3, 4, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce::config"], [3, 4, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce::dte"], [3, 4, 1, "_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7070_dce::netif"], [3, 3, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce"], [3, 4, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce::config"], [3, 4, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce::dte"], [3, 4, 1, "_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM7600_dce::netif"], [3, 3, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce"], [3, 4, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce::config"], [3, 4, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce::dte"], [3, 4, 1, "_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_SIM800_dce::netif"], [3, 3, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce"], [3, 4, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce::config"], [3, 4, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce::dte"], [3, 4, 1, "_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t", "create_generic_dce::netif"], [3, 3, 1, "_CPPv415create_uart_dtePK10dte_config", "create_uart_dte"], [3, 4, 1, "_CPPv415create_uart_dtePK10dte_config", "create_uart_dte::config"], [3, 3, 1, "_CPPv414create_vfs_dtePK10dte_config", "create_vfs_dte"], [3, 4, 1, "_CPPv414create_vfs_dtePK10dte_config", "create_vfs_dte::config"], [3, 5, 1, "_CPPv410dce_config", "dce_config"], [3, 5, 1, "_CPPv410dte_config", "dte_config"], [7, 6, 1, "_CPPv4N9esp_modem4BG96E", "esp_modem::BG96"], [7, 6, 1, "_CPPv4N9esp_modem4CMuxE", "esp_modem::CMux"], [7, 3, 1, "_CPPv4N9esp_modem4CMux6deinitEv", "esp_modem::CMux::deinit"], [7, 3, 1, "_CPPv4N9esp_modem4CMux6detachEv", "esp_modem::CMux::detach"], [7, 3, 1, "_CPPv4N9esp_modem4CMux4initEv", "esp_modem::CMux::init"], [7, 3, 1, "_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::CMux::set_read_cb"], [7, 4, 1, "_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::CMux::set_read_cb::f"], [7, 4, 1, "_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::CMux::set_read_cb::inst"], [7, 3, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write"], [7, 4, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write::data"], [7, 4, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write::i"], [7, 4, 1, "_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t", "esp_modem::CMux::write::len"], [7, 6, 1, "_CPPv4N9esp_modem12CMuxInstanceE", "esp_modem::CMuxInstance"], [7, 3, 1, "_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t", "esp_modem::CMuxInstance::read"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t", "esp_modem::CMuxInstance::read::data"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t", "esp_modem::CMuxInstance::read::len"], [7, 3, 1, "_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t", "esp_modem::CMuxInstance::write"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t", "esp_modem::CMuxInstance::write::data"], [7, 4, 1, "_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t", "esp_modem::CMuxInstance::write::len"], [7, 6, 1, "_CPPv4N9esp_modem13CommandableIfE", "esp_modem::CommandableIf"], [7, 3, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::command"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::got_line"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::separator"], [7, 4, 1, "_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc", "esp_modem::CommandableIf::command::time_ms"], [7, 6, 1, "_CPPv4N9esp_modem3DCEE", "esp_modem::DCE"], [7, 3, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status::bcl"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status::bcs"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi", "esp_modem::DCE::get_battery_status::voltage"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE", "esp_modem::DCE::get_imei"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE", "esp_modem::DCE::get_imei::imei"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE", "esp_modem::DCE::get_imsi"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE", "esp_modem::DCE::get_imsi::imsi"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE", "esp_modem::DCE::get_module_name"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE", "esp_modem::DCE::get_module_name::name"], [7, 3, 1, "_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi", "esp_modem::DCE::get_network_attachment_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi", "esp_modem::DCE::get_network_attachment_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE23get_network_system_modeERi", "esp_modem::DCE::get_network_system_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE23get_network_system_modeERi", "esp_modem::DCE::get_network_system_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE", "esp_modem::DCE::get_operator_name"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringE", "esp_modem::DCE::get_operator_name::name"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15get_radio_stateERi", "esp_modem::DCE::get_radio_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15get_radio_stateERi", "esp_modem::DCE::get_radio_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi", "esp_modem::DCE::get_signal_quality"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi", "esp_modem::DCE::get_signal_quality::ber"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi", "esp_modem::DCE::get_signal_quality::rssi"], [7, 3, 1, "_CPPv4N9esp_modem3DCE7hang_upEv", "esp_modem::DCE::hang_up"], [7, 3, 1, "_CPPv4N9esp_modem3DCE10power_downEv", "esp_modem::DCE::power_down"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8read_pinERb", "esp_modem::DCE::read_pin"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8read_pinERb", "esp_modem::DCE::read_pin::pin_ok"], [7, 3, 1, "_CPPv4N9esp_modem3DCE5resetEv", "esp_modem::DCE::reset"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16resume_data_modeEv", "esp_modem::DCE::resume_data_mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE", "esp_modem::DCE::send_sms"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE", "esp_modem::DCE::send_sms::message"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE", "esp_modem::DCE::send_sms::number"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8set_baudEi", "esp_modem::DCE::set_baud"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8set_baudEi", "esp_modem::DCE::set_baud::baud"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8set_cmuxEv", "esp_modem::DCE::set_cmux"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16set_command_modeEv", "esp_modem::DCE::set_command_mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE13set_data_modeEv", "esp_modem::DCE::set_data_mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE8set_echoEKb", "esp_modem::DCE::set_echo"], [7, 4, 1, "_CPPv4N9esp_modem3DCE8set_echoEKb", "esp_modem::DCE::set_echo::echo_on"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16set_flow_controlEii", "esp_modem::DCE::set_flow_control"], [7, 4, 1, "_CPPv4N9esp_modem3DCE16set_flow_controlEii", "esp_modem::DCE::set_flow_control::dce_flow"], [7, 4, 1, "_CPPv4N9esp_modem3DCE16set_flow_controlEii", "esp_modem::DCE::set_flow_control::dte_flow"], [7, 3, 1, "_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi", "esp_modem::DCE::set_gnss_power_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi", "esp_modem::DCE::set_gnss_power_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi", "esp_modem::DCE::set_network_attachment_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi", "esp_modem::DCE::set_network_attachment_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands::bands"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands::mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii", "esp_modem::DCE::set_network_bands::size"], [7, 3, 1, "_CPPv4N9esp_modem3DCE16set_network_modeEi", "esp_modem::DCE::set_network_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE16set_network_modeEi", "esp_modem::DCE::set_network_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator::format"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator::mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE", "esp_modem::DCE::set_operator::oper"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext", "esp_modem::DCE::set_pdp_context"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext", "esp_modem::DCE::set_pdp_context::p1"], [7, 3, 1, "_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE", "esp_modem::DCE::set_pin"], [7, 4, 1, "_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE", "esp_modem::DCE::set_pin::pin"], [7, 3, 1, "_CPPv4N9esp_modem3DCE18set_preferred_modeEi", "esp_modem::DCE::set_preferred_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE18set_preferred_modeEi", "esp_modem::DCE::set_preferred_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem3DCE15set_radio_stateEi", "esp_modem::DCE::set_radio_state"], [7, 4, 1, "_CPPv4N9esp_modem3DCE15set_radio_stateEi", "esp_modem::DCE::set_radio_state::state"], [7, 3, 1, "_CPPv4N9esp_modem3DCE17sms_character_setEv", "esp_modem::DCE::sms_character_set"], [7, 3, 1, "_CPPv4N9esp_modem3DCE12sms_txt_modeEKb", "esp_modem::DCE::sms_txt_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DCE12sms_txt_modeEKb", "esp_modem::DCE::sms_txt_mode::txt"], [7, 3, 1, "_CPPv4N9esp_modem3DCE13store_profileEv", "esp_modem::DCE::store_profile"], [7, 3, 1, "_CPPv4N9esp_modem3DCE4syncEv", "esp_modem::DCE::sync"], [7, 6, 1, "_CPPv4N9esp_modem8DCE_ModeE", "esp_modem::DCE_Mode"], [3, 6, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T"], [7, 6, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T"], [3, 7, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T::SpecificModule"], [7, 7, 1, "_CPPv4I0EN9esp_modem5DCE_TE", "esp_modem::DCE_T::SpecificModule"], [3, 3, 1, "_CPPv4N9esp_modem5DCE_T8set_dataEv", "esp_modem::DCE_T::set_data"], [7, 3, 1, "_CPPv4N9esp_modem5DCE_T8set_dataEv", "esp_modem::DCE_T::set_data"], [7, 6, 1, "_CPPv4N9esp_modem3DTEE", "esp_modem::DTE"], [7, 3, 1, "_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE", "esp_modem::DTE::DTE"], [7, 4, 1, "_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE", "esp_modem::DTE::DTE::config"], [7, 4, 1, "_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE", "esp_modem::DTE::DTE::t"], [7, 3, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command"], [7, 3, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command::command"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::command"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command::got_line"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::got_line"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::separator"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t", "esp_modem::DTE::command::time_ms"], [7, 4, 1, "_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc", "esp_modem::DTE::command::time_ms"], [7, 3, 1, "_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t", "esp_modem::DTE::read"], [7, 4, 1, "_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t", "esp_modem::DTE::read::d"], [7, 4, 1, "_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t", "esp_modem::DTE::read::len"], [7, 3, 1, "_CPPv4N9esp_modem3DTE8set_modeE10modem_mode", "esp_modem::DTE::set_mode"], [7, 4, 1, "_CPPv4N9esp_modem3DTE8set_modeE10modem_mode", "esp_modem::DTE::set_mode::m"], [7, 3, 1, "_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::DTE::set_read_cb"], [7, 4, 1, "_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE", "esp_modem::DTE::set_read_cb::f"], [7, 3, 1, "_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t", "esp_modem::DTE::write"], [7, 4, 1, "_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t", "esp_modem::DTE::write::data"], [7, 4, 1, "_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t", "esp_modem::DTE::write::len"], [7, 6, 1, "_CPPv4N9esp_modem13GenericModuleE", "esp_modem::GenericModule"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::GenericModule"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::GenericModule::dte"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::GenericModule::pdp"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::configure_pdp_context"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE", "esp_modem::GenericModule::configure_pdp_context::new_pdp"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode", "esp_modem::GenericModule::set_mode"], [7, 4, 1, "_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode", "esp_modem::GenericModule::set_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem13GenericModule15setup_data_modeEv", "esp_modem::GenericModule::setup_data_mode"], [7, 6, 1, "_CPPv4N9esp_modem8ModuleIfE", "esp_modem::ModuleIf"], [7, 3, 1, "_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode", "esp_modem::ModuleIf::set_mode"], [7, 4, 1, "_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode", "esp_modem::ModuleIf::set_mode::mode"], [7, 3, 1, "_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv", "esp_modem::ModuleIf::setup_data_mode"], [7, 6, 1, "_CPPv4N9esp_modem5NetifE", "esp_modem::Netif"], [7, 3, 1, "_CPPv4N9esp_modem5Netif5startEv", "esp_modem::Netif::start"], [7, 3, 1, "_CPPv4N9esp_modem5Netif4stopEv", "esp_modem::Netif::stop"], [7, 3, 1, "_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv", "esp_modem::Netif::wait_until_ppp_exits"], [7, 6, 1, "_CPPv4N9esp_modem10PdpContextE", "esp_modem::PdpContext"], [7, 6, 1, "_CPPv4N9esp_modem7SIM7000E", "esp_modem::SIM7000"], [7, 6, 1, "_CPPv4N9esp_modem7SIM7070E", "esp_modem::SIM7070"], [7, 6, 1, "_CPPv4N9esp_modem7SIM7600E", "esp_modem::SIM7600"], [7, 6, 1, "_CPPv4N9esp_modem6SIM800E", "esp_modem::SIM800"], [7, 6, 1, "_CPPv4N9esp_modem8TerminalE", "esp_modem::Terminal"], [7, 3, 1, "_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t", "esp_modem::Terminal::read"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t", "esp_modem::Terminal::read::data"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t", "esp_modem::Terminal::read::len"], [7, 3, 1, "_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t", "esp_modem::Terminal::write"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t", "esp_modem::Terminal::write::data"], [7, 4, 1, "_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t", "esp_modem::Terminal::write::len"], [1, 6, 1, "_CPPv4I0EN9esp_modem11dce_factory7CreatorE", "esp_modem::dce_factory::Creator"], [1, 7, 1, "_CPPv4I0EN9esp_modem11dce_factory7CreatorE", "esp_modem::dce_factory::Creator::T_Module"], [1, 6, 1, "_CPPv4N9esp_modem11dce_factory7FactoryE", "esp_modem::dce_factory::Factory"], [1, 3, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::Args"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::T_Module"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::args"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build::cfg"], [1, 3, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique"], [1, 3, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::Args"], [1, 7, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::Args"], [1, 7, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::T_Module"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::args"], [1, 4, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::args"], [1, 4, 1, "_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::cfg"], [1, 4, 1, "_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args", "esp_modem::dce_factory::Factory::build_unique::cfg"], [1, 6, 1, "_CPPv4N9esp_modem11dce_factory13FactoryHelperE", "esp_modem::dce_factory::FactoryHelper"], [2, 6, 1, "_CPPv420esp_modem_dce_config", "esp_modem_dce_config"], [2, 8, 1, "_CPPv4N20esp_modem_dce_config3apnE", "esp_modem_dce_config::apn"], [2, 5, 1, "_CPPv422esp_modem_dce_config_t", "esp_modem_dce_config_t"], [2, 2, 1, "_CPPv420esp_modem_dce_device", "esp_modem_dce_device"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E", "esp_modem_dce_device::ESP_MODEM_DCE_BG96"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE", "esp_modem_dce_device::ESP_MODEM_DCE_GENETIC"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM7000"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM7070"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM7600"], [2, 1, 1, "_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E", "esp_modem_dce_device::ESP_MODEM_DCE_SIM800"], [2, 5, 1, "_CPPv422esp_modem_dce_device_t", "esp_modem_dce_device_t"], [2, 2, 1, "_CPPv418esp_modem_dce_mode", "esp_modem_dce_mode"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_CMUXE", "esp_modem_dce_mode::ESP_MODEM_MODE_CMUX"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE", "esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND"], [2, 1, 1, "_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE", "esp_modem_dce_mode::ESP_MODEM_MODE_DATA"], [2, 5, 1, "_CPPv420esp_modem_dce_mode_t", "esp_modem_dce_mode_t"], [2, 3, 1, "_CPPv417esp_modem_destroyP15esp_modem_dce_t", "esp_modem_destroy"], [2, 4, 1, "_CPPv417esp_modem_destroyP15esp_modem_dce_t", "esp_modem_destroy::dce"], [2, 6, 1, "_CPPv420esp_modem_dte_config", "esp_modem_dte_config"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config15dte_buffer_sizeE", "esp_modem_dte_config::dte_buffer_size"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config16extension_configE", "esp_modem_dte_config::extension_config"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config13task_priorityE", "esp_modem_dte_config::task_priority"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config15task_stack_sizeE", "esp_modem_dte_config::task_stack_size"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config11uart_configE", "esp_modem_dte_config::uart_config"], [2, 8, 1, "_CPPv4N20esp_modem_dte_config10vfs_configE", "esp_modem_dte_config::vfs_config"], [2, 5, 1, "_CPPv422esp_modem_dte_config_t", "esp_modem_dte_config_t"], [2, 2, 1, "_CPPv421esp_modem_flow_ctrl_t", "esp_modem_flow_ctrl_t"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE", "esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_HW"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE", "esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_NONE"], [2, 1, 1, "_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE", "esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_SW"], [2, 3, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status"], [2, 4, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status::bcl"], [2, 4, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status::bcs"], [2, 4, 1, "_CPPv428esp_modem_get_battery_statusPiPiPi", "esp_modem_get_battery_status::voltage"], [2, 3, 1, "_CPPv418esp_modem_get_imeiPc", "esp_modem_get_imei"], [2, 4, 1, "_CPPv418esp_modem_get_imeiPc", "esp_modem_get_imei::imei"], [2, 3, 1, "_CPPv418esp_modem_get_imsiPc", "esp_modem_get_imsi"], [2, 4, 1, "_CPPv418esp_modem_get_imsiPc", "esp_modem_get_imsi::imsi"], [2, 3, 1, "_CPPv425esp_modem_get_module_namePc", "esp_modem_get_module_name"], [2, 4, 1, "_CPPv425esp_modem_get_module_namePc", "esp_modem_get_module_name::name"], [2, 3, 1, "_CPPv438esp_modem_get_network_attachment_statePi", "esp_modem_get_network_attachment_state"], [2, 4, 1, "_CPPv438esp_modem_get_network_attachment_statePi", "esp_modem_get_network_attachment_state::state"], [2, 3, 1, "_CPPv433esp_modem_get_network_system_modePi", "esp_modem_get_network_system_mode"], [2, 4, 1, "_CPPv433esp_modem_get_network_system_modePi", "esp_modem_get_network_system_mode::mode"], [2, 3, 1, "_CPPv427esp_modem_get_operator_namePc", "esp_modem_get_operator_name"], [2, 4, 1, "_CPPv427esp_modem_get_operator_namePc", "esp_modem_get_operator_name::name"], [2, 3, 1, "_CPPv425esp_modem_get_radio_statePi", "esp_modem_get_radio_state"], [2, 4, 1, "_CPPv425esp_modem_get_radio_statePi", "esp_modem_get_radio_state::state"], [2, 3, 1, "_CPPv428esp_modem_get_signal_qualityPiPi", "esp_modem_get_signal_quality"], [2, 4, 1, "_CPPv428esp_modem_get_signal_qualityPiPi", "esp_modem_get_signal_quality::ber"], [2, 4, 1, "_CPPv428esp_modem_get_signal_qualityPiPi", "esp_modem_get_signal_quality::rssi"], [2, 3, 1, "_CPPv417esp_modem_hang_upv", "esp_modem_hang_up"], [2, 3, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new"], [2, 4, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new::dce_config"], [2, 4, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new::dte_config"], [2, 4, 1, "_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new::netif"], [2, 3, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::dce_config"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::dte_config"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::module"], [2, 4, 1, "_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t", "esp_modem_new_dev::netif"], [2, 3, 1, "_CPPv420esp_modem_power_downv", "esp_modem_power_down"], [2, 3, 1, "_CPPv418esp_modem_read_pinPb", "esp_modem_read_pin"], [2, 4, 1, "_CPPv418esp_modem_read_pinPb", "esp_modem_read_pin::pin_ok"], [2, 3, 1, "_CPPv415esp_modem_resetv", "esp_modem_reset"], [2, 3, 1, "_CPPv426esp_modem_resume_data_modev", "esp_modem_resume_data_mode"], [2, 3, 1, "_CPPv418esp_modem_send_smsPKcPKc", "esp_modem_send_sms"], [2, 4, 1, "_CPPv418esp_modem_send_smsPKcPKc", "esp_modem_send_sms::message"], [2, 4, 1, "_CPPv418esp_modem_send_smsPKcPKc", "esp_modem_send_sms::number"], [2, 3, 1, "_CPPv418esp_modem_set_baudi", "esp_modem_set_baud"], [2, 4, 1, "_CPPv418esp_modem_set_baudi", "esp_modem_set_baud::baud"], [2, 3, 1, "_CPPv418esp_modem_set_cmuxv", "esp_modem_set_cmux"], [2, 3, 1, "_CPPv426esp_modem_set_command_modev", "esp_modem_set_command_mode"], [2, 3, 1, "_CPPv423esp_modem_set_data_modev", "esp_modem_set_data_mode"], [2, 3, 1, "_CPPv418esp_modem_set_echoKb", "esp_modem_set_echo"], [2, 4, 1, "_CPPv418esp_modem_set_echoKb", "esp_modem_set_echo::echo_on"], [2, 3, 1, "_CPPv426esp_modem_set_flow_controlii", "esp_modem_set_flow_control"], [2, 4, 1, "_CPPv426esp_modem_set_flow_controlii", "esp_modem_set_flow_control::dce_flow"], [2, 4, 1, "_CPPv426esp_modem_set_flow_controlii", "esp_modem_set_flow_control::dte_flow"], [2, 3, 1, "_CPPv429esp_modem_set_gnss_power_modei", "esp_modem_set_gnss_power_mode"], [2, 4, 1, "_CPPv429esp_modem_set_gnss_power_modei", "esp_modem_set_gnss_power_mode::mode"], [2, 3, 1, "_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t", "esp_modem_set_mode"], [2, 4, 1, "_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t", "esp_modem_set_mode::dce"], [2, 4, 1, "_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t", "esp_modem_set_mode::mode"], [2, 3, 1, "_CPPv438esp_modem_set_network_attachment_statei", "esp_modem_set_network_attachment_state"], [2, 4, 1, "_CPPv438esp_modem_set_network_attachment_statei", "esp_modem_set_network_attachment_state::state"], [2, 3, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands"], [2, 4, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands::bands"], [2, 4, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands::mode"], [2, 4, 1, "_CPPv427esp_modem_set_network_bandsPKcPKii", "esp_modem_set_network_bands::size"], [2, 3, 1, "_CPPv426esp_modem_set_network_modei", "esp_modem_set_network_mode"], [2, 4, 1, "_CPPv426esp_modem_set_network_modei", "esp_modem_set_network_mode::mode"], [2, 3, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator"], [2, 4, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator::format"], [2, 4, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator::mode"], [2, 4, 1, "_CPPv422esp_modem_set_operatoriiPKc", "esp_modem_set_operator::oper"], [2, 3, 1, "_CPPv425esp_modem_set_pdp_contextP10PdpContext", "esp_modem_set_pdp_context"], [2, 4, 1, "_CPPv425esp_modem_set_pdp_contextP10PdpContext", "esp_modem_set_pdp_context::p1"], [2, 3, 1, "_CPPv417esp_modem_set_pinPKc", "esp_modem_set_pin"], [2, 4, 1, "_CPPv417esp_modem_set_pinPKc", "esp_modem_set_pin::pin"], [2, 3, 1, "_CPPv428esp_modem_set_preferred_modei", "esp_modem_set_preferred_mode"], [2, 4, 1, "_CPPv428esp_modem_set_preferred_modei", "esp_modem_set_preferred_mode::mode"], [2, 3, 1, "_CPPv425esp_modem_set_radio_statei", "esp_modem_set_radio_state"], [2, 4, 1, "_CPPv425esp_modem_set_radio_statei", "esp_modem_set_radio_state::state"], [2, 3, 1, "_CPPv427esp_modem_sms_character_setv", "esp_modem_sms_character_set"], [2, 3, 1, "_CPPv422esp_modem_sms_txt_modeKb", "esp_modem_sms_txt_mode"], [2, 4, 1, "_CPPv422esp_modem_sms_txt_modeKb", "esp_modem_sms_txt_mode::txt"], [2, 3, 1, "_CPPv423esp_modem_store_profilev", "esp_modem_store_profile"], [2, 3, 1, "_CPPv414esp_modem_syncv", "esp_modem_sync"], [2, 6, 1, "_CPPv426esp_modem_uart_term_config", "esp_modem_uart_term_config"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9baud_rateE", "esp_modem_uart_term_config::baud_rate"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config10cts_io_numE", "esp_modem_uart_term_config::cts_io_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9data_bitsE", "esp_modem_uart_term_config::data_bits"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config16event_queue_sizeE", "esp_modem_uart_term_config::event_queue_size"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config12flow_controlE", "esp_modem_uart_term_config::flow_control"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config6parityE", "esp_modem_uart_term_config::parity"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config8port_numE", "esp_modem_uart_term_config::port_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config10rts_io_numE", "esp_modem_uart_term_config::rts_io_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config14rx_buffer_sizeE", "esp_modem_uart_term_config::rx_buffer_size"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9rx_io_numE", "esp_modem_uart_term_config::rx_io_num"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9stop_bitsE", "esp_modem_uart_term_config::stop_bits"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config14tx_buffer_sizeE", "esp_modem_uart_term_config::tx_buffer_size"], [2, 8, 1, "_CPPv4N26esp_modem_uart_term_config9tx_io_numE", "esp_modem_uart_term_config::tx_io_num"], [2, 6, 1, "_CPPv425esp_modem_vfs_term_config", "esp_modem_vfs_term_config"], [2, 8, 1, "_CPPv4N25esp_modem_vfs_term_config7deleterE", "esp_modem_vfs_term_config::deleter"], [2, 8, 1, "_CPPv4N25esp_modem_vfs_term_config2fdE", "esp_modem_vfs_term_config::fd"], [2, 8, 1, "_CPPv4N25esp_modem_vfs_term_config8resourceE", "esp_modem_vfs_term_config::resource"], [7, 3, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::bcl"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::bcs"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::t"], [7, 4, 1, "_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi", "get_battery_status_sim7xxx::voltage"], [7, 5, 1, "_CPPv411got_line_cb", "got_line_cb"], [7, 2, 1, "_CPPv410modem_mode", "modem_mode"], [7, 1, 1, "_CPPv4N10modem_mode9CMUX_MODEE", "modem_mode::CMUX_MODE"], [7, 1, 1, "_CPPv4N10modem_mode12COMMAND_MODEE", "modem_mode::COMMAND_MODE"], [7, 1, 1, "_CPPv4N10modem_mode9DATA_MODEE", "modem_mode::DATA_MODE"], [7, 1, 1, "_CPPv4N10modem_mode5UNDEFE", "modem_mode::UNDEF"], [7, 3, 1, "_CPPv418power_down_sim70xxP13CommandableIf", "power_down_sim70xx"], [7, 4, 1, "_CPPv418power_down_sim70xxP13CommandableIf", "power_down_sim70xx::t"], [7, 3, 1, "_CPPv418power_down_sim76xxP13CommandableIf", "power_down_sim76xx"], [7, 4, 1, "_CPPv418power_down_sim76xxP13CommandableIf", "power_down_sim76xx::t"], [7, 3, 1, "_CPPv417power_down_sim8xxP13CommandableIf", "power_down_sim8xx"], [7, 4, 1, "_CPPv417power_down_sim8xxP13CommandableIf", "power_down_sim8xx::t"], [7, 3, 1, "_CPPv420set_data_mode_sim8xxP13CommandableIf", "set_data_mode_sim8xx"], [7, 4, 1, "_CPPv420set_data_mode_sim8xxP13CommandableIf", "set_data_mode_sim8xx::t"], [7, 3, 1, "_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi", "set_gnss_power_mode_sim76xx"], [7, 4, 1, "_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi", "set_gnss_power_mode_sim76xx::mode"], [7, 4, 1, "_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi", "set_gnss_power_mode_sim76xx::t"], [7, 3, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::bands"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::mode"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::size"], [7, 4, 1, "_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii", "set_network_bands_sim76xx::t"], [7, 2, 1, "_CPPv414terminal_error", "terminal_error"], [7, 1, 1, "_CPPv4N14terminal_error15BUFFER_OVERFLOWE", "terminal_error::BUFFER_OVERFLOW"], [7, 1, 1, "_CPPv4N14terminal_error14CHECKSUM_ERRORE", "terminal_error::CHECKSUM_ERROR"], [7, 1, 1, "_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE", "terminal_error::UNEXPECTED_CONTROL_FLOW"]]}, "objtypes": {"0": "c:macro", "1": "cpp:enumerator", "2": "cpp:enum", "3": "cpp:function", "4": "cpp:functionParam", "5": "cpp:type", "6": "cpp:class", "7": "cpp:templateParam", "8": "cpp:member"}, "objnames": {"0": ["c", "macro", "C macro"], "1": ["cpp", "enumerator", "C++ enumerator"], "2": ["cpp", "enum", "C++ enum"], "3": ["cpp", "function", "C++ function"], "4": ["cpp", "functionParam", "C++ function parameter"], "5": ["cpp", "type", "C++ type"], "6": ["cpp", "class", "C++ class"], "7": ["cpp", "templateParam", "C++ template parameter"], "8": ["cpp", "member", "C++ member"]}, "titleterms": {"esp": [0, 1, 5], "modem": [0, 1, 2, 3, 5, 7], "compon": 0, "dce": [0, 1, 3, 6, 7], "dte": [0, 3, 7], "ppp": 0, "netif": [0, 7], "modul": [0, 1, 7], "us": [0, 1], "case": [0, 1], "extens": 0, "cmux": [0, 6, 7], "s": 0, "other": 0, "devic": [0, 7], "advanc": 1, "custom": 1, "instanti": 1, "factori": 1, "creat": [1, 3], "new": [1, 7], "commun": 1, "interfac": [1, 7], "c": [2, 3], "api": [2, 3], "document": [2, 3], "lifecycl": 2, "command": [2, 3, 7], "configur": 2, "structur": 2, "mode": 3, "switch": 3, "destroi": 3, "programm": 5, "manual": 5, "intern": [6, 7], "design": 6, "decis": 6, "collabor": 6, "model": 6, "termin": [6, 7], "inherit": 6, "implement": 7, "abstract": 7, "ad": 7, "gener": 7, "librari": 7, "type": 7}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/esp_websocket_client/.buildinfo b/esp_websocket_client/.buildinfo index 487a38adf..5ff0a74f0 100644 --- a/esp_websocket_client/.buildinfo +++ b/esp_websocket_client/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: d0c33a76b4541f3c568796cdbaeded0e +config: 86c276fe0e6cf1226cba9dc778dc4151 tags: 549b3d6d0415232fb7e35403b330ff49 diff --git a/esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js b/esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/esp_websocket_client/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * 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) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/esp_websocket_client/_static/basic.css b/esp_websocket_client/_static/basic.css index bf18350b6..088967717 100644 --- a/esp_websocket_client/_static/basic.css +++ b/esp_websocket_client/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/esp_websocket_client/_static/doctools.js b/esp_websocket_client/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/esp_websocket_client/_static/doctools.js +++ b/esp_websocket_client/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * 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) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); } } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/esp_websocket_client/_static/documentation_options.js b/esp_websocket_client/_static/documentation_options.js index f8d32270a..f6bd60d98 100644 --- a/esp_websocket_client/_static/documentation_options.js +++ b/esp_websocket_client/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/esp_websocket_client/_static/jquery-3.5.1.js b/esp_websocket_client/_static/jquery-3.6.0.js similarity index 98% rename from esp_websocket_client/_static/jquery-3.5.1.js rename to esp_websocket_client/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/esp_websocket_client/_static/jquery-3.5.1.js +++ b/esp_websocket_client/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/esp_websocket_client/_static/jquery.js b/esp_websocket_client/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/esp_websocket_client/_static/jquery.js +++ b/esp_websocket_client/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, // Used when the priority is not in the mapping. objPrioDefault: 0, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings } /** * Search Module */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - 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."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); }, - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ - performSearch : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

      ' + _('Searching') + '

      ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

       

      ').appendTo(this.out); - this.output = $('
      diff --git a/esp_websocket_client/index.html b/esp_websocket_client/index.html index 7598989f8..fa28ceb29 100644 --- a/esp_websocket_client/index.html +++ b/esp_websocket_client/index.html @@ -16,6 +16,7 @@ + @@ -116,7 +117,7 @@
    • »
    • ESP WebSocket Client
    • - Edit on GitHub + Edit on GitHub

    • @@ -125,13 +126,13 @@
      -

      ESP WebSocket Client

      +

      ESP WebSocket Client

      -

      Overview

      +

      Overview

      The ESP WebSocket client is an implementation of WebSocket protocol client for ESP32

      -

      Features

      +

      Features

      • Supports WebSocket over TCP, TLS with mbedtls

      • @@ -141,9 +142,9 @@
      -

      Configuration

      +

      Configuration

      -

      URI

      +

      URI

      • Supports ws, wss schemes

      • WebSocket samples:

        @@ -177,7 +178,7 @@ overridden. Sample:

      -

      TLS

      +

      TLS

      Configuration:

      const esp_websocket_client_config_t ws_cfg = {
           .uri = "wss://echo.websocket.org",
      @@ -197,7 +198,7 @@ In case a host operating system has openssl and sed pa
       

      This command will extract the second certificate in the chain and save it as a pem-file.

      -

      Subprotocol

      +

      Subprotocol

      The subprotocol field in the config struct can be used to request a subprotocol

      const esp_websocket_client_config_t ws_cfg = {
           .uri = "ws://websocket.org",
      @@ -213,7 +214,7 @@ In case a host operating system has openssl and sed pa
       
      -

      Events

      +

      Events

      • WEBSOCKET_EVENT_CONNECTED: The client has successfully established a connection to the server. The client is now ready to send and receive data. Contains no event data.

      • WEBSOCKET_EVENT_DISCONNECTED: The client has aborted the connection due to the transport layer failing to read data, e.g. because the server is unavailable. Contains no event data.

      • @@ -226,16 +227,16 @@ In case a host operating system has openssl and sed pa
      -

      Limitations and Known Issues

      +

      Limitations and Known Issues

      • The client is able to request the use of a subprotocol from the server during the handshake, but does not do any subprotocol related checks on the response from the server.

      -

      Application Example

      -

      A simple WebSocket example that uses esp_websocket_client to establish a websocket connection and send/receive data with the websocket.org server can be found here: example .

      +

      Application Example

      +

      A simple WebSocket example that uses esp_websocket_client to establish a websocket connection and send/receive data with the websocket.org server can be found here: example .

      -

      Sending Text Data

      +

      Sending Text Data

      The WebSocket client supports sending data as a text data frame, which informs the application layer that the payload data is text data encoded as UTF-8. Example:

      esp_websocket_client_send_text(client, data, len, portMAX_DELAY);
       
      @@ -243,15 +244,15 @@ In case a host operating system has openssl and sed pa
      -

      API Reference

      +

      API Reference

      -

      Header File

      +

      Header File

      -

      Functions

      +

      Functions

      esp_websocket_client_handle_t esp_websocket_client_init(const esp_websocket_client_config_t *config)
      @@ -507,7 +508,7 @@ In case a host operating system has openssl and sed pa
      -

      Structures

      +

      Structures

      struct esp_websocket_event_data_t
      @@ -780,7 +781,7 @@ In case a host operating system has openssl and sed pa
      -

      Type Definitions

      +

      Type Definitions

      typedef struct esp_websocket_client *esp_websocket_client_handle_t
      @@ -788,7 +789,7 @@ In case a host operating system has openssl and sed pa
      -

      Enumerations

      +

      Enumerations

      enum esp_websocket_event_id_t
      diff --git a/esp_websocket_client/search.html b/esp_websocket_client/search.html index a024f2abd..46a7e5cd2 100644 --- a/esp_websocket_client/search.html +++ b/esp_websocket_client/search.html @@ -16,6 +16,7 @@ + diff --git a/esp_websocket_client/searchindex.js b/esp_websocket_client/searchindex.js index 73e8b1812..269d3af7d 100644 --- a/esp_websocket_client/searchindex.js +++ b/esp_websocket_client/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{"":[[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE","WEBSOCKET_EVENT_ANY"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE","WEBSOCKET_EVENT_CLOSED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE","WEBSOCKET_EVENT_CONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE","WEBSOCKET_EVENT_DATA"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE","WEBSOCKET_EVENT_DISCONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE","WEBSOCKET_EVENT_ERROR"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE","WEBSOCKET_EVENT_MAX"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE","WEBSOCKET_TRANSPORT_OVER_SSL"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE","WEBSOCKET_TRANSPORT_OVER_TCP"],[0,0,1,"_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE","WEBSOCKET_TRANSPORT_UNKNOWN"],[0,1,1,"_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t","esp_websocket_client_close"],[0,2,1,"_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t","esp_websocket_client_close::client"],[0,2,1,"_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t","esp_websocket_client_close::timeout"],[0,1,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::client"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::code"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::data"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::len"],[0,2,1,"_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t","esp_websocket_client_close_with_code::timeout"],[0,3,1,"_CPPv429esp_websocket_client_config_t","esp_websocket_client_config_t"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t11buffer_sizeE","esp_websocket_client_config_t::buffer_size"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8cert_lenE","esp_websocket_client_config_t::cert_len"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8cert_pemE","esp_websocket_client_config_t::cert_pem"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t11client_certE","esp_websocket_client_config_t::client_cert"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t15client_cert_lenE","esp_websocket_client_config_t::client_cert_len"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t10client_keyE","esp_websocket_client_config_t::client_key"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t14client_key_lenE","esp_websocket_client_config_t::client_key_len"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t17crt_bundle_attachE","esp_websocket_client_config_t::crt_bundle_attach"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t22disable_auto_reconnectE","esp_websocket_client_config_t::disable_auto_reconnect"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t23disable_pingpong_disconE","esp_websocket_client_config_t::disable_pingpong_discon"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t7headersE","esp_websocket_client_config_t::headers"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t4hostE","esp_websocket_client_config_t::host"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t7if_nameE","esp_websocket_client_config_t::if_name"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t16keep_alive_countE","esp_websocket_client_config_t::keep_alive_count"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t17keep_alive_enableE","esp_websocket_client_config_t::keep_alive_enable"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t15keep_alive_idleE","esp_websocket_client_config_t::keep_alive_idle"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t19keep_alive_intervalE","esp_websocket_client_config_t::keep_alive_interval"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t18network_timeout_msE","esp_websocket_client_config_t::network_timeout_ms"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8passwordE","esp_websocket_client_config_t::password"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t4pathE","esp_websocket_client_config_t::path"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t17ping_interval_secE","esp_websocket_client_config_t::ping_interval_sec"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t20pingpong_timeout_secE","esp_websocket_client_config_t::pingpong_timeout_sec"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t4portE","esp_websocket_client_config_t::port"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t20reconnect_timeout_msE","esp_websocket_client_config_t::reconnect_timeout_ms"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t27skip_cert_common_name_checkE","esp_websocket_client_config_t::skip_cert_common_name_check"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t11subprotocolE","esp_websocket_client_config_t::subprotocol"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t9task_prioE","esp_websocket_client_config_t::task_prio"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t10task_stackE","esp_websocket_client_config_t::task_stack"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t9transportE","esp_websocket_client_config_t::transport"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t3uriE","esp_websocket_client_config_t::uri"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t19use_global_ca_storeE","esp_websocket_client_config_t::use_global_ca_store"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t10user_agentE","esp_websocket_client_config_t::user_agent"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t12user_contextE","esp_websocket_client_config_t::user_context"],[0,4,1,"_CPPv4N29esp_websocket_client_config_t8usernameE","esp_websocket_client_config_t::username"],[0,1,1,"_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t","esp_websocket_client_destroy"],[0,2,1,"_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t","esp_websocket_client_destroy::client"],[0,1,1,"_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t","esp_websocket_client_get_ping_interval_sec"],[0,2,1,"_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t","esp_websocket_client_get_ping_interval_sec::client"],[0,5,1,"_CPPv429esp_websocket_client_handle_t","esp_websocket_client_handle_t"],[0,1,1,"_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t","esp_websocket_client_init"],[0,2,1,"_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t","esp_websocket_client_init::config"],[0,1,1,"_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t","esp_websocket_client_is_connected"],[0,2,1,"_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t","esp_websocket_client_is_connected::client"],[0,1,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::client"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::data"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::len"],[0,2,1,"_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_bin::timeout"],[0,1,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::client"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::data"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::len"],[0,2,1,"_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t","esp_websocket_client_send_text::timeout"],[0,1,1,"_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t","esp_websocket_client_set_ping_interval_sec"],[0,2,1,"_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t","esp_websocket_client_set_ping_interval_sec::client"],[0,2,1,"_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t","esp_websocket_client_set_ping_interval_sec::ping_interval_sec"],[0,1,1,"_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc","esp_websocket_client_set_uri"],[0,2,1,"_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc","esp_websocket_client_set_uri::client"],[0,2,1,"_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc","esp_websocket_client_set_uri::uri"],[0,1,1,"_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t","esp_websocket_client_start"],[0,2,1,"_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t","esp_websocket_client_start::client"],[0,1,1,"_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t","esp_websocket_client_stop"],[0,2,1,"_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t","esp_websocket_client_stop::client"],[0,3,1,"_CPPv426esp_websocket_event_data_t","esp_websocket_event_data_t"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t6clientE","esp_websocket_event_data_t::client"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t8data_lenE","esp_websocket_event_data_t::data_len"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t8data_ptrE","esp_websocket_event_data_t::data_ptr"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t3finE","esp_websocket_event_data_t::fin"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t7op_codeE","esp_websocket_event_data_t::op_code"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t11payload_lenE","esp_websocket_event_data_t::payload_len"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t14payload_offsetE","esp_websocket_event_data_t::payload_offset"],[0,4,1,"_CPPv4N26esp_websocket_event_data_t12user_contextE","esp_websocket_event_data_t::user_context"],[0,6,1,"_CPPv424esp_websocket_event_id_t","esp_websocket_event_id_t"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE","esp_websocket_event_id_t::WEBSOCKET_EVENT_ANY"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE","esp_websocket_event_id_t::WEBSOCKET_EVENT_CLOSED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE","esp_websocket_event_id_t::WEBSOCKET_EVENT_CONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE","esp_websocket_event_id_t::WEBSOCKET_EVENT_DATA"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE","esp_websocket_event_id_t::WEBSOCKET_EVENT_DISCONNECTED"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE","esp_websocket_event_id_t::WEBSOCKET_EVENT_ERROR"],[0,0,1,"_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE","esp_websocket_event_id_t::WEBSOCKET_EVENT_MAX"],[0,1,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::client"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::event"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::event_handler"],[0,2,1,"_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv","esp_websocket_register_events::event_handler_arg"],[0,6,1,"_CPPv425esp_websocket_transport_t","esp_websocket_transport_t"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE","esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_SSL"],[0,0,1,"_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE","esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_TCP"],[0,0,1,"_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE","esp_websocket_transport_t::WEBSOCKET_TRANSPORT_UNKNOWN"]]},objnames:{"0":["cpp","enumerator","C++ enumerator"],"1":["cpp","function","C++ function"],"2":["cpp","functionParam","C++ function parameter"],"3":["cpp","class","C++ class"],"4":["cpp","member","C++ member"],"5":["cpp","type","C++ type"],"6":["cpp","enum","C++ enum"]},objtypes:{"0":"cpp:enumerator","1":"cpp:function","2":"cpp:functionParam","3":"cpp:class","4":"cpp:member","5":"cpp:type","6":"cpp:enum"},terms:{"0":0,"01":0,"02":0,"1":0,"10":0,"104":0,"123":0,"3":0,"4":0,"443":0,"4567":0,"5":0,"7":0,"8":0,"80":0,"case":0,"char":0,"const":0,"default":0,"do":0,"enum":0,"int":0,"new":0,"null":0,"public":0,"return":0,"true":0,"void":0,A:0,For:0,If:0,In:0,It:0,Not:0,The:0,abl:0,abort:0,accept:0,access:0,actual:0,addit:0,after:0,agent:0,aliv:0,all:0,also:0,an:0,ani:0,ar:0,associ:0,authent:0,auto:0,automat:0,becaus:0,been:0,befor:0,begin:0,behavior:0,below:0,binari:0,bool:0,both:0,buffer:0,buffer_s:0,bundl:0,ca:0,ca_stor:0,call:0,callback:0,can:0,cannot:0,cert_len:0,cert_pem:0,certfic:0,certif:0,chain:0,charact:0,check:0,clean:0,cleanli:0,client_cert:0,client_cert_len:0,client_kei:0,client_key_len:0,client_key_pem:0,close:0,cn:0,code:0,command:0,complet:0,conf:0,config:0,connect:0,connectionhandl:0,contain:0,context:0,correspond:0,could:0,count:0,crt_bundle_attach:0,current:0,custom:0,d:0,data_len:0,data_ptr:0,defin:0,depend:0,der:0,destroi:0,directli:0,disabl:0,disable_auto_reconnect:0,disable_pingpong_discon:0,disconnect:0,doe:0,domain:0,download:0,due:0,dure:0,e:0,easi:0,echo:0,enabl:0,encod:0,end:0,environ:0,error:0,esp32:0,esp_crt_bundl:0,esp_crt_bundle_attach:0,esp_err_t:0,esp_event_handler_t:0,esp_websocket_cli:0,esp_websocket_client_clos:0,esp_websocket_client_close_with_cod:0,esp_websocket_client_config_t:0,esp_websocket_client_destroi:0,esp_websocket_client_get_ping_interval_sec:0,esp_websocket_client_handle_t:0,esp_websocket_client_init:0,esp_websocket_client_is_connect:0,esp_websocket_client_send_bin:0,esp_websocket_client_send_text:0,esp_websocket_client_set_ping_interval_sec:0,esp_websocket_client_set_uri:0,esp_websocket_client_start:0,esp_websocket_client_stop:0,esp_websocket_event_data_t:0,esp_websocket_event_id_t:0,esp_websocket_register_ev:0,esp_websocket_transport_t:0,establish:0,event_handl:0,event_handler_arg:0,exce:0,exceed:0,exchang:0,execut:0,extract:0,fail:0,fals:0,field:0,fin:0,first:0,flag:0,follow:0,format:0,found:0,fragment:0,frame:0,free:0,from:0,g:0,get:0,global:0,go:0,good:0,h:0,ha:0,handl:0,handler:0,handler_arg:0,handshak:0,have:0,here:0,host:0,http:0,i:0,id:0,idl:0,if_nam:0,ifreq:0,implement:0,includ:0,indiffer:0,inform:0,initi:0,input:0,instal:0,instanc:0,interfac:0,intermedi:0,interv:0,ip:0,keep:0,keep_alive_count:0,keep_alive_en:0,keep_alive_idl:0,keep_alive_interv:0,kei:0,last:0,layer:0,len:0,length:0,like:0,linux:0,mai:0,matter:0,mbedtl:0,mbedtls_certificate_bundl:0,member:0,menuconfig:0,messag:0,might:0,milisecond:0,millisecond:0,minim:0,more:0,multipl:0,must:0,mutual:0,n:0,name:0,nativ:0,need:0,network:0,network_timeout_m:0,non:0,note:0,now:0,number:0,occur:0,offset:0,old:0,onc:0,one:0,ones:0,op_cod:0,opcod:0,open:0,openssl:0,oper:0,opposit:0,option:0,org:0,other:0,outform:0,over:0,overrid:0,overridden:0,p:0,packag:0,packet:0,paramet:0,pars:0,pass:0,password:0,path:0,payload:0,payload_len:0,payload_offset:0,pem:0,perform:0,period:0,ping:0,ping_interval_sec:0,pingpong_timeout_sec:0,pleas:0,point:0,pointer:0,pong:0,port:0,portion:0,portmax_delai:0,possibl:0,post:0,practic:0,prioriti:0,privat:0,protocol:0,provid:0,queri:0,read:0,readi:0,receiv:0,reconnect:0,reconnect_timeout_m:0,regist:0,relat:0,replac:0,repli:0,request:0,requir:0,resourc:0,respons:0,retri:0,rfc6455:0,root:0,rto:0,s_client:0,same:0,sampl:0,save:0,scheme:0,sec:0,second:0,section:0,sed:0,see:0,sent:0,sequenc:0,server:0,session:0,set:0,setup:0,showcert:0,simpl:0,size:0,size_t:0,skip:0,skip_cert_common_name_check:0,soap:0,ssl:0,stack:0,start:0,state:0,statu:0,stop:0,string:0,struct:0,successfulli:0,support:0,system:0,task:0,task_prio:0,task_stack:0,tcp:0,termin:0,textual:0,thi:0,through:0,tick:0,ticktype_t:0,time:0,timeout:0,total:0,transport:0,typedef:0,uint8_t:0,unavail:0,unknown:0,until:0,url:0,us:0,use_global_ca_stor:0,user:0,user_ag:0,user_context:0,user_data:0,usernam:0,utf:0,valid:0,valu:0,verif:0,verifi:0,wa:0,wai:0,wait:0,want:0,websocket_client_config_t:0,websocket_event_ani:0,websocket_event_clos:0,websocket_event_connect:0,websocket_event_data:0,websocket_event_disconnect:0,websocket_event_error:0,websocket_event_max:0,websocket_org:0,websocket_org_pem_start:0,websocket_transport_over_ssl:0,websocket_transport_over_tcp:0,websocket_transport_unknown:0,well:0,what:0,when:0,which:0,window:0,within:0,without:0,write:0,ws:0,ws_cfg:0,wss:0,x509:0,you:0},titles:["ESP WebSocket Client"],titleterms:{"function":0,api:0,applic:0,client:0,configur:0,data:0,definit:0,enumer:0,esp:0,event:0,exampl:0,featur:0,file:0,header:0,issu:0,known:0,limit:0,overview:0,refer:0,send:0,structur:0,subprotocol:0,text:0,tl:0,type:0,uri:0,websocket:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["ESP WebSocket Client"], "terms": {"The": 0, "an": 0, "implement": 0, "protocol": 0, "esp32": 0, "support": 0, "over": 0, "tcp": 0, "mbedtl": 0, "easi": 0, "setup": 0, "multipl": 0, "instanc": 0, "one": 0, "ws": 0, "wss": 0, "scheme": 0, "sampl": 0, "echo": 0, "org": 0, "default": 0, "port": 0, "80": 0, "ssl": 0, "443": 0, "minim": 0, "const": 0, "esp_websocket_client_config_t": 0, "ws_cfg": 0, "us": 0, "both": 0, "path": 0, "queri": 0, "connectionhandl": 0, "id": 0, "104": 0, "If": 0, "ar": 0, "ani": 0, "option": 0, "relat": 0, "defin": 0, "overridden": 0, "123": 0, "4567": 0, "connect": 0, "cert_pem": 0, "char": 0, "websocket_org_pem_start": 0, "you": 0, "want": 0, "verifi": 0, "server": 0, "need": 0, "provid": 0, "certif": 0, "pem": 0, "format": 0, "websocket_client_config_t": 0, "certfic": 0, "requir": 0, "verif": 0, "thi": 0, "could": 0, "extract": 0, "from": 0, "openssl": 0, "s_client": 0, "command": 0, "In": 0, "case": 0, "host": 0, "oper": 0, "system": 0, "ha": 0, "sed": 0, "packag": 0, "instal": 0, "execut": 0, "follow": 0, "download": 0, "save": 0, "root": 0, "intermedi": 0, "note": 0, "window": 0, "user": 0, "linux": 0, "like": 0, "environ": 0, "nativ": 0, "mai": 0, "showcert": 0, "n": 0, "1": 0, "d": 0, "begin": 0, "end": 0, "p": 0, "x509": 0, "outform": 0, "websocket_org": 0, "second": 0, "chain": 0, "field": 0, "config": 0, "struct": 0, "can": 0, "request": 0, "soap": 0, "indiffer": 0, "respons": 0, "accept": 0, "matter": 0, "what": 0, "repli": 0, "For": 0, "more": 0, "pleas": 0, "below": 0, "websocket_event_connect": 0, "successfulli": 0, "establish": 0, "now": 0, "readi": 0, "receiv": 0, "contain": 0, "websocket_event_disconnect": 0, "abort": 0, "due": 0, "transport": 0, "layer": 0, "fail": 0, "read": 0, "e": 0, "g": 0, "becaus": 0, "unavail": 0, "websocket_event_data": 0, "pars": 0, "frame": 0, "pointer": 0, "payload": 0, "length": 0, "well": 0, "opcod": 0, "A": 0, "messag": 0, "fragment": 0, "exce": 0, "buffer": 0, "size": 0, "also": 0, "post": 0, "non": 0, "pong": 0, "close": 0, "websocket_event_error": 0, "Not": 0, "current": 0, "handl": 0, "handler": 0, "access": 0, "through": 0, "pass": 0, "esp_websocket_client_handle_t": 0, "handler_arg": 0, "abl": 0, "dure": 0, "handshak": 0, "doe": 0, "do": 0, "check": 0, "simpl": 0, "esp_websocket_cli": 0, "found": 0, "here": 0, "which": 0, "inform": 0, "encod": 0, "utf": 0, "8": 0, "esp_websocket_client_send_text": 0, "len": 0, "portmax_delai": 0, "includ": 0, "h": 0, "esp_websocket_client_init": 0, "start": 0, "session": 0, "must": 0, "first": 0, "call": 0, "return": 0, "input": 0, "other": 0, "interfac": 0, "have": 0, "correspond": 0, "esp_websocket_client_destroi": 0, "when": 0, "complet": 0, "paramet": 0, "null": 0, "error": 0, "esp_err_t": 0, "esp_websocket_client_set_uri": 0, "set": 0, "url": 0, "perform": 0, "behavior": 0, "replac": 0, "old": 0, "ones": 0, "stop": 0, "befor": 0, "been": 0, "esp_websocket_client_start": 0, "open": 0, "esp_websocket_client_stop": 0, "without": 0, "directli": 0, "It": 0, "good": 0, "practic": 0, "clean": 0, "wai": 0, "esp_websocket_client_clos": 0, "cannot": 0, "destroi": 0, "free": 0, "all": 0, "resourc": 0, "last": 0, "opposit": 0, "same": 0, "might": 0, "int": 0, "esp_websocket_client_send_bin": 0, "ticktype_t": 0, "timeout": 0, "write": 0, "binari": 0, "02": 0, "i": 0, "rto": 0, "tick": 0, "number": 0, "wa": 0, "sent": 0, "textual": 0, "01": 0, "sequenc": 0, "initi": 0, "wait": 0, "until": 0, "esp_websocket_client_close_with_cod": 0, "code": 0, "custom": 0, "statu": 0, "rfc6455": 0, "section": 0, "7": 0, "4": 0, "addit": 0, "bool": 0, "esp_websocket_client_is_connect": 0, "state": 0, "true": 0, "fals": 0, "size_t": 0, "esp_websocket_client_get_ping_interval_sec": 0, "get": 0, "ping": 0, "interv": 0, "sec": 0, "esp_websocket_client_set_ping_interval_sec": 0, "ping_interval_sec": 0, "new": 0, "esp_websocket_register_ev": 0, "esp_websocket_event_id_t": 0, "esp_event_handler_t": 0, "event_handl": 0, "void": 0, "event_handler_arg": 0, "regist": 0, "callback": 0, "context": 0, "esp_websocket_event_data_t": 0, "public": 0, "member": 0, "data_ptr": 0, "data_len": 0, "fin": 0, "flag": 0, "uint8_t": 0, "op_cod": 0, "user_context": 0, "user_data": 0, "payload_len": 0, "total": 0, "exceed": 0, "payload_offset": 0, "actual": 0, "offset": 0, "associ": 0, "overrid": 0, "domain": 0, "ip": 0, "string": 0, "depend": 0, "esp_websocket_transport_t": 0, "usernam": 0, "http": 0, "authent": 0, "password": 0, "disable_auto_reconnect": 0, "disabl": 0, "automat": 0, "reconnect": 0, "disconnect": 0, "task_prio": 0, "task": 0, "prioriti": 0, "task_stack": 0, "stack": 0, "buffer_s": 0, "der": 0, "termin": 0, "charact": 0, "cert_len": 0, "point": 0, "0": 0, "client_cert": 0, "mutual": 0, "client_kei": 0, "client_cert_len": 0, "privat": 0, "kei": 0, "client_key_len": 0, "client_key_pem": 0, "see": 0, "user_ag": 0, "agent": 0, "pingpong_timeout_sec": 0, "period": 0, "disable_pingpong_discon": 0, "auto": 0, "within": 0, "use_global_ca_stor": 0, "global": 0, "ca_stor": 0, "crt_bundle_attach": 0, "conf": 0, "esp_crt_bundle_attach": 0, "enabl": 0, "bundl": 0, "mbedtls_certificate_bundl": 0, "menuconfig": 0, "esp_crt_bundl": 0, "ca": 0, "skip_cert_common_name_check": 0, "skip": 0, "valid": 0, "cn": 0, "keep_alive_en": 0, "keep": 0, "aliv": 0, "keep_alive_idl": 0, "idl": 0, "time": 0, "5": 0, "keep_alive_interv": 0, "keep_alive_count": 0, "packet": 0, "retri": 0, "count": 0, "3": 0, "reconnect_timeout_m": 0, "after": 0, "valu": 0, "milisecond": 0, "10": 0, "network_timeout_m": 0, "network": 0, "millisecond": 0, "ifreq": 0, "if_nam": 0, "name": 0, "go": 0, "typedef": 0, "enum": 0, "websocket_event_ani": 0, "occur": 0, "onc": 0, "exchang": 0, "possibl": 0, "portion": 0, "websocket_event_clos": 0, "cleanli": 0, "websocket_event_max": 0, "websocket_transport_unknown": 0, "unknown": 0, "websocket_transport_over_tcp": 0, "websocket_transport_over_ssl": 0}, "objects": {"": [[0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE", "WEBSOCKET_EVENT_ANY"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE", "WEBSOCKET_EVENT_CLOSED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE", "WEBSOCKET_EVENT_CONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE", "WEBSOCKET_EVENT_DATA"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE", "WEBSOCKET_EVENT_DISCONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE", "WEBSOCKET_EVENT_ERROR"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE", "WEBSOCKET_EVENT_MAX"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE", "WEBSOCKET_TRANSPORT_OVER_SSL"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE", "WEBSOCKET_TRANSPORT_OVER_TCP"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE", "WEBSOCKET_TRANSPORT_UNKNOWN"], [0, 1, 1, "_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t", "esp_websocket_client_close"], [0, 2, 1, "_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t", "esp_websocket_client_close::client"], [0, 2, 1, "_CPPv426esp_websocket_client_close29esp_websocket_client_handle_t10TickType_t", "esp_websocket_client_close::timeout"], [0, 1, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::client"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::code"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::data"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::len"], [0, 2, 1, "_CPPv436esp_websocket_client_close_with_code29esp_websocket_client_handle_tiPKci10TickType_t", "esp_websocket_client_close_with_code::timeout"], [0, 3, 1, "_CPPv429esp_websocket_client_config_t", "esp_websocket_client_config_t"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t11buffer_sizeE", "esp_websocket_client_config_t::buffer_size"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8cert_lenE", "esp_websocket_client_config_t::cert_len"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8cert_pemE", "esp_websocket_client_config_t::cert_pem"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t11client_certE", "esp_websocket_client_config_t::client_cert"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t15client_cert_lenE", "esp_websocket_client_config_t::client_cert_len"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t10client_keyE", "esp_websocket_client_config_t::client_key"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t14client_key_lenE", "esp_websocket_client_config_t::client_key_len"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t17crt_bundle_attachE", "esp_websocket_client_config_t::crt_bundle_attach"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t22disable_auto_reconnectE", "esp_websocket_client_config_t::disable_auto_reconnect"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t23disable_pingpong_disconE", "esp_websocket_client_config_t::disable_pingpong_discon"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t7headersE", "esp_websocket_client_config_t::headers"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t4hostE", "esp_websocket_client_config_t::host"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t7if_nameE", "esp_websocket_client_config_t::if_name"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t16keep_alive_countE", "esp_websocket_client_config_t::keep_alive_count"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t17keep_alive_enableE", "esp_websocket_client_config_t::keep_alive_enable"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t15keep_alive_idleE", "esp_websocket_client_config_t::keep_alive_idle"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t19keep_alive_intervalE", "esp_websocket_client_config_t::keep_alive_interval"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t18network_timeout_msE", "esp_websocket_client_config_t::network_timeout_ms"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8passwordE", "esp_websocket_client_config_t::password"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t4pathE", "esp_websocket_client_config_t::path"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t17ping_interval_secE", "esp_websocket_client_config_t::ping_interval_sec"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t20pingpong_timeout_secE", "esp_websocket_client_config_t::pingpong_timeout_sec"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t4portE", "esp_websocket_client_config_t::port"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t20reconnect_timeout_msE", "esp_websocket_client_config_t::reconnect_timeout_ms"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t27skip_cert_common_name_checkE", "esp_websocket_client_config_t::skip_cert_common_name_check"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t11subprotocolE", "esp_websocket_client_config_t::subprotocol"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t9task_prioE", "esp_websocket_client_config_t::task_prio"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t10task_stackE", "esp_websocket_client_config_t::task_stack"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t9transportE", "esp_websocket_client_config_t::transport"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t3uriE", "esp_websocket_client_config_t::uri"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t19use_global_ca_storeE", "esp_websocket_client_config_t::use_global_ca_store"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t10user_agentE", "esp_websocket_client_config_t::user_agent"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t12user_contextE", "esp_websocket_client_config_t::user_context"], [0, 4, 1, "_CPPv4N29esp_websocket_client_config_t8usernameE", "esp_websocket_client_config_t::username"], [0, 1, 1, "_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t", "esp_websocket_client_destroy"], [0, 2, 1, "_CPPv428esp_websocket_client_destroy29esp_websocket_client_handle_t", "esp_websocket_client_destroy::client"], [0, 1, 1, "_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t", "esp_websocket_client_get_ping_interval_sec"], [0, 2, 1, "_CPPv442esp_websocket_client_get_ping_interval_sec29esp_websocket_client_handle_t", "esp_websocket_client_get_ping_interval_sec::client"], [0, 5, 1, "_CPPv429esp_websocket_client_handle_t", "esp_websocket_client_handle_t"], [0, 1, 1, "_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t", "esp_websocket_client_init"], [0, 2, 1, "_CPPv425esp_websocket_client_initPK29esp_websocket_client_config_t", "esp_websocket_client_init::config"], [0, 1, 1, "_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t", "esp_websocket_client_is_connected"], [0, 2, 1, "_CPPv433esp_websocket_client_is_connected29esp_websocket_client_handle_t", "esp_websocket_client_is_connected::client"], [0, 1, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::client"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::data"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::len"], [0, 2, 1, "_CPPv429esp_websocket_client_send_bin29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_bin::timeout"], [0, 1, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::client"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::data"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::len"], [0, 2, 1, "_CPPv430esp_websocket_client_send_text29esp_websocket_client_handle_tPKci10TickType_t", "esp_websocket_client_send_text::timeout"], [0, 1, 1, "_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t", "esp_websocket_client_set_ping_interval_sec"], [0, 2, 1, "_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t", "esp_websocket_client_set_ping_interval_sec::client"], [0, 2, 1, "_CPPv442esp_websocket_client_set_ping_interval_sec29esp_websocket_client_handle_t6size_t", "esp_websocket_client_set_ping_interval_sec::ping_interval_sec"], [0, 1, 1, "_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc", "esp_websocket_client_set_uri"], [0, 2, 1, "_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc", "esp_websocket_client_set_uri::client"], [0, 2, 1, "_CPPv428esp_websocket_client_set_uri29esp_websocket_client_handle_tPKc", "esp_websocket_client_set_uri::uri"], [0, 1, 1, "_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t", "esp_websocket_client_start"], [0, 2, 1, "_CPPv426esp_websocket_client_start29esp_websocket_client_handle_t", "esp_websocket_client_start::client"], [0, 1, 1, "_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t", "esp_websocket_client_stop"], [0, 2, 1, "_CPPv425esp_websocket_client_stop29esp_websocket_client_handle_t", "esp_websocket_client_stop::client"], [0, 3, 1, "_CPPv426esp_websocket_event_data_t", "esp_websocket_event_data_t"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t6clientE", "esp_websocket_event_data_t::client"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t8data_lenE", "esp_websocket_event_data_t::data_len"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t8data_ptrE", "esp_websocket_event_data_t::data_ptr"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t3finE", "esp_websocket_event_data_t::fin"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t7op_codeE", "esp_websocket_event_data_t::op_code"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t11payload_lenE", "esp_websocket_event_data_t::payload_len"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t14payload_offsetE", "esp_websocket_event_data_t::payload_offset"], [0, 4, 1, "_CPPv4N26esp_websocket_event_data_t12user_contextE", "esp_websocket_event_data_t::user_context"], [0, 6, 1, "_CPPv424esp_websocket_event_id_t", "esp_websocket_event_id_t"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_ANYE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_ANY"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t22WEBSOCKET_EVENT_CLOSEDE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_CLOSED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t25WEBSOCKET_EVENT_CONNECTEDE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_CONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t20WEBSOCKET_EVENT_DATAE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_DATA"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t28WEBSOCKET_EVENT_DISCONNECTEDE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_DISCONNECTED"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t21WEBSOCKET_EVENT_ERRORE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_ERROR"], [0, 0, 1, "_CPPv4N24esp_websocket_event_id_t19WEBSOCKET_EVENT_MAXE", "esp_websocket_event_id_t::WEBSOCKET_EVENT_MAX"], [0, 1, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::client"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::event"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::event_handler"], [0, 2, 1, "_CPPv429esp_websocket_register_events29esp_websocket_client_handle_t24esp_websocket_event_id_t19esp_event_handler_tPv", "esp_websocket_register_events::event_handler_arg"], [0, 6, 1, "_CPPv425esp_websocket_transport_t", "esp_websocket_transport_t"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_SSLE", "esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_SSL"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t28WEBSOCKET_TRANSPORT_OVER_TCPE", "esp_websocket_transport_t::WEBSOCKET_TRANSPORT_OVER_TCP"], [0, 0, 1, "_CPPv4N25esp_websocket_transport_t27WEBSOCKET_TRANSPORT_UNKNOWNE", "esp_websocket_transport_t::WEBSOCKET_TRANSPORT_UNKNOWN"]]}, "objtypes": {"0": "cpp:enumerator", "1": "cpp:function", "2": "cpp:functionParam", "3": "cpp:class", "4": "cpp:member", "5": "cpp:type", "6": "cpp:enum"}, "objnames": {"0": ["cpp", "enumerator", "C++ enumerator"], "1": ["cpp", "function", "C++ function"], "2": ["cpp", "functionParam", "C++ function parameter"], "3": ["cpp", "class", "C++ class"], "4": ["cpp", "member", "C++ member"], "5": ["cpp", "type", "C++ type"], "6": ["cpp", "enum", "C++ enum"]}, "titleterms": {"esp": 0, "websocket": 0, "client": 0, "overview": 0, "featur": 0, "configur": 0, "uri": 0, "tl": 0, "subprotocol": 0, "event": 0, "limit": 0, "known": 0, "issu": 0, "applic": 0, "exampl": 0, "send": 0, "text": 0, "data": 0, "api": 0, "refer": 0, "header": 0, "file": 0, "function": 0, "structur": 0, "type": 0, "definit": 0, "enumer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/mdns/en/.buildinfo b/mdns/en/.buildinfo index 08dce652d..d74bd2f71 100644 --- a/mdns/en/.buildinfo +++ b/mdns/en/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 80257b94e91c0165381d514b2681b3e8 +config: 7469a449e7452fe86dc92420b963a655 tags: 549b3d6d0415232fb7e35403b330ff49 diff --git a/mdns/en/_static/_sphinx_javascript_frameworks_compat.js b/mdns/en/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/mdns/en/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * 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) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/mdns/en/_static/basic.css b/mdns/en/_static/basic.css index bf18350b6..088967717 100644 --- a/mdns/en/_static/basic.css +++ b/mdns/en/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/mdns/en/_static/doctools.js b/mdns/en/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/mdns/en/_static/doctools.js +++ b/mdns/en/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * 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) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); } } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/mdns/en/_static/documentation_options.js b/mdns/en/_static/documentation_options.js index f8d32270a..f6bd60d98 100644 --- a/mdns/en/_static/documentation_options.js +++ b/mdns/en/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/mdns/en/_static/jquery-3.5.1.js b/mdns/en/_static/jquery-3.6.0.js similarity index 98% rename from mdns/en/_static/jquery-3.5.1.js rename to mdns/en/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/mdns/en/_static/jquery-3.5.1.js +++ b/mdns/en/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/mdns/en/_static/jquery.js b/mdns/en/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/mdns/en/_static/jquery.js +++ b/mdns/en/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, // Used when the priority is not in the mapping. objPrioDefault: 0, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings } /** * Search Module */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - 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."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); }, - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ - performSearch : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

      ' + _('Searching') + '

      ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

       

      ').appendTo(this.out); - this.output = $('
      diff --git a/mdns/en/index.html b/mdns/en/index.html index 011917780..bcce3fb5c 100644 --- a/mdns/en/index.html +++ b/mdns/en/index.html @@ -16,6 +16,7 @@ + @@ -113,7 +114,7 @@
    • »
    • mDNS Service
    • - Edit on GitHub + Edit on GitHub

    • @@ -122,14 +123,14 @@
      -

      mDNS Service

      +

      mDNS Service

      [中文]

      -

      Overview

      +

      Overview

      mDNS is a multicast UDP service that is used to provide local network service and host discovery.

      mDNS is installed by default on most operating systems or is available as separate package. On Mac OS it is installed by default and is called Bonjour. Apple releases an installer for Windows that can be found on Apple’s support page. On Linux, mDNS is provided by avahi and is usually installed by default.

      -

      mDNS Properties

      +

      mDNS Properties

      • hostname: the hostname that the device will respond to. If not set, the hostname will be read from the interface. Example: my-esp32 will resolve to my-esp32.local

      • @@ -155,7 +156,7 @@
      -

      mDNS Services

      +

      mDNS Services

      mDNS can advertise information about network services that your device offers. Each service is defined by a few properties.

        @@ -193,7 +194,7 @@
      -

      mDNS Query

      +

      mDNS Query

      mDNS provides methods for browsing for services and resolving host’s IP/IPv6 addresses.

      Results for services are returned as a linked list of mdns_result_t objects.

      Example method to resolve host IPs:

      @@ -295,10 +296,10 @@
      -

      Performance Optimization

      +

      Performance Optimization

      -

      Execution Speed

      +

      Execution Speed

      • mDNS creates a task with default low priority 1 CONFIG_MDNS_TASK_PRIORITY (If CONFIG_FREERTOS_UNICORE enabeled it pinned to CPU0 (CONFIG_MDNS_TASK_AFFINITY).

      • @@ -307,7 +308,7 @@
      -

      Minimizing RAM Usage

      +

      Minimizing RAM Usage

      • mDNS creates a tasks with stack sizes configured by CONFIG_MDNS_TASK_STACK_SIZE.

      @@ -315,19 +316,19 @@
      -

      Application Example

      -

      mDNS server/scanner example: .

      +

      Application Example

      +

      mDNS server/scanner example: .

      -

      API Reference

      +

      API Reference

      -

      Header File

      +

      Header File

      -

      Functions

      +

      Functions

      esp_err_t mdns_init(void)
      @@ -1270,7 +1271,7 @@
      -

      Structures

      +

      Structures

      struct mdns_txt_item_t
      @@ -1402,7 +1403,7 @@
      -

      Macros

      +

      Macros

      MDNS_TYPE_A
      @@ -1445,7 +1446,7 @@
      -

      Type Definitions

      +

      Type Definitions

      typedef struct mdns_search_once_s mdns_search_once_t
      @@ -1471,7 +1472,7 @@
      -

      Enumerations

      +

      Enumerations

      enum mdns_event_actions_t
      diff --git a/mdns/en/search.html b/mdns/en/search.html index 04d02cf3e..c8e0a42d3 100644 --- a/mdns/en/search.html +++ b/mdns/en/search.html @@ -16,6 +16,7 @@ + diff --git a/mdns/en/searchindex.js b/mdns/en/searchindex.js index 5766804bd..48f820f99 100644 --- a/mdns/en/searchindex.js +++ b/mdns/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{"":[[0,0,1,"c.MDNS_TYPE_A","MDNS_TYPE_A"],[0,0,1,"c.MDNS_TYPE_AAAA","MDNS_TYPE_AAAA"],[0,0,1,"c.MDNS_TYPE_ANY","MDNS_TYPE_ANY"],[0,0,1,"c.MDNS_TYPE_NSEC","MDNS_TYPE_NSEC"],[0,0,1,"c.MDNS_TYPE_OPT","MDNS_TYPE_OPT"],[0,0,1,"c.MDNS_TYPE_PTR","MDNS_TYPE_PTR"],[0,0,1,"c.MDNS_TYPE_SRV","MDNS_TYPE_SRV"],[0,0,1,"c.MDNS_TYPE_TXT","MDNS_TYPE_TXT"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","MDNS_EVENT_ENABLE_IP6"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","MDNS_IP_PROTOCOL_V6"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::address_list"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::hostname"],[0,2,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove"],[0,3,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove::hostname"],[0,4,1,"_CPPv420mdns_event_actions_t","mdns_event_actions_t"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"],[0,2,1,"_CPPv49mdns_freev","mdns_free"],[0,2,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists"],[0,3,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists::hostname"],[0,2,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set"],[0,3,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set::hostname"],[0,2,1,"_CPPv49mdns_initv","mdns_init"],[0,2,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set"],[0,3,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set::instance_name"],[0,5,1,"_CPPv414mdns_ip_addr_s","mdns_ip_addr_s"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4addrE","mdns_ip_addr_s::addr"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4nextE","mdns_ip_addr_s::next"],[0,7,1,"_CPPv414mdns_ip_addr_t","mdns_ip_addr_t"],[0,4,1,"_CPPv418mdns_ip_protocol_t","mdns_ip_protocol_t"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"],[0,2,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::esp_netif"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::event_action"],[0,2,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::max_results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::name"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::proto"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::service_type"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::timeout"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::type"],[0,2,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::addr"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::host_name"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::timeout"],[0,2,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete"],[0,3,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete::search"],[0,2,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::num_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::search"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::timeout"],[0,2,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::max_results"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::name"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::notifier"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::proto"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::service_type"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::timeout"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::type"],[0,2,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::max_results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::name"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::proto"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::service_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::timeout"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::transmission_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::type"],[0,7,1,"_CPPv419mdns_query_notify_t","mdns_query_notify_t"],[0,2,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::max_results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::proto"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::service_type"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::timeout"],[0,2,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free"],[0,3,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free::results"],[0,2,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::instance_name"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::proto"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::result"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::service_type"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::timeout"],[0,4,1,"_CPPv430mdns_query_transmission_type_t","mdns_query_transmission_type_t"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::instance_name"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::proto"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::result"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::service_type"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::timeout"],[0,2,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif"],[0,3,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif::esp_netif"],[0,5,1,"_CPPv413mdns_result_s","mdns_result_s"],[0,6,1,"_CPPv4N13mdns_result_s4addrE","mdns_result_s::addr"],[0,6,1,"_CPPv4N13mdns_result_s9esp_netifE","mdns_result_s::esp_netif"],[0,6,1,"_CPPv4N13mdns_result_s8hostnameE","mdns_result_s::hostname"],[0,6,1,"_CPPv4N13mdns_result_s13instance_nameE","mdns_result_s::instance_name"],[0,6,1,"_CPPv4N13mdns_result_s11ip_protocolE","mdns_result_s::ip_protocol"],[0,6,1,"_CPPv4N13mdns_result_s4nextE","mdns_result_s::next"],[0,6,1,"_CPPv4N13mdns_result_s4portE","mdns_result_s::port"],[0,6,1,"_CPPv4N13mdns_result_s5protoE","mdns_result_s::proto"],[0,6,1,"_CPPv4N13mdns_result_s12service_typeE","mdns_result_s::service_type"],[0,6,1,"_CPPv4N13mdns_result_s3ttlE","mdns_result_s::ttl"],[0,6,1,"_CPPv4N13mdns_result_s3txtE","mdns_result_s::txt"],[0,6,1,"_CPPv4N13mdns_result_s9txt_countE","mdns_result_s::txt_count"],[0,6,1,"_CPPv4N13mdns_result_s13txt_value_lenE","mdns_result_s::txt_value_len"],[0,7,1,"_CPPv413mdns_result_t","mdns_result_t"],[0,7,1,"_CPPv418mdns_search_once_t","mdns_search_once_t"],[0,2,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::instance_name"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::num_items"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::port"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::proto"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::service_type"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::txt"],[0,2,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::hostname"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::instance_name"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::num_items"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::port"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::proto"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::service_type"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::txt"],[0,2,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::hostname"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::proto"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::service_type"],[0,2,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::hostname"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::proto"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::service_type"],[0,2,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::instance_name"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::proto"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::service_type"],[0,2,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::hostname"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_name"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_old"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::proto"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::service_type"],[0,2,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::port"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::proto"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::service_type"],[0,2,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::hostname"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::instance"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::port"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::proto"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::service_type"],[0,2,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::proto"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::service_type"],[0,2,1,"_CPPv423mdns_service_remove_allv","mdns_service_remove_all"],[0,2,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::hostname"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::instance"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::proto"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::service_type"],[0,2,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::hostname"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::instance_name"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::proto"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::service_type"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::subtype"],[0,2,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::key"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::proto"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::service_type"],[0,2,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::hostname"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::instance"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::key"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::proto"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::service_type"],[0,2,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::key"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::proto"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::service_type"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::value"],[0,2,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::hostname"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::instance"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::key"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::proto"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::service_type"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::value"],[0,2,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::key"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"],[0,2,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::key"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::proto"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::service_type"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value_len"],[0,2,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::num_items"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::proto"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::service_type"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::txt"],[0,2,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::hostname"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::instance"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::num_items"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::proto"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::service_type"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::txt"],[0,5,1,"_CPPv415mdns_txt_item_t","mdns_txt_item_t"],[0,6,1,"_CPPv4N15mdns_txt_item_t3keyE","mdns_txt_item_t::key"],[0,6,1,"_CPPv4N15mdns_txt_item_t5valueE","mdns_txt_item_t::value"],[0,2,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif"],[0,3,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif::esp_netif"]]},objnames:{"0":["c","macro","C macro"],"1":["cpp","enumerator","C++ enumerator"],"2":["cpp","function","C++ function"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ enum"],"5":["cpp","class","C++ class"],"6":["cpp","member","C++ member"],"7":["cpp","type","C++ type"]},objtypes:{"0":"c:macro","1":"cpp:enumerator","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:class","6":"cpp:member","7":"cpp:type"},terms:{"0":0,"1":0,"1234":0,"2":0,"20":0,"2000":0,"3":0,"3000":0,"3232":0,"4321":0,"80":0,"\u4e2d\u6587":0,"char":0,"const":0,"default":0,"enum":0,"int":0,"new":0,"null":0,"public":0,"return":0,"static":0,"true":0,"var":0,"void":0,"while":0,A:0,If:0,No:0,On:0,The:0,_afpovertcp:0,_arduino:0,_ftp:0,_http:0,_ipp:0,_myservic:0,_nf:0,_printer:0,_smb:0,_tcp:0,_udp:0,aaaa:0,about:0,abov:0,action:0,activ:0,actual:0,ad:0,add:0,add_mdns_servic:0,addr:0,address:0,address_list:0,advertis:0,after:0,all:0,alreadi:0,also:0,although:0,an:0,ani:0,announc:0,answer:0,ap:0,appl:0,ar:0,arrai:0,asynchron:0,asynchronous:0,automat:0,avahi:0,avail:0,basic:0,been:0,befor:0,below:0,board:0,bonjour:0,bool:0,brows:0,bye:0,call:0,can:0,chang:0,check:0,collect:0,common:0,config:0,config_freertos_unicor:0,config_mdns_max_interfac:0,config_mdns_task_affin:0,config_mdns_task_prior:0,config_mdns_task_stack_s:0,configur:0,conflict:0,connect:0,correspond:0,could:0,cpu0:0,creat:0,current:0,custom:0,d:0,data:0,decid:0,default_inst:0,defin:0,deleg:0,delet:0,deriv:0,desir:0,detail:0,devic:0,differ:0,disabl:0,disconnect:0,discoveri:0,driver:0,dure:0,each:0,eesp32:0,eg:0,either:0,els:0,enabel:0,enabl:0,end:0,enough:0,err:0,error:0,esp32:0,esp:0,esp_err_invalid_arg:0,esp_err_invalid_st:0,esp_err_no_mem:0,esp_err_not_found:0,esp_err_t:0,esp_fail:0,esp_ip4_addr_t:0,esp_ip_addr_t:0,esp_log:0,esp_logw:0,esp_netif:0,esp_netif_t:0,esp_ok:0,etc:0,eth:0,ethernet:0,event:0,event_act:0,explicitli:0,fail:0,fals:0,few:0,find:0,find_mdns_servic:0,finish:0,first:0,follow:0,found:0,free:0,freed:0,friendli:0,from:0,ftp:0,gener:0,get:0,given:0,global:0,h:0,ha:0,handl:0,handler:0,have:0,here:0,host:0,host_nam:0,hostnam:0,http:0,i:0,if_str:0,ignor:0,includ:0,inform:0,init:0,initi:0,instal:0,instanc:0,instance_nam:0,instance_old:0,interfac:0,ip2str:0,ip4:0,ip4_addr:0,ip6:0,ip:0,ip_protocol:0,ip_protocol_str:0,ipaddr_type_v6:0,ipstr:0,ipv4:0,ipv62str:0,ipv6:0,ipv6str:0,item:0,jhon:0,kei:0,kind:0,last:0,len:0,length:0,like:0,link:0,linux:0,list:0,live:0,local:0,look:0,low:0,mac:0,manual:0,max:0,max_result:0,maxim:0,maximum:0,mdns_delegate_hostname_add:0,mdns_delegate_hostname_remov:0,mdns_event_actions_t:0,mdns_event_announce_ip4:0,mdns_event_announce_ip6:0,mdns_event_disable_ip4:0,mdns_event_disable_ip6:0,mdns_event_enable_ip4:0,mdns_event_enable_ip6:0,mdns_free:0,mdns_hostname_exist:0,mdns_hostname_set:0,mdns_init:0,mdns_instance_name_set:0,mdns_ip_addr_:0,mdns_ip_addr_t:0,mdns_ip_protocol_max:0,mdns_ip_protocol_t:0,mdns_ip_protocol_v4:0,mdns_ip_protocol_v6:0,mdns_multiple_inst:0,mdns_netif_act:0,mdns_print_result:0,mdns_queri:0,mdns_query_a:0,mdns_query_async_delet:0,mdns_query_async_get_result:0,mdns_query_async_new:0,mdns_query_gener:0,mdns_query_multicast:0,mdns_query_notify_t:0,mdns_query_ptr:0,mdns_query_results_fre:0,mdns_query_srv:0,mdns_query_transmission_type_t:0,mdns_query_txt:0,mdns_query_unicast:0,mdns_register_netif:0,mdns_result_:0,mdns_result_t:0,mdns_search_once_:0,mdns_search_once_t:0,mdns_service_add:0,mdns_service_add_for_host:0,mdns_service_exist:0,mdns_service_exists_with_inst:0,mdns_service_instance_name_set:0,mdns_service_instance_name_set_for_host:0,mdns_service_port_set:0,mdns_service_port_set_for_host:0,mdns_service_remov:0,mdns_service_remove_al:0,mdns_service_remove_for_host:0,mdns_service_subtype_add_for_host:0,mdns_service_txt_item_remov:0,mdns_service_txt_item_remove_for_host:0,mdns_service_txt_item_set:0,mdns_service_txt_item_set_for_host:0,mdns_service_txt_item_set_for_host_with_explicit_value_len:0,mdns_service_txt_item_set_with_explicit_value_len:0,mdns_service_txt_set:0,mdns_service_txt_set_for_host:0,mdns_txt_item_t:0,mdns_type_:0,mdns_type_a:0,mdns_type_aaaa:0,mdns_type_ani:0,mdns_type_nsec:0,mdns_type_opt:0,mdns_type_ptr:0,mdns_type_srv:0,mdns_type_txt:0,mdns_unregister_netif:0,member:0,memori:0,method:0,millisecond:0,more:0,most:0,multicast:0,multipl:0,must:0,my:0,my_app_some_method:0,n:0,name:0,need:0,netif:0,network:0,next:0,nf:0,note:0,notif:0,notifi:0,num_item:0,num_result:0,number:0,object:0,offer:0,onc:0,one:0,onli:0,oper:0,option:0,origin:0,os:0,other:0,otherwis:0,our:0,output:0,over:0,p:0,packag:0,packet:0,page:0,paramet:0,password:0,pin:0,pleas:0,pointer:0,port:0,preconfigur:0,prepend:0,printer:0,printf:0,prioriti:0,probe:0,progress:0,proto:0,protocol:0,provid:0,ptr:0,r:0,read:0,readi:0,record:0,regist:0,releas:0,remov:0,replac:0,repli:0,requir:0,resolv:0,resolve_mdns_host:0,respond:0,result:0,run:0,s:0,same:0,scanner:0,search:0,see:0,send:0,separ:0,server:0,service_nam:0,service_typ:0,servicetxtdata:0,set:0,share:0,size:0,size_t:0,some:0,specif:0,specifi:0,srevic:0,srv:0,sta:0,stack:0,standard:0,start:0,start_mdns_servic:0,state:0,stop:0,string:0,strlen:0,struct:0,subtyp:0,success:0,successfulli:0,support:0,system:0,t:0,tag:0,task:0,tcpip_if:0,test:0,text:0,them:0,thi:0,thing:0,time:0,timeout:0,transmission_typ:0,ttl:0,txt:0,txt_count:0,txt_value_len:0,typedef:0,u:0,u_addr:0,udp:0,uint16_t:0,uint32_t:0,uint8_t:0,underscor:0,unicast:0,unregist:0,updat:0,us:0,user:0,usual:0,v4:0,v6:0,val:0,valu:0,value_len:0,via:0,wa:0,wait:0,want:0,web:0,when:0,whether:0,which:0,wifi:0,window:0,you:0,your:0},titles:["mDNS Service"],titleterms:{"function":0,api:0,applic:0,definit:0,enumer:0,exampl:0,execut:0,file:0,header:0,macro:0,mdn:0,minim:0,optim:0,overview:0,perform:0,properti:0,queri:0,ram:0,refer:0,servic:0,speed:0,structur:0,type:0,usag:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["mDNS Service"], "terms": {"\u4e2d\u6587": 0, "multicast": 0, "udp": 0, "us": 0, "provid": 0, "local": 0, "network": 0, "host": 0, "discoveri": 0, "instal": 0, "default": 0, "most": 0, "oper": 0, "system": 0, "avail": 0, "separ": 0, "packag": 0, "On": 0, "mac": 0, "os": 0, "call": 0, "bonjour": 0, "appl": 0, "releas": 0, "an": 0, "window": 0, "can": 0, "found": 0, "s": 0, "support": 0, "page": 0, "linux": 0, "avahi": 0, "usual": 0, "hostnam": 0, "devic": 0, "respond": 0, "If": 0, "set": 0, "read": 0, "from": 0, "interfac": 0, "my": 0, "esp32": 0, "resolv": 0, "default_inst": 0, "friendli": 0, "name": 0, "your": 0, "like": 0, "jhon": 0, "thing": 0, "method": 0, "start": 0, "sta": 0, "void": 0, "start_mdns_servic": 0, "initi": 0, "esp_err_t": 0, "err": 0, "mdns_init": 0, "printf": 0, "init": 0, "fail": 0, "d": 0, "n": 0, "return": 0, "mdns_hostname_set": 0, "instanc": 0, "mdns_instance_name_set": 0, "advertis": 0, "inform": 0, "about": 0, "offer": 0, "each": 0, "defin": 0, "few": 0, "instance_nam": 0, "eesp32": 0, "web": 0, "server": 0, "service_typ": 0, "requir": 0, "prepend": 0, "underscor": 0, "some": 0, "common": 0, "here": 0, "proto": 0, "protocol": 0, "run": 0, "_tcp": 0, "_udp": 0, "port": 0, "txt": 0, "var": 0, "val": 0, "arrai": 0, "string": 0, "add": 0, "differ": 0, "add_mdns_servic": 0, "our": 0, "mdns_service_add": 0, "null": 0, "_http": 0, "80": 0, "0": 0, "_arduino": 0, "3232": 0, "_myservic": 0, "1234": 0, "note": 0, "must": 0, "ad": 0, "befor": 0, "custom": 0, "mdns_service_instance_name_set": 0, "mdns_txt_item_t": 0, "servicetxtdata": 0, "3": 0, "board": 0, "u": 0, "user": 0, "p": 0, "password": 0, "data": 0, "free": 0, "replac": 0, "current": 0, "mdns_service_txt_set": 0, "chang": 0, "mdns_service_port_set": 0, "4321": 0, "brows": 0, "ip": 0, "ipv6": 0, "address": 0, "result": 0, "ar": 0, "link": 0, "list": 0, "mdns_result_t": 0, "object": 0, "resolve_mdns_host": 0, "const": 0, "char": 0, "host_nam": 0, "A": 0, "struct": 0, "ip4_addr": 0, "addr": 0, "mdns_query_a": 0, "2000": 0, "esp_err_not_found": 0, "wa": 0, "ipstr": 0, "ip2str": 0, "static": 0, "if_str": 0, "ap": 0, "eth": 0, "max": 0, "ip_protocol_str": 0, "v4": 0, "v6": 0, "mdns_print_result": 0, "r": 0, "mdns_ip_addr_t": 0, "int": 0, "i": 0, "1": 0, "t": 0, "while": 0, "tcpip_if": 0, "ip_protocol": 0, "ptr": 0, "srv": 0, "txt_count": 0, "kei": 0, "valu": 0, "ipaddr_type_v6": 0, "aaaa": 0, "ipv6str": 0, "ipv62str": 0, "u_addr": 0, "ip6": 0, "els": 0, "ip4": 0, "next": 0, "find_mdns_servic": 0, "service_nam": 0, "esp_log": 0, "tag": 0, "mdns_query_ptr": 0, "3000": 0, "20": 0, "esp_logw": 0, "No": 0, "mdns_query_results_fre": 0, "abov": 0, "my_app_some_method": 0, "search": 0, "http": 0, "_smb": 0, "share": 0, "_afpovertcp": 0, "_nf": 0, "nf": 0, "_ftp": 0, "ftp": 0, "printer": 0, "_printer": 0, "_ipp": 0, "creat": 0, "task": 0, "low": 0, "prioriti": 0, "config_mdns_task_prior": 0, "config_freertos_unicor": 0, "enabel": 0, "pin": 0, "cpu0": 0, "config_mdns_task_affin": 0, "pleas": 0, "check": 0, "maxim": 0, "more": 0, "detail": 0, "stack": 0, "size": 0, "configur": 0, "config_mdns_task_stack_s": 0, "scanner": 0, "includ": 0, "h": 0, "given": 0, "esp_ok": 0, "success": 0, "esp_err_invalid_st": 0, "when": 0, "regist": 0, "event": 0, "handler": 0, "esp_err_no_mem": 0, "memori": 0, "error": 0, "esp_fail": 0, "mdns_free": 0, "stop": 0, "you": 0, "want": 0, "paramet": 0, "esp_err_invalid_arg": 0, "mdns_delegate_hostname_add": 0, "address_list": 0, "deleg": 0, "repli": 0, "thi": 0, "The": 0, "mdns_delegate_hostname_remov": 0, "remov": 0, "all": 0, "also": 0, "bool": 0, "mdns_hostname_exist": 0, "whether": 0, "ha": 0, "been": 0, "true": 0, "fals": 0, "uint16_t": 0, "size_t": 0, "num_item": 0, "length": 0, "item": 0, "automat": 0, "decid": 0, "strlen": 0, "global": 0, "mdns_multiple_inst": 0, "config": 0, "option": 0, "need": 0, "enabl": 0, "multipl": 0, "same": 0, "etc": 0, "eg": 0, "other": 0, "2": 0, "number": 0, "mdns_service_add_for_host": 0, "mdns_service_exist": 0, "correspond": 0, "mdns_service_exists_with_inst": 0, "mdns_service_remov": 0, "mdns_service_remove_for_host": 0, "mdns_service_instance_name_set_for_host": 0, "instance_old": 0, "origin": 0, "mdns_service_port_set_for_host": 0, "uint8_t": 0, "mdns_service_txt_set_for_host": 0, "mdns_service_txt_item_set": 0, "record": 0, "updat": 0, "new": 0, "mdns_service_txt_item_set_with_explicit_value_len": 0, "value_len": 0, "mdns_service_txt_item_set_for_host": 0, "mdns_service_txt_item_set_for_host_with_explicit_value_len": 0, "mdns_service_txt_item_remov": 0, "mdns_service_txt_item_remove_for_host": 0, "mdns_service_subtype_add_for_host": 0, "subtyp": 0, "find": 0, "first": 0, "mdns_service_remove_al": 0, "mdns_query_async_delet": 0, "mdns_search_once_t": 0, "delet": 0, "finish": 0, "onli": 0, "after": 0, "end": 0, "pointer": 0, "mdns_query_async_get_result": 0, "uint32_t": 0, "timeout": 0, "num_result": 0, "get": 0, "output": 0, "via": 0, "onc": 0, "although": 0, "have": 0, "freed": 0, "manual": 0, "time": 0, "millisecond": 0, "wait": 0, "answer": 0, "actual": 0, "ignor": 0, "over": 0, "mdns_query_async_new": 0, "max_result": 0, "mdns_query_notify_t": 0, "notifi": 0, "asynchronous": 0, "test": 0, "progress": 0, "mdns_type_": 0, "dure": 0, "which": 0, "activ": 0, "maximum": 0, "collect": 0, "notif": 0, "readi": 0, "mdns_search_once_": 0, "successfulli": 0, "otherwis": 0, "mdns_query_gener": 0, "mdns_query_transmission_type_t": 0, "transmission_typ": 0, "gener": 0, "follow": 0, "deriv": 0, "one": 0, "either": 0, "unicast": 0, "below": 0, "mdns_queri": 0, "send": 0, "mdns_query_srv": 0, "mdns_query_txt": 0, "esp_ip4_addr_t": 0, "look": 0, "mdns_register_netif": 0, "esp_netif_t": 0, "esp_netif": 0, "preconfigur": 0, "ani": 0, "standard": 0, "wifi": 0, "ethernet": 0, "driver": 0, "kind": 0, "esp": 0, "netif": 0, "alreadi": 0, "enough": 0, "see": 0, "config_mdns_max_interfac": 0, "mdns_unregister_netif": 0, "unregist": 0, "mdns_netif_act": 0, "mdns_event_actions_t": 0, "event_act": 0, "desir": 0, "state": 0, "action": 0, "disabl": 0, "announc": 0, "packet": 0, "probe": 0, "conflict": 0, "bye": 0, "specifi": 0, "specif": 0, "could": 0, "connect": 0, "them": 0, "disconnect": 0, "ipv4": 0, "basic": 0, "text": 0, "public": 0, "member": 0, "mdns_ip_addr_": 0, "esp_ip_addr_t": 0, "last": 0, "mdns_result_": 0, "ttl": 0, "live": 0, "mdns_ip_protocol_t": 0, "srevic": 0, "txt_value_len": 0, "len": 0, "mdns_type_a": 0, "mdns_type_ptr": 0, "mdns_type_txt": 0, "mdns_type_aaaa": 0, "mdns_type_srv": 0, "mdns_type_opt": 0, "mdns_type_nsec": 0, "mdns_type_ani": 0, "typedef": 0, "asynchron": 0, "handl": 0, "enum": 0, "mdns_event_enable_ip4": 0, "mdns_event_enable_ip6": 0, "mdns_event_announce_ip4": 0, "mdns_event_announce_ip6": 0, "mdns_event_disable_ip4": 0, "mdns_event_disable_ip6": 0, "mdns_ip_protocol_v4": 0, "mdns_ip_protocol_v6": 0, "mdns_ip_protocol_max": 0, "explicitli": 0, "mdns_query_unicast": 0, "mdns_query_multicast": 0}, "objects": {"": [[0, 0, 1, "c.MDNS_TYPE_A", "MDNS_TYPE_A"], [0, 0, 1, "c.MDNS_TYPE_AAAA", "MDNS_TYPE_AAAA"], [0, 0, 1, "c.MDNS_TYPE_ANY", "MDNS_TYPE_ANY"], [0, 0, 1, "c.MDNS_TYPE_NSEC", "MDNS_TYPE_NSEC"], [0, 0, 1, "c.MDNS_TYPE_OPT", "MDNS_TYPE_OPT"], [0, 0, 1, "c.MDNS_TYPE_PTR", "MDNS_TYPE_PTR"], [0, 0, 1, "c.MDNS_TYPE_SRV", "MDNS_TYPE_SRV"], [0, 0, 1, "c.MDNS_TYPE_TXT", "MDNS_TYPE_TXT"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "MDNS_EVENT_ENABLE_IP6"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "MDNS_IP_PROTOCOL_V6"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::address_list"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::hostname"], [0, 2, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove"], [0, 3, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove::hostname"], [0, 4, 1, "_CPPv420mdns_event_actions_t", "mdns_event_actions_t"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"], [0, 2, 1, "_CPPv49mdns_freev", "mdns_free"], [0, 2, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists"], [0, 3, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists::hostname"], [0, 2, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set"], [0, 3, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set::hostname"], [0, 2, 1, "_CPPv49mdns_initv", "mdns_init"], [0, 2, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set"], [0, 3, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set::instance_name"], [0, 5, 1, "_CPPv414mdns_ip_addr_s", "mdns_ip_addr_s"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4addrE", "mdns_ip_addr_s::addr"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4nextE", "mdns_ip_addr_s::next"], [0, 7, 1, "_CPPv414mdns_ip_addr_t", "mdns_ip_addr_t"], [0, 4, 1, "_CPPv418mdns_ip_protocol_t", "mdns_ip_protocol_t"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"], [0, 2, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::esp_netif"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::event_action"], [0, 2, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::max_results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::name"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::proto"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::service_type"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::timeout"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::type"], [0, 2, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::addr"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::host_name"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::timeout"], [0, 2, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete"], [0, 3, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete::search"], [0, 2, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::num_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::search"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::timeout"], [0, 2, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::max_results"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::name"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::notifier"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::proto"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::service_type"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::timeout"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::type"], [0, 2, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::max_results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::name"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::proto"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::service_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::timeout"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::transmission_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::type"], [0, 7, 1, "_CPPv419mdns_query_notify_t", "mdns_query_notify_t"], [0, 2, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::max_results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::proto"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::service_type"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::timeout"], [0, 2, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free"], [0, 3, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free::results"], [0, 2, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::instance_name"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::proto"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::result"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::service_type"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::timeout"], [0, 4, 1, "_CPPv430mdns_query_transmission_type_t", "mdns_query_transmission_type_t"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::instance_name"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::proto"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::result"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::service_type"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::timeout"], [0, 2, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif"], [0, 3, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif::esp_netif"], [0, 5, 1, "_CPPv413mdns_result_s", "mdns_result_s"], [0, 6, 1, "_CPPv4N13mdns_result_s4addrE", "mdns_result_s::addr"], [0, 6, 1, "_CPPv4N13mdns_result_s9esp_netifE", "mdns_result_s::esp_netif"], [0, 6, 1, "_CPPv4N13mdns_result_s8hostnameE", "mdns_result_s::hostname"], [0, 6, 1, "_CPPv4N13mdns_result_s13instance_nameE", "mdns_result_s::instance_name"], [0, 6, 1, "_CPPv4N13mdns_result_s11ip_protocolE", "mdns_result_s::ip_protocol"], [0, 6, 1, "_CPPv4N13mdns_result_s4nextE", "mdns_result_s::next"], [0, 6, 1, "_CPPv4N13mdns_result_s4portE", "mdns_result_s::port"], [0, 6, 1, "_CPPv4N13mdns_result_s5protoE", "mdns_result_s::proto"], [0, 6, 1, "_CPPv4N13mdns_result_s12service_typeE", "mdns_result_s::service_type"], [0, 6, 1, "_CPPv4N13mdns_result_s3ttlE", "mdns_result_s::ttl"], [0, 6, 1, "_CPPv4N13mdns_result_s3txtE", "mdns_result_s::txt"], [0, 6, 1, "_CPPv4N13mdns_result_s9txt_countE", "mdns_result_s::txt_count"], [0, 6, 1, "_CPPv4N13mdns_result_s13txt_value_lenE", "mdns_result_s::txt_value_len"], [0, 7, 1, "_CPPv413mdns_result_t", "mdns_result_t"], [0, 7, 1, "_CPPv418mdns_search_once_t", "mdns_search_once_t"], [0, 2, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::instance_name"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::num_items"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::port"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::proto"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::service_type"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::txt"], [0, 2, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::hostname"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::instance_name"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::num_items"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::port"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::proto"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::service_type"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::txt"], [0, 2, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::hostname"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::proto"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::service_type"], [0, 2, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::hostname"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::proto"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::service_type"], [0, 2, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::instance_name"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::proto"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::service_type"], [0, 2, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::hostname"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_name"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_old"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::proto"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::service_type"], [0, 2, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::port"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::proto"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::service_type"], [0, 2, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::hostname"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::instance"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::port"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::proto"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::service_type"], [0, 2, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::proto"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::service_type"], [0, 2, 1, "_CPPv423mdns_service_remove_allv", "mdns_service_remove_all"], [0, 2, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::hostname"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::instance"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::proto"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::service_type"], [0, 2, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::hostname"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::instance_name"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::proto"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::service_type"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::subtype"], [0, 2, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::key"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::proto"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::service_type"], [0, 2, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::hostname"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::instance"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::key"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::proto"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::service_type"], [0, 2, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::key"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::proto"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::service_type"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::value"], [0, 2, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::hostname"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::instance"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::key"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::proto"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::service_type"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::value"], [0, 2, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::key"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::key"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::num_items"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::proto"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::service_type"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::txt"], [0, 2, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::hostname"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::instance"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::num_items"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::proto"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::service_type"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::txt"], [0, 5, 1, "_CPPv415mdns_txt_item_t", "mdns_txt_item_t"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t3keyE", "mdns_txt_item_t::key"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t5valueE", "mdns_txt_item_t::value"], [0, 2, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif"], [0, 3, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif::esp_netif"]]}, "objtypes": {"0": "c:macro", "1": "cpp:enumerator", "2": "cpp:function", "3": "cpp:functionParam", "4": "cpp:enum", "5": "cpp:class", "6": "cpp:member", "7": "cpp:type"}, "objnames": {"0": ["c", "macro", "C macro"], "1": ["cpp", "enumerator", "C++ enumerator"], "2": ["cpp", "function", "C++ function"], "3": ["cpp", "functionParam", "C++ function parameter"], "4": ["cpp", "enum", "C++ enum"], "5": ["cpp", "class", "C++ class"], "6": ["cpp", "member", "C++ member"], "7": ["cpp", "type", "C++ type"]}, "titleterms": {"mdn": 0, "servic": 0, "overview": 0, "properti": 0, "queri": 0, "perform": 0, "optim": 0, "execut": 0, "speed": 0, "minim": 0, "ram": 0, "usag": 0, "applic": 0, "exampl": 0, "api": 0, "refer": 0, "header": 0, "file": 0, "function": 0, "structur": 0, "macro": 0, "type": 0, "definit": 0, "enumer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/mdns/zh_CN/.buildinfo b/mdns/zh_CN/.buildinfo index 149bdd73d..6df6e2bf2 100644 --- a/mdns/zh_CN/.buildinfo +++ b/mdns/zh_CN/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: a9d192708276614f80be36418197a8fa +config: f57e6e8f8c2a3b064bd70b045ded8f03 tags: 549b3d6d0415232fb7e35403b330ff49 diff --git a/mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js b/mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..8549469dc --- /dev/null +++ b/mdns/zh_CN/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * 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) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/mdns/zh_CN/_static/basic.css b/mdns/zh_CN/_static/basic.css index bf18350b6..088967717 100644 --- a/mdns/zh_CN/_static/basic.css +++ b/mdns/zh_CN/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,12 +324,16 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; @@ -379,6 +373,9 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, + div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +383,9 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, + div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +428,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +611,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +629,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/mdns/zh_CN/_static/doctools.js b/mdns/zh_CN/_static/doctools.js index e1bfd708b..c3db08d1c 100644 --- a/mdns/zh_CN/_static/doctools.js +++ b/mdns/zh_CN/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * 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) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); } } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/mdns/zh_CN/_static/documentation_options.js b/mdns/zh_CN/_static/documentation_options.js index aacdc454f..905a8fb76 100644 --- a/mdns/zh_CN/_static/documentation_options.js +++ b/mdns/zh_CN/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: 'latest', - LANGUAGE: 'zh_CN', + LANGUAGE: 'zh-CN', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/mdns/zh_CN/_static/jquery-3.5.1.js b/mdns/zh_CN/_static/jquery-3.6.0.js similarity index 98% rename from mdns/zh_CN/_static/jquery-3.5.1.js rename to mdns/zh_CN/_static/jquery-3.6.0.js index 50937333b..fc6c299b7 100644 --- a/mdns/zh_CN/_static/jquery-3.5.1.js +++ b/mdns/zh_CN/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/mdns/zh_CN/_static/jquery.js b/mdns/zh_CN/_static/jquery.js index b0614034a..c4c6022f2 100644 --- a/mdns/zh_CN/_static/jquery.js +++ b/mdns/zh_CN/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, // Used when the priority is not in the mapping. objPrioDefault: 0, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings } /** * Search Module */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - 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."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); }, - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ - performSearch : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

      ' + _('Searching') + '

      ').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

       

      ').appendTo(this.out); - this.output = $('
      diff --git a/mdns/zh_CN/index.html b/mdns/zh_CN/index.html index 1c83bc710..4eae8cd76 100644 --- a/mdns/zh_CN/index.html +++ b/mdns/zh_CN/index.html @@ -16,6 +16,7 @@ + @@ -111,7 +112,7 @@
    • »
    • mDNS 服务
    • - 在 GitHub 上修改 + 在 GitHub 上修改

    • @@ -120,14 +121,14 @@
      -

      mDNS 服务

      +

      mDNS 服务

      [English]

      -

      概述

      +

      概述

      mDNS 是一种组播 UDP 服务,用来提供本地网络服务和主机发现。

      绝大多数的操作系统默认都会安装 mDNS 服务,或者提供单独的安装包。Mac OS 默认会安装名为 Bonjour 的服务(该服务基于 mDNS),此外 Apple 还发布了适用于 Windows 系统的安装程序,可以在 官方支持 找到。在 Linux 上,mDNS 服务由 avahi 提供,通常也会被默认安装。

      -

      mDNS 属性

      +

      mDNS 属性

      • hostname:设备会去响应的主机名,如果没有设置,会根据设备的网络接口名定义 hostname 。例如,my-esp32 会被解析为 my-esp32.local

      • @@ -153,7 +154,7 @@
      -

      mDNS 服务

      +

      mDNS 服务

      mDNS 可以广播设备能够提供的网络服务的相关信息,每个服务会由以下属性构成。

        @@ -191,7 +192,7 @@
      -

      mDNS 查询

      +

      mDNS 查询

      mDNS 提供查询服务和解析主机 IP/IPv6 地址的方法。

      服务查询的结果会作为 mdns_result_t 类型对象的链表返回。

      解析主机 IP 地址的示例方法:

      @@ -294,19 +295,19 @@
      -

      应用示例

      -

      有关 mDNS 服务器和查询器的应用示例请参考

      +

      应用示例

      +

      有关 mDNS 服务器和查询器的应用示例请参考

      -

      API 参考

      +

      API 参考

      -

      Header File

      +

      Header File

      -

      Functions

      +

      Functions

      esp_err_t mdns_init(void)
      @@ -1249,7 +1250,7 @@
      -

      Structures

      +

      Structures

      struct mdns_txt_item_t
      @@ -1381,7 +1382,7 @@
      -

      Macros

      +

      Macros

      MDNS_TYPE_A
      @@ -1424,7 +1425,7 @@
      -

      Type Definitions

      +

      Type Definitions

      typedef struct mdns_search_once_s mdns_search_once_t
      @@ -1450,7 +1451,7 @@
      -

      Enumerations

      +

      Enumerations

      enum mdns_event_actions_t
      diff --git a/mdns/zh_CN/search.html b/mdns/zh_CN/search.html index 88d0ff0f7..9c39a1819 100644 --- a/mdns/zh_CN/search.html +++ b/mdns/zh_CN/search.html @@ -16,6 +16,7 @@ + diff --git a/mdns/zh_CN/searchindex.js b/mdns/zh_CN/searchindex.js index e9a3835fc..f525ff8c2 100644 --- a/mdns/zh_CN/searchindex.js +++ b/mdns/zh_CN/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{"":[[0,0,1,"c.MDNS_TYPE_A","MDNS_TYPE_A"],[0,0,1,"c.MDNS_TYPE_AAAA","MDNS_TYPE_AAAA"],[0,0,1,"c.MDNS_TYPE_ANY","MDNS_TYPE_ANY"],[0,0,1,"c.MDNS_TYPE_NSEC","MDNS_TYPE_NSEC"],[0,0,1,"c.MDNS_TYPE_OPT","MDNS_TYPE_OPT"],[0,0,1,"c.MDNS_TYPE_PTR","MDNS_TYPE_PTR"],[0,0,1,"c.MDNS_TYPE_SRV","MDNS_TYPE_SRV"],[0,0,1,"c.MDNS_TYPE_TXT","MDNS_TYPE_TXT"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","MDNS_EVENT_ENABLE_IP6"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","MDNS_IP_PROTOCOL_V6"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::address_list"],[0,3,1,"_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t","mdns_delegate_hostname_add::hostname"],[0,2,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove"],[0,3,1,"_CPPv429mdns_delegate_hostname_removePKc","mdns_delegate_hostname_remove::hostname"],[0,4,1,"_CPPv420mdns_event_actions_t","mdns_event_actions_t"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E","mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"],[0,1,1,"_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E","mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"],[0,2,1,"_CPPv49mdns_freev","mdns_free"],[0,2,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists"],[0,3,1,"_CPPv420mdns_hostname_existsPKc","mdns_hostname_exists::hostname"],[0,2,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set"],[0,3,1,"_CPPv417mdns_hostname_setPKc","mdns_hostname_set::hostname"],[0,2,1,"_CPPv49mdns_initv","mdns_init"],[0,2,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set"],[0,3,1,"_CPPv422mdns_instance_name_setPKc","mdns_instance_name_set::instance_name"],[0,5,1,"_CPPv414mdns_ip_addr_s","mdns_ip_addr_s"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4addrE","mdns_ip_addr_s::addr"],[0,6,1,"_CPPv4N14mdns_ip_addr_s4nextE","mdns_ip_addr_s::next"],[0,7,1,"_CPPv414mdns_ip_addr_t","mdns_ip_addr_t"],[0,4,1,"_CPPv418mdns_ip_protocol_t","mdns_ip_protocol_t"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"],[0,1,1,"_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E","mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"],[0,2,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::esp_netif"],[0,3,1,"_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t","mdns_netif_action::event_action"],[0,2,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::max_results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::name"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::proto"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::results"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::service_type"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::timeout"],[0,3,1,"_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t","mdns_query::type"],[0,2,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::addr"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::host_name"],[0,3,1,"_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t","mdns_query_a::timeout"],[0,2,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete"],[0,3,1,"_CPPv423mdns_query_async_deleteP18mdns_search_once_t","mdns_query_async_delete::search"],[0,2,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::num_results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::results"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::search"],[0,3,1,"_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t","mdns_query_async_get_results::timeout"],[0,2,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::max_results"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::name"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::notifier"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::proto"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::service_type"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::timeout"],[0,3,1,"_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t","mdns_query_async_new::type"],[0,2,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::max_results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::name"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::proto"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::results"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::service_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::timeout"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::transmission_type"],[0,3,1,"_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t","mdns_query_generic::type"],[0,7,1,"_CPPv419mdns_query_notify_t","mdns_query_notify_t"],[0,2,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::max_results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::proto"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::results"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::service_type"],[0,3,1,"_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t","mdns_query_ptr::timeout"],[0,2,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free"],[0,3,1,"_CPPv423mdns_query_results_freeP13mdns_result_t","mdns_query_results_free::results"],[0,2,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::instance_name"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::proto"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::result"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::service_type"],[0,3,1,"_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_srv::timeout"],[0,4,1,"_CPPv430mdns_query_transmission_type_t","mdns_query_transmission_type_t"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE","mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"],[0,1,1,"_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE","mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"],[0,2,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::instance_name"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::proto"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::result"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::service_type"],[0,3,1,"_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t","mdns_query_txt::timeout"],[0,2,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif"],[0,3,1,"_CPPv419mdns_register_netifP11esp_netif_t","mdns_register_netif::esp_netif"],[0,5,1,"_CPPv413mdns_result_s","mdns_result_s"],[0,6,1,"_CPPv4N13mdns_result_s4addrE","mdns_result_s::addr"],[0,6,1,"_CPPv4N13mdns_result_s9esp_netifE","mdns_result_s::esp_netif"],[0,6,1,"_CPPv4N13mdns_result_s8hostnameE","mdns_result_s::hostname"],[0,6,1,"_CPPv4N13mdns_result_s13instance_nameE","mdns_result_s::instance_name"],[0,6,1,"_CPPv4N13mdns_result_s11ip_protocolE","mdns_result_s::ip_protocol"],[0,6,1,"_CPPv4N13mdns_result_s4nextE","mdns_result_s::next"],[0,6,1,"_CPPv4N13mdns_result_s4portE","mdns_result_s::port"],[0,6,1,"_CPPv4N13mdns_result_s5protoE","mdns_result_s::proto"],[0,6,1,"_CPPv4N13mdns_result_s12service_typeE","mdns_result_s::service_type"],[0,6,1,"_CPPv4N13mdns_result_s3ttlE","mdns_result_s::ttl"],[0,6,1,"_CPPv4N13mdns_result_s3txtE","mdns_result_s::txt"],[0,6,1,"_CPPv4N13mdns_result_s9txt_countE","mdns_result_s::txt_count"],[0,6,1,"_CPPv4N13mdns_result_s13txt_value_lenE","mdns_result_s::txt_value_len"],[0,7,1,"_CPPv413mdns_result_t","mdns_result_t"],[0,7,1,"_CPPv418mdns_search_once_t","mdns_search_once_t"],[0,2,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::instance_name"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::num_items"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::port"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::proto"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::service_type"],[0,3,1,"_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add::txt"],[0,2,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::hostname"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::instance_name"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::num_items"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::port"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::proto"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::service_type"],[0,3,1,"_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t","mdns_service_add_for_host::txt"],[0,2,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::hostname"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::proto"],[0,3,1,"_CPPv419mdns_service_existsPKcPKcPKc","mdns_service_exists::service_type"],[0,2,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::hostname"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::instance"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::proto"],[0,3,1,"_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc","mdns_service_exists_with_instance::service_type"],[0,2,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::instance_name"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::proto"],[0,3,1,"_CPPv430mdns_service_instance_name_setPKcPKcPKc","mdns_service_instance_name_set::service_type"],[0,2,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::hostname"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_name"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::instance_old"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::proto"],[0,3,1,"_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc","mdns_service_instance_name_set_for_host::service_type"],[0,2,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::port"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::proto"],[0,3,1,"_CPPv421mdns_service_port_setPKcPKc8uint16_t","mdns_service_port_set::service_type"],[0,2,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::hostname"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::instance"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::port"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::proto"],[0,3,1,"_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t","mdns_service_port_set_for_host::service_type"],[0,2,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::proto"],[0,3,1,"_CPPv419mdns_service_removePKcPKc","mdns_service_remove::service_type"],[0,2,1,"_CPPv423mdns_service_remove_allv","mdns_service_remove_all"],[0,2,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::hostname"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::instance"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::proto"],[0,3,1,"_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc","mdns_service_remove_for_host::service_type"],[0,2,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::hostname"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::instance_name"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::proto"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::service_type"],[0,3,1,"_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc","mdns_service_subtype_add_for_host::subtype"],[0,2,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::key"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::proto"],[0,3,1,"_CPPv428mdns_service_txt_item_removePKcPKcPKc","mdns_service_txt_item_remove::service_type"],[0,2,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::hostname"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::instance"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::key"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::proto"],[0,3,1,"_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc","mdns_service_txt_item_remove_for_host::service_type"],[0,2,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::key"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::proto"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::service_type"],[0,3,1,"_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc","mdns_service_txt_item_set::value"],[0,2,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::hostname"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::instance"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::key"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::proto"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::service_type"],[0,3,1,"_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc","mdns_service_txt_item_set_for_host::value"],[0,2,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::key"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value"],[0,3,1,"_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"],[0,2,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::key"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::proto"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::service_type"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value"],[0,3,1,"_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t","mdns_service_txt_item_set_with_explicit_value_len::value_len"],[0,2,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::num_items"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::proto"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::service_type"],[0,3,1,"_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set::txt"],[0,2,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::hostname"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::instance"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::num_items"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::proto"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::service_type"],[0,3,1,"_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t","mdns_service_txt_set_for_host::txt"],[0,5,1,"_CPPv415mdns_txt_item_t","mdns_txt_item_t"],[0,6,1,"_CPPv4N15mdns_txt_item_t3keyE","mdns_txt_item_t::key"],[0,6,1,"_CPPv4N15mdns_txt_item_t5valueE","mdns_txt_item_t::value"],[0,2,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif"],[0,3,1,"_CPPv421mdns_unregister_netifP11esp_netif_t","mdns_unregister_netif::esp_netif"]]},objnames:{"0":["c","macro","C \u5b8f"],"1":["cpp","enumerator","C++ \u679a\u4e3e\u5b50"],"2":["cpp","function","C++ \u51fd\u6570"],"3":["cpp","functionParam","C++ function parameter"],"4":["cpp","enum","C++ \u679a\u4e3e"],"5":["cpp","class","C++ \u7c7b"],"6":["cpp","member","C++ \u6210\u5458"],"7":["cpp","type","C++ \u7c7b\u578b"]},objtypes:{"0":"c:macro","1":"cpp:enumerator","2":"cpp:function","3":"cpp:functionParam","4":"cpp:enum","5":"cpp:class","6":"cpp:member","7":"cpp:type"},terms:{"1234":0,"20":0,"2000":0,"3000":0,"3232":0,"4321":0,"80":0,"char":0,"const":0,"default":0,"enum":0,"for":0,"if":0,"in":0,"int":0,"new":0,"null":0,"public":0,"return":0,"static":0,"true":0,"var":0,"void":0,"while":0,"with":0,_afpovertcp:0,_arduino:0,_ftp:0,_http:0,_ipp:0,_myservic:0,_nf:0,_printer:0,_smb:0,_tcp:0,_udp:0,aaaa:0,action:0,activ:0,actual:0,add:0,add_mdns_servic:0,added:0,adding:0,addr:0,address:0,address_list:0,advertis:0,afp:0,after:0,all:0,alreadi:0,also:0,although:0,and:0,ani:0,announc:0,answer:0,ap:0,appl:0,are:0,arrai:0,as:0,asynchron:0,asynchronous:0,at:0,automat:0,avahi:0,avail:0,basic:0,be:0,been:0,befor:0,below:0,board:0,bonjour:0,bool:0,by:0,bye:0,call:0,can:0,chang:0,check:0,collect:0,config:0,config_mdns_max_interfac:0,conflict:0,connect:0,correspond:0,could:0,custom:0,data:0,decid:0,default_inst:0,defin:0,deleg:0,delet:0,deriv:0,desir:0,disabl:0,disconnect:0,driver:0,dure:0,each:0,eg:0,either:0,els:0,enabl:0,end:0,english:0,enough:0,err:0,error:0,esp32:0,esp:0,esp_err_invalid_arg:0,esp_err_invalid_st:0,esp_err_no_mem:0,esp_err_not_found:0,esp_err_t:0,esp_fail:0,esp_ip4_addr_t:0,esp_ip_addr_t:0,esp_log:0,esp_logw:0,esp_netif:0,esp_netif_t:0,esp_ok:0,etc:0,eth:0,ethernet:0,event:0,event_act:0,explicitli:0,fail:0,fals:0,find:0,find_mdns_servic:0,finish:0,first:0,follow:0,found:0,free:0,freed:0,from:0,ftp:0,gener:0,get:0,given:0,global:0,handl:0,handler:0,has:0,have:0,host:0,host_nam:0,hostnam:0,http:0,if_str:0,ignor:0,includ:0,init:0,initi:0,instanc:0,instance_nam:0,instance_old:0,interfac:0,ip2str:0,ip4:0,ip4_addr:0,ip6:0,ip:0,ip_protocol:0,ip_protocol_str:0,ipaddr_type_v6:0,ipstr:0,ipv4:0,ipv62str:0,ipv6:0,ipv6str:0,is:0,item:0,jhon:0,kei:0,kind:0,last:0,len:0,length:0,link:0,linux:0,list:0,live:0,local:0,look:0,mac:0,manual:0,max:0,max_result:0,maximum:0,mdns_delegate_hostname_add:0,mdns_delegate_hostname_remov:0,mdns_event_actions_t:0,mdns_event_announce_ip4:0,mdns_event_announce_ip6:0,mdns_event_disable_ip4:0,mdns_event_disable_ip6:0,mdns_event_enable_ip4:0,mdns_event_enable_ip6:0,mdns_free:0,mdns_hostname_exist:0,mdns_hostname_set:0,mdns_init:0,mdns_instance_name_set:0,mdns_ip_addr_:0,mdns_ip_addr_t:0,mdns_ip_protocol_max:0,mdns_ip_protocol_t:0,mdns_ip_protocol_v4:0,mdns_ip_protocol_v6:0,mdns_multiple_inst:0,mdns_netif_act:0,mdns_print_result:0,mdns_queri:0,mdns_query_a:0,mdns_query_async_delet:0,mdns_query_async_get_result:0,mdns_query_async_new:0,mdns_query_gener:0,mdns_query_multicast:0,mdns_query_notify_t:0,mdns_query_ptr:0,mdns_query_results_fre:0,mdns_query_srv:0,mdns_query_transmission_type_t:0,mdns_query_txt:0,mdns_query_unicast:0,mdns_register_netif:0,mdns_result_:0,mdns_result_t:0,mdns_search_once_:0,mdns_search_once_t:0,mdns_service_add:0,mdns_service_add_for_host:0,mdns_service_exist:0,mdns_service_exists_with_inst:0,mdns_service_instance_name_set:0,mdns_service_instance_name_set_for_host:0,mdns_service_port_set:0,mdns_service_port_set_for_host:0,mdns_service_remov:0,mdns_service_remove_al:0,mdns_service_remove_for_host:0,mdns_service_subtype_add_for_host:0,mdns_service_txt_item_remov:0,mdns_service_txt_item_remove_for_host:0,mdns_service_txt_item_set:0,mdns_service_txt_item_set_for_host:0,mdns_service_txt_item_set_for_host_with_explicit_value_len:0,mdns_service_txt_item_set_with_explicit_value_len:0,mdns_service_txt_set:0,mdns_service_txt_set_for_host:0,mdns_txt_item_t:0,mdns_type_:0,mdns_type_a:0,mdns_type_aaaa:0,mdns_type_ani:0,mdns_type_nsec:0,mdns_type_opt:0,mdns_type_ptr:0,mdns_type_srv:0,mdns_type_txt:0,mdns_unregister_netif:0,member:0,memori:0,method:0,millisecond:0,multicast:0,multipl:0,must:0,my:0,my_app_some_method:0,name:0,need:0,netif:0,network:0,next:0,nfs:0,no:0,not:0,note:0,notif:0,notifi:0,num_item:0,num_result:0,number:0,object:0,of:0,on:0,onc:0,one:0,onli:0,option:0,or:0,origin:0,os:0,other:0,otherwis:0,output:0,over:0,packet:0,paramet:0,password:0,perform:0,pointer:0,port:0,preconfigur:0,printf:0,probe:0,progress:0,properti:0,proto:0,protocol:0,ptr:0,queri:0,readi:0,record:0,regist:0,remov:0,replac:0,repli:0,requir:0,resolv:0,resolve_mdns_host:0,result:0,run:0,same:0,search:0,see:0,send:0,server:0,servic:0,service_nam:0,service_typ:0,servicetxtdata:0,set:0,size_t:0,specif:0,specifi:0,srevic:0,srv:0,sta:0,standard:0,start:0,start_mdns_servic:0,state:0,stop:0,string:0,strlen:0,struct:0,subtyp:0,success:0,successfulli:0,such:0,tag:0,task:0,tcpip_if:0,test:0,text:0,that:0,the:0,them:0,thi:0,thing:0,time:0,timeout:0,to:0,transmission_typ:0,ttl:0,txt:0,txt_count:0,txt_value_len:0,typedef:0,u_addr:0,udp:0,uint16_t:0,uint32_t:0,uint8_t:0,unicast:0,unregist:0,updat:0,used:0,user:0,using:0,v4:0,v6:0,val:0,valu:0,value_len:0,via:0,wait:0,want:0,was:0,web:0,when:0,whether:0,which:0,wifi:0,will:0,window:0,you:0},titles:["mDNS \u670d\u52a1"],titleterms:{"function":0,api:0,definit:0,enumer:0,file:0,header:0,macro:0,mdn:0,structur:0,type:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index"], "filenames": ["index.rst"], "titles": ["mDNS \u670d\u52a1"], "terms": {"english": 0, "udp": 0, "mac": 0, "os": 0, "bonjour": 0, "appl": 0, "window": 0, "linux": 0, "avahi": 0, "hostnam": 0, "my": 0, "esp32": 0, "local": 0, "default_inst": 0, "jhon": 0, "thing": 0, "sta": 0, "void": 0, "start_mdns_servic": 0, "esp_err_t": 0, "err": 0, "mdns_init": 0, "if": 0, "printf": 0, "init": 0, "fail": 0, "return": 0, "mdns_hostname_set": 0, "mdns_instance_name_set": 0, "instance_nam": 0, "web": 0, "server": 0, "service_typ": 0, "proto": 0, "_tcp": 0, "_udp": 0, "port": 0, "txt": 0, "var": 0, "val": 0, "add_mdns_servic": 0, "mdns_service_add": 0, "null": 0, "_http": 0, "80": 0, "_arduino": 0, "3232": 0, "_myservic": 0, "1234": 0, "mdns_service_instance_name_set": 0, "mdns_txt_item_t": 0, "servicetxtdata": 0, "board": 0, "user": 0, "password": 0, "mdns_service_txt_set": 0, "mdns_service_port_set": 0, "4321": 0, "ip": 0, "ipv6": 0, "mdns_result_t": 0, "resolve_mdns_host": 0, "const": 0, "char": 0, "host_nam": 0, "queri": 0, "struct": 0, "ip4_addr": 0, "addr": 0, "mdns_query_a": 0, "2000": 0, "esp_err_not_found": 0, "host": 0, "was": 0, "not": 0, "found": 0, "ipstr": 0, "ip2str": 0, "static": 0, "if_str": 0, "ap": 0, "eth": 0, "max": 0, "ip_protocol_str": 0, "v4": 0, "v6": 0, "mdns_print_result": 0, "result": 0, "mdns_ip_addr_t": 0, "int": 0, "while": 0, "interfac": 0, "tcpip_if": 0, "ip_protocol": 0, "ptr": 0, "srv": 0, "txt_count": 0, "for": 0, "kei": 0, "valu": 0, "ipaddr_type_v6": 0, "aaaa": 0, "ipv6str": 0, "ipv62str": 0, "u_addr": 0, "ip6": 0, "els": 0, "ip4": 0, "next": 0, "find_mdns_servic": 0, "service_nam": 0, "esp_log": 0, "tag": 0, "mdns_query_ptr": 0, "3000": 0, "20": 0, "esp_logw": 0, "no": 0, "mdns_query_results_fre": 0, "my_app_some_method": 0, "http": 0, "_smb": 0, "_afpovertcp": 0, "afp": 0, "_nf": 0, "nfs": 0, "_ftp": 0, "ftp": 0, "_printer": 0, "_ipp": 0, "includ": 0, "initi": 0, "on": 0, "given": 0, "esp_ok": 0, "success": 0, "esp_err_invalid_st": 0, "when": 0, "to": 0, "regist": 0, "event": 0, "handler": 0, "esp_err_no_mem": 0, "memori": 0, "error": 0, "esp_fail": 0, "start": 0, "task": 0, "mdns_free": 0, "stop": 0, "and": 0, "free": 0, "set": 0, "the": 0, "requir": 0, "you": 0, "want": 0, "advertis": 0, "servic": 0, "esp_err_invalid_arg": 0, "paramet": 0, "mdns_delegate_hostname_add": 0, "address_list": 0, "add": 0, "address": 0, "be": 0, "deleg": 0, "will": 0, "repli": 0, "can": 0, "added": 0, "thi": 0, "list": 0, "of": 0, "is": 0, "run": 0, "mdns_delegate_hostname_remov": 0, "remov": 0, "all": 0, "also": 0, "bool": 0, "mdns_hostname_exist": 0, "whether": 0, "has": 0, "been": 0, "true": 0, "fals": 0, "default": 0, "instanc": 0, "name": 0, "uint16_t": 0, "size_t": 0, "num_item": 0, "length": 0, "item": 0, "automat": 0, "decid": 0, "by": 0, "strlen": 0, "global": 0, "or": 0, "used": 0, "note": 0, "that": 0, "mdns_multiple_inst": 0, "config": 0, "option": 0, "need": 0, "enabl": 0, "adding": 0, "multipl": 0, "with": 0, "same": 0, "etc": 0, "protocol": 0, "string": 0, "arrai": 0, "data": 0, "eg": 0, "other": 0, "number": 0, "in": 0, "mdns_service_add_for_host": 0, "mdns_service_exist": 0, "check": 0, "correspond": 0, "mdns_service_exists_with_inst": 0, "mdns_service_remov": 0, "from": 0, "mdns_service_remove_for_host": 0, "mdns_service_instance_name_set_for_host": 0, "instance_old": 0, "origin": 0, "mdns_service_port_set_for_host": 0, "uint8_t": 0, "replac": 0, "mdns_service_txt_set_for_host": 0, "mdns_service_txt_item_set": 0, "record": 0, "updat": 0, "new": 0, "mdns_service_txt_item_set_with_explicit_value_len": 0, "value_len": 0, "mdns_service_txt_item_set_for_host": 0, "mdns_service_txt_item_set_for_host_with_explicit_value_len": 0, "mdns_service_txt_item_remov": 0, "mdns_service_txt_item_remove_for_host": 0, "mdns_service_subtype_add_for_host": 0, "subtyp": 0, "find": 0, "first": 0, "mdns_service_remove_al": 0, "mdns_query_async_delet": 0, "mdns_search_once_t": 0, "search": 0, "delet": 0, "finish": 0, "call": 0, "onli": 0, "after": 0, "end": 0, "pointer": 0, "object": 0, "mdns_query_async_get_result": 0, "uint32_t": 0, "timeout": 0, "num_result": 0, "get": 0, "avail": 0, "as": 0, "output": 0, "via": 0, "onc": 0, "although": 0, "have": 0, "freed": 0, "manual": 0, "time": 0, "millisecond": 0, "wait": 0, "answer": 0, "actual": 0, "ignor": 0, "befor": 0, "at": 0, "over": 0, "mdns_query_async_new": 0, "max_result": 0, "mdns_query_notify_t": 0, "notifi": 0, "asynchronous": 0, "test": 0, "progress": 0, "mdns_type_": 0, "dure": 0, "which": 0, "activ": 0, "maximum": 0, "collect": 0, "notif": 0, "readi": 0, "mdns_search_once_": 0, "successfulli": 0, "otherwis": 0, "mdns_query_gener": 0, "mdns_query_transmission_type_t": 0, "transmission_typ": 0, "gener": 0, "follow": 0, "method": 0, "are": 0, "deriv": 0, "one": 0, "either": 0, "unicast": 0, "multicast": 0, "must": 0, "using": 0, "below": 0, "mdns_queri": 0, "send": 0, "link": 0, "mdns_query_srv": 0, "mdns_query_txt": 0, "esp_ip4_addr_t": 0, "look": 0, "mdns_register_netif": 0, "esp_netif_t": 0, "esp_netif": 0, "custom": 0, "preconfigur": 0, "ani": 0, "standard": 0, "wifi": 0, "ethernet": 0, "driver": 0, "kind": 0, "defin": 0, "esp": 0, "netif": 0, "alreadi": 0, "enough": 0, "see": 0, "config_mdns_max_interfac": 0, "mdns_unregister_netif": 0, "unregist": 0, "mdns_netif_act": 0, "mdns_event_actions_t": 0, "event_act": 0, "desir": 0, "state": 0, "perform": 0, "action": 0, "such": 0, "disabl": 0, "announc": 0, "packet": 0, "probe": 0, "resolv": 0, "conflict": 0, "bye": 0, "specifi": 0, "network": 0, "specif": 0, "could": 0, "connect": 0, "properti": 0, "chang": 0, "them": 0, "disconnect": 0, "ipv4": 0, "basic": 0, "text": 0, "public": 0, "member": 0, "mdns_ip_addr_": 0, "esp_ip_addr_t": 0, "last": 0, "mdns_result_": 0, "ttl": 0, "live": 0, "mdns_ip_protocol_t": 0, "srevic": 0, "txt_value_len": 0, "len": 0, "each": 0, "mdns_type_a": 0, "mdns_type_ptr": 0, "mdns_type_txt": 0, "mdns_type_aaaa": 0, "mdns_type_srv": 0, "mdns_type_opt": 0, "mdns_type_nsec": 0, "mdns_type_ani": 0, "typedef": 0, "asynchron": 0, "handl": 0, "enum": 0, "mdns_event_enable_ip4": 0, "mdns_event_enable_ip6": 0, "mdns_event_announce_ip4": 0, "mdns_event_announce_ip6": 0, "mdns_event_disable_ip4": 0, "mdns_event_disable_ip6": 0, "mdns_ip_protocol_v4": 0, "mdns_ip_protocol_v6": 0, "mdns_ip_protocol_max": 0, "explicitli": 0, "mdns_query_unicast": 0, "mdns_query_multicast": 0}, "objects": {"": [[0, 0, 1, "c.MDNS_TYPE_A", "MDNS_TYPE_A"], [0, 0, 1, "c.MDNS_TYPE_AAAA", "MDNS_TYPE_AAAA"], [0, 0, 1, "c.MDNS_TYPE_ANY", "MDNS_TYPE_ANY"], [0, 0, 1, "c.MDNS_TYPE_NSEC", "MDNS_TYPE_NSEC"], [0, 0, 1, "c.MDNS_TYPE_OPT", "MDNS_TYPE_OPT"], [0, 0, 1, "c.MDNS_TYPE_PTR", "MDNS_TYPE_PTR"], [0, 0, 1, "c.MDNS_TYPE_SRV", "MDNS_TYPE_SRV"], [0, 0, 1, "c.MDNS_TYPE_TXT", "MDNS_TYPE_TXT"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "MDNS_EVENT_ENABLE_IP6"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "MDNS_IP_PROTOCOL_V6"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::address_list"], [0, 3, 1, "_CPPv426mdns_delegate_hostname_addPKcPK14mdns_ip_addr_t", "mdns_delegate_hostname_add::hostname"], [0, 2, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove"], [0, 3, 1, "_CPPv429mdns_delegate_hostname_removePKc", "mdns_delegate_hostname_remove::hostname"], [0, 4, 1, "_CPPv420mdns_event_actions_t", "mdns_event_actions_t"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t23MDNS_EVENT_ANNOUNCE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ANNOUNCE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t22MDNS_EVENT_DISABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_DISABLE_IP6"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP4E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP4"], [0, 1, 1, "_CPPv4N20mdns_event_actions_t21MDNS_EVENT_ENABLE_IP6E", "mdns_event_actions_t::MDNS_EVENT_ENABLE_IP6"], [0, 2, 1, "_CPPv49mdns_freev", "mdns_free"], [0, 2, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists"], [0, 3, 1, "_CPPv420mdns_hostname_existsPKc", "mdns_hostname_exists::hostname"], [0, 2, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set"], [0, 3, 1, "_CPPv417mdns_hostname_setPKc", "mdns_hostname_set::hostname"], [0, 2, 1, "_CPPv49mdns_initv", "mdns_init"], [0, 2, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set"], [0, 3, 1, "_CPPv422mdns_instance_name_setPKc", "mdns_instance_name_set::instance_name"], [0, 5, 1, "_CPPv414mdns_ip_addr_s", "mdns_ip_addr_s"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4addrE", "mdns_ip_addr_s::addr"], [0, 6, 1, "_CPPv4N14mdns_ip_addr_s4nextE", "mdns_ip_addr_s::next"], [0, 7, 1, "_CPPv414mdns_ip_addr_t", "mdns_ip_addr_t"], [0, 4, 1, "_CPPv418mdns_ip_protocol_t", "mdns_ip_protocol_t"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t20MDNS_IP_PROTOCOL_MAXE", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_MAX"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V4E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V4"], [0, 1, 1, "_CPPv4N18mdns_ip_protocol_t19MDNS_IP_PROTOCOL_V6E", "mdns_ip_protocol_t::MDNS_IP_PROTOCOL_V6"], [0, 2, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::esp_netif"], [0, 3, 1, "_CPPv417mdns_netif_actionP11esp_netif_t20mdns_event_actions_t", "mdns_netif_action::event_action"], [0, 2, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::max_results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::name"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::proto"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::results"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::service_type"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::timeout"], [0, 3, 1, "_CPPv410mdns_queryPKcPKcPKc8uint16_t8uint32_t6size_tPP13mdns_result_t", "mdns_query::type"], [0, 2, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::addr"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::host_name"], [0, 3, 1, "_CPPv412mdns_query_aPKc8uint32_tP14esp_ip4_addr_t", "mdns_query_a::timeout"], [0, 2, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete"], [0, 3, 1, "_CPPv423mdns_query_async_deleteP18mdns_search_once_t", "mdns_query_async_delete::search"], [0, 2, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::num_results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::results"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::search"], [0, 3, 1, "_CPPv428mdns_query_async_get_resultsP18mdns_search_once_t8uint32_tPP13mdns_result_tP7uint8_t", "mdns_query_async_get_results::timeout"], [0, 2, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::max_results"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::name"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::notifier"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::proto"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::service_type"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::timeout"], [0, 3, 1, "_CPPv420mdns_query_async_newPKcPKcPKc8uint16_t8uint32_t6size_t19mdns_query_notify_t", "mdns_query_async_new::type"], [0, 2, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::max_results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::name"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::proto"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::results"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::service_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::timeout"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::transmission_type"], [0, 3, 1, "_CPPv418mdns_query_genericPKcPKcPKc8uint16_t30mdns_query_transmission_type_t8uint32_t6size_tPP13mdns_result_t", "mdns_query_generic::type"], [0, 7, 1, "_CPPv419mdns_query_notify_t", "mdns_query_notify_t"], [0, 2, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::max_results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::proto"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::results"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::service_type"], [0, 3, 1, "_CPPv414mdns_query_ptrPKcPKc8uint32_t6size_tPP13mdns_result_t", "mdns_query_ptr::timeout"], [0, 2, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free"], [0, 3, 1, "_CPPv423mdns_query_results_freeP13mdns_result_t", "mdns_query_results_free::results"], [0, 2, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::instance_name"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::proto"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::result"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::service_type"], [0, 3, 1, "_CPPv414mdns_query_srvPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_srv::timeout"], [0, 4, 1, "_CPPv430mdns_query_transmission_type_t", "mdns_query_transmission_type_t"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t20MDNS_QUERY_MULTICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_MULTICAST"], [0, 1, 1, "_CPPv4N30mdns_query_transmission_type_t18MDNS_QUERY_UNICASTE", "mdns_query_transmission_type_t::MDNS_QUERY_UNICAST"], [0, 2, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::instance_name"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::proto"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::result"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::service_type"], [0, 3, 1, "_CPPv414mdns_query_txtPKcPKcPKc8uint32_tPP13mdns_result_t", "mdns_query_txt::timeout"], [0, 2, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif"], [0, 3, 1, "_CPPv419mdns_register_netifP11esp_netif_t", "mdns_register_netif::esp_netif"], [0, 5, 1, "_CPPv413mdns_result_s", "mdns_result_s"], [0, 6, 1, "_CPPv4N13mdns_result_s4addrE", "mdns_result_s::addr"], [0, 6, 1, "_CPPv4N13mdns_result_s9esp_netifE", "mdns_result_s::esp_netif"], [0, 6, 1, "_CPPv4N13mdns_result_s8hostnameE", "mdns_result_s::hostname"], [0, 6, 1, "_CPPv4N13mdns_result_s13instance_nameE", "mdns_result_s::instance_name"], [0, 6, 1, "_CPPv4N13mdns_result_s11ip_protocolE", "mdns_result_s::ip_protocol"], [0, 6, 1, "_CPPv4N13mdns_result_s4nextE", "mdns_result_s::next"], [0, 6, 1, "_CPPv4N13mdns_result_s4portE", "mdns_result_s::port"], [0, 6, 1, "_CPPv4N13mdns_result_s5protoE", "mdns_result_s::proto"], [0, 6, 1, "_CPPv4N13mdns_result_s12service_typeE", "mdns_result_s::service_type"], [0, 6, 1, "_CPPv4N13mdns_result_s3ttlE", "mdns_result_s::ttl"], [0, 6, 1, "_CPPv4N13mdns_result_s3txtE", "mdns_result_s::txt"], [0, 6, 1, "_CPPv4N13mdns_result_s9txt_countE", "mdns_result_s::txt_count"], [0, 6, 1, "_CPPv4N13mdns_result_s13txt_value_lenE", "mdns_result_s::txt_value_len"], [0, 7, 1, "_CPPv413mdns_result_t", "mdns_result_t"], [0, 7, 1, "_CPPv418mdns_search_once_t", "mdns_search_once_t"], [0, 2, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::instance_name"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::num_items"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::port"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::proto"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::service_type"], [0, 3, 1, "_CPPv416mdns_service_addPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add::txt"], [0, 2, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::hostname"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::instance_name"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::num_items"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::port"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::proto"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::service_type"], [0, 3, 1, "_CPPv425mdns_service_add_for_hostPKcPKcPKcPKc8uint16_tA_15mdns_txt_item_t6size_t", "mdns_service_add_for_host::txt"], [0, 2, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::hostname"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::proto"], [0, 3, 1, "_CPPv419mdns_service_existsPKcPKcPKc", "mdns_service_exists::service_type"], [0, 2, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::hostname"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::instance"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::proto"], [0, 3, 1, "_CPPv433mdns_service_exists_with_instancePKcPKcPKcPKc", "mdns_service_exists_with_instance::service_type"], [0, 2, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::instance_name"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::proto"], [0, 3, 1, "_CPPv430mdns_service_instance_name_setPKcPKcPKc", "mdns_service_instance_name_set::service_type"], [0, 2, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::hostname"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_name"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::instance_old"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::proto"], [0, 3, 1, "_CPPv439mdns_service_instance_name_set_for_hostPKcPKcPKcPKcPKc", "mdns_service_instance_name_set_for_host::service_type"], [0, 2, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::port"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::proto"], [0, 3, 1, "_CPPv421mdns_service_port_setPKcPKc8uint16_t", "mdns_service_port_set::service_type"], [0, 2, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::hostname"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::instance"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::port"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::proto"], [0, 3, 1, "_CPPv430mdns_service_port_set_for_hostPKcPKcPKcPKc8uint16_t", "mdns_service_port_set_for_host::service_type"], [0, 2, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::proto"], [0, 3, 1, "_CPPv419mdns_service_removePKcPKc", "mdns_service_remove::service_type"], [0, 2, 1, "_CPPv423mdns_service_remove_allv", "mdns_service_remove_all"], [0, 2, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::hostname"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::instance"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::proto"], [0, 3, 1, "_CPPv428mdns_service_remove_for_hostPKcPKcPKcPKc", "mdns_service_remove_for_host::service_type"], [0, 2, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::hostname"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::instance_name"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::proto"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::service_type"], [0, 3, 1, "_CPPv433mdns_service_subtype_add_for_hostPKcPKcPKcPKcPKc", "mdns_service_subtype_add_for_host::subtype"], [0, 2, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::key"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::proto"], [0, 3, 1, "_CPPv428mdns_service_txt_item_removePKcPKcPKc", "mdns_service_txt_item_remove::service_type"], [0, 2, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::hostname"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::instance"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::key"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::proto"], [0, 3, 1, "_CPPv437mdns_service_txt_item_remove_for_hostPKcPKcPKcPKcPKc", "mdns_service_txt_item_remove_for_host::service_type"], [0, 2, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::key"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::proto"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::service_type"], [0, 3, 1, "_CPPv425mdns_service_txt_item_setPKcPKcPKcPKc", "mdns_service_txt_item_set::value"], [0, 2, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::hostname"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::instance"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::key"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::proto"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::service_type"], [0, 3, 1, "_CPPv434mdns_service_txt_item_set_for_hostPKcPKcPKcPKcPKcPKc", "mdns_service_txt_item_set_for_host::value"], [0, 2, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::hostname"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::instance"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::key"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value"], [0, 3, 1, "_CPPv458mdns_service_txt_item_set_for_host_with_explicit_value_lenPKcPKcPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_for_host_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::key"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::proto"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::service_type"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value"], [0, 3, 1, "_CPPv449mdns_service_txt_item_set_with_explicit_value_lenPKcPKcPKcPKc7uint8_t", "mdns_service_txt_item_set_with_explicit_value_len::value_len"], [0, 2, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::num_items"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::proto"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::service_type"], [0, 3, 1, "_CPPv420mdns_service_txt_setPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set::txt"], [0, 2, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::hostname"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::instance"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::num_items"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::proto"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::service_type"], [0, 3, 1, "_CPPv429mdns_service_txt_set_for_hostPKcPKcPKcPKcA_15mdns_txt_item_t7uint8_t", "mdns_service_txt_set_for_host::txt"], [0, 5, 1, "_CPPv415mdns_txt_item_t", "mdns_txt_item_t"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t3keyE", "mdns_txt_item_t::key"], [0, 6, 1, "_CPPv4N15mdns_txt_item_t5valueE", "mdns_txt_item_t::value"], [0, 2, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif"], [0, 3, 1, "_CPPv421mdns_unregister_netifP11esp_netif_t", "mdns_unregister_netif::esp_netif"]]}, "objtypes": {"0": "c:macro", "1": "cpp:enumerator", "2": "cpp:function", "3": "cpp:functionParam", "4": "cpp:enum", "5": "cpp:class", "6": "cpp:member", "7": "cpp:type"}, "objnames": {"0": ["c", "macro", "C \u5b8f"], "1": ["cpp", "enumerator", "C++ \u679a\u4e3e\u5b50"], "2": ["cpp", "function", "C++ \u51fd\u6570"], "3": ["cpp", "functionParam", "C++ function parameter"], "4": ["cpp", "enum", "C++ \u679a\u4e3e"], "5": ["cpp", "class", "C++ \u7c7b"], "6": ["cpp", "member", "C++ \u6210\u5458"], "7": ["cpp", "type", "C++ \u7c7b\u578b"]}, "titleterms": {"mdn": 0, "api": 0, "header": 0, "file": 0, "function": 0, "structur": 0, "macro": 0, "type": 0, "definit": 0, "enumer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 56}}) \ No newline at end of file