<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: src/UDPC.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
- <div class="headertitle">
-<div class="title">UDPC.h File Reference</div> </div>
+ <div class="headertitle"><div class="title">UDPC.h File Reference</div></div>
</div><!--header-->
<div class="contents">
</div>
<p><a href="UDPC_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Data identifying a peer via addr, port, and scope_id. <a href="structUDPC__ConnectionId.html#details">More...</a><br /></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="unionUDPC__Event_1_1Value.html">UDPC_Event::Value</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
-<tr class="memitem:a8ed92f1223b3f658536728f22d3b3827"><td class="memItemLeft" align="right" valign="top"><a id="a8ed92f1223b3f658536728f22d3b3827"></a>
-#define </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827">UDPC_PACKET_MAX_SIZE</a>   8192</td></tr>
+<tr class="memitem:a8ed92f1223b3f658536728f22d3b3827"><td class="memItemLeft" align="right" valign="top"><a id="a8ed92f1223b3f658536728f22d3b3827" name="a8ed92f1223b3f658536728f22d3b3827"></a>
+#define </td><td class="memItemRight" valign="bottom"><b>UDPC_PACKET_MAX_SIZE</b>   8192</td></tr>
<tr class="memdesc:a8ed92f1223b3f658536728f22d3b3827"><td class="mdescLeft"> </td><td class="mdescRight">The maximum size of a UDP packet. <br /></td></tr>
<tr class="separator:a8ed92f1223b3f658536728f22d3b3827"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a780462f48fb18ccb15545ad9d05c70df"><td class="memItemLeft" align="right" valign="top"><a id="a780462f48fb18ccb15545ad9d05c70df"></a>
+<tr class="memitem:a780462f48fb18ccb15545ad9d05c70df"><td class="memItemLeft" align="right" valign="top"><a id="a780462f48fb18ccb15545ad9d05c70df" name="a780462f48fb18ccb15545ad9d05c70df"></a>
#define </td><td class="memItemRight" valign="bottom"><b>UDPC_DEFAULT_PROTOCOL_ID</b>   1357924680</td></tr>
<tr class="separator:a780462f48fb18ccb15545ad9d05c70df"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
-<tr class="memitem:a6414a39d34be1f50a660ef89f01c800a"><td class="memItemLeft" align="right" valign="top"><a id="a6414a39d34be1f50a660ef89f01c800a"></a>
+<tr class="memitem:a6414a39d34be1f50a660ef89f01c800a"><td class="memItemLeft" align="right" valign="top"><a id="a6414a39d34be1f50a660ef89f01c800a" name="a6414a39d34be1f50a660ef89f01c800a"></a>
typedef struct UDPC_Context * </td><td class="memItemRight" valign="bottom"><b>UDPC_HContext</b></td></tr>
<tr class="separator:a6414a39d34be1f50a660ef89f01c800a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:acf09773dbd86360fc70149232bfd3e8e"><td class="memItemLeft" align="right" valign="top"><a id="acf09773dbd86360fc70149232bfd3e8e"></a>
+<tr class="memitem:acf09773dbd86360fc70149232bfd3e8e"><td class="memItemLeft" align="right" valign="top"><a id="acf09773dbd86360fc70149232bfd3e8e" name="acf09773dbd86360fc70149232bfd3e8e"></a>
typedef enum UDPC_EXPORT UDPC_LoggingType </td><td class="memItemRight" valign="bottom"><b>UDPC_LoggingType</b></td></tr>
<tr class="separator:acf09773dbd86360fc70149232bfd3e8e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a228cd7ddf56a4e76e216bc3b80e8bd4a"><td class="memItemLeft" align="right" valign="top">typedef enum UDPC_EXPORT <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a></td></tr>
<tr class="memdesc:a7b3215b65686670720f098eda2ca1eed"><td class="mdescLeft"> </td><td class="mdescRight">A struct containing information related to the type of event. <a href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">More...</a><br /></td></tr>
<tr class="separator:a7b3215b65686670720f098eda2ca1eed"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aea7e32ca9fdc04530f95c97459391e6d"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC_create_id</a> (UDPC_IPV6_ADDR_TYPE addr, uint16_t port)</td></tr>
<tr class="memdesc:aea7e32ca9fdc04530f95c97459391e6d"><td class="mdescLeft"> </td><td class="mdescRight">Creates an <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> with the given addr and port. <a href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">More...</a><br /></td></tr>
<tr class="memitem:a8b80d2df882f03aeee8a92bed7fb0131"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC_create_id_easy</a> (const char *addrString, uint16_t port)</td></tr>
<tr class="memdesc:a8b80d2df882f03aeee8a92bed7fb0131"><td class="mdescLeft"> </td><td class="mdescRight">Creates an <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> with the given addr string and port. <a href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">More...</a><br /></td></tr>
<tr class="separator:a8b80d2df882f03aeee8a92bed7fb0131"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a980a8258674d2445604499efc7c75462"><td class="memItemLeft" align="right" valign="top"><a id="a980a8258674d2445604499efc7c75462"></a>
+<tr class="memitem:a980a8258674d2445604499efc7c75462"><td class="memItemLeft" align="right" valign="top"><a id="a980a8258674d2445604499efc7c75462" name="a980a8258674d2445604499efc7c75462"></a>
UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><b>UDPC_create_id_hostname</b> (const char *hostname, uint16_t port)</td></tr>
<tr class="separator:a980a8258674d2445604499efc7c75462"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a89dee65fcd5b70d25abbf6d4a3ee59f2"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT UDPC_HContext </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC_init</a> (<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId, int isClient, int isUsingLibsodium)</td></tr>
<tr class="memitem:a4a555a011e95445ed4a2aa88deb17082"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT int </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC_has_connection</a> (UDPC_HContext ctx, <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId)</td></tr>
<tr class="memdesc:a4a555a011e95445ed4a2aa88deb17082"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a connection exists to the peer identified by the given <code>connectionId</code>. <a href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">More...</a><br /></td></tr>
<tr class="separator:a4a555a011e95445ed4a2aa88deb17082"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7fe3e502f4c6f86ce5b2cd1f303aa213"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213">UDPC_get_list_connected</a> (UDPC_HContext ctx, unsigned int *size)</td></tr>
-<tr class="memdesc:a7fe3e502f4c6f86ce5b2cd1f303aa213"><td class="mdescLeft"> </td><td class="mdescRight">Gets a dynamically allocated array of connected peers' identifiers. <a href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213">More...</a><br /></td></tr>
-<tr class="separator:a7fe3e502f4c6f86ce5b2cd1f303aa213"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6b4355331c9b2797af0c13ce16515547"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547">UDPC_get_list_connected</a> (UDPC_HContext ctx, unsigned int *size)</td></tr>
+<tr class="memdesc:a6b4355331c9b2797af0c13ce16515547"><td class="mdescLeft"> </td><td class="mdescRight">Gets a dynamically allocated array of connected peers' identifiers. <a href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547">More...</a><br /></td></tr>
+<tr class="separator:a6b4355331c9b2797af0c13ce16515547"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8880067a93211c257763c42264f6ceef"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT void </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC_free_list_connected</a> (<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> *list)</td></tr>
<tr class="memdesc:a8880067a93211c257763c42264f6ceef"><td class="mdescLeft"> </td><td class="mdescRight">Cleans up a dynamically allocated array of connected peers' identifiers. <a href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">More...</a><br /></td></tr>
<tr class="separator:a8880067a93211c257763c42264f6ceef"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8d0dbbd258e17844a2f9a0e277789581"><td class="memItemLeft" align="right" valign="top">UDPC_EXPORT int </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC_set_auth_policy</a> (UDPC_HContext ctx, int value)</td></tr>
<tr class="memdesc:a8d0dbbd258e17844a2f9a0e277789581"><td class="mdescLeft"> </td><td class="mdescRight">Sets how peers are handled regarding public key verification. <a href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">More...</a><br /></td></tr>
<tr class="separator:a8d0dbbd258e17844a2f9a0e277789581"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab858dbafe5755daded65ffa4b3e587ab"><td class="memItemLeft" align="right" valign="top"><a id="ab858dbafe5755daded65ffa4b3e587ab"></a>
+<tr class="memitem:a5a3c613a0d96a075ccddfba1e8900828"><td class="memItemLeft" align="right" valign="top"><a id="a5a3c613a0d96a075ccddfba1e8900828" name="a5a3c613a0d96a075ccddfba1e8900828"></a>
UDPC_EXPORT const char * </td><td class="memItemRight" valign="bottom"><b>UDPC_atostr_cid</b> (UDPC_HContext ctx, <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId)</td></tr>
-<tr class="separator:ab858dbafe5755daded65ffa4b3e587ab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af7bdaf35dc1691c3c13aab24eefa9003"><td class="memItemLeft" align="right" valign="top"><a id="af7bdaf35dc1691c3c13aab24eefa9003"></a>
+<tr class="separator:a5a3c613a0d96a075ccddfba1e8900828"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9e2401b133c0aae43c5d69304dabbdcc"><td class="memItemLeft" align="right" valign="top"><a id="a9e2401b133c0aae43c5d69304dabbdcc" name="a9e2401b133c0aae43c5d69304dabbdcc"></a>
UDPC_EXPORT const char * </td><td class="memItemRight" valign="bottom"><b>UDPC_atostr</b> (UDPC_HContext ctx, UDPC_IPV6_ADDR_TYPE addr)</td></tr>
-<tr class="separator:af7bdaf35dc1691c3c13aab24eefa9003"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a2ae8e7d87f785dd3b3353a00005c3dc6"><td class="memItemLeft" align="right" valign="top"><a id="a2ae8e7d87f785dd3b3353a00005c3dc6"></a>
-UDPC_EXPORT UDPC_IPV6_ADDR_TYPE </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC_strtoa</a> (const char *addrStr)</td></tr>
+<tr class="separator:a9e2401b133c0aae43c5d69304dabbdcc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2ae8e7d87f785dd3b3353a00005c3dc6"><td class="memItemLeft" align="right" valign="top"><a id="a2ae8e7d87f785dd3b3353a00005c3dc6" name="a2ae8e7d87f785dd3b3353a00005c3dc6"></a>
+UDPC_EXPORT UDPC_IPV6_ADDR_TYPE </td><td class="memItemRight" valign="bottom"><b>UDPC_strtoa</b> (const char *addrStr)</td></tr>
<tr class="memdesc:a2ae8e7d87f785dd3b3353a00005c3dc6"><td class="mdescLeft"> </td><td class="mdescRight">addrStr must be a valid ipv6 address or a valid ipv4 address <br /></td></tr>
<tr class="separator:a2ae8e7d87f785dd3b3353a00005c3dc6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad1c4ad0e4ce9a97b3506335aae16cb49"><td class="memItemLeft" align="right" valign="top"><a id="ad1c4ad0e4ce9a97b3506335aae16cb49"></a>
+<tr class="memitem:ad1c4ad0e4ce9a97b3506335aae16cb49"><td class="memItemLeft" align="right" valign="top"><a id="ad1c4ad0e4ce9a97b3506335aae16cb49" name="ad1c4ad0e4ce9a97b3506335aae16cb49"></a>
UDPC_EXPORT UDPC_IPV6_ADDR_TYPE </td><td class="memItemRight" valign="bottom"><b>UDPC_strtoa_link</b> (const char *addrStr, uint32_t *linkId_out)</td></tr>
<tr class="separator:ad1c4ad0e4ce9a97b3506335aae16cb49"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac891801289f8be17e5db81b5de781190"><td class="memItemLeft" align="right" valign="top"><a id="ac891801289f8be17e5db81b5de781190"></a>
+<tr class="memitem:ac891801289f8be17e5db81b5de781190"><td class="memItemLeft" align="right" valign="top"><a id="ac891801289f8be17e5db81b5de781190" name="ac891801289f8be17e5db81b5de781190"></a>
UDPC_EXPORT UDPC_IPV6_ADDR_TYPE </td><td class="memItemRight" valign="bottom"><b>UDPC_a4toa6</b> (uint32_t a4_be)</td></tr>
<tr class="separator:ac891801289f8be17e5db81b5de781190"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5f81a1abecf149abe26902ca5d72e316"><td class="memItemLeft" align="right" valign="top"><a id="a5f81a1abecf149abe26902ca5d72e316"></a>
+<tr class="memitem:a5f81a1abecf149abe26902ca5d72e316"><td class="memItemLeft" align="right" valign="top"><a id="a5f81a1abecf149abe26902ca5d72e316" name="a5f81a1abecf149abe26902ca5d72e316"></a>
UDPC_EXPORT int </td><td class="memItemRight" valign="bottom"><b>UDPC_is_big_endian</b> ()</td></tr>
<tr class="separator:a5f81a1abecf149abe26902ca5d72e316"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a09093c7edd8ed04407c84a94e0d02587"><td class="memItemLeft" align="right" valign="top"><a id="a09093c7edd8ed04407c84a94e0d02587"></a>
+<tr class="memitem:a09093c7edd8ed04407c84a94e0d02587"><td class="memItemLeft" align="right" valign="top"><a id="a09093c7edd8ed04407c84a94e0d02587" name="a09093c7edd8ed04407c84a94e0d02587"></a>
UDPC_EXPORT uint16_t </td><td class="memItemRight" valign="bottom"><b>UDPC_no16i</b> (uint16_t i)</td></tr>
<tr class="separator:a09093c7edd8ed04407c84a94e0d02587"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3e62beb3d497732f5e1d79e19878198c"><td class="memItemLeft" align="right" valign="top"><a id="a3e62beb3d497732f5e1d79e19878198c"></a>
+<tr class="memitem:a3e62beb3d497732f5e1d79e19878198c"><td class="memItemLeft" align="right" valign="top"><a id="a3e62beb3d497732f5e1d79e19878198c" name="a3e62beb3d497732f5e1d79e19878198c"></a>
UDPC_EXPORT uint32_t </td><td class="memItemRight" valign="bottom"><b>UDPC_no32i</b> (uint32_t i)</td></tr>
<tr class="separator:a3e62beb3d497732f5e1d79e19878198c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0d6d9407ed6743a23283d8711652d757"><td class="memItemLeft" align="right" valign="top"><a id="a0d6d9407ed6743a23283d8711652d757"></a>
+<tr class="memitem:a0d6d9407ed6743a23283d8711652d757"><td class="memItemLeft" align="right" valign="top"><a id="a0d6d9407ed6743a23283d8711652d757" name="a0d6d9407ed6743a23283d8711652d757"></a>
UDPC_EXPORT uint64_t </td><td class="memItemRight" valign="bottom"><b>UDPC_no64i</b> (uint64_t i)</td></tr>
<tr class="separator:a0d6d9407ed6743a23283d8711652d757"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a61f1ec575cd8a1020bf4d53a72497ab6"><td class="memItemLeft" align="right" valign="top"><a id="a61f1ec575cd8a1020bf4d53a72497ab6"></a>
+<tr class="memitem:a61f1ec575cd8a1020bf4d53a72497ab6"><td class="memItemLeft" align="right" valign="top"><a id="a61f1ec575cd8a1020bf4d53a72497ab6" name="a61f1ec575cd8a1020bf4d53a72497ab6"></a>
UDPC_EXPORT float </td><td class="memItemRight" valign="bottom"><b>UDPC_no32f</b> (float f)</td></tr>
<tr class="separator:a61f1ec575cd8a1020bf4d53a72497ab6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a93a1a33c4d5dcd4f3e829ce4b15df11c"><td class="memItemLeft" align="right" valign="top"><a id="a93a1a33c4d5dcd4f3e829ce4b15df11c"></a>
+<tr class="memitem:a93a1a33c4d5dcd4f3e829ce4b15df11c"><td class="memItemLeft" align="right" valign="top"><a id="a93a1a33c4d5dcd4f3e829ce4b15df11c" name="a93a1a33c4d5dcd4f3e829ce4b15df11c"></a>
UDPC_EXPORT double </td><td class="memItemRight" valign="bottom"><b>UDPC_no64f</b> (double f)</td></tr>
<tr class="separator:a93a1a33c4d5dcd4f3e829ce4b15df11c"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:aa5c197773a0914125cb358771139065c"><td class="memItemLeft" align="right" valign="top"><a id="aa5c197773a0914125cb358771139065c"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC_SILENT</a></td></tr>
+<tr class="memitem:aa5c197773a0914125cb358771139065c"><td class="memItemLeft" align="right" valign="top"><a id="aa5c197773a0914125cb358771139065c" name="aa5c197773a0914125cb358771139065c"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_SILENT</b></td></tr>
<tr class="memdesc:aa5c197773a0914125cb358771139065c"><td class="mdescLeft"> </td><td class="mdescRight">Does not log anything. <br /></td></tr>
<tr class="separator:aa5c197773a0914125cb358771139065c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac04213a4287500a9c5330f543eac3103"><td class="memItemLeft" align="right" valign="top"><a id="ac04213a4287500a9c5330f543eac3103"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC_ERROR</a></td></tr>
+<tr class="memitem:ac04213a4287500a9c5330f543eac3103"><td class="memItemLeft" align="right" valign="top"><a id="ac04213a4287500a9c5330f543eac3103" name="ac04213a4287500a9c5330f543eac3103"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_ERROR</b></td></tr>
<tr class="memdesc:ac04213a4287500a9c5330f543eac3103"><td class="mdescLeft"> </td><td class="mdescRight">Only log errors. <br /></td></tr>
<tr class="separator:ac04213a4287500a9c5330f543eac3103"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9cc5d705069747eb439a1c5607baac17"><td class="memItemLeft" align="right" valign="top"><a id="a9cc5d705069747eb439a1c5607baac17"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC_WARNING</a></td></tr>
+<tr class="memitem:a9cc5d705069747eb439a1c5607baac17"><td class="memItemLeft" align="right" valign="top"><a id="a9cc5d705069747eb439a1c5607baac17" name="a9cc5d705069747eb439a1c5607baac17"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_WARNING</b></td></tr>
<tr class="memdesc:a9cc5d705069747eb439a1c5607baac17"><td class="mdescLeft"> </td><td class="mdescRight">Log errors and warnings. <br /></td></tr>
<tr class="separator:a9cc5d705069747eb439a1c5607baac17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a248f51c4df127b7fd3a5c91ad5509d15"><td class="memItemLeft" align="right" valign="top"><a id="a248f51c4df127b7fd3a5c91ad5509d15"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC_INFO</a></td></tr>
+<tr class="memitem:a248f51c4df127b7fd3a5c91ad5509d15"><td class="memItemLeft" align="right" valign="top"><a id="a248f51c4df127b7fd3a5c91ad5509d15" name="a248f51c4df127b7fd3a5c91ad5509d15"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_INFO</b></td></tr>
<tr class="memdesc:a248f51c4df127b7fd3a5c91ad5509d15"><td class="mdescLeft"> </td><td class="mdescRight">Log errors, warnings, and info. <br /></td></tr>
<tr class="separator:a248f51c4df127b7fd3a5c91ad5509d15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ad5741af4e5cf1da40fe4a7b92cd1c431"><td class="memItemLeft" align="right" valign="top"><a id="ad5741af4e5cf1da40fe4a7b92cd1c431"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC_VERBOSE</a></td></tr>
+<tr class="memitem:ad5741af4e5cf1da40fe4a7b92cd1c431"><td class="memItemLeft" align="right" valign="top"><a id="ad5741af4e5cf1da40fe4a7b92cd1c431" name="ad5741af4e5cf1da40fe4a7b92cd1c431"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_VERBOSE</b></td></tr>
<tr class="memdesc:ad5741af4e5cf1da40fe4a7b92cd1c431"><td class="mdescLeft"> </td><td class="mdescRight">Log errors, warning, info, and verbose. <br /></td></tr>
<tr class="separator:ad5741af4e5cf1da40fe4a7b92cd1c431"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a96ecd597f88d458ed108f33e4f0a6612"><td class="memItemLeft" align="right" valign="top"><a id="a96ecd597f88d458ed108f33e4f0a6612"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC_AUTH_POLICY_FALLBACK</a> =0</td></tr>
+<tr class="memitem:a96ecd597f88d458ed108f33e4f0a6612"><td class="memItemLeft" align="right" valign="top"><a id="a96ecd597f88d458ed108f33e4f0a6612" name="a96ecd597f88d458ed108f33e4f0a6612"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_AUTH_POLICY_FALLBACK</b> =0</td></tr>
<tr class="memdesc:a96ecd597f88d458ed108f33e4f0a6612"><td class="mdescLeft"> </td><td class="mdescRight">All peers will not be denied regardless of use of public key verification. <br /></td></tr>
<tr class="separator:a96ecd597f88d458ed108f33e4f0a6612"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6af4629253b3ed1f411015410cee9ad3"><td class="memItemLeft" align="right" valign="top"><a id="a6af4629253b3ed1f411015410cee9ad3"></a>
- </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC_AUTH_POLICY_STRICT</a></td></tr>
+<tr class="memitem:a6af4629253b3ed1f411015410cee9ad3"><td class="memItemLeft" align="right" valign="top"><a id="a6af4629253b3ed1f411015410cee9ad3" name="a6af4629253b3ed1f411015410cee9ad3"></a>
+ </td><td class="memItemRight" valign="bottom"><b>UDPC_AUTH_POLICY_STRICT</b></td></tr>
<tr class="memdesc:a6af4629253b3ed1f411015410cee9ad3"><td class="mdescLeft"> </td><td class="mdescRight">Only peers with public key verification will be allowed. <br /></td></tr>
<tr class="separator:a6af4629253b3ed1f411015410cee9ad3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a72343e4853bf37ad09cb5cebfadc0de6"><td class="memItemLeft" align="right" valign="top"><a id="a72343e4853bf37ad09cb5cebfadc0de6"></a>
+<tr class="memitem:a72343e4853bf37ad09cb5cebfadc0de6"><td class="memItemLeft" align="right" valign="top"><a id="a72343e4853bf37ad09cb5cebfadc0de6" name="a72343e4853bf37ad09cb5cebfadc0de6"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_NONE</b></td></tr>
<tr class="separator:a72343e4853bf37ad09cb5cebfadc0de6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a21a88eb4529c120f49036db4b33505cd"><td class="memItemLeft" align="right" valign="top"><a id="a21a88eb4529c120f49036db4b33505cd"></a>
+<tr class="memitem:a21a88eb4529c120f49036db4b33505cd"><td class="memItemLeft" align="right" valign="top"><a id="a21a88eb4529c120f49036db4b33505cd" name="a21a88eb4529c120f49036db4b33505cd"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_REQUEST_CONNECT</b></td></tr>
<tr class="separator:a21a88eb4529c120f49036db4b33505cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a6b4bd6a74bd9c6d2d93ca1c1e12bcf94"><td class="memItemLeft" align="right" valign="top"><a id="a6b4bd6a74bd9c6d2d93ca1c1e12bcf94"></a>
+<tr class="memitem:a6b4bd6a74bd9c6d2d93ca1c1e12bcf94"><td class="memItemLeft" align="right" valign="top"><a id="a6b4bd6a74bd9c6d2d93ca1c1e12bcf94" name="a6b4bd6a74bd9c6d2d93ca1c1e12bcf94"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_REQUEST_DISCONNECT</b></td></tr>
<tr class="separator:a6b4bd6a74bd9c6d2d93ca1c1e12bcf94"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abcb673b618b1a667fde68d33b1458aba"><td class="memItemLeft" align="right" valign="top"><a id="abcb673b618b1a667fde68d33b1458aba"></a>
+<tr class="memitem:abcb673b618b1a667fde68d33b1458aba"><td class="memItemLeft" align="right" valign="top"><a id="abcb673b618b1a667fde68d33b1458aba" name="abcb673b618b1a667fde68d33b1458aba"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_CONNECTED</b></td></tr>
<tr class="separator:abcb673b618b1a667fde68d33b1458aba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aac839f06a0f38fbe1234f834c21595ef"><td class="memItemLeft" align="right" valign="top"><a id="aac839f06a0f38fbe1234f834c21595ef"></a>
+<tr class="memitem:aac839f06a0f38fbe1234f834c21595ef"><td class="memItemLeft" align="right" valign="top"><a id="aac839f06a0f38fbe1234f834c21595ef" name="aac839f06a0f38fbe1234f834c21595ef"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_DISCONNECTED</b></td></tr>
<tr class="separator:aac839f06a0f38fbe1234f834c21595ef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a8619c6ec9a86458dfa4492967586a5d5"><td class="memItemLeft" align="right" valign="top"><a id="a8619c6ec9a86458dfa4492967586a5d5"></a>
+<tr class="memitem:a8619c6ec9a86458dfa4492967586a5d5"><td class="memItemLeft" align="right" valign="top"><a id="a8619c6ec9a86458dfa4492967586a5d5" name="a8619c6ec9a86458dfa4492967586a5d5"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_FAIL_CONNECT</b></td></tr>
<tr class="separator:a8619c6ec9a86458dfa4492967586a5d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a339bec321cb608fcd90fcd7cea102b11"><td class="memItemLeft" align="right" valign="top"><a id="a339bec321cb608fcd90fcd7cea102b11"></a>
+<tr class="memitem:a339bec321cb608fcd90fcd7cea102b11"><td class="memItemLeft" align="right" valign="top"><a id="a339bec321cb608fcd90fcd7cea102b11" name="a339bec321cb608fcd90fcd7cea102b11"></a>
 </td><td class="memItemRight" valign="bottom"><b>UDPC_ET_GOOD_MODE</b></td></tr>
<tr class="separator:a339bec321cb608fcd90fcd7cea102b11"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Public API for UDPConnection. </p>
+<div class="textblock"><p >Public API for UDPConnection. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
-<a id="a228cd7ddf56a4e76e216bc3b80e8bd4a"></a>
+<a id="a228cd7ddf56a4e76e216bc3b80e8bd4a" name="a228cd7ddf56a4e76e216bc3b80e8bd4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a228cd7ddf56a4e76e216bc3b80e8bd4a">◆ </a></span>UDPC_AuthPolicy</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>Note auth policy will only take effect if public key verification of packets is enabled (if libsodium is enabled). </p>
+<p >Note auth policy will only take effect if public key verification of packets is enabled (if libsodium is enabled). </p>
</div>
</div>
-<a id="ae5afb11964c7a55edf34ddf9097779b2"></a>
+<a id="ae5afb11964c7a55edf34ddf9097779b2" name="ae5afb11964c7a55edf34ddf9097779b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5afb11964c7a55edf34ddf9097779b2">◆ </a></span>UDPC_ConnectionId</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Data identifying a peer via addr, port, and scope_id. </p>
-<p>This struct needn't be used directly; use <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d" title="Creates an UDPC_ConnectionId with the given addr and port.">UDPC_create_id()</a>, <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19" title="Creates an UDPC_ConnectionId with the given addr, scope_id, and port.">UDPC_create_id_full()</a>, <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df" title="Creates an UDPC_ConnectionId with the given port.">UDPC_create_id_anyaddr()</a>, or <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131" title="Creates an UDPC_ConnectionId with the given addr string and port.">UDPC_create_id_easy()</a> to create one. This struct does not hold dynamic data, so there is no need to free it. </p>
+<p >This struct needn't be used directly; use <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d" title="Creates an UDPC_ConnectionId with the given addr and port.">UDPC_create_id()</a>, <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19" title="Creates an UDPC_ConnectionId with the given addr, scope_id, and port.">UDPC_create_id_full()</a>, <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df" title="Creates an UDPC_ConnectionId with the given port.">UDPC_create_id_anyaddr()</a>, or <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131" title="Creates an UDPC_ConnectionId with the given addr string and port.">UDPC_create_id_easy()</a> to create one. This struct does not hold dynamic data, so there is no need to free it. </p>
</div>
</div>
-<a id="a7b3215b65686670720f098eda2ca1eed"></a>
+<a id="a7b3215b65686670720f098eda2ca1eed" name="a7b3215b65686670720f098eda2ca1eed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b3215b65686670720f098eda2ca1eed">◆ </a></span>UDPC_Event</h2>
<div class="memitem">
</div><div class="memdoc">
<p>A struct containing information related to the type of event. </p>
-<p>Note that instances of this struct received from a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will not store any useful data in its union member variable <code>v</code> (it will only be used internally). Thus, all events received through a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will contain a valid <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> <code>conId</code> that identifies the peer that the event is referring to. </p>
+<p >Note that instances of this struct received from a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will not store any useful data in its union member variable <code>v</code> (it will only be used internally). Thus, all events received through a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will contain a valid <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> <code>conId</code> that identifies the peer that the event is referring to. </p>
</div>
</div>
-<a id="adaa0534bf7f04bb2f6ce8975c99c4af0"></a>
+<a id="adaa0534bf7f04bb2f6ce8975c99c4af0" name="adaa0534bf7f04bb2f6ce8975c99c4af0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaa0534bf7f04bb2f6ce8975c99c4af0">◆ </a></span>UDPC_EventType</h2>
<div class="memitem">
</div><div class="memdoc">
<p>An enum describing the type of event. </p>
-<p>Note that only the following values will be presented when using <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a></p><ul>
+<p >Note that only the following values will be presented when using <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a></p><ul>
<li>UDPC_ET_NONE: No events have ocurred</li>
<li>UDPC_ET_CONNECTED: A peer has initiated a connection</li>
<li>UDPC_ET_DISCONNECTED: A peer has disconnected</li>
<li>UDPC_ET_GOOD_MODE: The connection has switched to "good mode"</li>
<li>UDPC_ET_BAD_MODE: The connection has switched to "bad mode"</li>
</ul>
-<p>The other unmentioned enum values are used internally, and should never be returned in a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a>.</p>
-<p>All events returned by <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will have set the member variable <code>conId</code> in the <a class="el" href="structUDPC__Event.html" title="A struct containing information related to the type of event.">UDPC_Event</a> which refers to the peer with which the event ocurred. </p>
+<p >The other unmentioned enum values are used internally, and should never be returned in a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a>.</p>
+<p >All events returned by <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will have set the member variable <code>conId</code> in the <a class="el" href="structUDPC__Event.html" title="A struct containing information related to the type of event.">UDPC_Event</a> which refers to the peer with which the event ocurred. </p>
</div>
</div>
-<a id="ae0261958047ebb5c6a402aa805e4e55b"></a>
+<a id="ae0261958047ebb5c6a402aa805e4e55b" name="ae0261958047ebb5c6a402aa805e4e55b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0261958047ebb5c6a402aa805e4e55b">◆ </a></span>UDPC_PacketInfo</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Data representing a received/sent packet. </p>
-<p>If data is NULL or dataSize is 0, then this packet is invalid.</p>
+<p >If data is NULL or dataSize is 0, then this packet is invalid.</p>
<dl class="section warning"><dt>Warning</dt><dd>This struct must be free'd with a call to UDPC_free_PacketInfo to avoid a memory leak. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
-<a id="a71f9bf85a02ddd1b4c921fe9b6694fe8"></a>
+<a id="a71f9bf85a02ddd1b4c921fe9b6694fe8" name="a71f9bf85a02ddd1b4c921fe9b6694fe8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71f9bf85a02ddd1b4c921fe9b6694fe8">◆ </a></span>UDPC_add_whitelist_pk()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Adds a public key to the whitelist. </p>
-<p>By default the whitelist is empty and any peer regardless of key will not be denied connection.</p>
-<p>This function adds one public key to the whitelist. If the whitelist is not empty, then all peers that do not have the matching public key will be denied connection.</p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >By default the whitelist is empty and any peer regardless of key will not be denied connection.</p>
+<p >This function adds one public key to the whitelist. If the whitelist is not empty, then all peers that do not have the matching public key will be denied connection.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>The size of the whitelist on success, zero otherwise </dd></dl>
</div>
</div>
-<a id="a0e2e0c6a6a442db2cb3223d26f849d26"></a>
+<a id="a0e2e0c6a6a442db2cb3223d26f849d26" name="a0e2e0c6a6a442db2cb3223d26f849d26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e2e0c6a6a442db2cb3223d26f849d26">◆ </a></span>UDPC_clear_whitelist()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Clears the public key whitelist. </p>
-<p>If the whitelist is empty, then no connections will be denied.</p>
-<p>If there are keys in the whitelist, then new connections will only be allowed if the peer uses a public key in the whitelist.</p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >If the whitelist is empty, then no connections will be denied.</p>
+<p >If there are keys in the whitelist, then new connections will only be allowed if the peer uses a public key in the whitelist.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Zero if the context is invalid or libsodium is not enabled, non-zero if the whitelist was successfully cleared </dd></dl>
</div>
</div>
-<a id="a1192e0307f75feeac888fe5d49976f55"></a>
+<a id="a1192e0307f75feeac888fe5d49976f55" name="a1192e0307f75feeac888fe5d49976f55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1192e0307f75feeac888fe5d49976f55">◆ </a></span>UDPC_client_initiate_connection()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Initiate a connection to a server peer. </p>
-<p>Note that this function does nothing on a server context.</p>
+<p >Note that this function does nothing on a server context.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The context to initiate a connection from </td></tr>
</div>
</div>
-<a id="aea7e32ca9fdc04530f95c97459391e6d"></a>
+<a id="aea7e32ca9fdc04530f95c97459391e6d" name="aea7e32ca9fdc04530f95c97459391e6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea7e32ca9fdc04530f95c97459391e6d">◆ </a></span>UDPC_create_id()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Creates an <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> with the given addr and port. </p>
-<p>port should be in native byte order (not network/big-endian). This means that there is no need to convert the 16-bit value to network byte order, this will be done automatically by this library when necessary (without modifying the value in the used <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a>).</p>
+<p >port should be in native byte order (not network/big-endian). This means that there is no need to convert the 16-bit value to network byte order, this will be done automatically by this library when necessary (without modifying the value in the used <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a>).</p>
<dl class="section return"><dt>Returns</dt><dd>An initialized <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> </dd></dl>
</div>
</div>
-<a id="a0fa3e1e54877029a226ab9cfb74215df"></a>
+<a id="a0fa3e1e54877029a226ab9cfb74215df" name="a0fa3e1e54877029a226ab9cfb74215df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fa3e1e54877029a226ab9cfb74215df">◆ </a></span>UDPC_create_id_anyaddr()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Creates an <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> with the given port. </p>
-<p>The address contained in the returned <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> will be zeroed out (the "anyaddr" address). port should be in native byte order (not network/big-endian).</p>
+<p >The address contained in the returned <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> will be zeroed out (the "anyaddr" address). port should be in native byte order (not network/big-endian).</p>
<dl class="section return"><dt>Returns</dt><dd>An initialized <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> </dd></dl>
</div>
</div>
-<a id="a8b80d2df882f03aeee8a92bed7fb0131"></a>
+<a id="a8b80d2df882f03aeee8a92bed7fb0131" name="a8b80d2df882f03aeee8a92bed7fb0131"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b80d2df882f03aeee8a92bed7fb0131">◆ </a></span>UDPC_create_id_easy()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Creates an <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> with the given addr string and port. </p>
-<p>The address string should be a valid ipv6 or ipv4 address. (If an ipv4 address is given, the internal address of the returned <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> will be ipv4-mapped ipv6 address.) port should be in native byte order (not network/big-endian).</p>
+<p >The address string should be a valid ipv6 or ipv4 address. (If an ipv4 address is given, the internal address of the returned <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> will be ipv4-mapped ipv6 address.) port should be in native byte order (not network/big-endian).</p>
<dl class="section return"><dt>Returns</dt><dd>An initialized <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> </dd></dl>
</div>
</div>
-<a id="ab7cb345ce117c04017afd443e5748f19"></a>
+<a id="ab7cb345ce117c04017afd443e5748f19" name="ab7cb345ce117c04017afd443e5748f19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7cb345ce117c04017afd443e5748f19">◆ </a></span>UDPC_create_id_full()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Creates an <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> with the given addr, scope_id, and port. </p>
-<p>port should be in native byte order (not network/big-endian).</p>
+<p >port should be in native byte order (not network/big-endian).</p>
<dl class="section return"><dt>Returns</dt><dd>An initialized <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> </dd></dl>
</div>
</div>
-<a id="aad0e88866d4c5cb9c0676bc8d7df574e"></a>
+<a id="aad0e88866d4c5cb9c0676bc8d7df574e" name="aad0e88866d4c5cb9c0676bc8d7df574e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad0e88866d4c5cb9c0676bc8d7df574e">◆ </a></span>UDPC_destroy()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Cleans up the UDPC_HContext. </p>
-<p>If auto updating was enabled for the given context, it will gracefully stop the thread before cleaning up the context.</p>
+<p >If auto updating was enabled for the given context, it will gracefully stop the thread before cleaning up the context.</p>
<dl class="section warning"><dt>Warning</dt><dd>This function must be called after a UDPC_HContext is no longer used to avoid memory leaks. </dd></dl>
</div>
</div>
-<a id="a404d2c7a83903004f928737241ecc63a"></a>
+<a id="a404d2c7a83903004f928737241ecc63a" name="a404d2c7a83903004f928737241ecc63a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a404d2c7a83903004f928737241ecc63a">◆ </a></span>UDPC_disable_threaded_update()</h2>
<div class="memitem">
</div>
</div>
-<a id="a44bc5cc29862c93e938ac8a625c56380"></a>
+<a id="a44bc5cc29862c93e938ac8a625c56380" name="a44bc5cc29862c93e938ac8a625c56380"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44bc5cc29862c93e938ac8a625c56380">◆ </a></span>UDPC_drop_connection()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Drops an existing connection to a peer. </p>
-<p>Note that UDPC will send a disconnect packet to the peer before removing the internal connection data handling the connection to that peer.</p>
+<p >Note that UDPC will send a disconnect packet to the peer before removing the internal connection data handling the connection to that peer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a0fafce547e9185c29f42d06213b0ff4f"></a>
+<a id="a0fafce547e9185c29f42d06213b0ff4f" name="a0fafce547e9185c29f42d06213b0ff4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fafce547e9185c29f42d06213b0ff4f">◆ </a></span>UDPC_enable_threaded_update()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Enables auto updating on a separate thread for the given UDPC_HContext. </p>
-<p>By default, the update interval is set to 8 milliseconds.</p>
+<p >By default, the update interval is set to 8 milliseconds.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The context to enable auto updating for </td></tr>
</div>
</div>
-<a id="a1a50763773d55aa7a2a9c7ad69575833"></a>
+<a id="a1a50763773d55aa7a2a9c7ad69575833" name="a1a50763773d55aa7a2a9c7ad69575833"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a50763773d55aa7a2a9c7ad69575833">◆ </a></span>UDPC_enable_threaded_update_ms()</h2>
<div class="memitem">
</div>
</div>
-<a id="a8880067a93211c257763c42264f6ceef"></a>
+<a id="a8880067a93211c257763c42264f6ceef" name="a8880067a93211c257763c42264f6ceef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8880067a93211c257763c42264f6ceef">◆ </a></span>UDPC_free_list_connected()</h2>
<div class="memitem">
</div>
</div>
-<a id="a68ed6dcb37c6024486fad28ab0bed845"></a>
+<a id="a68ed6dcb37c6024486fad28ab0bed845" name="a68ed6dcb37c6024486fad28ab0bed845"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68ed6dcb37c6024486fad28ab0bed845">◆ </a></span>UDPC_free_PacketInfo()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Frees a <a class="el" href="structUDPC__PacketInfo.html" title="Data representing a received/sent packet.">UDPC_PacketInfo</a>. </p>
-<p>Internally, the member variable <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">UDPC_PacketInfo::data</a> will be free'd and set to NULL and <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">UDPC_PacketInfo::dataSize</a> will be set to 0 if the given packet is valid. </p>
+<p >Internally, the member variable <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">UDPC_PacketInfo::data</a> will be free'd and set to NULL and <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">UDPC_PacketInfo::dataSize</a> will be set to 0 if the given packet is valid. </p>
</div>
</div>
-<a id="ab79769e36a92c346c6c410be158ddfe4"></a>
+<a id="ab79769e36a92c346c6c410be158ddfe4" name="ab79769e36a92c346c6c410be158ddfe4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab79769e36a92c346c6c410be158ddfe4">◆ </a></span>UDPC_get_auth_policy()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets how peers are handled regarding public key verification. </p>
-<p>If libsodium is enabled and the auth policy is "strict", then peers attempting to connect will be denied if they do not have public key verification enabled. Otherwise if the auth policy is "fallback", then peers will not be denied a connection regardless of whether or not they use public key verification of packets.</p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >If libsodium is enabled and the auth policy is "strict", then peers attempting to connect will be denied if they do not have public key verification enabled. Otherwise if the auth policy is "fallback", then peers will not be denied a connection regardless of whether or not they use public key verification of packets.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>The current auth policy (see <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a>) , or zero on fail </dd></dl>
</div>
</div>
-<a id="a2c05c6fe89edde1e05ba9b6d8b5f7510"></a>
+<a id="a2c05c6fe89edde1e05ba9b6d8b5f7510" name="a2c05c6fe89edde1e05ba9b6d8b5f7510"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c05c6fe89edde1e05ba9b6d8b5f7510">◆ </a></span>UDPC_get_event()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets a recorded event. </p>
-<p>See <a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> for possible types of a <a class="el" href="structUDPC__Event.html" title="A struct containing information related to the type of event.">UDPC_Event</a>.</p>
+<p >See <a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> for possible types of a <a class="el" href="structUDPC__Event.html" title="A struct containing information related to the type of event.">UDPC_Event</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a7fe3e502f4c6f86ce5b2cd1f303aa213"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7fe3e502f4c6f86ce5b2cd1f303aa213">◆ </a></span>UDPC_get_list_connected()</h2>
+<a id="a6b4355331c9b2797af0c13ce16515547" name="a6b4355331c9b2797af0c13ce16515547"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b4355331c9b2797af0c13ce16515547">◆ </a></span>UDPC_get_list_connected()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a>* UDPC_get_list_connected </td>
+ <td class="memname">UDPC_EXPORT <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> * UDPC_get_list_connected </td>
<td>(</td>
<td class="paramtype">UDPC_HContext </td>
<td class="paramname"><em>ctx</em>, </td>
</div><div class="memdoc">
<p>Gets a dynamically allocated array of connected peers' identifiers. </p>
-<p>Note that an additional element is appended to the array that is initialized with all fields to zero.</p>
+<p >Note that an additional element is appended to the array that is initialized with all fields to zero.</p>
<dl class="section warning"><dt>Warning</dt><dd>One must call <a class="el" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef" title="Cleans up a dynamically allocated array of connected peers' identifiers.">UDPC_free_list_connected()</a> with the returned array to clean up data to avoid a memory leak</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
</div>
</div>
-<a id="ad0c7d69eeda20e98696d5c89bbbab096"></a>
+<a id="ad0c7d69eeda20e98696d5c89bbbab096" name="ad0c7d69eeda20e98696d5c89bbbab096"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0c7d69eeda20e98696d5c89bbbab096">◆ </a></span>UDPC_get_logging_type()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets the logging type of the UDPC context. </p>
-<p>See UDPC_LoggingType for possible values.</p>
+<p >See UDPC_LoggingType for possible values.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a7983f38fe13677f5b35b90cefa54974f"></a>
+<a id="a7983f38fe13677f5b35b90cefa54974f" name="a7983f38fe13677f5b35b90cefa54974f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7983f38fe13677f5b35b90cefa54974f">◆ </a></span>UDPC_get_max_queued_size()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets the size limit of a connection's queue of queued packets. </p>
-<p>Note that a call to this function does not use any locks, as the limit is known at compile time and is the same for all UDPC connections.</p>
+<p >Note that a call to this function does not use any locks, as the limit is known at compile time and is the same for all UDPC connections.</p>
<dl class="section return"><dt>Returns</dt><dd>The size limit of a connection's queue </dd></dl>
</div>
</div>
-<a id="aab6fb21c6f5b44123e2660f84561d404"></a>
+<a id="aab6fb21c6f5b44123e2660f84561d404" name="aab6fb21c6f5b44123e2660f84561d404"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab6fb21c6f5b44123e2660f84561d404">◆ </a></span>UDPC_get_protocol_id()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets the protocol id of the UDPC context. </p>
-<p>UDPC uses the protocol id by prefixing every sent packet with it. Other UDPC instances will only accept packets with the same protocol id.</p>
-<p>One can use <a class="el" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a" title="Sets the protocol id of the UDPC context.">UDPC_set_protocol_id()</a> to change it.</p>
+<p >UDPC uses the protocol id by prefixing every sent packet with it. Other UDPC instances will only accept packets with the same protocol id.</p>
+<p >One can use <a class="el" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a" title="Sets the protocol id of the UDPC context.">UDPC_set_protocol_id()</a> to change it.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="aa3f67ad23ae34b647b7f4dd17a8a96dd"></a>
+<a id="aa3f67ad23ae34b647b7f4dd17a8a96dd" name="aa3f67ad23ae34b647b7f4dd17a8a96dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3f67ad23ae34b647b7f4dd17a8a96dd">◆ </a></span>UDPC_get_queue_send_current_size()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets the size of the data structure holding queued packets. </p>
-<p>Note that a UDPC context holds a different data structure per established connection that holds a limited amount of packets to send. If a connection's queue is full, it will not be removed from the main queue that this function (and <a class="el" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4" title="Queues a packet to be sent to the specified peer.">UDPC_queue_send()</a>) uses. The queue that this function refers to does not have an imposed limit as it is implemented as a thread-safe linked list (data is dynamically stored on the heap) and access to this data structure is faster than accessing a connection's internal queue. Also note that this queue holds packets for all connections this context maintains. Thus if one connection has free space, then it may partially remove packets only destined for that connection from the queue this function refers to.</p>
+<p >Note that a UDPC context holds a different data structure per established connection that holds a limited amount of packets to send. If a connection's queue is full, it will not be removed from the main queue that this function (and <a class="el" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4" title="Queues a packet to be sent to the specified peer.">UDPC_queue_send()</a>) uses. The queue that this function refers to does not have an imposed limit as it is implemented as a thread-safe linked list (data is dynamically stored on the heap) and access to this data structure is faster than accessing a connection's internal queue. Also note that this queue holds packets for all connections this context maintains. Thus if one connection has free space, then it may partially remove packets only destined for that connection from the queue this function refers to.</p>
<dl class="section return"><dt>Returns</dt><dd>The size of the queue </dd></dl>
</div>
</div>
-<a id="a1fb87c1522d353bd9fde4c94ec8454c2"></a>
+<a id="a1fb87c1522d353bd9fde4c94ec8454c2" name="a1fb87c1522d353bd9fde4c94ec8454c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fb87c1522d353bd9fde4c94ec8454c2">◆ </a></span>UDPC_get_queued_size()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Gets the size of a connection's queue of queued packets. </p>
-<p>Note that a UDPC context holds a queue per established connection that holds a limited amount of packets to send. This function checks a connection's internal queue, but must do so after locking an internal mutex (a call to <a class="el" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b" title="Updates the context.">UDPC_update()</a> will lock this mutex, regardless of whether or not the context is using threaded update).</p>
-<p>If <code>exists</code> is a non-null pointer to an <code>int</code>, and a connection to a peer identified by <code>id</code> exists, then the value of <code>exists</code> will be set to non-zero, otherwise a non-existing peer will set the value of <code>exists</code> to zero.</p>
+<p >Note that a UDPC context holds a queue per established connection that holds a limited amount of packets to send. This function checks a connection's internal queue, but must do so after locking an internal mutex (a call to <a class="el" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b" title="Updates the context.">UDPC_update()</a> will lock this mutex, regardless of whether or not the context is using threaded update).</p>
+<p >If <code>exists</code> is a non-null pointer to an <code>int</code>, and a connection to a peer identified by <code>id</code> exists, then the value of <code>exists</code> will be set to non-zero, otherwise a non-existing peer will set the value of <code>exists</code> to zero.</p>
<dl class="section return"><dt>Returns</dt><dd>The size of a connection's queue </dd></dl>
</div>
</div>
-<a id="affa8655a4e7e3475be441060e92213b3"></a>
+<a id="affa8655a4e7e3475be441060e92213b3" name="affa8655a4e7e3475be441060e92213b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affa8655a4e7e3475be441060e92213b3">◆ </a></span>UDPC_get_received()</h2>
<div class="memitem">
</div>
</div>
-<a id="a8c74f1b9ee0fec610087f83096c9679d"></a>
+<a id="a8c74f1b9ee0fec610087f83096c9679d" name="a8c74f1b9ee0fec610087f83096c9679d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c74f1b9ee0fec610087f83096c9679d">◆ </a></span>UDPC_get_receiving_events()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Returns non-zero if the UDPC context will record events. </p>
-<p>Events that have ocurred can by polled by calling <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a></p>
+<p >Events that have ocurred can by polled by calling <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a4a555a011e95445ed4a2aa88deb17082"></a>
+<a id="a4a555a011e95445ed4a2aa88deb17082" name="a4a555a011e95445ed4a2aa88deb17082"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a555a011e95445ed4a2aa88deb17082">◆ </a></span>UDPC_has_connection()</h2>
<div class="memitem">
</div>
</div>
-<a id="a94660d04e7f9b4d9c51a7b2c67707172"></a>
+<a id="a94660d04e7f9b4d9c51a7b2c67707172" name="a94660d04e7f9b4d9c51a7b2c67707172"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94660d04e7f9b4d9c51a7b2c67707172">◆ </a></span>UDPC_has_whitelist_pk()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Checks if a public key is in the whitelist. </p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Non-zero if the given public key is in the whitelist </dd></dl>
</div>
</div>
-<a id="a89dee65fcd5b70d25abbf6d4a3ee59f2"></a>
+<a id="a89dee65fcd5b70d25abbf6d4a3ee59f2" name="a89dee65fcd5b70d25abbf6d4a3ee59f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89dee65fcd5b70d25abbf6d4a3ee59f2">◆ </a></span>UDPC_init()</h2>
<div class="memitem">
</div>
</div>
-<a id="a614e2a058b89839d53fe9d348a058323"></a>
+<a id="a614e2a058b89839d53fe9d348a058323" name="a614e2a058b89839d53fe9d348a058323"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a614e2a058b89839d53fe9d348a058323">◆ </a></span>UDPC_init_threaded_update()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Creates an UDPC_HContext that holds state for connections that auto-updates via a thread. </p>
-<p>By default, the update interval is set to 8 milliseconds.</p>
+<p >By default, the update interval is set to 8 milliseconds.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">listenId</td><td>The addr and port to listen on (contained in a <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a>) </td></tr>
</div>
</div>
-<a id="ab9a5258877ad3084f7d29954be525bd6"></a>
+<a id="ab9a5258877ad3084f7d29954be525bd6" name="ab9a5258877ad3084f7d29954be525bd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9a5258877ad3084f7d29954be525bd6">◆ </a></span>UDPC_init_threaded_update_ms()</h2>
<div class="memitem">
</div>
</div>
-<a id="ac01480f803b063e2b44794420df0f671"></a>
+<a id="ac01480f803b063e2b44794420df0f671" name="ac01480f803b063e2b44794420df0f671"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac01480f803b063e2b44794420df0f671">◆ </a></span>UDPC_is_valid_context()</h2>
<div class="memitem">
</div>
</div>
-<a id="a7527954b63f502479bdd3771df7cf3a4"></a>
+<a id="a7527954b63f502479bdd3771df7cf3a4" name="a7527954b63f502479bdd3771df7cf3a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7527954b63f502479bdd3771df7cf3a4">◆ </a></span>UDPC_queue_send()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Queues a packet to be sent to the specified peer. </p>
-<p>Note that there must already be an established connection with the peer. If a packet is queued for a peer that is not connected, it will be dropped and logged with log-level warning. A client can establish a connection to a server peer via a call to <a class="el" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55" title="Initiate a connection to a server peer.">UDPC_client_initiate_connection()</a> or UDPC_client_initiate_connection_pk(). A server must receive an initiate-connection-packet from a client to establish a connection (sent by previously mentioned UDPC_client_initiate_* functions).</p>
+<p >Note that there must already be an established connection with the peer. If a packet is queued for a peer that is not connected, it will be dropped and logged with log-level warning. A client can establish a connection to a server peer via a call to <a class="el" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55" title="Initiate a connection to a server peer.">UDPC_client_initiate_connection()</a> or UDPC_client_initiate_connection_pk(). A server must receive an initiate-connection-packet from a client to establish a connection (sent by previously mentioned UDPC_client_initiate_* functions).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The context to send a packet on </td></tr>
</div>
</div>
-<a id="abc2d3284e5c45d6cd888154e813a1383"></a>
+<a id="abc2d3284e5c45d6cd888154e813a1383" name="abc2d3284e5c45d6cd888154e813a1383"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc2d3284e5c45d6cd888154e813a1383">◆ </a></span>UDPC_remove_whitelist_pk()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Removes a public key from the whitelist. </p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Non-zero if a public key was removed </dd></dl>
</div>
</div>
-<a id="a32e217a02b2e8ba05568aabfaecbcdcb"></a>
+<a id="a32e217a02b2e8ba05568aabfaecbcdcb" name="a32e217a02b2e8ba05568aabfaecbcdcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32e217a02b2e8ba05568aabfaecbcdcb">◆ </a></span>UDPC_set_accept_new_connections()</h2>
<div class="memitem">
</div>
</div>
-<a id="a8d0dbbd258e17844a2f9a0e277789581"></a>
+<a id="a8d0dbbd258e17844a2f9a0e277789581" name="a8d0dbbd258e17844a2f9a0e277789581"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d0dbbd258e17844a2f9a0e277789581">◆ </a></span>UDPC_set_auth_policy()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Sets how peers are handled regarding public key verification. </p>
-<p>If libsodium is enabled and the auth policy is "strict", then peers attempting to connect will be denied if they do not have public key verification enabled. Otherwise if the auth policy is "fallback", then peers will not be denied a connection regardless of whether or not they use public key verification of packets.</p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >If libsodium is enabled and the auth policy is "strict", then peers attempting to connect will be denied if they do not have public key verification enabled. Otherwise if the auth policy is "fallback", then peers will not be denied a connection regardless of whether or not they use public key verification of packets.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>The previous auth policy (see <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a>), or zero on fail </dd></dl>
</div>
</div>
-<a id="ad7eb0c77561f84a63dad29388d099fbe"></a>
+<a id="ad7eb0c77561f84a63dad29388d099fbe" name="ad7eb0c77561f84a63dad29388d099fbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7eb0c77561f84a63dad29388d099fbe">◆ </a></span>UDPC_set_libsodium_key_easy()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Sets the public/private keys used for packet verification. </p>
-<p>This function is almost identical with UDPC_set_libsodium_keys, except it will utilize libsodium to generate the associated public key with the given private key.</p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >This function is almost identical with UDPC_set_libsodium_keys, except it will utilize libsodium to generate the associated public key with the given private key.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Non-zero if keys were successfully set, zero if context is invalid or libsodium is not enabled </dd></dl>
</div>
</div>
-<a id="abd0a7d5c0a17cf3351dbe5abf5f70df1"></a>
+<a id="abd0a7d5c0a17cf3351dbe5abf5f70df1" name="abd0a7d5c0a17cf3351dbe5abf5f70df1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd0a7d5c0a17cf3351dbe5abf5f70df1">◆ </a></span>UDPC_set_libsodium_keys()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Sets public/private keys used for packet verification. </p>
-<p>If keys are not set and packet verification is enabled, for each new connection new keys will be generated then used. The auto-generated keys used will be unique per connection. Conversely if keys are set, then new connections will use the given keys.</p>
-<p>Note that connections established before calling this function will not use the given keys.</p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >If keys are not set and packet verification is enabled, for each new connection new keys will be generated then used. The auto-generated keys used will be unique per connection. Conversely if keys are set, then new connections will use the given keys.</p>
+<p >Note that connections established before calling this function will not use the given keys.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Non-zero if keys were successfully set, zero if context is invalid or libsodium is not enabled </dd></dl>
</div>
</div>
-<a id="a6c90dc723e67a07bf65c1fc97e526305"></a>
+<a id="a6c90dc723e67a07bf65c1fc97e526305" name="a6c90dc723e67a07bf65c1fc97e526305"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c90dc723e67a07bf65c1fc97e526305">◆ </a></span>UDPC_set_logging_type()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Sets the logging type of the UDPC context. </p>
-<p>See UDPC_LoggingType for possible values.</p>
+<p >See UDPC_LoggingType for possible values.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a0720bec1922660c983b1b3d9f6a5de3a"></a>
+<a id="a0720bec1922660c983b1b3d9f6a5de3a" name="a0720bec1922660c983b1b3d9f6a5de3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0720bec1922660c983b1b3d9f6a5de3a">◆ </a></span>UDPC_set_protocol_id()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Sets the protocol id of the UDPC context. </p>
-<p>UDPC uses the protocol id by prefixing every sent packet with it. Other UDPC instances will only accept packets with the same protocol id.</p>
+<p >UDPC uses the protocol id by prefixing every sent packet with it. Other UDPC instances will only accept packets with the same protocol id.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a380c91ee395cff22189c7988c3381787"></a>
+<a id="a380c91ee395cff22189c7988c3381787" name="a380c91ee395cff22189c7988c3381787"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a380c91ee395cff22189c7988c3381787">◆ </a></span>UDPC_set_receiving_events()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Sets whether or not UDPC will record events. </p>
-<p>Events that have ocurred can by polled by calling <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a></p>
+<p >Events that have ocurred can by polled by calling <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>The UDPC context </td></tr>
</div>
</div>
-<a id="a62a5131b90653ccbfc86ad5db4031ba9"></a>
+<a id="a62a5131b90653ccbfc86ad5db4031ba9" name="a62a5131b90653ccbfc86ad5db4031ba9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62a5131b90653ccbfc86ad5db4031ba9">◆ </a></span>UDPC_unset_libsodium_keys()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Removes set keys if any used for packet verification. </p>
-<p>Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
+<p >Note that public key verification will not occur if it is not enabled during the call to <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2" title="Creates an UDPC_HContext that holds state for connections.">UDPC_init()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Zero if context is invalid or libsodium is not enabled </dd></dl>
</div>
</div>
-<a id="a68fefba9edca7cd0a81d97ac27c70c0b"></a>
+<a id="a68fefba9edca7cd0a81d97ac27c70c0b" name="a68fefba9edca7cd0a81d97ac27c70c0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68fefba9edca7cd0a81d97ac27c70c0b">◆ </a></span>UDPC_update()</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Updates the context. </p>
-<p>Updating consists of:</p><ul>
+<p >Updating consists of:</p><ul>
<li>Checking if peers have timed out</li>
<li>Handling requests to connect to server peers as a client</li>
<li>Sending packets to connected peers</li>
<li>Calculating round-trip-time (RTT) to peers</li>
<li>Checking if a peer has not received a packet and queuing that packet to be resent (this is done by using an ack)</li>
</ul>
-<p>If auto updating was enabled for the context, then there is no need to call this function.</p>
-<p>Note that the context can only receive at most one packet per call to update (due to the fact that UDPC created its UDP socket to not block on receive checks). This is why it is expected to either call this function several times a second (such as in a game's update loop), or have auto-updating enabled via <a class="el" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323" title="Creates an UDPC_HContext that holds state for connections that auto-updates via a thread.">UDPC_init_threaded_update()</a>, <a class="el" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6" title="Creates an UDPC_HContext that holds state for connections that auto-updates via a thread at a specifi...">UDPC_init_threaded_update_ms()</a>, <a class="el" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f" title="Enables auto updating on a separate thread for the given UDPC_HContext.">UDPC_enable_threaded_update()</a>, or <a class="el" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833" title="Enables auto updating on a separate thread for the given UDPC_HContext with the specified update inte...">UDPC_enable_threaded_update_ms()</a>. </p>
+<p >If auto updating was enabled for the context, then there is no need to call this function.</p>
+<p >Note that the context can only receive at most one packet per call to update (due to the fact that UDPC created its UDP socket to not block on receive checks). This is why it is expected to either call this function several times a second (such as in a game's update loop), or have auto-updating enabled via <a class="el" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323" title="Creates an UDPC_HContext that holds state for connections that auto-updates via a thread.">UDPC_init_threaded_update()</a>, <a class="el" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6" title="Creates an UDPC_HContext that holds state for connections that auto-updates via a thread at a specifi...">UDPC_init_threaded_update_ms()</a>, <a class="el" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f" title="Enables auto updating on a separate thread for the given UDPC_HContext.">UDPC_enable_threaded_update()</a>, or <a class="el" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833" title="Enables auto updating on a separate thread for the given UDPC_HContext with the specified update inte...">UDPC_enable_threaded_update_ms()</a>. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: src/UDPC.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">UDPC.h</div> </div>
+ <div class="headertitle"><div class="title">UDPC.h</div></div>
</div><!--header-->
<div class="contents">
-<a href="UDPC_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#ifndef UDPC_CONNECTION_H</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define UDPC_CONNECTION_H</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Determine platform macros</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"># define UDPC_PLATFORM_WINDOWS 1</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"># define UDPC_PLATFORM_MAC 2</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># define UDPC_PLATFORM_LINUX 3</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># define UDPC_PLATFORM_UNKNOWN 0</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># if defined _WIN32</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_WINDOWS</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># elif defined __APPLE__</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_MAC</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"># elif defined __linux__</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_LINUX</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// OS-based networking macros</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#if UDPC_PLATFORM == UDPC_PLATFORM_WINDOWS</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># include <winsock2.h></span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># ifdef UDPC_PLATFORM_MINGW</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># include <ws2ipdef.h></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># include <in6addr.h></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># include <Ws2ipdef.h></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"># include <In6addr.h></span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"># ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># define UDPC_CLEANUPSOCKET(x) closesocket(x)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># define UDPC_SOCKETTYPE SOCKET</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># define UDPC_IPV6_SOCKADDR_TYPE SOCKADDR_IN6</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># define UDPC_IPV6_ADDR_TYPE IN6_ADDR</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># define UDPC_IPV6_ADDR_SUB(addr) addr.u.Byte</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># define UDPC_SOCKET_RETURN_ERROR(socket) (socket == INVALID_SOCKET)</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#elif UDPC_PLATFORM == UDPC_PLATFORM_MAC || UDPC_PLATFORM == UDPC_PLATFORM_LINUX</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># include <fcntl.h></span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># include <netinet/in.h></span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># include <sys/socket.h></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># include <unistd.h></span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># define UDPC_CLEANUPSOCKET(x) close(x)</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># define UDPC_SOCKETTYPE int</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># define UDPC_IPV6_SOCKADDR_TYPE struct sockaddr_in6</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># define UDPC_IPV6_ADDR_TYPE struct in6_addr</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># define UDPC_IPV6_ADDR_SUB(addr) addr.s6_addr</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># define UDPC_SOCKET_RETURN_ERROR(socket) (socket <= 0)</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"># endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"># ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># define UDPC_CLEANUPSOCKET(x) ((void)0)</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// other defines</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827"> 81</a></span> <span class="comment"></span><span class="preprocessor">#define UDPC_PACKET_MAX_SIZE 8192</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#define UDPC_DEFAULT_PROTOCOL_ID 1357924680 </span><span class="comment">// 0x50f04948</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// other defines continued</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># ifndef UDPC_LIBSODIUM_ENABLED</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># ifndef crypto_sign_PUBLICKEYBYTES</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># define crypto_sign_PUBLICKEYBYTES 1</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># ifndef crypto_sign_SECRETKEYBYTES</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"># define crypto_sign_SECRETKEYBYTES 1</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"># ifndef crypto_sign_BYTES</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"># define crypto_sign_BYTES 1</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"># if UDPC_PLATFORM == UDPC_PLATFORM_WINDOWS</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"># define UDPC_EXPORT __declspec(dllexport)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># define UDPC_EXPORT</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"># include <cstdint></span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># include <stdint.h></span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">struct </span>UDPC_Context;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_Context *UDPC_HContext;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> <span class="keyword">enum</span> UDPC_EXPORT UDPC_LoggingType {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c"> 121</a></span>  <a class="code" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC_SILENT</a>,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103"> 123</a></span>  <a class="code" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC_ERROR</a>,</div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17"> 125</a></span>  <a class="code" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC_WARNING</a>,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15"> 127</a></span>  <a class="code" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC_INFO</a>,</div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431"> 129</a></span>  <a class="code" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC_VERBOSE</a>,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  UDPC_DEBUG</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } UDPC_LoggingType;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a"> 136</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> UDPC_EXPORT <a class="code" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a> {</div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612"> 138</a></span>  <a class="code" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC_AUTH_POLICY_FALLBACK</a>=0,</div>
-<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3"> 140</a></span>  <a class="code" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC_AUTH_POLICY_STRICT</a>,</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// Used internally to get max size of enum</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  UDPC_AUTH_POLICY_SIZE</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> } <a class="code" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a>;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structUDPC__ConnectionId.html"> 153</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> {</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  UDPC_IPV6_ADDR_TYPE addr;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  uint32_t scope_id;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  uint16_t port;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2"> 157</a></span> } <a class="code" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2">UDPC_ConnectionId</a>;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
-<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html"> 167</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_EXPORT <a class="code" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a> {</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// id is stored at offset 8, size 4 (uint32_t) even for "empty" PktInfos</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e"> 173</a></span>  <span class="keywordtype">char</span> *<a class="code" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a>;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1"> 184</a></span>  uint32_t <a class="code" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1">flags</a>;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe"> 192</a></span>  uint32_t <a class="code" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe">id</a>;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74"> 202</a></span>  uint16_t <a class="code" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a>;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  uint16_t rtt;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc"> 205</a></span>  <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">sender</a>;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d"> 207</a></span>  <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">receiver</a>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b"> 208</a></span> } <a class="code" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b">UDPC_PacketInfo</a>;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0"> 229</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> UDPC_EXPORT <a class="code" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> {</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  UDPC_ET_NONE,</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  UDPC_ET_REQUEST_CONNECT,</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  UDPC_ET_REQUEST_DISCONNECT,</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  UDPC_ET_CONNECTED,</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  UDPC_ET_DISCONNECTED,</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  UDPC_ET_FAIL_CONNECT,</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  UDPC_ET_GOOD_MODE,</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  UDPC_ET_BAD_MODE</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> } <a class="code" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a>;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
-<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structUDPC__Event.html"> 250</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_EXPORT <a class="code" href="structUDPC__Event.html">UDPC_Event</a> {</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> type;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> conId;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="unionUDPC__Event_1_1Value.html"> 253</a></span>  <span class="keyword">union </span><a class="code" href="unionUDPC__Event_1_1Value.html">Value</a> {</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordtype">int</span> dropAllWithAddr;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordtype">int</span> enableLibSodium;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  } v;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed"> 257</a></span> } <a class="code" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC_Event</a>;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  </div>
-<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d"> 269</a></span> UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC_create_id</a>(UDPC_IPV6_ADDR_TYPE addr, uint16_t port);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div>
-<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19"> 278</a></span> UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19">UDPC_create_id_full</a>(UDPC_IPV6_ADDR_TYPE addr, uint32_t scope_id, uint16_t port);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df"> 289</a></span> UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC_create_id_anyaddr</a>(uint16_t port);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
-<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131"> 301</a></span> UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC_create_id_easy</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *addrString, uint16_t port);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> UDPC_create_id_hostname(<span class="keyword">const</span> <span class="keywordtype">char</span> *hostname, uint16_t port);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2"> 321</a></span> UDPC_EXPORT UDPC_HContext <a class="code" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC_init</a>(<a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId, <span class="keywordtype">int</span> isClient, <span class="keywordtype">int</span> isUsingLibsodium);</div>
-<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323"> 341</a></span> UDPC_EXPORT UDPC_HContext <a class="code" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323">UDPC_init_threaded_update</a>(</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId,</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordtype">int</span> isClient,</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordtype">int</span> isUsingLibsodium);</div>
-<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6"> 364</a></span> UDPC_EXPORT UDPC_HContext <a class="code" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6">UDPC_init_threaded_update_ms</a>(</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId,</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordtype">int</span> isClient,</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordtype">int</span> updateMS,</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordtype">int</span> isUsingLibsodium);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
-<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f"> 379</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f">UDPC_enable_threaded_update</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833"> 390</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833">UDPC_enable_threaded_update_ms</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> updateMS);</div>
-<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a"> 399</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a">UDPC_disable_threaded_update</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671"> 406</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671">UDPC_is_valid_context</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
-<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e"> 417</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e">UDPC_destroy</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
-<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b"> 441</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC_update</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  </div>
-<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55"> 453</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55">UDPC_client_initiate_connection</a>(</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  UDPC_HContext ctx,</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId,</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordtype">int</span> enableLibSodium);</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  </div>
-<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4"> 476</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC_queue_send</a>(UDPC_HContext ctx, <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> destinationId,</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordtype">int</span> isChecked, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, uint32_t size);</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  </div>
-<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd"> 495</a></span> UDPC_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd">UDPC_get_queue_send_current_size</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  </div>
-<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2"> 513</a></span> UDPC_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2">UDPC_get_queued_size</a>(UDPC_HContext ctx, <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> *exists);</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </div>
-<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f"> 523</a></span> UDPC_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC_get_max_queued_size</a>();</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
-<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb"> 531</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb">UDPC_set_accept_new_connections</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> isAccepting);</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  </div>
-<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380"> 544</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380">UDPC_drop_connection</a>(UDPC_HContext ctx, <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId, <span class="keywordtype">int</span> dropAllWithAddr);</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
-<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082"> 555</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC_has_connection</a>(UDPC_HContext ctx, <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId);</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  </div>
-<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213"> 571</a></span> UDPC_EXPORT <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a>* <a class="code" href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213">UDPC_get_list_connected</a>(UDPC_HContext ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
-<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef"> 577</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC_free_list_connected</a>(<a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> *list);</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  </div>
-<div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404"> 590</a></span> UDPC_EXPORT uint32_t <a class="code" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404">UDPC_get_protocol_id</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  </div>
-<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a"> 602</a></span> UDPC_EXPORT uint32_t <a class="code" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC_set_protocol_id</a>(UDPC_HContext ctx, uint32_t <span class="keywordtype">id</span>);</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </div>
-<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096"> 612</a></span> UDPC_EXPORT UDPC_LoggingType <a class="code" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096">UDPC_get_logging_type</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
-<div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305"> 623</a></span> UDPC_EXPORT UDPC_LoggingType <a class="code" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC_set_logging_type</a>(UDPC_HContext ctx, UDPC_LoggingType loggingType);</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div>
-<div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d"> 633</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d">UDPC_get_receiving_events</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  </div>
-<div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787"> 644</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787">UDPC_set_receiving_events</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> isReceivingEvents);</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  </div>
-<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510"> 657</a></span> UDPC_EXPORT <a class="code" href="structUDPC__Event.html">UDPC_Event</a> <a class="code" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510">UDPC_get_event</a>(UDPC_HContext ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *remaining);</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  </div>
-<div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3"> 665</a></span> UDPC_EXPORT <a class="code" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a> <a class="code" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3">UDPC_get_received</a>(UDPC_HContext ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *remaining);</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  </div>
-<div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845"> 674</a></span> UDPC_EXPORT <span class="keywordtype">void</span> <a class="code" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC_free_PacketInfo</a>(<a class="code" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a> pInfo);</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  </div>
-<div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1"> 693</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1">UDPC_set_libsodium_keys</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sk, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  </div>
-<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe"> 708</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe">UDPC_set_libsodium_key_easy</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sk);</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  </div>
-<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9"> 718</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9">UDPC_unset_libsodium_keys</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div>
-<div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8"> 735</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC_add_whitelist_pk</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  </div>
-<div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172"> 745</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172">UDPC_has_whitelist_pk</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  </div>
-<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383"> 755</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383">UDPC_remove_whitelist_pk</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  </div>
-<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26"> 771</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC_clear_whitelist</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  </div>
-<div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4"> 787</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4">UDPC_get_auth_policy</a>(UDPC_HContext ctx);</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  </div>
-<div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581"> 803</a></span> UDPC_EXPORT <span class="keywordtype">int</span> <a class="code" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC_set_auth_policy</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  </div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> UDPC_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *UDPC_atostr_cid(UDPC_HContext ctx, <a class="code" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId);</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  </div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> UDPC_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *UDPC_atostr(UDPC_HContext ctx, UDPC_IPV6_ADDR_TYPE addr);</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  </div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="comment">// =============================================================================</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="comment">// Helpers</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  </div>
-<div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6"> 813</a></span> UDPC_EXPORT UDPC_IPV6_ADDR_TYPE <a class="code" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC_strtoa</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *addrStr);</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  </div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> UDPC_EXPORT UDPC_IPV6_ADDR_TYPE UDPC_strtoa_link(<span class="keyword">const</span> <span class="keywordtype">char</span> *addrStr, uint32_t *linkId_out);</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  </div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> UDPC_EXPORT UDPC_IPV6_ADDR_TYPE UDPC_a4toa6(uint32_t a4_be);</div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  </div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> UDPC_EXPORT <span class="keywordtype">int</span> UDPC_is_big_endian();</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> UDPC_EXPORT uint16_t UDPC_no16i(uint16_t i);</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> UDPC_EXPORT uint32_t UDPC_no32i(uint32_t i);</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> UDPC_EXPORT uint64_t UDPC_no64i(uint64_t i);</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> UDPC_EXPORT <span class="keywordtype">float</span> UDPC_no32f(<span class="keywordtype">float</span> f);</div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> UDPC_EXPORT <span class="keywordtype">double</span> UDPC_no64f(<span class="keywordtype">double</span> f);</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  </div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> }</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor">#endif</span></div>
+<a href="UDPC_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#ifndef UDPC_CONNECTION_H</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#define UDPC_CONNECTION_H</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// Determine platform macros</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor"># define UDPC_PLATFORM_WINDOWS 1</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor"># define UDPC_PLATFORM_MAC 2</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor"># define UDPC_PLATFORM_LINUX 3</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor"># define UDPC_PLATFORM_UNKNOWN 0</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor"># if defined _WIN32</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_WINDOWS</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor"># elif defined __APPLE__</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_MAC</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor"># elif defined __linux__</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_LINUX</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor"># else</span></div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor"># define UDPC_PLATFORM UDPC_PLATFORM_UNKNOWN</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">// OS-based networking macros</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#if UDPC_PLATFORM == UDPC_PLATFORM_WINDOWS</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor"># include <winsock2.h></span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor"># ifdef UDPC_PLATFORM_MINGW</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor"># include <ws2ipdef.h></span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor"># include <in6addr.h></span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor"># else</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor"># include <Ws2ipdef.h></span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor"># include <In6addr.h></span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor"># ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor"># define UDPC_CLEANUPSOCKET(x) closesocket(x)</span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor"># define UDPC_SOCKETTYPE SOCKET</span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor"># define UDPC_IPV6_SOCKADDR_TYPE SOCKADDR_IN6</span></div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor"># define UDPC_IPV6_ADDR_TYPE IN6_ADDR</span></div>
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"># define UDPC_IPV6_ADDR_SUB(addr) addr.u.Byte</span></div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor"># define UDPC_SOCKET_RETURN_ERROR(socket) (socket == INVALID_SOCKET)</span></div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor"># endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#elif UDPC_PLATFORM == UDPC_PLATFORM_MAC || UDPC_PLATFORM == UDPC_PLATFORM_LINUX</span></div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor"># include <fcntl.h></span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor"># include <netinet/in.h></span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor"># include <sys/socket.h></span></div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor"># include <unistd.h></span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor"># ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor"># define UDPC_CLEANUPSOCKET(x) close(x)</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor"># define UDPC_SOCKETTYPE int</span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor"># define UDPC_IPV6_SOCKADDR_TYPE struct sockaddr_in6</span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor"># define UDPC_IPV6_ADDR_TYPE struct in6_addr</span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor"># define UDPC_IPV6_ADDR_SUB(addr) addr.s6_addr</span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor"># define UDPC_SOCKET_RETURN_ERROR(socket) (socket <= 0)</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"># endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor"># ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor"># define UDPC_CLEANUPSOCKET(x) ((void)0)</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor"># endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment">// other defines</span></div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827"> 81</a></span><span class="comment"></span><span class="preprocessor">#define UDPC_PACKET_MAX_SIZE 8192</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#define UDPC_DEFAULT_PROTOCOL_ID 1357924680 </span><span class="comment">// 0x50f04948</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#ifndef DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment">// other defines continued</span></div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor"># ifndef UDPC_LIBSODIUM_ENABLED</span></div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor"># ifndef crypto_sign_PUBLICKEYBYTES</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor"># define crypto_sign_PUBLICKEYBYTES 1</span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="preprocessor"># ifndef crypto_sign_SECRETKEYBYTES</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor"># define crypto_sign_SECRETKEYBYTES 1</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor"># ifndef crypto_sign_BYTES</span></div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor"># define crypto_sign_BYTES 1</span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="preprocessor"># if UDPC_PLATFORM == UDPC_PLATFORM_WINDOWS</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor"># define UDPC_EXPORT __declspec(dllexport)</span></div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor"># else</span></div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor"># define UDPC_EXPORT</span></div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor"># endif</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#endif </span><span class="comment">// DOXYGEN_SHOULD_SKIP_THIS</span></div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor"># include <cstdint></span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor"># include <stdint.h></span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="keyword">struct </span>UDPC_Context;</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_Context *UDPC_HContext;</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="keyword">typedef</span> <span class="keyword">enum</span> UDPC_EXPORT UDPC_LoggingType {</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c"> 121</a></span> <a class="code hl_variable" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC_SILENT</a>,</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103"> 123</a></span> <a class="code hl_variable" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC_ERROR</a>,</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17"> 125</a></span> <a class="code hl_variable" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC_WARNING</a>,</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15"> 127</a></span> <a class="code hl_variable" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC_INFO</a>,</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431"> 129</a></span> <a class="code hl_variable" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC_VERBOSE</a>,</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> UDPC_DEBUG</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>} UDPC_LoggingType;</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a"> 136</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span> UDPC_EXPORT <a class="code hl_typedef" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a> {</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612"> 138</a></span> <a class="code hl_variable" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC_AUTH_POLICY_FALLBACK</a>=0,</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3"> 140</a></span> <a class="code hl_variable" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC_AUTH_POLICY_STRICT</a>,</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Used internally to get max size of enum</span></div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> UDPC_AUTH_POLICY_SIZE</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>} <a class="code hl_typedef" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC_AuthPolicy</a>;</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="structUDPC__ConnectionId.html"> 153</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> {</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> UDPC_IPV6_ADDR_TYPE addr;</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> uint32_t scope_id;</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> uint16_t port;</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2"> 157</a></span>} <a class="code hl_typedef" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2">UDPC_ConnectionId</a>;</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html"> 167</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a> {</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// id is stored at offset 8, size 4 (uint32_t) even for "empty" PktInfos</span></div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e"> 173</a></span> <span class="keywordtype">char</span> *<a class="code hl_variable" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a>;</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1"> 184</a></span> uint32_t <a class="code hl_variable" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1">flags</a>;</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe"> 192</a></span> uint32_t <a class="code hl_variable" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe">id</a>;</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74"> 202</a></span> uint16_t <a class="code hl_variable" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a>;</div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> uint16_t rtt;</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc"> 205</a></span> <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code hl_variable" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">sender</a>;</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d"> 207</a></span> <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code hl_variable" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">receiver</a>;</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b"> 208</a></span>} <a class="code hl_typedef" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b">UDPC_PacketInfo</a>;</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0"> 229</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span> UDPC_EXPORT <a class="code hl_typedef" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> {</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> UDPC_ET_NONE,</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> UDPC_ET_REQUEST_CONNECT,</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> UDPC_ET_REQUEST_DISCONNECT,</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> UDPC_ET_CONNECTED,</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> UDPC_ET_DISCONNECTED,</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> UDPC_ET_FAIL_CONNECT,</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> UDPC_ET_GOOD_MODE,</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> UDPC_ET_BAD_MODE</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>} <a class="code hl_typedef" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a>;</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="structUDPC__Event.html"> 250</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__Event.html">UDPC_Event</a> {</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <a class="code hl_typedef" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> type;</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> conId;</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="unionUDPC__Event_1_1Value.html"> 253</a></span> <span class="keyword">union </span><a class="code hl_union" href="unionUDPC__Event_1_1Value.html">Value</a> {</div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordtype">int</span> dropAllWithAddr;</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordtype">int</span> enableLibSodium;</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> } v;</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed"> 257</a></span>} <a class="code hl_typedef" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC_Event</a>;</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d"> 269</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code hl_function" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC_create_id</a>(UDPC_IPV6_ADDR_TYPE addr, uint16_t port);</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19"> 278</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code hl_function" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19">UDPC_create_id_full</a>(UDPC_IPV6_ADDR_TYPE addr, uint32_t scope_id, uint16_t port);</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df"> 289</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code hl_function" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC_create_id_anyaddr</a>(uint16_t port);</div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131"> 301</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <a class="code hl_function" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC_create_id_easy</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *addrString, uint16_t port);</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> UDPC_create_id_hostname(<span class="keyword">const</span> <span class="keywordtype">char</span> *hostname, uint16_t port);</div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2"> 321</a></span>UDPC_EXPORT UDPC_HContext <a class="code hl_function" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC_init</a>(<a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId, <span class="keywordtype">int</span> isClient, <span class="keywordtype">int</span> isUsingLibsodium);</div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323"> 341</a></span>UDPC_EXPORT UDPC_HContext <a class="code hl_function" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323">UDPC_init_threaded_update</a>(</div>
+<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId,</div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordtype">int</span> isClient,</div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordtype">int</span> isUsingLibsodium);</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6"> 364</a></span>UDPC_EXPORT UDPC_HContext <a class="code hl_function" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6">UDPC_init_threaded_update_ms</a>(</div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> listenId,</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="keywordtype">int</span> isClient,</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordtype">int</span> updateMS,</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordtype">int</span> isUsingLibsodium);</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f"> 379</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f">UDPC_enable_threaded_update</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833"> 390</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833">UDPC_enable_threaded_update_ms</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> updateMS);</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a"> 399</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a">UDPC_disable_threaded_update</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671"> 406</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671">UDPC_is_valid_context</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e"> 417</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e">UDPC_destroy</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> </div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b"> 441</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC_update</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55"> 453</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55">UDPC_client_initiate_connection</a>(</div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> UDPC_HContext ctx,</div>
+<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId,</div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keywordtype">int</span> enableLibSodium);</div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4"> 476</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC_queue_send</a>(UDPC_HContext ctx, <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> destinationId,</div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keywordtype">int</span> isChecked, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, uint32_t size);</div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> </div>
+<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd"> 495</a></span>UDPC_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code hl_function" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd">UDPC_get_queue_send_current_size</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> </div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2"> 513</a></span>UDPC_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code hl_function" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2">UDPC_get_queued_size</a>(UDPC_HContext ctx, <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> *exists);</div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> </div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f"> 523</a></span>UDPC_EXPORT <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code hl_function" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC_get_max_queued_size</a>();</div>
+<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb"> 531</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb">UDPC_set_accept_new_connections</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> isAccepting);</div>
+<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380"> 544</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380">UDPC_drop_connection</a>(UDPC_HContext ctx, <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId, <span class="keywordtype">int</span> dropAllWithAddr);</div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> </div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082"> 555</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC_has_connection</a>(UDPC_HContext ctx, <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId);</div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547"> 571</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a>* <a class="code hl_function" href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547">UDPC_get_list_connected</a>(UDPC_HContext ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size);</div>
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef"> 577</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC_free_list_connected</a>(<a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> *list);</div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> </div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"><a class="line" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404"> 590</a></span>UDPC_EXPORT uint32_t <a class="code hl_function" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404">UDPC_get_protocol_id</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> </div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a"> 602</a></span>UDPC_EXPORT uint32_t <a class="code hl_function" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC_set_protocol_id</a>(UDPC_HContext ctx, uint32_t <span class="keywordtype">id</span>);</div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
+<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096"> 612</a></span>UDPC_EXPORT UDPC_LoggingType <a class="code hl_function" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096">UDPC_get_logging_type</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> </div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305"> 623</a></span>UDPC_EXPORT UDPC_LoggingType <a class="code hl_function" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC_set_logging_type</a>(UDPC_HContext ctx, UDPC_LoggingType loggingType);</div>
+<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> </div>
+<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d"> 633</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d">UDPC_get_receiving_events</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> </div>
+<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787"> 644</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787">UDPC_set_receiving_events</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> isReceivingEvents);</div>
+<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> </div>
+<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510"> 657</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__Event.html">UDPC_Event</a> <a class="code hl_function" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510">UDPC_get_event</a>(UDPC_HContext ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *remaining);</div>
+<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> </div>
+<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"><a class="line" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3"> 665</a></span>UDPC_EXPORT <a class="code hl_struct" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a> <a class="code hl_function" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3">UDPC_get_received</a>(UDPC_HContext ctx, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *remaining);</div>
+<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> </div>
+<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845"> 674</a></span>UDPC_EXPORT <span class="keywordtype">void</span> <a class="code hl_function" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC_free_PacketInfo</a>(<a class="code hl_struct" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a> pInfo);</div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> </div>
+<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"><a class="line" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1"> 693</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1">UDPC_set_libsodium_keys</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sk, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
+<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> </div>
+<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe"> 708</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe">UDPC_set_libsodium_key_easy</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sk);</div>
+<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> </div>
+<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9"> 718</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9">UDPC_unset_libsodium_keys</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> </div>
+<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8"> 735</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC_add_whitelist_pk</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
+<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> </div>
+<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172"> 745</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172">UDPC_has_whitelist_pk</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
+<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> </div>
+<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"><a class="line" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383"> 755</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383">UDPC_remove_whitelist_pk</a>(UDPC_HContext ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *pk);</div>
+<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> </div>
+<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26"> 771</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC_clear_whitelist</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> </div>
+<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"><a class="line" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4"> 787</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4">UDPC_get_auth_policy</a>(UDPC_HContext ctx);</div>
+<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> </div>
+<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581"> 803</a></span>UDPC_EXPORT <span class="keywordtype">int</span> <a class="code hl_function" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC_set_auth_policy</a>(UDPC_HContext ctx, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> </div>
+<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span>UDPC_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *UDPC_atostr_cid(UDPC_HContext ctx, <a class="code hl_struct" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> connectionId);</div>
+<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> </div>
+<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span>UDPC_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *UDPC_atostr(UDPC_HContext ctx, UDPC_IPV6_ADDR_TYPE addr);</div>
+<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> </div>
+<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span><span class="comment">// =============================================================================</span></div>
+<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span><span class="comment">// Helpers</span></div>
+<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> </div>
+<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"><a class="line" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6"> 813</a></span>UDPC_EXPORT UDPC_IPV6_ADDR_TYPE <a class="code hl_function" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC_strtoa</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *addrStr);</div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> </div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span>UDPC_EXPORT UDPC_IPV6_ADDR_TYPE UDPC_strtoa_link(<span class="keyword">const</span> <span class="keywordtype">char</span> *addrStr, uint32_t *linkId_out);</div>
+<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> </div>
+<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span>UDPC_EXPORT UDPC_IPV6_ADDR_TYPE UDPC_a4toa6(uint32_t a4_be);</div>
+<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> </div>
+<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span>UDPC_EXPORT <span class="keywordtype">int</span> UDPC_is_big_endian();</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span>UDPC_EXPORT uint16_t UDPC_no16i(uint16_t i);</div>
+<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span>UDPC_EXPORT uint32_t UDPC_no32i(uint32_t i);</div>
+<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span>UDPC_EXPORT uint64_t UDPC_no64i(uint64_t i);</div>
+<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span>UDPC_EXPORT <span class="keywordtype">float</span> UDPC_no32f(<span class="keywordtype">float</span> f);</div>
+<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span>UDPC_EXPORT <span class="keywordtype">double</span> UDPC_no64f(<span class="keywordtype">double</span> f);</div>
+<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> </div>
+<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span>}</div>
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aUDPC_8h_html_a0720bec1922660c983b1b3d9f6a5de3a"><div class="ttname"><a href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC_set_protocol_id</a></div><div class="ttdeci">UDPC_EXPORT uint32_t UDPC_set_protocol_id(UDPC_HContext ctx, uint32_t id)</div><div class="ttdoc">Sets the protocol id of the UDPC context.</div></div>
<div class="ttc" id="aUDPC_8h_html_a0e2e0c6a6a442db2cb3223d26f849d26"><div class="ttname"><a href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC_clear_whitelist</a></div><div class="ttdeci">UDPC_EXPORT int UDPC_clear_whitelist(UDPC_HContext ctx)</div><div class="ttdoc">Clears the public key whitelist.</div></div>
<div class="ttc" id="aUDPC_8h_html_a0fa3e1e54877029a226ab9cfb74215df"><div class="ttname"><a href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC_create_id_anyaddr</a></div><div class="ttdeci">UDPC_EXPORT UDPC_ConnectionId UDPC_create_id_anyaddr(uint16_t port)</div><div class="ttdoc">Creates an UDPC_ConnectionId with the given port.</div></div>
<div class="ttc" id="aUDPC_8h_html_a68ed6dcb37c6024486fad28ab0bed845"><div class="ttname"><a href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC_free_PacketInfo</a></div><div class="ttdeci">UDPC_EXPORT void UDPC_free_PacketInfo(UDPC_PacketInfo pInfo)</div><div class="ttdoc">Frees a UDPC_PacketInfo.</div></div>
<div class="ttc" id="aUDPC_8h_html_a68fefba9edca7cd0a81d97ac27c70c0b"><div class="ttname"><a href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC_update</a></div><div class="ttdeci">UDPC_EXPORT void UDPC_update(UDPC_HContext ctx)</div><div class="ttdoc">Updates the context.</div></div>
<div class="ttc" id="aUDPC_8h_html_a6af4629253b3ed1f411015410cee9ad3"><div class="ttname"><a href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC_AUTH_POLICY_STRICT</a></div><div class="ttdeci">UDPC_AUTH_POLICY_STRICT</div><div class="ttdoc">Only peers with public key verification will be allowed.</div><div class="ttdef"><b>Definition:</b> UDPC.h:140</div></div>
+<div class="ttc" id="aUDPC_8h_html_a6b4355331c9b2797af0c13ce16515547"><div class="ttname"><a href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547">UDPC_get_list_connected</a></div><div class="ttdeci">UDPC_EXPORT UDPC_ConnectionId * UDPC_get_list_connected(UDPC_HContext ctx, unsigned int *size)</div><div class="ttdoc">Gets a dynamically allocated array of connected peers' identifiers.</div></div>
<div class="ttc" id="aUDPC_8h_html_a6c90dc723e67a07bf65c1fc97e526305"><div class="ttname"><a href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC_set_logging_type</a></div><div class="ttdeci">UDPC_EXPORT UDPC_LoggingType UDPC_set_logging_type(UDPC_HContext ctx, UDPC_LoggingType loggingType)</div><div class="ttdoc">Sets the logging type of the UDPC context.</div></div>
<div class="ttc" id="aUDPC_8h_html_a71f9bf85a02ddd1b4c921fe9b6694fe8"><div class="ttname"><a href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC_add_whitelist_pk</a></div><div class="ttdeci">UDPC_EXPORT int UDPC_add_whitelist_pk(UDPC_HContext ctx, const unsigned char *pk)</div><div class="ttdoc">Adds a public key to the whitelist.</div></div>
<div class="ttc" id="aUDPC_8h_html_a7527954b63f502479bdd3771df7cf3a4"><div class="ttname"><a href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC_queue_send</a></div><div class="ttdeci">UDPC_EXPORT void UDPC_queue_send(UDPC_HContext ctx, UDPC_ConnectionId destinationId, int isChecked, const void *data, uint32_t size)</div><div class="ttdoc">Queues a packet to be sent to the specified peer.</div></div>
<div class="ttc" id="aUDPC_8h_html_a7983f38fe13677f5b35b90cefa54974f"><div class="ttname"><a href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC_get_max_queued_size</a></div><div class="ttdeci">UDPC_EXPORT unsigned long UDPC_get_max_queued_size()</div><div class="ttdoc">Gets the size limit of a connection's queue of queued packets.</div></div>
<div class="ttc" id="aUDPC_8h_html_a7b3215b65686670720f098eda2ca1eed"><div class="ttname"><a href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC_Event</a></div><div class="ttdeci">struct UDPC_EXPORT UDPC_Event UDPC_Event</div><div class="ttdoc">A struct containing information related to the type of event.</div></div>
-<div class="ttc" id="aUDPC_8h_html_a7fe3e502f4c6f86ce5b2cd1f303aa213"><div class="ttname"><a href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213">UDPC_get_list_connected</a></div><div class="ttdeci">UDPC_EXPORT UDPC_ConnectionId * UDPC_get_list_connected(UDPC_HContext ctx, unsigned int *size)</div><div class="ttdoc">Gets a dynamically allocated array of connected peers' identifiers.</div></div>
<div class="ttc" id="aUDPC_8h_html_a8880067a93211c257763c42264f6ceef"><div class="ttname"><a href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC_free_list_connected</a></div><div class="ttdeci">UDPC_EXPORT void UDPC_free_list_connected(UDPC_ConnectionId *list)</div><div class="ttdoc">Cleans up a dynamically allocated array of connected peers' identifiers.</div></div>
<div class="ttc" id="aUDPC_8h_html_a89dee65fcd5b70d25abbf6d4a3ee59f2"><div class="ttname"><a href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC_init</a></div><div class="ttdeci">UDPC_EXPORT UDPC_HContext UDPC_init(UDPC_ConnectionId listenId, int isClient, int isUsingLibsodium)</div><div class="ttdoc">Creates an UDPC_HContext that holds state for connections.</div></div>
<div class="ttc" id="aUDPC_8h_html_a8b80d2df882f03aeee8a92bed7fb0131"><div class="ttname"><a href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC_create_id_easy</a></div><div class="ttdeci">UDPC_EXPORT UDPC_ConnectionId UDPC_create_id_easy(const char *addrString, uint16_t port)</div><div class="ttdoc">Creates an UDPC_ConnectionId with the given addr string and port.</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">Data Structures</div> </div>
+ <div class="headertitle"><div class="title">Data Structures</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">Data Structure Index</div> </div>
+ <div class="headertitle"><div class="title">Data Structure Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_U">U</a> | <a class="qindex" href="#letter_V">V</a></div>
<div class="classindex">
<dl class="classindex even">
-<dt class="alphachar"><a name="letter_U">U</a></dt>
+<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
<dd><a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a></dd><dd><a class="el" href="structUDPC__Event.html">UDPC_Event</a></dd><dd><a class="el" href="structUDPC__PacketInfo.html">UDPC_PacketInfo</a></dd></dl>
<dl class="classindex odd">
-<dt class="alphachar"><a name="letter_V">V</a></dt>
+<dt class="alphachar"><a id="letter_V" name="letter_V">V</a></dt>
<dd><a class="el" href="unionUDPC__Event_1_1Value.html">UDPC_Event::Value</a></dd></dl>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
</div>
</div><!-- top -->
<div class="header">
- <div class="headertitle">
-<div class="title">src Directory Reference</div> </div>
+ <div class="headertitle"><div class="title">src Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
-<tr class="memitem:UDPC_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html">UDPC.h</a> <a href="UDPC_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="UDPC_8h.html">UDPC.h</a> <a href="UDPC_8h_source.html">[code]</a></td></tr>
<tr class="memdesc:UDPC_8h"><td class="mdescLeft"> </td><td class="mdescRight">Public API for UDPConnection. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
-/* The standard CSS for doxygen 1.9.1 */
+/* The standard CSS for doxygen 1.9.4 */
body, table, div, p, dl {
font: 400 14px/22px Roboto,sans-serif;
color: #4665A2;
}
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
+
/* @end */
dl.el {
}
ul {
- overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+ overflow: visible;
}
#side-nav ul {
span.lineno {
padding-right: 4px;
+ margin-right: 9px;
text-align: right;
border-right: 2px solid #0F0;
background-color: #E8E8E8;
vertical-align: middle;
}
+.compoundTemplParams {
+ color: #4665A2;
+ font-size: 80%;
+ line-height: 120%;
+}
+
/* @group Code Colorization */
span.keyword {
}
+#projectrow
+{
+ height: 56px;
+}
+
#projectlogo
{
text-align: center;
#projectalign
{
vertical-align: middle;
+ padding-left: 0.5em;
}
#projectname
{
- font: 300% Tahoma, Arial,sans-serif;
+ font: 200% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 2px 0px;
}
#projectbrief
{
- font: 120% Tahoma, Arial,sans-serif;
+ font: 90% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
*/
}
+span.obfuscator {
+ display: none;
+}
+
.PageDocRTL-title div.toc li.level1 {
margin-left: 0 !important;
margin-right: 0;
#powerTip {
cursor: default;
- white-space: nowrap;
+ /*white-space: nowrap;*/
background-color: white;
border: 1px solid gray;
border-radius: 4px 4px 4px 4px;
margin-left: 0;
}
+code.JavaDocCode {
+ direction:ltr;
+}
+
tt, code, kbd, samp
{
display: inline-block;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</div>
<div class="header">
- <div class="headertitle">
-<div class="title">File List</div> </div>
+ <div class="headertitle"><div class="title">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
-<li>data
-: <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">UDPC_PacketInfo</a>
-</li>
-<li>dataSize
-: <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">UDPC_PacketInfo</a>
-</li>
-<li>flags
-: <a class="el" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1">UDPC_PacketInfo</a>
-</li>
-<li>id
-: <a class="el" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe">UDPC_PacketInfo</a>
-</li>
-<li>receiver
-: <a class="el" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">UDPC_PacketInfo</a>
-</li>
-<li>sender
-: <a class="el" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">UDPC_PacketInfo</a>
-</li>
+<li>data : <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">UDPC_PacketInfo</a></li>
+<li>dataSize : <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">UDPC_PacketInfo</a></li>
+<li>flags : <a class="el" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1">UDPC_PacketInfo</a></li>
+<li>id : <a class="el" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe">UDPC_PacketInfo</a></li>
+<li>receiver : <a class="el" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">UDPC_PacketInfo</a></li>
+<li>sender : <a class="el" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">UDPC_PacketInfo</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
 <ul>
-<li>data
-: <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">UDPC_PacketInfo</a>
-</li>
-<li>dataSize
-: <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">UDPC_PacketInfo</a>
-</li>
-<li>flags
-: <a class="el" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1">UDPC_PacketInfo</a>
-</li>
-<li>id
-: <a class="el" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe">UDPC_PacketInfo</a>
-</li>
-<li>receiver
-: <a class="el" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">UDPC_PacketInfo</a>
-</li>
-<li>sender
-: <a class="el" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">UDPC_PacketInfo</a>
-</li>
+<li>data : <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">UDPC_PacketInfo</a></li>
+<li>dataSize : <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">UDPC_PacketInfo</a></li>
+<li>flags : <a class="el" href="structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1">UDPC_PacketInfo</a></li>
+<li>id : <a class="el" href="structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe">UDPC_PacketInfo</a></li>
+<li>receiver : <a class="el" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">UDPC_PacketInfo</a></li>
+<li>sender : <a class="el" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">UDPC_PacketInfo</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
-<h3><a id="index_u"></a>- u -</h3><ul>
-<li>UDPC_add_whitelist_pk()
-: <a class="el" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC.h</a>
-</li>
-<li>UDPC_AUTH_POLICY_FALLBACK
-: <a class="el" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC.h</a>
-</li>
-<li>UDPC_AUTH_POLICY_STRICT
-: <a class="el" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC.h</a>
-</li>
-<li>UDPC_AuthPolicy
-: <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC.h</a>
-</li>
-<li>UDPC_clear_whitelist()
-: <a class="el" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC.h</a>
-</li>
-<li>UDPC_client_initiate_connection()
-: <a class="el" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55">UDPC.h</a>
-</li>
-<li>UDPC_ConnectionId
-: <a class="el" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2">UDPC.h</a>
-</li>
-<li>UDPC_create_id()
-: <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC.h</a>
-</li>
-<li>UDPC_create_id_anyaddr()
-: <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC.h</a>
-</li>
-<li>UDPC_create_id_easy()
-: <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC.h</a>
-</li>
-<li>UDPC_create_id_full()
-: <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19">UDPC.h</a>
-</li>
-<li>UDPC_destroy()
-: <a class="el" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e">UDPC.h</a>
-</li>
-<li>UDPC_disable_threaded_update()
-: <a class="el" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a">UDPC.h</a>
-</li>
-<li>UDPC_drop_connection()
-: <a class="el" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380">UDPC.h</a>
-</li>
-<li>UDPC_enable_threaded_update()
-: <a class="el" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f">UDPC.h</a>
-</li>
-<li>UDPC_enable_threaded_update_ms()
-: <a class="el" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833">UDPC.h</a>
-</li>
-<li>UDPC_ERROR
-: <a class="el" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC.h</a>
-</li>
-<li>UDPC_Event
-: <a class="el" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC.h</a>
-</li>
-<li>UDPC_EventType
-: <a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC.h</a>
-</li>
-<li>UDPC_free_list_connected()
-: <a class="el" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC.h</a>
-</li>
-<li>UDPC_free_PacketInfo()
-: <a class="el" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC.h</a>
-</li>
-<li>UDPC_get_auth_policy()
-: <a class="el" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4">UDPC.h</a>
-</li>
-<li>UDPC_get_event()
-: <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510">UDPC.h</a>
-</li>
-<li>UDPC_get_list_connected()
-: <a class="el" href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213">UDPC.h</a>
-</li>
-<li>UDPC_get_logging_type()
-: <a class="el" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096">UDPC.h</a>
-</li>
-<li>UDPC_get_max_queued_size()
-: <a class="el" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC.h</a>
-</li>
-<li>UDPC_get_protocol_id()
-: <a class="el" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404">UDPC.h</a>
-</li>
-<li>UDPC_get_queue_send_current_size()
-: <a class="el" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd">UDPC.h</a>
-</li>
-<li>UDPC_get_queued_size()
-: <a class="el" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2">UDPC.h</a>
-</li>
-<li>UDPC_get_received()
-: <a class="el" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3">UDPC.h</a>
-</li>
-<li>UDPC_get_receiving_events()
-: <a class="el" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d">UDPC.h</a>
-</li>
-<li>UDPC_has_connection()
-: <a class="el" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC.h</a>
-</li>
-<li>UDPC_has_whitelist_pk()
-: <a class="el" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172">UDPC.h</a>
-</li>
-<li>UDPC_INFO
-: <a class="el" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC.h</a>
-</li>
-<li>UDPC_init()
-: <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC.h</a>
-</li>
-<li>UDPC_init_threaded_update()
-: <a class="el" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323">UDPC.h</a>
-</li>
-<li>UDPC_init_threaded_update_ms()
-: <a class="el" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6">UDPC.h</a>
-</li>
-<li>UDPC_is_valid_context()
-: <a class="el" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671">UDPC.h</a>
-</li>
-<li>UDPC_PACKET_MAX_SIZE
-: <a class="el" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827">UDPC.h</a>
-</li>
-<li>UDPC_PacketInfo
-: <a class="el" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b">UDPC.h</a>
-</li>
-<li>UDPC_queue_send()
-: <a class="el" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC.h</a>
-</li>
-<li>UDPC_remove_whitelist_pk()
-: <a class="el" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383">UDPC.h</a>
-</li>
-<li>UDPC_set_accept_new_connections()
-: <a class="el" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb">UDPC.h</a>
-</li>
-<li>UDPC_set_auth_policy()
-: <a class="el" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC.h</a>
-</li>
-<li>UDPC_set_libsodium_key_easy()
-: <a class="el" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe">UDPC.h</a>
-</li>
-<li>UDPC_set_libsodium_keys()
-: <a class="el" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1">UDPC.h</a>
-</li>
-<li>UDPC_set_logging_type()
-: <a class="el" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC.h</a>
-</li>
-<li>UDPC_set_protocol_id()
-: <a class="el" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC.h</a>
-</li>
-<li>UDPC_set_receiving_events()
-: <a class="el" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787">UDPC.h</a>
-</li>
-<li>UDPC_SILENT
-: <a class="el" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC.h</a>
-</li>
-<li>UDPC_strtoa()
-: <a class="el" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC.h</a>
-</li>
-<li>UDPC_unset_libsodium_keys()
-: <a class="el" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9">UDPC.h</a>
-</li>
-<li>UDPC_update()
-: <a class="el" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC.h</a>
-</li>
-<li>UDPC_VERBOSE
-: <a class="el" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC.h</a>
-</li>
-<li>UDPC_WARNING
-: <a class="el" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC.h</a>
-</li>
+<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
+<li>UDPC_add_whitelist_pk() : <a class="el" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC.h</a></li>
+<li>UDPC_AUTH_POLICY_FALLBACK : <a class="el" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC.h</a></li>
+<li>UDPC_AUTH_POLICY_STRICT : <a class="el" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC.h</a></li>
+<li>UDPC_AuthPolicy : <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC.h</a></li>
+<li>UDPC_clear_whitelist() : <a class="el" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC.h</a></li>
+<li>UDPC_client_initiate_connection() : <a class="el" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55">UDPC.h</a></li>
+<li>UDPC_ConnectionId : <a class="el" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2">UDPC.h</a></li>
+<li>UDPC_create_id() : <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC.h</a></li>
+<li>UDPC_create_id_anyaddr() : <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC.h</a></li>
+<li>UDPC_create_id_easy() : <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC.h</a></li>
+<li>UDPC_create_id_full() : <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19">UDPC.h</a></li>
+<li>UDPC_destroy() : <a class="el" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e">UDPC.h</a></li>
+<li>UDPC_disable_threaded_update() : <a class="el" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a">UDPC.h</a></li>
+<li>UDPC_drop_connection() : <a class="el" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380">UDPC.h</a></li>
+<li>UDPC_enable_threaded_update() : <a class="el" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f">UDPC.h</a></li>
+<li>UDPC_enable_threaded_update_ms() : <a class="el" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833">UDPC.h</a></li>
+<li>UDPC_ERROR : <a class="el" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC.h</a></li>
+<li>UDPC_Event : <a class="el" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC.h</a></li>
+<li>UDPC_EventType : <a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC.h</a></li>
+<li>UDPC_free_list_connected() : <a class="el" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC.h</a></li>
+<li>UDPC_free_PacketInfo() : <a class="el" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC.h</a></li>
+<li>UDPC_get_auth_policy() : <a class="el" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4">UDPC.h</a></li>
+<li>UDPC_get_event() : <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510">UDPC.h</a></li>
+<li>UDPC_get_list_connected() : <a class="el" href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547">UDPC.h</a></li>
+<li>UDPC_get_logging_type() : <a class="el" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096">UDPC.h</a></li>
+<li>UDPC_get_max_queued_size() : <a class="el" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC.h</a></li>
+<li>UDPC_get_protocol_id() : <a class="el" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404">UDPC.h</a></li>
+<li>UDPC_get_queue_send_current_size() : <a class="el" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd">UDPC.h</a></li>
+<li>UDPC_get_queued_size() : <a class="el" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2">UDPC.h</a></li>
+<li>UDPC_get_received() : <a class="el" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3">UDPC.h</a></li>
+<li>UDPC_get_receiving_events() : <a class="el" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d">UDPC.h</a></li>
+<li>UDPC_has_connection() : <a class="el" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC.h</a></li>
+<li>UDPC_has_whitelist_pk() : <a class="el" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172">UDPC.h</a></li>
+<li>UDPC_INFO : <a class="el" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC.h</a></li>
+<li>UDPC_init() : <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC.h</a></li>
+<li>UDPC_init_threaded_update() : <a class="el" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323">UDPC.h</a></li>
+<li>UDPC_init_threaded_update_ms() : <a class="el" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6">UDPC.h</a></li>
+<li>UDPC_is_valid_context() : <a class="el" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671">UDPC.h</a></li>
+<li>UDPC_PACKET_MAX_SIZE : <a class="el" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827">UDPC.h</a></li>
+<li>UDPC_PacketInfo : <a class="el" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b">UDPC.h</a></li>
+<li>UDPC_queue_send() : <a class="el" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC.h</a></li>
+<li>UDPC_remove_whitelist_pk() : <a class="el" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383">UDPC.h</a></li>
+<li>UDPC_set_accept_new_connections() : <a class="el" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb">UDPC.h</a></li>
+<li>UDPC_set_auth_policy() : <a class="el" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC.h</a></li>
+<li>UDPC_set_libsodium_key_easy() : <a class="el" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe">UDPC.h</a></li>
+<li>UDPC_set_libsodium_keys() : <a class="el" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1">UDPC.h</a></li>
+<li>UDPC_set_logging_type() : <a class="el" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC.h</a></li>
+<li>UDPC_set_protocol_id() : <a class="el" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC.h</a></li>
+<li>UDPC_set_receiving_events() : <a class="el" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787">UDPC.h</a></li>
+<li>UDPC_SILENT : <a class="el" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC.h</a></li>
+<li>UDPC_strtoa() : <a class="el" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC.h</a></li>
+<li>UDPC_unset_libsodium_keys() : <a class="el" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9">UDPC.h</a></li>
+<li>UDPC_update() : <a class="el" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC.h</a></li>
+<li>UDPC_VERBOSE : <a class="el" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC.h</a></li>
+<li>UDPC_WARNING : <a class="el" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
 <ul>
-<li>UDPC_PACKET_MAX_SIZE
-: <a class="el" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827">UDPC.h</a>
-</li>
+<li>UDPC_PACKET_MAX_SIZE : <a class="el" href="UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
 
-<h3><a id="index_u"></a>- u -</h3><ul>
-<li>UDPC_add_whitelist_pk()
-: <a class="el" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC.h</a>
-</li>
-<li>UDPC_clear_whitelist()
-: <a class="el" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC.h</a>
-</li>
-<li>UDPC_client_initiate_connection()
-: <a class="el" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55">UDPC.h</a>
-</li>
-<li>UDPC_create_id()
-: <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC.h</a>
-</li>
-<li>UDPC_create_id_anyaddr()
-: <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC.h</a>
-</li>
-<li>UDPC_create_id_easy()
-: <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC.h</a>
-</li>
-<li>UDPC_create_id_full()
-: <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19">UDPC.h</a>
-</li>
-<li>UDPC_destroy()
-: <a class="el" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e">UDPC.h</a>
-</li>
-<li>UDPC_disable_threaded_update()
-: <a class="el" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a">UDPC.h</a>
-</li>
-<li>UDPC_drop_connection()
-: <a class="el" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380">UDPC.h</a>
-</li>
-<li>UDPC_enable_threaded_update()
-: <a class="el" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f">UDPC.h</a>
-</li>
-<li>UDPC_enable_threaded_update_ms()
-: <a class="el" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833">UDPC.h</a>
-</li>
-<li>UDPC_free_list_connected()
-: <a class="el" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC.h</a>
-</li>
-<li>UDPC_free_PacketInfo()
-: <a class="el" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC.h</a>
-</li>
-<li>UDPC_get_auth_policy()
-: <a class="el" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4">UDPC.h</a>
-</li>
-<li>UDPC_get_event()
-: <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510">UDPC.h</a>
-</li>
-<li>UDPC_get_list_connected()
-: <a class="el" href="UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213">UDPC.h</a>
-</li>
-<li>UDPC_get_logging_type()
-: <a class="el" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096">UDPC.h</a>
-</li>
-<li>UDPC_get_max_queued_size()
-: <a class="el" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC.h</a>
-</li>
-<li>UDPC_get_protocol_id()
-: <a class="el" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404">UDPC.h</a>
-</li>
-<li>UDPC_get_queue_send_current_size()
-: <a class="el" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd">UDPC.h</a>
-</li>
-<li>UDPC_get_queued_size()
-: <a class="el" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2">UDPC.h</a>
-</li>
-<li>UDPC_get_received()
-: <a class="el" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3">UDPC.h</a>
-</li>
-<li>UDPC_get_receiving_events()
-: <a class="el" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d">UDPC.h</a>
-</li>
-<li>UDPC_has_connection()
-: <a class="el" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC.h</a>
-</li>
-<li>UDPC_has_whitelist_pk()
-: <a class="el" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172">UDPC.h</a>
-</li>
-<li>UDPC_init()
-: <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC.h</a>
-</li>
-<li>UDPC_init_threaded_update()
-: <a class="el" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323">UDPC.h</a>
-</li>
-<li>UDPC_init_threaded_update_ms()
-: <a class="el" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6">UDPC.h</a>
-</li>
-<li>UDPC_is_valid_context()
-: <a class="el" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671">UDPC.h</a>
-</li>
-<li>UDPC_queue_send()
-: <a class="el" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC.h</a>
-</li>
-<li>UDPC_remove_whitelist_pk()
-: <a class="el" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383">UDPC.h</a>
-</li>
-<li>UDPC_set_accept_new_connections()
-: <a class="el" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb">UDPC.h</a>
-</li>
-<li>UDPC_set_auth_policy()
-: <a class="el" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC.h</a>
-</li>
-<li>UDPC_set_libsodium_key_easy()
-: <a class="el" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe">UDPC.h</a>
-</li>
-<li>UDPC_set_libsodium_keys()
-: <a class="el" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1">UDPC.h</a>
-</li>
-<li>UDPC_set_logging_type()
-: <a class="el" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC.h</a>
-</li>
-<li>UDPC_set_protocol_id()
-: <a class="el" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC.h</a>
-</li>
-<li>UDPC_set_receiving_events()
-: <a class="el" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787">UDPC.h</a>
-</li>
-<li>UDPC_strtoa()
-: <a class="el" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC.h</a>
-</li>
-<li>UDPC_unset_libsodium_keys()
-: <a class="el" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9">UDPC.h</a>
-</li>
-<li>UDPC_update()
-: <a class="el" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC.h</a>
-</li>
+<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
+<li>UDPC_add_whitelist_pk() : <a class="el" href="UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8">UDPC.h</a></li>
+<li>UDPC_clear_whitelist() : <a class="el" href="UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26">UDPC.h</a></li>
+<li>UDPC_client_initiate_connection() : <a class="el" href="UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55">UDPC.h</a></li>
+<li>UDPC_create_id() : <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d">UDPC.h</a></li>
+<li>UDPC_create_id_anyaddr() : <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df">UDPC.h</a></li>
+<li>UDPC_create_id_easy() : <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131">UDPC.h</a></li>
+<li>UDPC_create_id_full() : <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19">UDPC.h</a></li>
+<li>UDPC_destroy() : <a class="el" href="UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e">UDPC.h</a></li>
+<li>UDPC_disable_threaded_update() : <a class="el" href="UDPC_8h.html#a404d2c7a83903004f928737241ecc63a">UDPC.h</a></li>
+<li>UDPC_drop_connection() : <a class="el" href="UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380">UDPC.h</a></li>
+<li>UDPC_enable_threaded_update() : <a class="el" href="UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f">UDPC.h</a></li>
+<li>UDPC_enable_threaded_update_ms() : <a class="el" href="UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833">UDPC.h</a></li>
+<li>UDPC_free_list_connected() : <a class="el" href="UDPC_8h.html#a8880067a93211c257763c42264f6ceef">UDPC.h</a></li>
+<li>UDPC_free_PacketInfo() : <a class="el" href="UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845">UDPC.h</a></li>
+<li>UDPC_get_auth_policy() : <a class="el" href="UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4">UDPC.h</a></li>
+<li>UDPC_get_event() : <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510">UDPC.h</a></li>
+<li>UDPC_get_list_connected() : <a class="el" href="UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547">UDPC.h</a></li>
+<li>UDPC_get_logging_type() : <a class="el" href="UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096">UDPC.h</a></li>
+<li>UDPC_get_max_queued_size() : <a class="el" href="UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f">UDPC.h</a></li>
+<li>UDPC_get_protocol_id() : <a class="el" href="UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404">UDPC.h</a></li>
+<li>UDPC_get_queue_send_current_size() : <a class="el" href="UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd">UDPC.h</a></li>
+<li>UDPC_get_queued_size() : <a class="el" href="UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2">UDPC.h</a></li>
+<li>UDPC_get_received() : <a class="el" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3">UDPC.h</a></li>
+<li>UDPC_get_receiving_events() : <a class="el" href="UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d">UDPC.h</a></li>
+<li>UDPC_has_connection() : <a class="el" href="UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082">UDPC.h</a></li>
+<li>UDPC_has_whitelist_pk() : <a class="el" href="UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172">UDPC.h</a></li>
+<li>UDPC_init() : <a class="el" href="UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2">UDPC.h</a></li>
+<li>UDPC_init_threaded_update() : <a class="el" href="UDPC_8h.html#a614e2a058b89839d53fe9d348a058323">UDPC.h</a></li>
+<li>UDPC_init_threaded_update_ms() : <a class="el" href="UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6">UDPC.h</a></li>
+<li>UDPC_is_valid_context() : <a class="el" href="UDPC_8h.html#ac01480f803b063e2b44794420df0f671">UDPC.h</a></li>
+<li>UDPC_queue_send() : <a class="el" href="UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4">UDPC.h</a></li>
+<li>UDPC_remove_whitelist_pk() : <a class="el" href="UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383">UDPC.h</a></li>
+<li>UDPC_set_accept_new_connections() : <a class="el" href="UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb">UDPC.h</a></li>
+<li>UDPC_set_auth_policy() : <a class="el" href="UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581">UDPC.h</a></li>
+<li>UDPC_set_libsodium_key_easy() : <a class="el" href="UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe">UDPC.h</a></li>
+<li>UDPC_set_libsodium_keys() : <a class="el" href="UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1">UDPC.h</a></li>
+<li>UDPC_set_logging_type() : <a class="el" href="UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305">UDPC.h</a></li>
+<li>UDPC_set_protocol_id() : <a class="el" href="UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a">UDPC.h</a></li>
+<li>UDPC_set_receiving_events() : <a class="el" href="UDPC_8h.html#a380c91ee395cff22189c7988c3381787">UDPC.h</a></li>
+<li>UDPC_strtoa() : <a class="el" href="UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6">UDPC.h</a></li>
+<li>UDPC_unset_libsodium_keys() : <a class="el" href="UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9">UDPC.h</a></li>
+<li>UDPC_update() : <a class="el" href="UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
 <ul>
-<li>UDPC_AuthPolicy
-: <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC.h</a>
-</li>
-<li>UDPC_ConnectionId
-: <a class="el" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2">UDPC.h</a>
-</li>
-<li>UDPC_Event
-: <a class="el" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC.h</a>
-</li>
-<li>UDPC_EventType
-: <a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC.h</a>
-</li>
-<li>UDPC_PacketInfo
-: <a class="el" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b">UDPC.h</a>
-</li>
+<li>UDPC_AuthPolicy : <a class="el" href="UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a">UDPC.h</a></li>
+<li>UDPC_ConnectionId : <a class="el" href="UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2">UDPC.h</a></li>
+<li>UDPC_Event : <a class="el" href="UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed">UDPC.h</a></li>
+<li>UDPC_EventType : <a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC.h</a></li>
+<li>UDPC_PacketInfo : <a class="el" href="UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div class="contents">
 <ul>
-<li>UDPC_AUTH_POLICY_FALLBACK
-: <a class="el" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC.h</a>
-</li>
-<li>UDPC_AUTH_POLICY_STRICT
-: <a class="el" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC.h</a>
-</li>
-<li>UDPC_ERROR
-: <a class="el" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC.h</a>
-</li>
-<li>UDPC_INFO
-: <a class="el" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC.h</a>
-</li>
-<li>UDPC_SILENT
-: <a class="el" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC.h</a>
-</li>
-<li>UDPC_VERBOSE
-: <a class="el" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC.h</a>
-</li>
-<li>UDPC_WARNING
-: <a class="el" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC.h</a>
-</li>
+<li>UDPC_AUTH_POLICY_FALLBACK : <a class="el" href="UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612">UDPC.h</a></li>
+<li>UDPC_AUTH_POLICY_STRICT : <a class="el" href="UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3">UDPC.h</a></li>
+<li>UDPC_ERROR : <a class="el" href="UDPC_8h.html#ac04213a4287500a9c5330f543eac3103">UDPC.h</a></li>
+<li>UDPC_INFO : <a class="el" href="UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15">UDPC.h</a></li>
+<li>UDPC_SILENT : <a class="el" href="UDPC_8h.html#aa5c197773a0914125cb358771139065c">UDPC.h</a></li>
+<li>UDPC_VERBOSE : <a class="el" href="UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431">UDPC.h</a></li>
+<li>UDPC_WARNING : <a class="el" href="UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: UDPConnection</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
</iframe>
</div>
-<div class="PageDoc"><div class="header">
- <div class="headertitle">
-<div class="title">UDPConnection </div> </div>
+<div><div class="header">
+ <div class="headertitle"><div class="title">UDPConnection </div></div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><p><a class="el" href="UDPC_8h.html">UDPC.h</a> </p>
+<div class="textblock"><p ><a class="el" href="UDPC_8h.html">UDPC.h</a> </p>
</div></div><!-- PageDoc -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
-/*! jQuery v3.4.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=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,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},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.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(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<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),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-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(m.childNodes),m.childNodes),t[m.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&&((e?e.ownerDocument||e:m)!==C&&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&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$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[k]=!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:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),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=k,!C.getElementsByName||!C.getElementsByName(k).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){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";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("!=",$)}),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===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,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]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[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){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{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=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(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<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.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 k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.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(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_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)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").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 Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.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(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.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?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.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=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.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,k.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)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.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"===k.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"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.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)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.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?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.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)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+/*! jQuery v3.6.0 | (c) OpenJS 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&&"function"!=typeof e.item},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.6.0",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<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+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="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",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="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";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<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{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<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\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<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\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<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\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="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_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<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);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<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\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<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").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="<form></form><form></form>",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<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").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<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
/*! jQuery UI - v1.12.1 - 2019-01-27
* http://jqueryui.com
* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
if ('children' in data) {
result+='<ul>';
for (var i in data.children) {
- result+='<li><a href="'+relPath+data.children[i].url+'">'+
+ var url;
+ var link;
+ link = data.children[i].url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ } else {
+ url = relPath+link;
+ }
+ result+='<li><a href="'+url+'">'+
data.children[i].text+'</a>'+
makeTree(data.children[i],relPath)+'</li>';
}
}
return result;
}
-
- $('#main-nav').append(makeTree(menudata,relPath));
- $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ var searchBox;
if (searchEnabled) {
if (serverSide) {
- $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.svg" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<div class="left">'+
+ '<form id="FSearchBox" action="'+relPath+searchPage+
+ '" method="get"><img id="MSearchSelect" src="'+
+ relPath+'search/mag.svg" alt=""/>'+
+ '<input type="text" id="MSearchField" name="query" value="'+search+
+ '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+ ' onblur="searchBox.OnSearchFieldFocus(false)">'+
+ '</form>'+
+ '</div>'+
+ '<div class="right"></div>'+
+ '</div>';
} else {
- $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.svg" alt=""/></a></span></div></li>');
+ searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+ '<span class="left">'+
+ '<img id="MSearchSelect" src="'+relPath+
+ 'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
+ ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
+ '<input type="text" id="MSearchField" value="'+search+
+ '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+ 'onblur="searchBox.OnSearchFieldFocus(false)" '+
+ 'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+ '</span>'+
+ '<span class="right"><a id="MSearchClose" '+
+ 'href="javascript:searchBox.CloseResultsWindow()">'+
+ '<img id="MSearchCloseImg" border="0" src="'+relPath+
+ 'search/close.svg" alt=""/></a>'
+ '</span>'
+ '</div>';
+ }
+ }
+
+ $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+ '<label class="main-menu-btn" for="main-menu-state">'+
+ '<span class="main-menu-btn-icon"></span> '+
+ 'Toggle main menu visibility</label>'+
+ '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+ '</div>');
+ $('#main-nav').append(makeTree(menudata,relPath));
+ $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ if (searchBox) {
+ $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+ }
+ var $mainMenuState = $('#main-menu-state');
+ var prevWidth = 0;
+ if ($mainMenuState.length) {
+ function initResizableIfExists() {
+ if (typeof initResizable==='function') initResizable();
+ }
+ // animate mobile menu
+ $mainMenuState.change(function(e) {
+ var $menu = $('#main-menu');
+ var options = { duration: 250, step: initResizableIfExists };
+ if (this.checked) {
+ options['complete'] = function() { $menu.css('display', 'block') };
+ $menu.hide().slideDown(options);
+ } else {
+ options['complete'] = function() { $menu.css('display', 'none') };
+ $menu.show().slideUp(options);
+ }
+ });
+ // set default menu visibility
+ function resetState() {
+ var $menu = $('#main-menu');
+ var $mainMenuState = $('#main-menu-state');
+ var newWidth = $(window).outerWidth();
+ if (newWidth!=prevWidth) {
+ if ($(window).outerWidth()<768) {
+ $mainMenuState.prop('checked',false); $menu.hide();
+ $('#searchBoxPos1').html(searchBox);
+ $('#searchBoxPos2').hide();
+ } else {
+ $menu.show();
+ $('#searchBoxPos1').empty();
+ $('#searchBoxPos2').html(searchBox);
+ $('#searchBoxPos2').show();
+ }
+ prevWidth = newWidth;
+ }
}
+ $(window).ready(function() { resetState(); initResizableIfExists(); });
+ $(window).resize(resetState);
}
$('#main-menu').smartmenus();
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['flags_2',['flags',['../structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1',1,'UDPC_PacketInfo']]]
+ ['flags_0',['flags',['../structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['id_3',['id',['../structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe',1,'UDPC_PacketInfo']]]
+ ['id_0',['id',['../structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['receiver_4',['receiver',['../structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d',1,'UDPC_PacketInfo']]]
+ ['receiver_0',['receiver',['../structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_4.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['sender_5',['sender',['../structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc',1,'UDPC_PacketInfo']]]
+ ['sender_0',['sender',['../structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_5.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_2eh_6',['UDPC.h',['../UDPC_8h.html',1,'']]],
- ['udpc_5fadd_5fwhitelist_5fpk_7',['UDPC_add_whitelist_pk',['../UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8',1,'UDPC.h']]],
- ['udpc_5fauth_5fpolicy_5ffallback_8',['UDPC_AUTH_POLICY_FALLBACK',['../UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612',1,'UDPC.h']]],
- ['udpc_5fauth_5fpolicy_5fstrict_9',['UDPC_AUTH_POLICY_STRICT',['../UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3',1,'UDPC.h']]],
- ['udpc_5fauthpolicy_10',['UDPC_AuthPolicy',['../UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a',1,'UDPC.h']]],
- ['udpc_5fclear_5fwhitelist_11',['UDPC_clear_whitelist',['../UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26',1,'UDPC.h']]],
- ['udpc_5fclient_5finitiate_5fconnection_12',['UDPC_client_initiate_connection',['../UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55',1,'UDPC.h']]],
- ['udpc_5fconnectionid_13',['UDPC_ConnectionId',['../structUDPC__ConnectionId.html',1,'UDPC_ConnectionId'],['../UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2',1,'UDPC_ConnectionId(): UDPC.h']]],
- ['udpc_5fcreate_5fid_14',['UDPC_create_id',['../UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_5fanyaddr_15',['UDPC_create_id_anyaddr',['../UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_5feasy_16',['UDPC_create_id_easy',['../UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_5ffull_17',['UDPC_create_id_full',['../UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19',1,'UDPC.h']]],
- ['udpc_5fdestroy_18',['UDPC_destroy',['../UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e',1,'UDPC.h']]],
- ['udpc_5fdisable_5fthreaded_5fupdate_19',['UDPC_disable_threaded_update',['../UDPC_8h.html#a404d2c7a83903004f928737241ecc63a',1,'UDPC.h']]],
- ['udpc_5fdrop_5fconnection_20',['UDPC_drop_connection',['../UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380',1,'UDPC.h']]],
- ['udpc_5fenable_5fthreaded_5fupdate_21',['UDPC_enable_threaded_update',['../UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f',1,'UDPC.h']]],
- ['udpc_5fenable_5fthreaded_5fupdate_5fms_22',['UDPC_enable_threaded_update_ms',['../UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833',1,'UDPC.h']]],
- ['udpc_5ferror_23',['UDPC_ERROR',['../UDPC_8h.html#ac04213a4287500a9c5330f543eac3103',1,'UDPC.h']]],
- ['udpc_5fevent_24',['UDPC_Event',['../UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed',1,'UDPC_Event(): UDPC.h'],['../structUDPC__Event.html',1,'UDPC_Event']]],
- ['udpc_5feventtype_25',['UDPC_EventType',['../UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0',1,'UDPC.h']]],
- ['udpc_5ffree_5flist_5fconnected_26',['UDPC_free_list_connected',['../UDPC_8h.html#a8880067a93211c257763c42264f6ceef',1,'UDPC.h']]],
- ['udpc_5ffree_5fpacketinfo_27',['UDPC_free_PacketInfo',['../UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845',1,'UDPC.h']]],
- ['udpc_5fget_5fauth_5fpolicy_28',['UDPC_get_auth_policy',['../UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4',1,'UDPC.h']]],
- ['udpc_5fget_5fevent_29',['UDPC_get_event',['../UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510',1,'UDPC.h']]],
- ['udpc_5fget_5flist_5fconnected_30',['UDPC_get_list_connected',['../UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213',1,'UDPC.h']]],
- ['udpc_5fget_5flogging_5ftype_31',['UDPC_get_logging_type',['../UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096',1,'UDPC.h']]],
- ['udpc_5fget_5fmax_5fqueued_5fsize_32',['UDPC_get_max_queued_size',['../UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f',1,'UDPC.h']]],
- ['udpc_5fget_5fprotocol_5fid_33',['UDPC_get_protocol_id',['../UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404',1,'UDPC.h']]],
- ['udpc_5fget_5fqueue_5fsend_5fcurrent_5fsize_34',['UDPC_get_queue_send_current_size',['../UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd',1,'UDPC.h']]],
- ['udpc_5fget_5fqueued_5fsize_35',['UDPC_get_queued_size',['../UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2',1,'UDPC.h']]],
- ['udpc_5fget_5freceived_36',['UDPC_get_received',['../UDPC_8h.html#affa8655a4e7e3475be441060e92213b3',1,'UDPC.h']]],
- ['udpc_5fget_5freceiving_5fevents_37',['UDPC_get_receiving_events',['../UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d',1,'UDPC.h']]],
- ['udpc_5fhas_5fconnection_38',['UDPC_has_connection',['../UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082',1,'UDPC.h']]],
- ['udpc_5fhas_5fwhitelist_5fpk_39',['UDPC_has_whitelist_pk',['../UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172',1,'UDPC.h']]],
- ['udpc_5finfo_40',['UDPC_INFO',['../UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15',1,'UDPC.h']]],
- ['udpc_5finit_41',['UDPC_init',['../UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2',1,'UDPC.h']]],
- ['udpc_5finit_5fthreaded_5fupdate_42',['UDPC_init_threaded_update',['../UDPC_8h.html#a614e2a058b89839d53fe9d348a058323',1,'UDPC.h']]],
- ['udpc_5finit_5fthreaded_5fupdate_5fms_43',['UDPC_init_threaded_update_ms',['../UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6',1,'UDPC.h']]],
- ['udpc_5fis_5fvalid_5fcontext_44',['UDPC_is_valid_context',['../UDPC_8h.html#ac01480f803b063e2b44794420df0f671',1,'UDPC.h']]],
- ['udpc_5fpacket_5fmax_5fsize_45',['UDPC_PACKET_MAX_SIZE',['../UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827',1,'UDPC.h']]],
- ['udpc_5fpacketinfo_46',['UDPC_PacketInfo',['../UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b',1,'UDPC_PacketInfo(): UDPC.h'],['../structUDPC__PacketInfo.html',1,'UDPC_PacketInfo']]],
- ['udpc_5fqueue_5fsend_47',['UDPC_queue_send',['../UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4',1,'UDPC.h']]],
- ['udpc_5fremove_5fwhitelist_5fpk_48',['UDPC_remove_whitelist_pk',['../UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383',1,'UDPC.h']]],
- ['udpc_5fset_5faccept_5fnew_5fconnections_49',['UDPC_set_accept_new_connections',['../UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb',1,'UDPC.h']]],
- ['udpc_5fset_5fauth_5fpolicy_50',['UDPC_set_auth_policy',['../UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581',1,'UDPC.h']]],
- ['udpc_5fset_5flibsodium_5fkey_5feasy_51',['UDPC_set_libsodium_key_easy',['../UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe',1,'UDPC.h']]],
- ['udpc_5fset_5flibsodium_5fkeys_52',['UDPC_set_libsodium_keys',['../UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1',1,'UDPC.h']]],
- ['udpc_5fset_5flogging_5ftype_53',['UDPC_set_logging_type',['../UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305',1,'UDPC.h']]],
- ['udpc_5fset_5fprotocol_5fid_54',['UDPC_set_protocol_id',['../UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a',1,'UDPC.h']]],
- ['udpc_5fset_5freceiving_5fevents_55',['UDPC_set_receiving_events',['../UDPC_8h.html#a380c91ee395cff22189c7988c3381787',1,'UDPC.h']]],
- ['udpc_5fsilent_56',['UDPC_SILENT',['../UDPC_8h.html#aa5c197773a0914125cb358771139065c',1,'UDPC.h']]],
- ['udpc_5fstrtoa_57',['UDPC_strtoa',['../UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6',1,'UDPC.h']]],
- ['udpc_5funset_5flibsodium_5fkeys_58',['UDPC_unset_libsodium_keys',['../UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9',1,'UDPC.h']]],
- ['udpc_5fupdate_59',['UDPC_update',['../UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b',1,'UDPC.h']]],
- ['udpc_5fverbose_60',['UDPC_VERBOSE',['../UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431',1,'UDPC.h']]],
- ['udpc_5fwarning_61',['UDPC_WARNING',['../UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17',1,'UDPC.h']]],
- ['udpconnection_62',['UDPConnection',['../index.html',1,'']]]
+ ['udpc_2eh_0',['UDPC.h',['../UDPC_8h.html',1,'']]],
+ ['udpc_5fadd_5fwhitelist_5fpk_1',['UDPC_add_whitelist_pk',['../UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8',1,'UDPC.h']]],
+ ['udpc_5fauth_5fpolicy_5ffallback_2',['UDPC_AUTH_POLICY_FALLBACK',['../UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612',1,'UDPC.h']]],
+ ['udpc_5fauth_5fpolicy_5fstrict_3',['UDPC_AUTH_POLICY_STRICT',['../UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3',1,'UDPC.h']]],
+ ['udpc_5fauthpolicy_4',['UDPC_AuthPolicy',['../UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a',1,'UDPC.h']]],
+ ['udpc_5fclear_5fwhitelist_5',['UDPC_clear_whitelist',['../UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26',1,'UDPC.h']]],
+ ['udpc_5fclient_5finitiate_5fconnection_6',['UDPC_client_initiate_connection',['../UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55',1,'UDPC.h']]],
+ ['udpc_5fconnectionid_7',['UDPC_ConnectionId',['../structUDPC__ConnectionId.html',1,'UDPC_ConnectionId'],['../UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2',1,'UDPC_ConnectionId(): UDPC.h']]],
+ ['udpc_5fcreate_5fid_8',['UDPC_create_id',['../UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_5fanyaddr_9',['UDPC_create_id_anyaddr',['../UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_5feasy_10',['UDPC_create_id_easy',['../UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_5ffull_11',['UDPC_create_id_full',['../UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19',1,'UDPC.h']]],
+ ['udpc_5fdestroy_12',['UDPC_destroy',['../UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e',1,'UDPC.h']]],
+ ['udpc_5fdisable_5fthreaded_5fupdate_13',['UDPC_disable_threaded_update',['../UDPC_8h.html#a404d2c7a83903004f928737241ecc63a',1,'UDPC.h']]],
+ ['udpc_5fdrop_5fconnection_14',['UDPC_drop_connection',['../UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380',1,'UDPC.h']]],
+ ['udpc_5fenable_5fthreaded_5fupdate_15',['UDPC_enable_threaded_update',['../UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f',1,'UDPC.h']]],
+ ['udpc_5fenable_5fthreaded_5fupdate_5fms_16',['UDPC_enable_threaded_update_ms',['../UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833',1,'UDPC.h']]],
+ ['udpc_5ferror_17',['UDPC_ERROR',['../UDPC_8h.html#ac04213a4287500a9c5330f543eac3103',1,'UDPC.h']]],
+ ['udpc_5fevent_18',['UDPC_Event',['../UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed',1,'UDPC_Event(): UDPC.h'],['../structUDPC__Event.html',1,'UDPC_Event']]],
+ ['udpc_5feventtype_19',['UDPC_EventType',['../UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0',1,'UDPC.h']]],
+ ['udpc_5ffree_5flist_5fconnected_20',['UDPC_free_list_connected',['../UDPC_8h.html#a8880067a93211c257763c42264f6ceef',1,'UDPC.h']]],
+ ['udpc_5ffree_5fpacketinfo_21',['UDPC_free_PacketInfo',['../UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845',1,'UDPC.h']]],
+ ['udpc_5fget_5fauth_5fpolicy_22',['UDPC_get_auth_policy',['../UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4',1,'UDPC.h']]],
+ ['udpc_5fget_5fevent_23',['UDPC_get_event',['../UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510',1,'UDPC.h']]],
+ ['udpc_5fget_5flist_5fconnected_24',['UDPC_get_list_connected',['../UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547',1,'UDPC.h']]],
+ ['udpc_5fget_5flogging_5ftype_25',['UDPC_get_logging_type',['../UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096',1,'UDPC.h']]],
+ ['udpc_5fget_5fmax_5fqueued_5fsize_26',['UDPC_get_max_queued_size',['../UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f',1,'UDPC.h']]],
+ ['udpc_5fget_5fprotocol_5fid_27',['UDPC_get_protocol_id',['../UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404',1,'UDPC.h']]],
+ ['udpc_5fget_5fqueue_5fsend_5fcurrent_5fsize_28',['UDPC_get_queue_send_current_size',['../UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd',1,'UDPC.h']]],
+ ['udpc_5fget_5fqueued_5fsize_29',['UDPC_get_queued_size',['../UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2',1,'UDPC.h']]],
+ ['udpc_5fget_5freceived_30',['UDPC_get_received',['../UDPC_8h.html#affa8655a4e7e3475be441060e92213b3',1,'UDPC.h']]],
+ ['udpc_5fget_5freceiving_5fevents_31',['UDPC_get_receiving_events',['../UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d',1,'UDPC.h']]],
+ ['udpc_5fhas_5fconnection_32',['UDPC_has_connection',['../UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082',1,'UDPC.h']]],
+ ['udpc_5fhas_5fwhitelist_5fpk_33',['UDPC_has_whitelist_pk',['../UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172',1,'UDPC.h']]],
+ ['udpc_5finfo_34',['UDPC_INFO',['../UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15',1,'UDPC.h']]],
+ ['udpc_5finit_35',['UDPC_init',['../UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2',1,'UDPC.h']]],
+ ['udpc_5finit_5fthreaded_5fupdate_36',['UDPC_init_threaded_update',['../UDPC_8h.html#a614e2a058b89839d53fe9d348a058323',1,'UDPC.h']]],
+ ['udpc_5finit_5fthreaded_5fupdate_5fms_37',['UDPC_init_threaded_update_ms',['../UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6',1,'UDPC.h']]],
+ ['udpc_5fis_5fvalid_5fcontext_38',['UDPC_is_valid_context',['../UDPC_8h.html#ac01480f803b063e2b44794420df0f671',1,'UDPC.h']]],
+ ['udpc_5fpacket_5fmax_5fsize_39',['UDPC_PACKET_MAX_SIZE',['../UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827',1,'UDPC.h']]],
+ ['udpc_5fpacketinfo_40',['UDPC_PacketInfo',['../UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b',1,'UDPC_PacketInfo(): UDPC.h'],['../structUDPC__PacketInfo.html',1,'UDPC_PacketInfo']]],
+ ['udpc_5fqueue_5fsend_41',['UDPC_queue_send',['../UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4',1,'UDPC.h']]],
+ ['udpc_5fremove_5fwhitelist_5fpk_42',['UDPC_remove_whitelist_pk',['../UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383',1,'UDPC.h']]],
+ ['udpc_5fset_5faccept_5fnew_5fconnections_43',['UDPC_set_accept_new_connections',['../UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb',1,'UDPC.h']]],
+ ['udpc_5fset_5fauth_5fpolicy_44',['UDPC_set_auth_policy',['../UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581',1,'UDPC.h']]],
+ ['udpc_5fset_5flibsodium_5fkey_5feasy_45',['UDPC_set_libsodium_key_easy',['../UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe',1,'UDPC.h']]],
+ ['udpc_5fset_5flibsodium_5fkeys_46',['UDPC_set_libsodium_keys',['../UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1',1,'UDPC.h']]],
+ ['udpc_5fset_5flogging_5ftype_47',['UDPC_set_logging_type',['../UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305',1,'UDPC.h']]],
+ ['udpc_5fset_5fprotocol_5fid_48',['UDPC_set_protocol_id',['../UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a',1,'UDPC.h']]],
+ ['udpc_5fset_5freceiving_5fevents_49',['UDPC_set_receiving_events',['../UDPC_8h.html#a380c91ee395cff22189c7988c3381787',1,'UDPC.h']]],
+ ['udpc_5fsilent_50',['UDPC_SILENT',['../UDPC_8h.html#aa5c197773a0914125cb358771139065c',1,'UDPC.h']]],
+ ['udpc_5fstrtoa_51',['UDPC_strtoa',['../UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6',1,'UDPC.h']]],
+ ['udpc_5funset_5flibsodium_5fkeys_52',['UDPC_unset_libsodium_keys',['../UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9',1,'UDPC.h']]],
+ ['udpc_5fupdate_53',['UDPC_update',['../UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b',1,'UDPC.h']]],
+ ['udpc_5fverbose_54',['UDPC_VERBOSE',['../UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431',1,'UDPC.h']]],
+ ['udpc_5fwarning_55',['UDPC_WARNING',['../UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17',1,'UDPC.h']]],
+ ['udpconnection_56',['UDPConnection',['../index.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_6.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['value_63',['Value',['../unionUDPC__Event_1_1Value.html',1,'UDPC_Event']]]
+ ['value_0',['Value',['../unionUDPC__Event_1_1Value.html',1,'UDPC_Event']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_5fconnectionid_64',['UDPC_ConnectionId',['../structUDPC__ConnectionId.html',1,'']]],
- ['udpc_5fevent_65',['UDPC_Event',['../structUDPC__Event.html',1,'']]],
- ['udpc_5fpacketinfo_66',['UDPC_PacketInfo',['../structUDPC__PacketInfo.html',1,'']]]
+ ['udpc_5fconnectionid_0',['UDPC_ConnectionId',['../structUDPC__ConnectionId.html',1,'']]],
+ ['udpc_5fevent_1',['UDPC_Event',['../structUDPC__Event.html',1,'']]],
+ ['udpc_5fpacketinfo_2',['UDPC_PacketInfo',['../structUDPC__PacketInfo.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['value_67',['Value',['../unionUDPC__Event_1_1Value.html',1,'UDPC_Event']]]
+ ['value_0',['Value',['../unionUDPC__Event_1_1Value.html',1,'UDPC_Event']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="defines_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_5fpacket_5fmax_5fsize_129',['UDPC_PACKET_MAX_SIZE',['../UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827',1,'UDPC.h']]]
+ ['udpc_5fpacket_5fmax_5fsize_0',['UDPC_PACKET_MAX_SIZE',['../UDPC_8h.html#a8ed92f1223b3f658536728f22d3b3827',1,'UDPC.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="files_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_2eh_68',['UDPC.h',['../UDPC_8h.html',1,'']]]
+ ['udpc_2eh_0',['UDPC.h',['../UDPC_8h.html',1,'']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="functions_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_5fadd_5fwhitelist_5fpk_69',['UDPC_add_whitelist_pk',['../UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8',1,'UDPC.h']]],
- ['udpc_5fclear_5fwhitelist_70',['UDPC_clear_whitelist',['../UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26',1,'UDPC.h']]],
- ['udpc_5fclient_5finitiate_5fconnection_71',['UDPC_client_initiate_connection',['../UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_72',['UDPC_create_id',['../UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_5fanyaddr_73',['UDPC_create_id_anyaddr',['../UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_5feasy_74',['UDPC_create_id_easy',['../UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131',1,'UDPC.h']]],
- ['udpc_5fcreate_5fid_5ffull_75',['UDPC_create_id_full',['../UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19',1,'UDPC.h']]],
- ['udpc_5fdestroy_76',['UDPC_destroy',['../UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e',1,'UDPC.h']]],
- ['udpc_5fdisable_5fthreaded_5fupdate_77',['UDPC_disable_threaded_update',['../UDPC_8h.html#a404d2c7a83903004f928737241ecc63a',1,'UDPC.h']]],
- ['udpc_5fdrop_5fconnection_78',['UDPC_drop_connection',['../UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380',1,'UDPC.h']]],
- ['udpc_5fenable_5fthreaded_5fupdate_79',['UDPC_enable_threaded_update',['../UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f',1,'UDPC.h']]],
- ['udpc_5fenable_5fthreaded_5fupdate_5fms_80',['UDPC_enable_threaded_update_ms',['../UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833',1,'UDPC.h']]],
- ['udpc_5ffree_5flist_5fconnected_81',['UDPC_free_list_connected',['../UDPC_8h.html#a8880067a93211c257763c42264f6ceef',1,'UDPC.h']]],
- ['udpc_5ffree_5fpacketinfo_82',['UDPC_free_PacketInfo',['../UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845',1,'UDPC.h']]],
- ['udpc_5fget_5fauth_5fpolicy_83',['UDPC_get_auth_policy',['../UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4',1,'UDPC.h']]],
- ['udpc_5fget_5fevent_84',['UDPC_get_event',['../UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510',1,'UDPC.h']]],
- ['udpc_5fget_5flist_5fconnected_85',['UDPC_get_list_connected',['../UDPC_8h.html#a7fe3e502f4c6f86ce5b2cd1f303aa213',1,'UDPC.h']]],
- ['udpc_5fget_5flogging_5ftype_86',['UDPC_get_logging_type',['../UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096',1,'UDPC.h']]],
- ['udpc_5fget_5fmax_5fqueued_5fsize_87',['UDPC_get_max_queued_size',['../UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f',1,'UDPC.h']]],
- ['udpc_5fget_5fprotocol_5fid_88',['UDPC_get_protocol_id',['../UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404',1,'UDPC.h']]],
- ['udpc_5fget_5fqueue_5fsend_5fcurrent_5fsize_89',['UDPC_get_queue_send_current_size',['../UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd',1,'UDPC.h']]],
- ['udpc_5fget_5fqueued_5fsize_90',['UDPC_get_queued_size',['../UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2',1,'UDPC.h']]],
- ['udpc_5fget_5freceived_91',['UDPC_get_received',['../UDPC_8h.html#affa8655a4e7e3475be441060e92213b3',1,'UDPC.h']]],
- ['udpc_5fget_5freceiving_5fevents_92',['UDPC_get_receiving_events',['../UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d',1,'UDPC.h']]],
- ['udpc_5fhas_5fconnection_93',['UDPC_has_connection',['../UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082',1,'UDPC.h']]],
- ['udpc_5fhas_5fwhitelist_5fpk_94',['UDPC_has_whitelist_pk',['../UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172',1,'UDPC.h']]],
- ['udpc_5finit_95',['UDPC_init',['../UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2',1,'UDPC.h']]],
- ['udpc_5finit_5fthreaded_5fupdate_96',['UDPC_init_threaded_update',['../UDPC_8h.html#a614e2a058b89839d53fe9d348a058323',1,'UDPC.h']]],
- ['udpc_5finit_5fthreaded_5fupdate_5fms_97',['UDPC_init_threaded_update_ms',['../UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6',1,'UDPC.h']]],
- ['udpc_5fis_5fvalid_5fcontext_98',['UDPC_is_valid_context',['../UDPC_8h.html#ac01480f803b063e2b44794420df0f671',1,'UDPC.h']]],
- ['udpc_5fqueue_5fsend_99',['UDPC_queue_send',['../UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4',1,'UDPC.h']]],
- ['udpc_5fremove_5fwhitelist_5fpk_100',['UDPC_remove_whitelist_pk',['../UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383',1,'UDPC.h']]],
- ['udpc_5fset_5faccept_5fnew_5fconnections_101',['UDPC_set_accept_new_connections',['../UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb',1,'UDPC.h']]],
- ['udpc_5fset_5fauth_5fpolicy_102',['UDPC_set_auth_policy',['../UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581',1,'UDPC.h']]],
- ['udpc_5fset_5flibsodium_5fkey_5feasy_103',['UDPC_set_libsodium_key_easy',['../UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe',1,'UDPC.h']]],
- ['udpc_5fset_5flibsodium_5fkeys_104',['UDPC_set_libsodium_keys',['../UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1',1,'UDPC.h']]],
- ['udpc_5fset_5flogging_5ftype_105',['UDPC_set_logging_type',['../UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305',1,'UDPC.h']]],
- ['udpc_5fset_5fprotocol_5fid_106',['UDPC_set_protocol_id',['../UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a',1,'UDPC.h']]],
- ['udpc_5fset_5freceiving_5fevents_107',['UDPC_set_receiving_events',['../UDPC_8h.html#a380c91ee395cff22189c7988c3381787',1,'UDPC.h']]],
- ['udpc_5fstrtoa_108',['UDPC_strtoa',['../UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6',1,'UDPC.h']]],
- ['udpc_5funset_5flibsodium_5fkeys_109',['UDPC_unset_libsodium_keys',['../UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9',1,'UDPC.h']]],
- ['udpc_5fupdate_110',['UDPC_update',['../UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b',1,'UDPC.h']]]
+ ['udpc_5fadd_5fwhitelist_5fpk_0',['UDPC_add_whitelist_pk',['../UDPC_8h.html#a71f9bf85a02ddd1b4c921fe9b6694fe8',1,'UDPC.h']]],
+ ['udpc_5fclear_5fwhitelist_1',['UDPC_clear_whitelist',['../UDPC_8h.html#a0e2e0c6a6a442db2cb3223d26f849d26',1,'UDPC.h']]],
+ ['udpc_5fclient_5finitiate_5fconnection_2',['UDPC_client_initiate_connection',['../UDPC_8h.html#a1192e0307f75feeac888fe5d49976f55',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_3',['UDPC_create_id',['../UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_5fanyaddr_4',['UDPC_create_id_anyaddr',['../UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_5feasy_5',['UDPC_create_id_easy',['../UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131',1,'UDPC.h']]],
+ ['udpc_5fcreate_5fid_5ffull_6',['UDPC_create_id_full',['../UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19',1,'UDPC.h']]],
+ ['udpc_5fdestroy_7',['UDPC_destroy',['../UDPC_8h.html#aad0e88866d4c5cb9c0676bc8d7df574e',1,'UDPC.h']]],
+ ['udpc_5fdisable_5fthreaded_5fupdate_8',['UDPC_disable_threaded_update',['../UDPC_8h.html#a404d2c7a83903004f928737241ecc63a',1,'UDPC.h']]],
+ ['udpc_5fdrop_5fconnection_9',['UDPC_drop_connection',['../UDPC_8h.html#a44bc5cc29862c93e938ac8a625c56380',1,'UDPC.h']]],
+ ['udpc_5fenable_5fthreaded_5fupdate_10',['UDPC_enable_threaded_update',['../UDPC_8h.html#a0fafce547e9185c29f42d06213b0ff4f',1,'UDPC.h']]],
+ ['udpc_5fenable_5fthreaded_5fupdate_5fms_11',['UDPC_enable_threaded_update_ms',['../UDPC_8h.html#a1a50763773d55aa7a2a9c7ad69575833',1,'UDPC.h']]],
+ ['udpc_5ffree_5flist_5fconnected_12',['UDPC_free_list_connected',['../UDPC_8h.html#a8880067a93211c257763c42264f6ceef',1,'UDPC.h']]],
+ ['udpc_5ffree_5fpacketinfo_13',['UDPC_free_PacketInfo',['../UDPC_8h.html#a68ed6dcb37c6024486fad28ab0bed845',1,'UDPC.h']]],
+ ['udpc_5fget_5fauth_5fpolicy_14',['UDPC_get_auth_policy',['../UDPC_8h.html#ab79769e36a92c346c6c410be158ddfe4',1,'UDPC.h']]],
+ ['udpc_5fget_5fevent_15',['UDPC_get_event',['../UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510',1,'UDPC.h']]],
+ ['udpc_5fget_5flist_5fconnected_16',['UDPC_get_list_connected',['../UDPC_8h.html#a6b4355331c9b2797af0c13ce16515547',1,'UDPC.h']]],
+ ['udpc_5fget_5flogging_5ftype_17',['UDPC_get_logging_type',['../UDPC_8h.html#ad0c7d69eeda20e98696d5c89bbbab096',1,'UDPC.h']]],
+ ['udpc_5fget_5fmax_5fqueued_5fsize_18',['UDPC_get_max_queued_size',['../UDPC_8h.html#a7983f38fe13677f5b35b90cefa54974f',1,'UDPC.h']]],
+ ['udpc_5fget_5fprotocol_5fid_19',['UDPC_get_protocol_id',['../UDPC_8h.html#aab6fb21c6f5b44123e2660f84561d404',1,'UDPC.h']]],
+ ['udpc_5fget_5fqueue_5fsend_5fcurrent_5fsize_20',['UDPC_get_queue_send_current_size',['../UDPC_8h.html#aa3f67ad23ae34b647b7f4dd17a8a96dd',1,'UDPC.h']]],
+ ['udpc_5fget_5fqueued_5fsize_21',['UDPC_get_queued_size',['../UDPC_8h.html#a1fb87c1522d353bd9fde4c94ec8454c2',1,'UDPC.h']]],
+ ['udpc_5fget_5freceived_22',['UDPC_get_received',['../UDPC_8h.html#affa8655a4e7e3475be441060e92213b3',1,'UDPC.h']]],
+ ['udpc_5fget_5freceiving_5fevents_23',['UDPC_get_receiving_events',['../UDPC_8h.html#a8c74f1b9ee0fec610087f83096c9679d',1,'UDPC.h']]],
+ ['udpc_5fhas_5fconnection_24',['UDPC_has_connection',['../UDPC_8h.html#a4a555a011e95445ed4a2aa88deb17082',1,'UDPC.h']]],
+ ['udpc_5fhas_5fwhitelist_5fpk_25',['UDPC_has_whitelist_pk',['../UDPC_8h.html#a94660d04e7f9b4d9c51a7b2c67707172',1,'UDPC.h']]],
+ ['udpc_5finit_26',['UDPC_init',['../UDPC_8h.html#a89dee65fcd5b70d25abbf6d4a3ee59f2',1,'UDPC.h']]],
+ ['udpc_5finit_5fthreaded_5fupdate_27',['UDPC_init_threaded_update',['../UDPC_8h.html#a614e2a058b89839d53fe9d348a058323',1,'UDPC.h']]],
+ ['udpc_5finit_5fthreaded_5fupdate_5fms_28',['UDPC_init_threaded_update_ms',['../UDPC_8h.html#ab9a5258877ad3084f7d29954be525bd6',1,'UDPC.h']]],
+ ['udpc_5fis_5fvalid_5fcontext_29',['UDPC_is_valid_context',['../UDPC_8h.html#ac01480f803b063e2b44794420df0f671',1,'UDPC.h']]],
+ ['udpc_5fqueue_5fsend_30',['UDPC_queue_send',['../UDPC_8h.html#a7527954b63f502479bdd3771df7cf3a4',1,'UDPC.h']]],
+ ['udpc_5fremove_5fwhitelist_5fpk_31',['UDPC_remove_whitelist_pk',['../UDPC_8h.html#abc2d3284e5c45d6cd888154e813a1383',1,'UDPC.h']]],
+ ['udpc_5fset_5faccept_5fnew_5fconnections_32',['UDPC_set_accept_new_connections',['../UDPC_8h.html#a32e217a02b2e8ba05568aabfaecbcdcb',1,'UDPC.h']]],
+ ['udpc_5fset_5fauth_5fpolicy_33',['UDPC_set_auth_policy',['../UDPC_8h.html#a8d0dbbd258e17844a2f9a0e277789581',1,'UDPC.h']]],
+ ['udpc_5fset_5flibsodium_5fkey_5feasy_34',['UDPC_set_libsodium_key_easy',['../UDPC_8h.html#ad7eb0c77561f84a63dad29388d099fbe',1,'UDPC.h']]],
+ ['udpc_5fset_5flibsodium_5fkeys_35',['UDPC_set_libsodium_keys',['../UDPC_8h.html#abd0a7d5c0a17cf3351dbe5abf5f70df1',1,'UDPC.h']]],
+ ['udpc_5fset_5flogging_5ftype_36',['UDPC_set_logging_type',['../UDPC_8h.html#a6c90dc723e67a07bf65c1fc97e526305',1,'UDPC.h']]],
+ ['udpc_5fset_5fprotocol_5fid_37',['UDPC_set_protocol_id',['../UDPC_8h.html#a0720bec1922660c983b1b3d9f6a5de3a',1,'UDPC.h']]],
+ ['udpc_5fset_5freceiving_5fevents_38',['UDPC_set_receiving_events',['../UDPC_8h.html#a380c91ee395cff22189c7988c3381787',1,'UDPC.h']]],
+ ['udpc_5fstrtoa_39',['UDPC_strtoa',['../UDPC_8h.html#a2ae8e7d87f785dd3b3353a00005c3dc6',1,'UDPC.h']]],
+ ['udpc_5funset_5flibsodium_5fkeys_40',['UDPC_unset_libsodium_keys',['../UDPC_8h.html#a62a5131b90653ccbfc86ad5db4031ba9',1,'UDPC.h']]],
+ ['udpc_5fupdate_41',['UDPC_update',['../UDPC_8h.html#a68fefba9edca7cd0a81d97ac27c70c0b',1,'UDPC.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="pages_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpconnection_130',['UDPConnection',['../index.html',1,'']]]
+ ['udpconnection_0',['UDPConnection',['../index.html',1,'']]]
];
#MSearchSelect {
display: inline-block;
vertical-align: middle;
- height: 1.4em;
+ height: 19px;
padding: 0 0 0 0.3em;
margin: 0;
}
display: inline-block;
vertical-align: middle;
width: 7.5em;
- height: 1.1em;
+ height: 19px;
margin: 0 0.15em;
padding: 0;
line-height: 1em;
background: none;
}
+@media(hover: none) {
+ /* to avoid zooming on iOS */
+ #MSearchField {
+ font-size: 16px;
+ }
+}
#MSearchBox .right {
display: inline-block;
/*---------------- Search results window */
iframe#MSearchResults {
- width: 60ex;
+ /*width: 60ex;*/
height: 15em;
}
storing this instance. Is needed to be able to set timeouts.
resultPath - path to use for external files
*/
-function SearchBox(name, resultsPath, inFrame, label, extension)
+function SearchBox(name, resultsPath, label, extension)
{
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
if (!extension || extension == "") { extension = ".html"; }
this.hideTimeout = 0;
this.searchIndex = 0;
this.searchActive = false;
- this.insideFrame = inFrame;
this.searchLabel = label;
this.extension = extension;
var searchSelectWindow = this.DOMSearchSelectWindow();
var searchField = this.DOMSearchSelect();
- if (this.insideFrame)
- {
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- left += searchField.offsetWidth + 6;
- top += searchField.offsetHeight;
-
- // show search selection popup
- searchSelectWindow.style.display='block';
- left -= searchSelectWindow.offsetWidth;
- searchSelectWindow.style.left = left + 'px';
- searchSelectWindow.style.top = top + 'px';
- }
- else
- {
- var left = getXPos(searchField);
- var top = getYPos(searchField);
- top += searchField.offsetHeight;
-
- // show search selection popup
- searchSelectWindow.style.display='block';
- searchSelectWindow.style.left = left + 'px';
- searchSelectWindow.style.top = top + 'px';
- }
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
// stop selection hide timer
if (this.hideTimeout)
{
var domSearchBox = this.DOMSearchBox();
this.DOMSearchClose().style.display = 'inline-block';
- if (this.insideFrame)
- {
- var domPopupSearchResults = this.DOMPopupSearchResults();
- domPopupSearchResultsWindow.style.position = 'relative';
- domPopupSearchResultsWindow.style.display = 'block';
- var width = document.body.clientWidth - 8; // the -8 is for IE :-(
- domPopupSearchResultsWindow.style.width = width + 'px';
- domPopupSearchResults.style.width = width + 'px';
- }
- else
- {
- var domPopupSearchResults = this.DOMPopupSearchResults();
- var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
- var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
- domPopupSearchResultsWindow.style.display = 'block';
- left -= domPopupSearchResults.offsetWidth;
- domPopupSearchResultsWindow.style.top = top + 'px';
- domPopupSearchResultsWindow.style.left = left + 'px';
- }
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ var maxWidth = document.body.clientWidth;
+ var width = 400;
+ if (left<10) left=10;
+ if (width+left+8>maxWidth) width=maxWidth-left-8;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ domPopupSearchResultsWindow.style.width = width + 'px';
}
this.lastSearchValue = searchValue;
if (searchData[e][1].length==2) // single result
{
srLink.setAttribute('href',searchData[e][1][1][0]);
+ srLink.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
if (searchData[e][1][1][1])
{
srLink.setAttribute('target','_parent');
}
+ else
+ {
+ srLink.setAttribute('target','_blank');
+ }
var srScope = document.createElement('span');
setClassAttr(srScope,'SRScope');
srScope.innerHTML = searchData[e][1][1][2];
setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
setClassAttr(srChild,'SRScope');
srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ srChild.setAttribute('onclick','parent.searchBox.CloseResultsWindow()');
if (searchData[e][1][c+1][1])
{
srChild.setAttribute('target','_parent');
}
+ else
+ {
+ srChild.setAttribute('target','_blank');
+ }
srChild.innerHTML = searchData[e][1][c+1][2];
srChildren.appendChild(srChild);
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="typedefs_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_5fauthpolicy_124',['UDPC_AuthPolicy',['../UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a',1,'UDPC.h']]],
- ['udpc_5fconnectionid_125',['UDPC_ConnectionId',['../UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2',1,'UDPC.h']]],
- ['udpc_5fevent_126',['UDPC_Event',['../UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed',1,'UDPC.h']]],
- ['udpc_5feventtype_127',['UDPC_EventType',['../UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0',1,'UDPC.h']]],
- ['udpc_5fpacketinfo_128',['UDPC_PacketInfo',['../UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b',1,'UDPC.h']]]
+ ['udpc_5fauthpolicy_0',['UDPC_AuthPolicy',['../UDPC_8h.html#a228cd7ddf56a4e76e216bc3b80e8bd4a',1,'UDPC.h']]],
+ ['udpc_5fconnectionid_1',['UDPC_ConnectionId',['../UDPC_8h.html#ae5afb11964c7a55edf34ddf9097779b2',1,'UDPC.h']]],
+ ['udpc_5fevent_2',['UDPC_Event',['../UDPC_8h.html#a7b3215b65686670720f098eda2ca1eed',1,'UDPC.h']]],
+ ['udpc_5feventtype_3',['UDPC_EventType',['../UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0',1,'UDPC.h']]],
+ ['udpc_5fpacketinfo_4',['UDPC_PacketInfo',['../UDPC_8h.html#ae0261958047ebb5c6a402aa805e4e55b',1,'UDPC.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_0.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['data_111',['data',['../structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e',1,'UDPC_PacketInfo']]],
- ['datasize_112',['dataSize',['../structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74',1,'UDPC_PacketInfo']]]
+ ['data_0',['data',['../structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e',1,'UDPC_PacketInfo']]],
+ ['datasize_1',['dataSize',['../structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_1.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['flags_113',['flags',['../structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1',1,'UDPC_PacketInfo']]]
+ ['flags_0',['flags',['../structUDPC__PacketInfo.html#ad538ac2682e8276dc33553237f012ce1',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_2.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['id_114',['id',['../structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe',1,'UDPC_PacketInfo']]]
+ ['id_0',['id',['../structUDPC__PacketInfo.html#ac21cc9beab22eb1e1a2d5c0797ed0fbe',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_3.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['receiver_115',['receiver',['../structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d',1,'UDPC_PacketInfo']]]
+ ['receiver_0',['receiver',['../structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_4.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['sender_116',['sender',['../structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc',1,'UDPC_PacketInfo']]]
+ ['sender_0',['sender',['../structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc',1,'UDPC_PacketInfo']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_5.js"></script>
<script type="text/javascript" src="search.js"></script>
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
var searchData=
[
- ['udpc_5fauth_5fpolicy_5ffallback_117',['UDPC_AUTH_POLICY_FALLBACK',['../UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612',1,'UDPC.h']]],
- ['udpc_5fauth_5fpolicy_5fstrict_118',['UDPC_AUTH_POLICY_STRICT',['../UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3',1,'UDPC.h']]],
- ['udpc_5ferror_119',['UDPC_ERROR',['../UDPC_8h.html#ac04213a4287500a9c5330f543eac3103',1,'UDPC.h']]],
- ['udpc_5finfo_120',['UDPC_INFO',['../UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15',1,'UDPC.h']]],
- ['udpc_5fsilent_121',['UDPC_SILENT',['../UDPC_8h.html#aa5c197773a0914125cb358771139065c',1,'UDPC.h']]],
- ['udpc_5fverbose_122',['UDPC_VERBOSE',['../UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431',1,'UDPC.h']]],
- ['udpc_5fwarning_123',['UDPC_WARNING',['../UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17',1,'UDPC.h']]]
+ ['udpc_5fauth_5fpolicy_5ffallback_0',['UDPC_AUTH_POLICY_FALLBACK',['../UDPC_8h.html#a96ecd597f88d458ed108f33e4f0a6612',1,'UDPC.h']]],
+ ['udpc_5fauth_5fpolicy_5fstrict_1',['UDPC_AUTH_POLICY_STRICT',['../UDPC_8h.html#a6af4629253b3ed1f411015410cee9ad3',1,'UDPC.h']]],
+ ['udpc_5ferror_2',['UDPC_ERROR',['../UDPC_8h.html#ac04213a4287500a9c5330f543eac3103',1,'UDPC.h']]],
+ ['udpc_5finfo_3',['UDPC_INFO',['../UDPC_8h.html#a248f51c4df127b7fd3a5c91ad5509d15',1,'UDPC.h']]],
+ ['udpc_5fsilent_4',['UDPC_SILENT',['../UDPC_8h.html#aa5c197773a0914125cb358771139065c',1,'UDPC.h']]],
+ ['udpc_5fverbose_5',['UDPC_VERBOSE',['../UDPC_8h.html#ad5741af4e5cf1da40fe4a7b92cd1c431',1,'UDPC.h']]],
+ ['udpc_5fwarning_6',['UDPC_WARNING',['../UDPC_8h.html#a9cc5d705069747eb439a1c5607baac17',1,'UDPC.h']]]
];
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: UDPC_ConnectionId Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UDPC_ConnectionId Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">UDPC_ConnectionId Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="UDPC_8h_source.html">UDPC.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:ace33511e3490f5e686cff7f047bf1729"><td class="memItemLeft" align="right" valign="top"><a id="ace33511e3490f5e686cff7f047bf1729"></a>
+<tr class="memitem:ace33511e3490f5e686cff7f047bf1729"><td class="memItemLeft" align="right" valign="top"><a id="ace33511e3490f5e686cff7f047bf1729" name="ace33511e3490f5e686cff7f047bf1729"></a>
UDPC_IPV6_ADDR_TYPE </td><td class="memItemRight" valign="bottom"><b>addr</b></td></tr>
<tr class="separator:ace33511e3490f5e686cff7f047bf1729"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a03517f4451bbfa4ff4021d38725ce513"><td class="memItemLeft" align="right" valign="top"><a id="a03517f4451bbfa4ff4021d38725ce513"></a>
+<tr class="memitem:a03517f4451bbfa4ff4021d38725ce513"><td class="memItemLeft" align="right" valign="top"><a id="a03517f4451bbfa4ff4021d38725ce513" name="a03517f4451bbfa4ff4021d38725ce513"></a>
uint32_t </td><td class="memItemRight" valign="bottom"><b>scope_id</b></td></tr>
<tr class="separator:a03517f4451bbfa4ff4021d38725ce513"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3be4eba99a41e33023b976ea29474029"><td class="memItemLeft" align="right" valign="top"><a id="a3be4eba99a41e33023b976ea29474029"></a>
+<tr class="memitem:a3be4eba99a41e33023b976ea29474029"><td class="memItemLeft" align="right" valign="top"><a id="a3be4eba99a41e33023b976ea29474029" name="a3be4eba99a41e33023b976ea29474029"></a>
uint16_t </td><td class="memItemRight" valign="bottom"><b>port</b></td></tr>
<tr class="separator:a3be4eba99a41e33023b976ea29474029"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Data identifying a peer via addr, port, and scope_id. </p>
-<p>This struct needn't be used directly; use <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d" title="Creates an UDPC_ConnectionId with the given addr and port.">UDPC_create_id()</a>, <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19" title="Creates an UDPC_ConnectionId with the given addr, scope_id, and port.">UDPC_create_id_full()</a>, <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df" title="Creates an UDPC_ConnectionId with the given port.">UDPC_create_id_anyaddr()</a>, or <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131" title="Creates an UDPC_ConnectionId with the given addr string and port.">UDPC_create_id_easy()</a> to create one. This struct does not hold dynamic data, so there is no need to free it. </p>
+<div class="textblock"><p >Data identifying a peer via addr, port, and scope_id. </p>
+<p >This struct needn't be used directly; use <a class="el" href="UDPC_8h.html#aea7e32ca9fdc04530f95c97459391e6d" title="Creates an UDPC_ConnectionId with the given addr and port.">UDPC_create_id()</a>, <a class="el" href="UDPC_8h.html#ab7cb345ce117c04017afd443e5748f19" title="Creates an UDPC_ConnectionId with the given addr, scope_id, and port.">UDPC_create_id_full()</a>, <a class="el" href="UDPC_8h.html#a0fa3e1e54877029a226ab9cfb74215df" title="Creates an UDPC_ConnectionId with the given port.">UDPC_create_id_anyaddr()</a>, or <a class="el" href="UDPC_8h.html#a8b80d2df882f03aeee8a92bed7fb0131" title="Creates an UDPC_ConnectionId with the given addr string and port.">UDPC_create_id_easy()</a> to create one. This struct does not hold dynamic data, so there is no need to free it. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="UDPC_8h_source.html">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: UDPC_Event Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UDPC_Event Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">UDPC_Event Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="UDPC_8h_source.html">UDPC.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="unionUDPC__Event_1_1Value.html">Value</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:ae1cfa566bb5079c84d1852d7ac1b1833"><td class="memItemLeft" align="right" valign="top"><a id="ae1cfa566bb5079c84d1852d7ac1b1833"></a>
+<tr class="memitem:ae1cfa566bb5079c84d1852d7ac1b1833"><td class="memItemLeft" align="right" valign="top"><a id="ae1cfa566bb5079c84d1852d7ac1b1833" name="ae1cfa566bb5079c84d1852d7ac1b1833"></a>
<a class="el" href="UDPC_8h.html#adaa0534bf7f04bb2f6ce8975c99c4af0">UDPC_EventType</a> </td><td class="memItemRight" valign="bottom"><b>type</b></td></tr>
<tr class="separator:ae1cfa566bb5079c84d1852d7ac1b1833"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9eb52565caff5b8ffd3fd40156b961d2"><td class="memItemLeft" align="right" valign="top"><a id="a9eb52565caff5b8ffd3fd40156b961d2"></a>
+<tr class="memitem:a9eb52565caff5b8ffd3fd40156b961d2"><td class="memItemLeft" align="right" valign="top"><a id="a9eb52565caff5b8ffd3fd40156b961d2" name="a9eb52565caff5b8ffd3fd40156b961d2"></a>
<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><b>conId</b></td></tr>
<tr class="separator:a9eb52565caff5b8ffd3fd40156b961d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4c05ba5e90d1590a8ebfda0a277e2909"><td class="memItemLeft" align="right" valign="top"><a id="a4c05ba5e90d1590a8ebfda0a277e2909"></a>
+<tr class="memitem:a4c05ba5e90d1590a8ebfda0a277e2909"><td class="memItemLeft" align="right" valign="top"><a id="a4c05ba5e90d1590a8ebfda0a277e2909" name="a4c05ba5e90d1590a8ebfda0a277e2909"></a>
union <a class="el" href="unionUDPC__Event_1_1Value.html">UDPC_Event::Value</a> </td><td class="memItemRight" valign="bottom"><b>v</b></td></tr>
<tr class="separator:a4c05ba5e90d1590a8ebfda0a277e2909"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>A struct containing information related to the type of event. </p>
-<p>Note that instances of this struct received from a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will not store any useful data in its union member variable <code>v</code> (it will only be used internally). Thus, all events received through a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will contain a valid <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> <code>conId</code> that identifies the peer that the event is referring to. </p>
+<div class="textblock"><p >A struct containing information related to the type of event. </p>
+<p >Note that instances of this struct received from a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will not store any useful data in its union member variable <code>v</code> (it will only be used internally). Thus, all events received through a call to <a class="el" href="UDPC_8h.html#a2c05c6fe89edde1e05ba9b6d8b5f7510" title="Gets a recorded event.">UDPC_get_event()</a> will contain a valid <a class="el" href="structUDPC__ConnectionId.html" title="Data identifying a peer via addr, port, and scope_id.">UDPC_ConnectionId</a> <code>conId</code> that identifies the peer that the event is referring to. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/<a class="el" href="UDPC_8h_source.html">UDPC.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: UDPC_PacketInfo Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UDPC_PacketInfo Struct Reference</div> </div>
+ <div class="headertitle"><div class="title">UDPC_PacketInfo Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="UDPC_8h_source.html">UDPC.h</a>></code></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a1358f91f28c4a023ef201e868bf1069e"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a></td></tr>
<tr class="separator:a1358f91f28c4a023ef201e868bf1069e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a70230a2eb6a638d9e9fc04e230c92a74"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a></td></tr>
<tr class="memdesc:a70230a2eb6a638d9e9fc04e230c92a74"><td class="mdescLeft"> </td><td class="mdescRight">The size in bytes of the received packet's data inside the <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a> pointer member variable. <a href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">More...</a><br /></td></tr>
<tr class="separator:a70230a2eb6a638d9e9fc04e230c92a74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa55075dde4f9c476b4d1467bbffd43a7"><td class="memItemLeft" align="right" valign="top"><a id="aa55075dde4f9c476b4d1467bbffd43a7"></a>
+<tr class="memitem:aa55075dde4f9c476b4d1467bbffd43a7"><td class="memItemLeft" align="right" valign="top"><a id="aa55075dde4f9c476b4d1467bbffd43a7" name="aa55075dde4f9c476b4d1467bbffd43a7"></a>
uint16_t </td><td class="memItemRight" valign="bottom"><b>rtt</b></td></tr>
<tr class="separator:aa55075dde4f9c476b4d1467bbffd43a7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a5af734c663d3df72dad2b81a8794b6dc"><td class="memItemLeft" align="right" valign="top"><a id="a5af734c663d3df72dad2b81a8794b6dc"></a>
-<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structUDPC__PacketInfo.html#a5af734c663d3df72dad2b81a8794b6dc">sender</a></td></tr>
+<tr class="memitem:a5af734c663d3df72dad2b81a8794b6dc"><td class="memItemLeft" align="right" valign="top"><a id="a5af734c663d3df72dad2b81a8794b6dc" name="a5af734c663d3df72dad2b81a8794b6dc"></a>
+<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><b>sender</b></td></tr>
<tr class="memdesc:a5af734c663d3df72dad2b81a8794b6dc"><td class="mdescLeft"> </td><td class="mdescRight">The <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> of the sender. <br /></td></tr>
<tr class="separator:a5af734c663d3df72dad2b81a8794b6dc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a965f393584d389dc72becd439cafde0d"><td class="memItemLeft" align="right" valign="top"><a id="a965f393584d389dc72becd439cafde0d"></a>
-<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structUDPC__PacketInfo.html#a965f393584d389dc72becd439cafde0d">receiver</a></td></tr>
+<tr class="memitem:a965f393584d389dc72becd439cafde0d"><td class="memItemLeft" align="right" valign="top"><a id="a965f393584d389dc72becd439cafde0d" name="a965f393584d389dc72becd439cafde0d"></a>
+<a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> </td><td class="memItemRight" valign="bottom"><b>receiver</b></td></tr>
<tr class="memdesc:a965f393584d389dc72becd439cafde0d"><td class="mdescLeft"> </td><td class="mdescRight">The <a class="el" href="structUDPC__ConnectionId.html">UDPC_ConnectionId</a> of the receiver. <br /></td></tr>
<tr class="separator:a965f393584d389dc72becd439cafde0d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Data representing a received/sent packet. </p>
-<p>If <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a> is NULL or <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a> is 0, then this packet is invalid.</p>
+<div class="textblock"><p >Data representing a received/sent packet. </p>
+<p >If <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a> is NULL or <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a> is 0, then this packet is invalid.</p>
<dl class="section warning"><dt>Warning</dt><dd>This struct must be free'd with a call to UDPC_free_PacketInfo to avoid a memory leak. </dd></dl>
</div><h2 class="groupheader">Field Documentation</h2>
-<a id="a1358f91f28c4a023ef201e868bf1069e"></a>
+<a id="a1358f91f28c4a023ef201e868bf1069e" name="a1358f91f28c4a023ef201e868bf1069e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1358f91f28c4a023ef201e868bf1069e">◆ </a></span>data</h2>
<div class="memitem">
</tr>
</table>
</div><div class="memdoc">
-<p>A char array of size <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a>. Will be NULL if this <a class="el" href="structUDPC__PacketInfo.html" title="Data representing a received/sent packet.">UDPC_PacketInfo</a> is invalid. </p>
+<p >A char array of size <a class="el" href="structUDPC__PacketInfo.html#a70230a2eb6a638d9e9fc04e230c92a74">dataSize</a>. Will be NULL if this <a class="el" href="structUDPC__PacketInfo.html" title="Data representing a received/sent packet.">UDPC_PacketInfo</a> is invalid. </p>
</div>
</div>
-<a id="a70230a2eb6a638d9e9fc04e230c92a74"></a>
+<a id="a70230a2eb6a638d9e9fc04e230c92a74" name="a70230a2eb6a638d9e9fc04e230c92a74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70230a2eb6a638d9e9fc04e230c92a74">◆ </a></span>dataSize</h2>
<div class="memitem">
</div><div class="memdoc">
<p>The size in bytes of the received packet's data inside the <a class="el" href="structUDPC__PacketInfo.html#a1358f91f28c4a023ef201e868bf1069e">data</a> pointer member variable. </p>
-<p>UDPC does not return an empty packet when calling <a class="el" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3" title="Get a received packet from a given UDPC context.">UDPC_get_received()</a>, so in such a packet dataSize shouldn't be zero. (UDPC only stores received packets that do have a payload.) This means that if this variable is 0, then this <a class="el" href="structUDPC__PacketInfo.html" title="Data representing a received/sent packet.">UDPC_PacketInfo</a> is invalid. </p>
+<p >UDPC does not return an empty packet when calling <a class="el" href="UDPC_8h.html#affa8655a4e7e3475be441060e92213b3" title="Get a received packet from a given UDPC context.">UDPC_get_received()</a>, so in such a packet dataSize shouldn't be zero. (UDPC only stores received packets that do have a payload.) This means that if this variable is 0, then this <a class="el" href="structUDPC__PacketInfo.html" title="Data representing a received/sent packet.">UDPC_PacketInfo</a> is invalid. </p>
</div>
</div>
-<a id="ad538ac2682e8276dc33553237f012ce1"></a>
+<a id="ad538ac2682e8276dc33553237f012ce1" name="ad538ac2682e8276dc33553237f012ce1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad538ac2682e8276dc33553237f012ce1">◆ </a></span>flags</h2>
<div class="memitem">
</div><div class="memdoc">
<p>Flags indication some additional information about the received packet. </p>
-<p>The following list indicates what each used bit in <code>flags</code> refers to.</p><ul>
+<p >The following list indicates what each used bit in <code>flags</code> refers to.</p><ul>
<li>0x1: Is an initiate-connection packet</li>
<li>0x2: Is a ping packet</li>
<li>0x4: Is a packet that will not be re-sent if not received</li>
</div>
</div>
-<a id="ac21cc9beab22eb1e1a2d5c0797ed0fbe"></a>
+<a id="ac21cc9beab22eb1e1a2d5c0797ed0fbe" name="ac21cc9beab22eb1e1a2d5c0797ed0fbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac21cc9beab22eb1e1a2d5c0797ed0fbe">◆ </a></span>id</h2>
<div class="memitem">
</div><div class="memdoc">
<p>The packet's id. </p>
-<p>Packets start with id = 0, and will wrap around. This can be used to determine specifically how out of order a packet may be. </p>
+<p >Packets start with id = 0, and will wrap around. This can be used to determine specifically how out of order a packet may be. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UDPConnection: UDPC_Event::Value Union Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
+ <tr id="projectrow">
+ <td id="projectalign">
<div id="projectname">UDPConnection
</div>
<div id="projectbrief">A network connection implementation over UDP</div>
</table>
</div>
<!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
-/* @license-end */</script>
+/* @license-end */
+</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
- <div class="headertitle">
-<div class="title">UDPC_Event::Value Union Reference</div> </div>
+ <div class="headertitle"><div class="title">UDPC_Event::Value Union Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
-<tr class="memitem:a174ba7a922af274d990c5557b8f00fc7"><td class="memItemLeft" align="right" valign="top"><a id="a174ba7a922af274d990c5557b8f00fc7"></a>
+<tr class="memitem:a174ba7a922af274d990c5557b8f00fc7"><td class="memItemLeft" align="right" valign="top"><a id="a174ba7a922af274d990c5557b8f00fc7" name="a174ba7a922af274d990c5557b8f00fc7"></a>
int </td><td class="memItemRight" valign="bottom"><b>dropAllWithAddr</b></td></tr>
<tr class="separator:a174ba7a922af274d990c5557b8f00fc7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a3b917ebd9685800c442da05c269abbe2"><td class="memItemLeft" align="right" valign="top"><a id="a3b917ebd9685800c442da05c269abbe2"></a>
+<tr class="memitem:a3b917ebd9685800c442da05c269abbe2"><td class="memItemLeft" align="right" valign="top"><a id="a3b917ebd9685800c442da05c269abbe2" name="a3b917ebd9685800c442da05c269abbe2"></a>
int </td><td class="memItemRight" valign="bottom"><b>enableLibSodium</b></td></tr>
<tr class="separator:a3b917ebd9685800c442da05c269abbe2"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>