From 53c7f61f985bdaba2aff3f055e21a8b4f63a1b2c Mon Sep 17 00:00:00 2001 From: Kees Bos Date: Sun, 5 Jul 2015 13:27:27 +0200 Subject: [PATCH 01/37] Fix for output of empty (no members) network --- controller/SqliteNetworkController.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index 700b3561a..79bf75b6e 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -1394,8 +1394,11 @@ unsigned int SqliteNetworkController::_doCPGet( sqlite3_reset(_sListNetworkMembers); sqlite3_bind_text(_sListNetworkMembers,1,nwids,16,SQLITE_STATIC); + responseBody.append("{"); + bool firstMember = true; while (sqlite3_step(_sListNetworkMembers) == SQLITE_ROW) { - responseBody.append((responseBody.length() > 0) ? ",\"" : "{\""); + responseBody.append(firstMember ? "\"" : ",\""); + firstMember = false; responseBody.append((const char *)sqlite3_column_text(_sListNetworkMembers,0)); responseBody.append("\":"); responseBody.append((const char *)sqlite3_column_text(_sListNetworkMembers,1)); From e2a2993b186c521f9521d1a9adeb150d27c15629 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 22 Jul 2015 14:01:49 -0700 Subject: [PATCH 02/37] Add a Log table to log queries for debugging and security logging. No JSON API support for querying the log yet, but will probably come via /network/###/member/###/log/... or something. --- controller/SqliteNetworkController.cpp | 32 +++++++++++++++++++++++--- controller/SqliteNetworkController.hpp | 3 +++ controller/schema.sql | 11 +++++++++ controller/schema.sql.c | 11 +++++++++ 4 files changed, 54 insertions(+), 3 deletions(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index 79bf75b6e..85dbed001 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -142,6 +142,7 @@ SqliteNetworkController::SqliteNetworkController(const char *dbPath) : // Prepare statement will fail if Config table doesn't exist, which means our DB // needs to be initialized. if (sqlite3_exec(_db,ZT_NETCONF_SCHEMA_SQL"INSERT INTO Config (k,v) VALUES ('schemaVersion',"ZT_NETCONF_SQLITE_SCHEMA_VERSION_STR");",0,0,0) != SQLITE_OK) { + //printf("%s\n",sqlite3_errmsg(_db)); sqlite3_close(_db); throw std::runtime_error("SqliteNetworkController cannot initialize database and/or insert schemaVersion into Config table"); } @@ -199,16 +200,20 @@ SqliteNetworkController::SqliteNetworkController(const char *dbPath) : ||(sqlite3_prepare_v2(_db,"DELETE FROM Member WHERE networkId = ? AND nodeId = ?",-1,&_sDeleteMember,(const char **)0) != SQLITE_OK) /* Gateway */ - ||(sqlite3_prepare_v2(_db,"SELECT ip,ipVersion,metric FROM Gateway WHERE networkId = ? ORDER BY metric ASC",-1,&_sGetGateways,(const char **)0) != SQLITE_OK) + ||(sqlite3_prepare_v2(_db,"SELECT \"ip\",ipVersion,metric FROM Gateway WHERE networkId = ? ORDER BY metric ASC",-1,&_sGetGateways,(const char **)0) != SQLITE_OK) ||(sqlite3_prepare_v2(_db,"DELETE FROM Gateway WHERE networkId = ?",-1,&_sDeleteGateways,(const char **)0) != SQLITE_OK) - ||(sqlite3_prepare_v2(_db,"INSERT INTO Gateway (networkId,ip,ipVersion,metric) VALUES (?,?,?,?)",-1,&_sCreateGateway,(const char **)0) != SQLITE_OK) + ||(sqlite3_prepare_v2(_db,"INSERT INTO Gateway (networkId,\"ip\",ipVersion,metric) VALUES (?,?,?,?)",-1,&_sCreateGateway,(const char **)0) != SQLITE_OK) + + /* Log */ + ||(sqlite3_prepare_v2(_db,"INSERT INTO \"Log\" (networkId,nodeId,\"ts\",\"authorized\",fromAddr) VALUES (?,?,?,?,?)",-1,&_sPutLog,(const char **)0) != SQLITE_OK) + ||(sqlite3_prepare_v2(_db,"SELECT \"ts\",\"authorized\",fromAddr FROM \"Log\" WHERE networkId = ? AND nodeId = ? AND \"ts\" >= ? ORDER BY \"ts\" ASC",-1,&_sGetMemberLog,(const char **)0) != SQLITE_OK) /* Config */ ||(sqlite3_prepare_v2(_db,"SELECT \"v\" FROM \"Config\" WHERE \"k\" = ?",-1,&_sGetConfig,(const char **)0) != SQLITE_OK) ||(sqlite3_prepare_v2(_db,"INSERT OR REPLACE INTO \"Config\" (\"k\",\"v\") VALUES (?,?)",-1,&_sSetConfig,(const char **)0) != SQLITE_OK) ) { - //printf("!!! %s\n",sqlite3_errmsg(_db)); + //printf("%s\n",sqlite3_errmsg(_db)); sqlite3_close(_db); throw std::runtime_error("SqliteNetworkController unable to initialize one or more prepared statements"); } @@ -283,6 +288,8 @@ SqliteNetworkController::~SqliteNetworkController() sqlite3_finalize(_sIncrementMemberRevisionCounter); sqlite3_finalize(_sGetConfig); sqlite3_finalize(_sSetConfig); + sqlite3_finalize(_sPutLog); + sqlite3_finalize(_sGetMemberLog); sqlite3_close(_db); } } @@ -387,6 +394,25 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co sqlite3_step(_sIncrementMemberRevisionCounter); } + // Add log entry + { + std::string fa; + if (fromAddr) { + fa = fromAddr.toString(); + if (fa.length() > 64) + fa = fa.substr(0,64); + } + sqlite3_reset(_sPutLog); + sqlite3_bind_text(_sPutLog,1,network.id,16,SQLITE_STATIC); + sqlite3_bind_text(_sPutLog,2,member.nodeId,10,SQLITE_STATIC); + sqlite3_bind_int64(_sPutLog,3,(long long)OSUtils::now()); + sqlite3_bind_int(_sPutLog,4,member.authorized ? 1 : 0); + if (fa.length() > 0) + sqlite3_bind_text(_sPutLog,5,fa.c_str(),-1,SQLITE_STATIC); + else sqlite3_bind_null(_sPutLog,5); + sqlite3_step(_sPutLog); + } + // Check member authorization if (!member.authorized) diff --git a/controller/SqliteNetworkController.hpp b/controller/SqliteNetworkController.hpp index 8b39f7d9c..bae115198 100644 --- a/controller/SqliteNetworkController.hpp +++ b/controller/SqliteNetworkController.hpp @@ -97,6 +97,7 @@ private: std::string _dbPath; std::string _instanceId; + sqlite3 *_db; sqlite3_stmt *_sGetNetworkById; @@ -141,6 +142,8 @@ private: sqlite3_stmt *_sIncrementMemberRevisionCounter; sqlite3_stmt *_sGetConfig; sqlite3_stmt *_sSetConfig; + sqlite3_stmt *_sPutLog; + sqlite3_stmt *_sGetMemberLog; Mutex _lock; }; diff --git a/controller/schema.sql b/controller/schema.sql index e85785b75..024a5229e 100644 --- a/controller/schema.sql +++ b/controller/schema.sql @@ -65,6 +65,17 @@ CREATE TABLE Member ( CREATE INDEX Member_networkId_activeBridge ON Member(networkId, activeBridge); CREATE INDEX Member_networkId_memberRevision ON Member(networkId, memberRevision); +CREATE TABLE Log ( + networkId char(16) NOT NULL, + nodeId char(10) NOT NULL, + ts integer NOT NULL, + authorized integer NOT NULL, + fromAddr varchar(64) +); + +CREATE INDEX Log_networkId_nodeId ON Log(networkId, nodeId); +CREATE INDEX Log_ts ON Log(ts); + CREATE TABLE Relay ( networkId char(16) NOT NULL REFERENCES Network(id) ON DELETE CASCADE, address char(10) NOT NULL, diff --git a/controller/schema.sql.c b/controller/schema.sql.c index efeb280ce..ac0213bc4 100644 --- a/controller/schema.sql.c +++ b/controller/schema.sql.c @@ -66,6 +66,17 @@ "CREATE INDEX Member_networkId_activeBridge ON Member(networkId, activeBridge);\n"\ "CREATE INDEX Member_networkId_memberRevision ON Member(networkId, memberRevision);\n"\ "\n"\ +"CREATE TABLE Log (\n"\ +" networkId char(16) NOT NULL,\n"\ +" nodeId char(10) NOT NULL,\n"\ +" ts integer NOT NULL,\n"\ +" authorized integer NOT NULL,\n"\ +" fromAddr varchar(64)\n"\ +");\n"\ +"\n"\ +"CREATE INDEX Log_networkId_nodeId ON Log(networkId, nodeId);\n"\ +"CREATE INDEX Log_ts ON Log(ts);\n"\ +"\n"\ "CREATE TABLE Relay (\n"\ " networkId char(16) NOT NULL REFERENCES Network(id) ON DELETE CASCADE,\n"\ " address char(10) NOT NULL,\n"\ From b41079ddf9836d0aa4375ee7f93764706d3e265e Mon Sep 17 00:00:00 2001 From: Nelson Chen Date: Wed, 22 Jul 2015 22:40:43 -0700 Subject: [PATCH 03/37] Update Application Mac Menu. Small MacGap leftover. Hide ZeroTier One, not MacGap. Just a papercut. --- ext/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib b/ext/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib index 61dafbcc9..dd67a86ae 100644 --- a/ext/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib +++ b/ext/mac-ui-macgap1-wrapper/src/MacGap/en.lproj/MainMenu.xib @@ -125,7 +125,7 @@ - Hide MacGap + Hide ZeroTier One h 1048576 2147483647 From 3ba54c7e3559359abd8d4734aa969829309a9dab Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 23 Jul 2015 09:50:10 -0700 Subject: [PATCH 04/37] Eliminate some poorly thought out optimizations from the netconf/controller interaction, and go ahead and bump version to 1.0.4. For a while in 1.0.3 -dev I was trying to optimize out repeated network controller requests by using a ratcheting mechanism. If the client received a network config that was indeed different from the one it had, it would respond by instantlly requesting it again. Not sure what I was thinking. It's fundamentally unsafe to respond to a message with another message of the same type -- it risks a race condition. In this case that's exactly what could happen. It just isn't worth the added complexity to avoid a tiny, tiny amount of network overhead, so I've taken this whole path out. A few extra bytes every two minutes isn't worth fretting about, but as I recall the reason for this optimization was to save CPU on the controller. This can be achieved by just caching responses in memory *there* and serving those same responses back out if they haven't changed. I think I developed that 'ratcheting' stuff before I went full time on this. It's hard to develop stuff like this without hours of sustained focus. --- controller/SqliteNetworkController.cpp | 33 +++++++++++++------------- node/IncomingPacket.cpp | 31 ++++++------------------ node/Network.cpp | 13 +++++++++- node/NetworkConfig.cpp | 23 +++++++----------- node/NetworkConfig.hpp | 26 ++++++-------------- node/NetworkController.hpp | 7 +++--- version.h | 2 +- 7 files changed, 55 insertions(+), 80 deletions(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index 85dbed001..f64896409 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -296,6 +296,12 @@ SqliteNetworkController::~SqliteNetworkController() NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(const InetAddress &fromAddr,const Identity &signingId,const Identity &identity,uint64_t nwid,const Dictionary &metaData,uint64_t haveRevision,Dictionary &netconf) { + // Decode some stuff from metaData + const unsigned int clientMajorVersion = (unsigned int)metaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MAJOR_VERSION,0); + const unsigned int clientMinorVersion = (unsigned int)metaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MINOR_VERSION,0); + const unsigned int clientRevision = (unsigned int)metaData.getHexUInt(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_REVISION,0); + const bool clientIs104 = (Utils::compareVersion(clientMajorVersion,clientMinorVersion,clientRevision,1,0,4) >= 0); + Mutex::Lock _l(_lock); // Note: we can't reuse prepared statements that return const char * pointers without @@ -418,13 +424,6 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co if (!member.authorized) return NetworkController::NETCONF_QUERY_ACCESS_DENIED; - // If netconf is unchanged from client reported revision, just tell client they're up to date - - // Temporarily disabled -- old version didn't do this, and we'll go ahead and - // test more thoroughly before enabling this optimization. - //if ((haveRevision > 0)&&(haveRevision == network.revision)) - // return NetworkController::NETCONF_QUERY_OK_BUT_NOT_NEWER; - // Create and sign netconf netconf.clear(); @@ -581,7 +580,8 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co if ((ipNetmaskBits <= 0)||(ipNetmaskBits > 32)) continue; - switch((IpAssignmentType)sqlite3_column_int(_sGetIpAssignmentsForNode,0)) { + const IpAssignmentType ipt = (IpAssignmentType)sqlite3_column_int(_sGetIpAssignmentsForNode,0); + switch(ipt) { case ZT_IP_ASSIGNMENT_TYPE_ADDRESS: haveStaticIpAssignment = true; break; @@ -592,13 +592,15 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co continue; } - // We send both routes and IP assignments -- client knows which is - // which by whether address ends in all zeroes after netmask. - char tmp[32]; - Utils::snprintf(tmp,sizeof(tmp),"%d.%d.%d.%d/%d",(int)ip[12],(int)ip[13],(int)ip[14],(int)ip[15],ipNetmaskBits); - if (v4s.length()) - v4s.push_back(','); - v4s.append(tmp); + // 1.0.4 or newer clients support network routes in addition to IPs. + // Older clients only support IP address / netmask entries. + if ((clientIs104)||(ipt == ZT_IP_ASSIGNMENT_TYPE_ADDRESS)) { + char tmp[32]; + Utils::snprintf(tmp,sizeof(tmp),"%d.%d.%d.%d/%d",(int)ip[12],(int)ip[13],(int)ip[14],(int)ip[15],ipNetmaskBits); + if (v4s.length()) + v4s.push_back(','); + v4s.append(tmp); + } } if (!haveStaticIpAssignment) { @@ -1388,7 +1390,6 @@ unsigned int SqliteNetworkController::_doCPGet( const char *result = ""; switch(this->doNetworkConfigRequest(InetAddress(),sigid,memid,nwid,Dictionary(),hr,netconf)) { case NetworkController::NETCONF_QUERY_OK: result = "OK"; break; - case NetworkController::NETCONF_QUERY_OK_BUT_NOT_NEWER: result = "OK_BUT_NOT_NEWER"; break; case NetworkController::NETCONF_QUERY_OBJECT_NOT_FOUND: result = "OBJECT_NOT_FOUND"; break; case NetworkController::NETCONF_QUERY_ACCESS_DENIED: result = "ACCESS_DENIED"; break; case NetworkController::NETCONF_QUERY_INTERNAL_SERVER_ERROR: result = "INTERNAL_SERVER_ERROR"; break; diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index ae99352e9..c3d8cc6d0 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -392,28 +392,7 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,const SharedPtr &p const unsigned int dictlen = at(ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN); const std::string dict((const char *)field(ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT,dictlen),dictlen); if (dict.length()) { - if (nw->setConfiguration(Dictionary(dict)) == 2) { // 2 == accepted and actually new - /* If this configuration was indeed new, we do another - * controller request with its revision. We do this in - * order to (a) tell the network controller we got it (it - * won't send a duplicate if ts == current), and (b) - * get another one if the controller is changing rapidly - * until we finally have the final version. - * - * Note that we don't do this for network controllers with - * versions <= 1.0.3, since those regenerate a new controller - * with a new revision every time. In that case this double - * confirmation would create a race condition. */ - const SharedPtr nc(nw->config2()); - if ((peer->atLeastVersion(1,0,3))&&(nc)&&(nc->revision() > 0)) { - Packet outp(peer->address(),RR->identity.address(),Packet::VERB_NETWORK_CONFIG_REQUEST); - outp.append((uint64_t)nw->id()); - outp.append((uint16_t)0); // no meta-data - outp.append((uint64_t)nc->revision()); - outp.armor(peer->key(),true); - RR->node->putPacket(_remoteAddress,outp.data(),outp.size()); - } - } + nw->setConfiguration(Dictionary(dict)); TRACE("got network configuration for network %.16llx from %s",(unsigned long long)nw->id(),source().toString().c_str()); } } @@ -692,6 +671,7 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons if (RR->localNetworkController) { Dictionary netconf; switch(RR->localNetworkController->doNetworkConfigRequest((h > 0) ? InetAddress() : _remoteAddress,RR->identity,peer->identity(),nwid,metaData,haveRevision,netconf)) { + case NetworkController::NETCONF_QUERY_OK: { const std::string netconfStr(netconf.toString()); if (netconfStr.length() > 0xffff) { // sanity check since field ix 16-bit @@ -712,8 +692,7 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons } } } break; - case NetworkController::NETCONF_QUERY_OK_BUT_NOT_NEWER: // nothing to do -- netconf has not changed - break; + case NetworkController::NETCONF_QUERY_OBJECT_NOT_FOUND: { Packet outp(peer->address(),RR->identity.address(),Packet::VERB_ERROR); outp.append((unsigned char)Packet::VERB_NETWORK_CONFIG_REQUEST); @@ -723,6 +702,7 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons outp.armor(peer->key(),true); RR->node->putPacket(_remoteAddress,outp.data(),outp.size()); } break; + case NetworkController::NETCONF_QUERY_ACCESS_DENIED: { Packet outp(peer->address(),RR->identity.address(),Packet::VERB_ERROR); outp.append((unsigned char)Packet::VERB_NETWORK_CONFIG_REQUEST); @@ -732,12 +712,15 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons outp.armor(peer->key(),true); RR->node->putPacket(_remoteAddress,outp.data(),outp.size()); } break; + case NetworkController::NETCONF_QUERY_INTERNAL_SERVER_ERROR: TRACE("NETWORK_CONFIG_REQUEST failed: internal error: %s",netconf.get("error","(unknown)").c_str()); break; + default: TRACE("NETWORK_CONFIG_REQUEST failed: invalid return value from NetworkController::doNetworkConfigRequest()"); break; + } } else { Packet outp(peer->address(),RR->identity.address(),Packet::VERB_ERROR); diff --git a/node/Network.cpp b/node/Network.cpp index adc8e1b8c..549219d74 100644 --- a/node/Network.cpp +++ b/node/Network.cpp @@ -38,6 +38,8 @@ #include "Buffer.hpp" #include "NetworkController.hpp" +#include "../version.h" + namespace ZeroTier { const ZeroTier::MulticastGroup Network::BROADCAST(ZeroTier::MAC(0xffffffffffffULL),0); @@ -255,9 +257,18 @@ void Network::requestConfiguration() } TRACE("requesting netconf for network %.16llx from controller %s",(unsigned long long)_id,controller().toString().c_str()); + + // TODO: in the future we will include things like join tokens here, etc. + Dictionary metaData; + metaData.setHex(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MAJOR_VERSION,ZEROTIER_ONE_VERSION_MAJOR); + metaData.setHex(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MINOR_VERSION,ZEROTIER_ONE_VERSION_MINOR); + metaData.setHex(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_REVISION,ZEROTIER_ONE_VERSION_REVISION); + std::string mds(metaData.toString()); + Packet outp(controller(),RR->identity.address(),Packet::VERB_NETWORK_CONFIG_REQUEST); outp.append((uint64_t)_id); - outp.append((uint16_t)0); // no meta-data + outp.append((uint16_t)mds.length()); + outp.append((const void *)mds.data(),(unsigned int)mds.length()); { Mutex::Lock _l(_lock); if (_config) diff --git a/node/NetworkConfig.cpp b/node/NetworkConfig.cpp index ba4d338bb..7898646cf 100644 --- a/node/NetworkConfig.cpp +++ b/node/NetworkConfig.cpp @@ -47,7 +47,6 @@ SharedPtr NetworkConfig::createTestNetworkConfig(const Address &s nc->_private = false; nc->_enableBroadcast = true; nc->_name = "ZT_TEST_NETWORK"; - nc->_description = "Built-in dummy test network"; // Make up a V4 IP from 'self' in the 10.0.0.0/8 range -- no // guarantee of uniqueness but collisions are unlikely. @@ -111,7 +110,6 @@ void NetworkConfig::_fromDictionary(const Dictionary &d) _name = d.get(ZT_NETWORKCONFIG_DICT_KEY_NAME); if (_name.length() > ZT1_MAX_NETWORK_SHORT_NAME_LENGTH) throw std::invalid_argument("network short name too long (max: 255 characters)"); - _description = d.get(ZT_NETWORKCONFIG_DICT_KEY_DESC,std::string()); // In dictionary IPs are split into V4 and V6 addresses, but we don't really // need that so merge them here. @@ -132,26 +130,22 @@ void NetworkConfig::_fromDictionary(const Dictionary &d) case AF_INET: if ((!addr.netmaskBits())||(addr.netmaskBits() > 32)) continue; - else if (addr.isNetwork()) { - // TODO: add route to network -- this is a route without an IP assignment - continue; - } break; case AF_INET6: if ((!addr.netmaskBits())||(addr.netmaskBits() > 128)) continue; - else if (addr.isNetwork()) { - // TODO: add route to network -- this is a route without an IP assignment - continue; - } break; default: // ignore unrecognized address types or junk/empty fields continue; } - _staticIps.push_back(addr); + if (addr.isNetwork()) + _localRoutes.push_back(addr); + else _staticIps.push_back(addr); } - if (_staticIps.size() > ZT1_MAX_ZT_ASSIGNED_ADDRESSES) - throw std::invalid_argument("too many ZT-assigned IP addresses or routes"); + if (_localRoutes.size() > ZT1_MAX_ZT_ASSIGNED_ADDRESSES) throw std::invalid_argument("too many ZT-assigned routes"); + if (_staticIps.size() > ZT1_MAX_ZT_ASSIGNED_ADDRESSES) throw std::invalid_argument("too many ZT-assigned IP addresses"); + std::sort(_localRoutes.begin(),_localRoutes.end()); + _localRoutes.erase(std::unique(_localRoutes.begin(),_localRoutes.end()),_localRoutes.end()); std::sort(_staticIps.begin(),_staticIps.end()); _staticIps.erase(std::unique(_staticIps.begin(),_staticIps.end()),_staticIps.end()); @@ -201,7 +195,7 @@ bool NetworkConfig::operator==(const NetworkConfig &nc) const if (_private != nc._private) return false; if (_enableBroadcast != nc._enableBroadcast) return false; if (_name != nc._name) return false; - if (_description != nc._description) return false; + if (_localRoutes != nc._localRoutes) return false; if (_staticIps != nc._staticIps) return false; if (_gateways != nc._gateways) return false; if (_activeBridges != nc._activeBridges) return false; @@ -211,4 +205,3 @@ bool NetworkConfig::operator==(const NetworkConfig &nc) const } } // namespace ZeroTier - diff --git a/node/NetworkConfig.hpp b/node/NetworkConfig.hpp index 5c7cdd7c0..6111e65ba 100644 --- a/node/NetworkConfig.hpp +++ b/node/NetworkConfig.hpp @@ -47,59 +47,48 @@ namespace ZeroTier { +// Fields for meta-data sent with network config requests +#define ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MAJOR_VERSION "majv" +#define ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_MINOR_VERSION "minv" +#define ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_NODE_REVISION "revv" + // These dictionary keys are short so they don't take up much room in // netconf response packets. // integer(hex)[,integer(hex),...] #define ZT_NETWORKCONFIG_DICT_KEY_ALLOWED_ETHERNET_TYPES "et" - // network ID #define ZT_NETWORKCONFIG_DICT_KEY_NETWORK_ID "nwid" - // integer(hex) #define ZT_NETWORKCONFIG_DICT_KEY_TIMESTAMP "ts" - // integer(hex) #define ZT_NETWORKCONFIG_DICT_KEY_REVISION "r" - // address of member #define ZT_NETWORKCONFIG_DICT_KEY_ISSUED_TO "id" - // integer(hex) #define ZT_NETWORKCONFIG_DICT_KEY_MULTICAST_LIMIT "ml" - // 0/1 #define ZT_NETWORKCONFIG_DICT_KEY_PRIVATE "p" - // text #define ZT_NETWORKCONFIG_DICT_KEY_NAME "n" - // text #define ZT_NETWORKCONFIG_DICT_KEY_DESC "d" - // IP/bits[,IP/bits,...] // Note that IPs that end in all zeroes are routes with no assignment in them. #define ZT_NETWORKCONFIG_DICT_KEY_IPV4_STATIC "v4s" - // IP/bits[,IP/bits,...] // Note that IPs that end in all zeroes are routes with no assignment in them. #define ZT_NETWORKCONFIG_DICT_KEY_IPV6_STATIC "v6s" - // serialized CertificateOfMembership #define ZT_NETWORKCONFIG_DICT_KEY_CERTIFICATE_OF_MEMBERSHIP "com" - // 0/1 #define ZT_NETWORKCONFIG_DICT_KEY_ENABLE_BROADCAST "eb" - // 0/1 #define ZT_NETWORKCONFIG_DICT_KEY_ALLOW_PASSIVE_BRIDGING "pb" - // node[,node,...] #define ZT_NETWORKCONFIG_DICT_KEY_ACTIVE_BRIDGES "ab" - // node;IP/port[,node;IP/port] #define ZT_NETWORKCONFIG_DICT_KEY_RELAYS "rl" - // IP/metric[,IP/metric,...] #define ZT_NETWORKCONFIG_DICT_KEY_GATEWAYS "gw" @@ -158,7 +147,7 @@ public: inline bool isPublic() const throw() { return (!_private); } inline bool isPrivate() const throw() { return _private; } inline const std::string &name() const throw() { return _name; } - inline const std::string &description() const throw() { return _description; } + inline const std::vector &localRoutes() const throw() { return _localRoutes; } inline const std::vector &staticIps() const throw() { return _staticIps; } inline const std::vector &gateways() const throw() { return _gateways; } inline const std::vector
&activeBridges() const throw() { return _activeBridges; } @@ -194,7 +183,7 @@ private: bool _private; bool _enableBroadcast; std::string _name; - std::string _description; + std::vector _localRoutes; std::vector _staticIps; std::vector _gateways; std::vector
_activeBridges; @@ -207,4 +196,3 @@ private: } // namespace ZeroTier #endif - diff --git a/node/NetworkController.hpp b/node/NetworkController.hpp index 265ee3d44..bef884de5 100644 --- a/node/NetworkController.hpp +++ b/node/NetworkController.hpp @@ -52,10 +52,9 @@ public: enum ResultCode { NETCONF_QUERY_OK = 0, - NETCONF_QUERY_OK_BUT_NOT_NEWER = 1, - NETCONF_QUERY_OBJECT_NOT_FOUND = 2, - NETCONF_QUERY_ACCESS_DENIED = 3, - NETCONF_QUERY_INTERNAL_SERVER_ERROR = 4 + NETCONF_QUERY_OBJECT_NOT_FOUND = 1, + NETCONF_QUERY_ACCESS_DENIED = 2, + NETCONF_QUERY_INTERNAL_SERVER_ERROR = 3 }; NetworkController() {} diff --git a/version.h b/version.h index f7b253a7b..62f8fb697 100644 --- a/version.h +++ b/version.h @@ -41,6 +41,6 @@ /** * Revision */ -#define ZEROTIER_ONE_VERSION_REVISION 3 +#define ZEROTIER_ONE_VERSION_REVISION 4 #endif From b3516c599bb0beb4b4827f28da472972344379c6 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 23 Jul 2015 10:10:17 -0700 Subject: [PATCH 05/37] Add a rate limiting circuit breaker to the network controller to prevent flooding attacks and race conditions. --- controller/SqliteNetworkController.cpp | 13 +++++++++++++ controller/SqliteNetworkController.hpp | 2 ++ node/IncomingPacket.cpp | 3 +++ node/NetworkController.hpp | 3 ++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index f64896409..bdf337ecd 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -64,6 +64,10 @@ // API version reported via JSON control plane #define ZT_NETCONF_CONTROLLER_API_VERSION 1 +// Drop requests for a given peer and network ID that occur more frequently +// than this (ms). +#define ZT_NETCONF_MIN_REQUEST_PERIOD 5000 + namespace ZeroTier { namespace { @@ -316,6 +320,15 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co return NetworkController::NETCONF_QUERY_INTERNAL_SERVER_ERROR; } + // Check rate limit + + { + uint64_t &lrt = _lastRequestTime[std::pair(identity.address(),nwid)]; + uint64_t lrt2 = lrt; + if (((lrt = OSUtils::now()) - lrt2) <= ZT_NETCONF_MIN_REQUEST_PERIOD) + return NetworkController::NETCONF_QUERY_IGNORE; + } + NetworkRecord network; memset(&network,0,sizeof(network)); Utils::snprintf(network.id,sizeof(network.id),"%.16llx",(unsigned long long)nwid); diff --git a/controller/SqliteNetworkController.hpp b/controller/SqliteNetworkController.hpp index bae115198..002493ec3 100644 --- a/controller/SqliteNetworkController.hpp +++ b/controller/SqliteNetworkController.hpp @@ -98,6 +98,8 @@ private: std::string _dbPath; std::string _instanceId; + std::map< std::pair,uint64_t > _lastRequestTime; + sqlite3 *_db; sqlite3_stmt *_sGetNetworkById; diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index c3d8cc6d0..76c47933d 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -717,6 +717,9 @@ bool IncomingPacket::_doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *RR,cons TRACE("NETWORK_CONFIG_REQUEST failed: internal error: %s",netconf.get("error","(unknown)").c_str()); break; + case NetworkController::NETCONF_QUERY_IGNORE: + break; + default: TRACE("NETWORK_CONFIG_REQUEST failed: invalid return value from NetworkController::doNetworkConfigRequest()"); break; diff --git a/node/NetworkController.hpp b/node/NetworkController.hpp index bef884de5..ee481a623 100644 --- a/node/NetworkController.hpp +++ b/node/NetworkController.hpp @@ -54,7 +54,8 @@ public: NETCONF_QUERY_OK = 0, NETCONF_QUERY_OBJECT_NOT_FOUND = 1, NETCONF_QUERY_ACCESS_DENIED = 2, - NETCONF_QUERY_INTERNAL_SERVER_ERROR = 3 + NETCONF_QUERY_INTERNAL_SERVER_ERROR = 3, + NETCONF_QUERY_IGNORE = 4 }; NetworkController() {} From a493fc23f4305f80d93f0879324aa87f536a1a90 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 23 Jul 2015 13:05:18 -0700 Subject: [PATCH 06/37] Fix for make-linux: detect whether CC/CXX were explicitly overridden, and if not then use the gcc/clang selection logic. Otherwise ?= breaks this. --- make-linux.mk | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/make-linux.mk b/make-linux.mk index c56f35691..d1e0c955f 100644 --- a/make-linux.mk +++ b/make-linux.mk @@ -18,8 +18,14 @@ # # Automagically pick clang or gcc, with preference for clang -CC?=$(shell if [ -e /usr/bin/clang ]; then echo clang; else echo gcc; fi) -CXX?=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) +# This is only done if we have not overridden these with an environment or CLI variable +ifeq ($(origin CC),default) + CC=$(shell if [ -e /usr/bin/clang ]; then echo clang; else echo gcc; fi) +endif +ifeq ($(origin CXX),default) + CXX=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) +endif + INCLUDES= DEFS= LDLIBS?= From d647a587a1c920cdf58ce77872280e4e4ec9cca9 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 23 Jul 2015 17:18:20 -0700 Subject: [PATCH 07/37] (1) Fix updating of network revision counter on member change. (2) Go back to timestamp as certificate revision number. This is simpler and more robust than using the network revision number for this and forcing network revision fast-forward, which could cause some peers to fall off the horizon when you don't want them to. --- controller/SqliteNetworkController.cpp | 17 +++++++++++++++-- include/ZeroTierOne.h | 11 ----------- node/Constants.hpp | 4 ++-- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index bdf337ecd..b41c7ef50 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -66,7 +66,7 @@ // Drop requests for a given peer and network ID that occur more frequently // than this (ms). -#define ZT_NETCONF_MIN_REQUEST_PERIOD 5000 +#define ZT_NETCONF_MIN_REQUEST_PERIOD 1000 namespace ZeroTier { @@ -689,7 +689,7 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co // TODO: IPv6 auto-assign once it's supported in UI if (network.isPrivate) { - CertificateOfMembership com(network.revision,ZT1_CERTIFICATE_OF_MEMBERSHIP_REVISION_MAX_DELTA,nwid,identity.address()); + CertificateOfMembership com(OSUtils::now(),ZT_NETWORK_AUTOCONF_DELAY + (ZT_NETWORK_AUTOCONF_DELAY / 2),nwid,identity.address()); if (com.sign(signingId)) // basically can't fail unless our identity is invalid netconf[ZT_NETWORKCONFIG_DICT_KEY_CERTIFICATE_OF_MEMBERSHIP] = com.toString(); else { @@ -757,6 +757,8 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( char addrs[24]; Utils::snprintf(addrs,sizeof(addrs),"%.10llx",address); + int64_t addToNetworkRevision = 0; + int64_t memberRowId = 0; sqlite3_reset(_sGetMember); sqlite3_bind_text(_sGetMember,1,nwids,16,SQLITE_STATIC); @@ -780,6 +782,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( sqlite3_reset(_sIncrementMemberRevisionCounter); sqlite3_bind_text(_sIncrementMemberRevisionCounter,1,nwids,16,SQLITE_STATIC); sqlite3_step(_sIncrementMemberRevisionCounter); + addToNetworkRevision = 1; } json_value *j = json_parse(body.c_str(),body.length()); @@ -799,6 +802,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( sqlite3_reset(_sIncrementMemberRevisionCounter); sqlite3_bind_text(_sIncrementMemberRevisionCounter,1,nwids,16,SQLITE_STATIC); sqlite3_step(_sIncrementMemberRevisionCounter); + addToNetworkRevision = 1; } } else if (!strcmp(j->u.object.values[k].name,"activeBridge")) { if (j->u.object.values[k].value->type == json_boolean) { @@ -812,6 +816,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( sqlite3_reset(_sIncrementMemberRevisionCounter); sqlite3_bind_text(_sIncrementMemberRevisionCounter,1,nwids,16,SQLITE_STATIC); sqlite3_step(_sIncrementMemberRevisionCounter); + addToNetworkRevision = 1; } } else if (!strcmp(j->u.object.values[k].name,"ipAssignments")) { if (j->u.object.values[k].value->type == json_array) { @@ -855,6 +860,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( } } } + addToNetworkRevision = 1; } } @@ -863,6 +869,13 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST( json_value_free(j); } + if ((addToNetworkRevision > 0)&&(revision > 0)) { + sqlite3_reset(_sSetNetworkRevision); + sqlite3_bind_int64(_sSetNetworkRevision,1,revision + addToNetworkRevision); + sqlite3_bind_text(_sSetNetworkRevision,2,nwids,16,SQLITE_STATIC); + sqlite3_step(_sSetNetworkRevision); + } + return _doCPGet(path,urlArgs,headers,body,responseBody,responseContentType); } // else 404 diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h index 7ae524a85..dc2243f21 100644 --- a/include/ZeroTierOne.h +++ b/include/ZeroTierOne.h @@ -105,17 +105,6 @@ extern "C" { */ #define ZT1_MAX_PEER_NETWORK_PATHS 4 -/** - * Maximum number of revisions over which a network COM can differ and still be in-horizon (agree) - * - * This is the default max delta for the revision field in COMs issued - * by network controllers, and is defined here for documentation purposes. - * When a network is changed so as to de-authorize a member, its revision - * should be incremented by this number. Otherwise all other changes that - * materially affect the network should result in increment by one. - */ -#define ZT1_CERTIFICATE_OF_MEMBERSHIP_REVISION_MAX_DELTA 16 - /** * Feature flag: ZeroTier One was built to be thread-safe -- concurrent processXXX() calls are okay */ diff --git a/node/Constants.hpp b/node/Constants.hpp index d15fef13e..c192381cd 100644 --- a/node/Constants.hpp +++ b/node/Constants.hpp @@ -158,7 +158,7 @@ /** * Maximum number of packet fragments we'll support - * + * * The actual spec allows 16, but this is the most we'll support right * now. Packets with more than this many fragments are dropped. */ @@ -216,7 +216,7 @@ /** * Maximum number of ZT hops allowed (this is not IP hops/TTL) - * + * * The protocol allows up to 7, but we limit it to something smaller. */ #define ZT_RELAY_MAX_HOPS 3 From d57ea671d7d10b242def3b6d43832906275adff9 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 24 Jul 2015 09:59:17 -0700 Subject: [PATCH 08/37] Add version to log. --- controller/SqliteNetworkController.cpp | 87 +++++++++++--------------- controller/SqliteNetworkController.hpp | 1 + controller/schema.sql | 1 + controller/schema.sql.c | 1 + 4 files changed, 38 insertions(+), 52 deletions(-) diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index b41c7ef50..50be5b344 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -209,8 +209,9 @@ SqliteNetworkController::SqliteNetworkController(const char *dbPath) : ||(sqlite3_prepare_v2(_db,"INSERT INTO Gateway (networkId,\"ip\",ipVersion,metric) VALUES (?,?,?,?)",-1,&_sCreateGateway,(const char **)0) != SQLITE_OK) /* Log */ - ||(sqlite3_prepare_v2(_db,"INSERT INTO \"Log\" (networkId,nodeId,\"ts\",\"authorized\",fromAddr) VALUES (?,?,?,?,?)",-1,&_sPutLog,(const char **)0) != SQLITE_OK) - ||(sqlite3_prepare_v2(_db,"SELECT \"ts\",\"authorized\",fromAddr FROM \"Log\" WHERE networkId = ? AND nodeId = ? AND \"ts\" >= ? ORDER BY \"ts\" ASC",-1,&_sGetMemberLog,(const char **)0) != SQLITE_OK) + ||(sqlite3_prepare_v2(_db,"INSERT INTO \"Log\" (networkId,nodeId,\"ts\",\"authorized\",\"version\",fromAddr) VALUES (?,?,?,?,?,?)",-1,&_sPutLog,(const char **)0) != SQLITE_OK) + ||(sqlite3_prepare_v2(_db,"SELECT \"ts\",\"authorized\",\"version\",fromAddr FROM \"Log\" WHERE networkId = ? AND nodeId = ? AND \"ts\" >= ? ORDER BY \"ts\" ASC",-1,&_sGetMemberLog,(const char **)0) != SQLITE_OK) + ||(sqlite3_prepare_v2(_db,"SELECT \"ts\",\"authorized\",\"version\",fromAddr FROM \"Log\" WHERE networkId = ? AND nodeId = ? ORDER BY \"ts\" DESC LIMIT 10",-1,&_sGetRecentMemberLog,(const char **)0) != SQLITE_OK) /* Config */ ||(sqlite3_prepare_v2(_db,"SELECT \"v\" FROM \"Config\" WHERE \"k\" = ?",-1,&_sGetConfig,(const char **)0) != SQLITE_OK) @@ -294,6 +295,7 @@ SqliteNetworkController::~SqliteNetworkController() sqlite3_finalize(_sSetConfig); sqlite3_finalize(_sPutLog); sqlite3_finalize(_sGetMemberLog); + sqlite3_finalize(_sGetRecentMemberLog); sqlite3_close(_db); } } @@ -415,6 +417,7 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co // Add log entry { + char ver[16]; std::string fa; if (fromAddr) { fa = fromAddr.toString(); @@ -426,9 +429,13 @@ NetworkController::ResultCode SqliteNetworkController::doNetworkConfigRequest(co sqlite3_bind_text(_sPutLog,2,member.nodeId,10,SQLITE_STATIC); sqlite3_bind_int64(_sPutLog,3,(long long)OSUtils::now()); sqlite3_bind_int(_sPutLog,4,member.authorized ? 1 : 0); + if ((clientMajorVersion > 0)||(clientMinorVersion > 0)||(clientRevision > 0)) { + Utils::snprintf(ver,sizeof(ver),"%u.%u.%u",clientMajorVersion,clientMinorVersion,clientRevision); + sqlite3_bind_text(_sPutLog,5,ver,-1,SQLITE_STATIC); + } else sqlite3_bind_null(_sPutLog,5); if (fa.length() > 0) - sqlite3_bind_text(_sPutLog,5,fa.c_str(),-1,SQLITE_STATIC); - else sqlite3_bind_null(_sPutLog,5); + sqlite3_bind_text(_sPutLog,6,fa.c_str(),-1,SQLITE_STATIC); + else sqlite3_bind_null(_sPutLog,6); sqlite3_step(_sPutLog); } @@ -1386,57 +1393,33 @@ unsigned int SqliteNetworkController::_doCPGet( responseBody.push_back('"'); } - responseBody.append("]"); + responseBody.append("],\n\t\"recentLog\": ["); - /* It's possible to get the actual netconf dictionary by including these - * three URL arguments. The member identity must be the string - * serialized identity of this member, and the signing identity must be - * the full secret identity of this network controller. The have revision - * is optional but would designate the revision our hypothetical client - * already has. - * - * This is primarily for testing and is not used in production. It makes - * it easy to test the entire network controller via its JSON API. - * - * If these arguments are included, three more object fields are returned: - * 'netconf', 'netconfResult', and 'netconfResultMessage'. These are all - * string fields and contain the actual netconf dictionary, the query - * result code, and any verbose message e.g. an error description. */ - std::map::const_iterator memids(urlArgs.find("memberIdentity")); - std::map::const_iterator sigids(urlArgs.find("signingIdentity")); - std::map::const_iterator hrs(urlArgs.find("haveRevision")); - if ((memids != urlArgs.end())&&(sigids != urlArgs.end())) { - Dictionary netconf; - Identity memid,sigid; - try { - if (memid.fromString(memids->second)&&sigid.fromString(sigids->second)&&sigid.hasPrivate()) { - uint64_t hr = 0; - if (hrs != urlArgs.end()) - hr = Utils::strToU64(hrs->second.c_str()); - const char *result = ""; - switch(this->doNetworkConfigRequest(InetAddress(),sigid,memid,nwid,Dictionary(),hr,netconf)) { - case NetworkController::NETCONF_QUERY_OK: result = "OK"; break; - case NetworkController::NETCONF_QUERY_OBJECT_NOT_FOUND: result = "OBJECT_NOT_FOUND"; break; - case NetworkController::NETCONF_QUERY_ACCESS_DENIED: result = "ACCESS_DENIED"; break; - case NetworkController::NETCONF_QUERY_INTERNAL_SERVER_ERROR: result = "INTERNAL_SERVER_ERROR"; break; - default: result = "(unrecognized result code)"; break; - } - responseBody.append(",\n\t\"netconf\": \""); - responseBody.append(_jsonEscape(netconf.toString().c_str())); - responseBody.append("\",\n\t\"netconfResult\": \""); - responseBody.append(result); - responseBody.append("\",\n\t\"netconfResultMessage\": \""); - responseBody.append(_jsonEscape(netconf["error"].c_str())); - responseBody.append("\""); - } else { - responseBody.append(",\n\t\"netconf\": \"\",\n\t\"netconfResult\": \"INTERNAL_SERVER_ERROR\",\n\t\"netconfResultMessage\": \"invalid member or signing identity\""); - } - } catch ( ... ) { - responseBody.append(",\n\t\"netconf\": \"\",\n\t\"netconfResult\": \"INTERNAL_SERVER_ERROR\",\n\t\"netconfResultMessage\": \"unexpected exception\""); - } + sqlite3_reset(_sGetRecentMemberLog); + sqlite3_bind_text(_sGetRecentMemberLog,1,nwids,16,SQLITE_STATIC); + sqlite3_bind_text(_sGetRecentMemberLog,2,addrs,10,SQLITE_STATIC); + bool firstLog = true; + while (sqlite3_step(_sGetRecentMemberLog) == SQLITE_ROW) { + responseBody.append(firstLog ? "{" : ",{"); + firstLog = false; + responseBody.append("\"ts\":"); + responseBody.append(reinterpret_cast(sqlite3_column_text(_sGetRecentMemberLog,0))); + responseBody.append((sqlite3_column_int(_sGetRecentMemberLog,1) == 0) ? ",\"authorized\":false,\"version\":" : ",\"authorized\":true,\"version\":"); + const char *ver = reinterpret_cast(sqlite3_column_text(_sGetRecentMemberLog,2)); + if ((ver)&&(ver[0])) { + responseBody.push_back('"'); + responseBody.append(_jsonEscape(ver)); + responseBody.append("\",\"fromAddr\":"); + } else responseBody.append("null,\"fromAddr\":"); + const char *fa = reinterpret_cast(sqlite3_column_text(_sGetRecentMemberLog,3)); + if ((fa)&&(fa[0])) { + responseBody.push_back('"'); + responseBody.append(_jsonEscape(fa)); + responseBody.append("\"}"); + } else responseBody.append("null}"); } - responseBody.append("\n}\n"); + responseBody.append("]\n}\n"); responseContentType = "application/json"; return 200; diff --git a/controller/SqliteNetworkController.hpp b/controller/SqliteNetworkController.hpp index 002493ec3..adfe09916 100644 --- a/controller/SqliteNetworkController.hpp +++ b/controller/SqliteNetworkController.hpp @@ -146,6 +146,7 @@ private: sqlite3_stmt *_sSetConfig; sqlite3_stmt *_sPutLog; sqlite3_stmt *_sGetMemberLog; + sqlite3_stmt *_sGetRecentMemberLog; Mutex _lock; }; diff --git a/controller/schema.sql b/controller/schema.sql index 024a5229e..398d63ac3 100644 --- a/controller/schema.sql +++ b/controller/schema.sql @@ -70,6 +70,7 @@ CREATE TABLE Log ( nodeId char(10) NOT NULL, ts integer NOT NULL, authorized integer NOT NULL, + version varchar(16), fromAddr varchar(64) ); diff --git a/controller/schema.sql.c b/controller/schema.sql.c index ac0213bc4..fa83f880a 100644 --- a/controller/schema.sql.c +++ b/controller/schema.sql.c @@ -71,6 +71,7 @@ " nodeId char(10) NOT NULL,\n"\ " ts integer NOT NULL,\n"\ " authorized integer NOT NULL,\n"\ +" version varchar(16),\n"\ " fromAddr varchar(64)\n"\ ");\n"\ "\n"\ From dba91eaa096d85992bf37a6c19dbead8104d9088 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 24 Jul 2015 13:17:41 -0700 Subject: [PATCH 09/37] Apply same Linux compiler-picker logic to Mac. --- make-mac.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/make-mac.mk b/make-mac.mk index 1bc842cee..02d42252e 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -1,5 +1,9 @@ -CC?=clang -CXX?=clang++ +ifeq ($(origin CC),default) + CC=$(shell if [ -e /usr/bin/clang ]; then echo clang; else echo gcc; fi) +endif +ifeq ($(origin CXX),default) + CXX=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) +endif INCLUDES=-I/usr/local/include DEFS= From 7a15d8a7e3fb4934200887666afdf17afb1178e5 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 24 Jul 2015 14:50:44 -0700 Subject: [PATCH 10/37] Fix leaving of networks to actually call Network::destroy(). --- node/Node.cpp | 1 + osdep/OSUtils.hpp | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/node/Node.cpp b/node/Node.cpp index ebe0527e7..d40ceab9c 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -316,6 +316,7 @@ ZT1_ResultCode Node::leave(uint64_t nwid) for(std::vector< std::pair< uint64_t,SharedPtr > >::const_iterator n(_networks.begin());n!=_networks.end();++n) { if (n->first != nwid) newn.push_back(*n); + else n->second->destroy(); } _networks.swap(newn); return ZT1_RESULT_OK; diff --git a/osdep/OSUtils.hpp b/osdep/OSUtils.hpp index bfe9b68aa..5de35eba3 100644 --- a/osdep/OSUtils.hpp +++ b/osdep/OSUtils.hpp @@ -121,10 +121,10 @@ public: /** * Set modes on a file to something secure - * + * * This locks a file so that only the owner can access it. What it actually * does varies by platform. - * + * * @param path Path to lock * @param isDir True if this is a directory */ @@ -252,4 +252,3 @@ private: } // namespace ZeroTier #endif - From e30ba3e1382b50aa8f393132204f8f27ccfb03f9 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 27 Jul 2015 16:43:05 -0700 Subject: [PATCH 11/37] Eliminate some aggressive port scanning NAT-t behavior that has proven ineffective. --- node/Switch.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index cf4fe2492..3d9ef5b18 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -451,7 +451,7 @@ unsigned long Switch::doTimerTasks(uint64_t now) { unsigned long nextDelay = 0xffffffff; // ceiling delay, caller will cap to minimum - { // Aggressive NAT traversal time! + { Mutex::Lock _l(_contactQueue_m); for(std::list::iterator qi(_contactQueue.begin());qi!=_contactQueue.end();) { if (now >= qi->fireAtTime) { @@ -460,26 +460,17 @@ unsigned long Switch::doTimerTasks(uint64_t now) _contactQueue.erase(qi++); continue; } else { - // Nope, nothing yet. Time to kill some kittens. if (qi->strategyIteration == 0) { // First strategy: send packet directly (we already tried this but try again) qi->peer->attemptToContactAt(RR,qi->inaddr,now); - } else if (qi->strategyIteration <= 9) { - // Strategies 1-9: try escalating ports + } else if (qi->strategyIteration <= 4) { + // Strategies 1-4: try escalating ports InetAddress tmpaddr(qi->inaddr); int p = (int)qi->inaddr.port() + qi->strategyIteration; if (p < 0xffff) { tmpaddr.setPort((unsigned int)p); qi->peer->attemptToContactAt(RR,tmpaddr,now); } else qi->strategyIteration = 9; - } else if (qi->strategyIteration <= 18) { - // Strategies 10-18: try ports below - InetAddress tmpaddr(qi->inaddr); - int p = (int)qi->inaddr.port() - (qi->strategyIteration - 9); - if (p >= 1024) { - tmpaddr.setPort((unsigned int)p); - qi->peer->attemptToContactAt(RR,tmpaddr,now); - } else qi->strategyIteration = 18; } else { // All strategies tried, expire entry _contactQueue.erase(qi++); From f0003ea92277039f70dd6f16920dd2db9fb2fb1e Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 27 Jul 2015 17:02:43 -0700 Subject: [PATCH 12/37] Push remote surface as reported by peers along with known interface direct paths to assist with (some) NAT traversal. (trying this, may back out if not effective) --- node/Peer.cpp | 19 +++++++++++++++++++ node/SelfAwareness.hpp | 14 ++++++++++++++ node/Topology.hpp | 8 ++++---- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/node/Peer.cpp b/node/Peer.cpp index 73c202282..804e6e392 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -33,6 +33,7 @@ #include "Switch.hpp" #include "Network.hpp" #include "AntiRecursion.hpp" +#include "SelfAwareness.hpp" #include @@ -229,6 +230,24 @@ void Peer::pushDirectPaths(const RuntimeEnvironment *RR,RemotePath *path,uint64_ _lastDirectPathPush = now; std::vector dps(RR->node->directPaths()); + + /* Also push paths reported to us by non-root-server peers. This assists + * with NAT traversal behind NATs that engage in strange or randomized + * port assignment behavior. */ + std::vector
rootAddresses(RR->topology->rootAddresses()); + std::vector< std::pair > surface(RR->sa->getReportedSurface()); + for(std::vector< std::pair >::const_iterator s(surface.begin());s!=surface.end();++s) { + bool alreadyHave = false; + for(std::vector::const_iterator p(dps.begin());p!=dps.end();++p) { + if (p->address() == s->second) { + alreadyHave = true; + break; + } + } + if ((!alreadyHave)&&(std::find(rootAddresses.begin(),rootAddresses.end(),s->first) == rootAddresses.end())) + dps.push_back(Path(s->second,0,Path::TRUST_NORMAL)); + } + #ifdef ZT_TRACE { std::string ps; diff --git a/node/SelfAwareness.hpp b/node/SelfAwareness.hpp index 4780fa5b5..9fcefa62f 100644 --- a/node/SelfAwareness.hpp +++ b/node/SelfAwareness.hpp @@ -29,6 +29,7 @@ #define ZT_SELFAWARENESS_HPP #include +#include #include "InetAddress.hpp" #include "Address.hpp" @@ -65,6 +66,19 @@ public: */ void clean(uint64_t now); + /** + * @return List of external surface addresses as reported by peers + */ + inline std::vector< std::pair > getReportedSurface() const + { + std::vector< std::pair > r; + Mutex::Lock _l(_phy_m); + r.reserve(_phy.size()); + for(std::map< PhySurfaceKey,PhySurfaceEntry >::const_iterator p(_phy.begin());p!=_phy.end();) + r.push_back(std::pair(p->first.reporter,p->second.mySurface)); + return r; + } + private: struct PhySurfaceKey { diff --git a/node/Topology.hpp b/node/Topology.hpp index c878bcc6e..1c5cca007 100644 --- a/node/Topology.hpp +++ b/node/Topology.hpp @@ -86,7 +86,7 @@ public: /** * Get a peer from its address - * + * * @param zta ZeroTier address of peer * @return Peer or NULL if not found */ @@ -103,7 +103,7 @@ public: /** * Get the current favorite root server - * + * * @return Root server with lowest latency or NULL if none */ inline SharedPtr getBestRoot() @@ -113,11 +113,11 @@ public: /** * Get the best root server, avoiding root servers listed in an array - * + * * This will get the best root server (lowest latency, etc.) but will * try to avoid the listed root servers, only using them if no others * are available. - * + * * @param avoid Nodes to avoid * @param avoidCount Number of nodes to avoid * @param strictAvoid If false, consider avoided root servers anyway if no non-avoid root servers are available From fadb2919625f72b7f0fbff17478ac467a86e657b Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 27 Jul 2015 17:14:49 -0700 Subject: [PATCH 13/37] Fix infinite loop typo. --- node/SelfAwareness.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/node/SelfAwareness.hpp b/node/SelfAwareness.hpp index 9fcefa62f..1b160a3f4 100644 --- a/node/SelfAwareness.hpp +++ b/node/SelfAwareness.hpp @@ -72,10 +72,12 @@ public: inline std::vector< std::pair > getReportedSurface() const { std::vector< std::pair > r; - Mutex::Lock _l(_phy_m); - r.reserve(_phy.size()); - for(std::map< PhySurfaceKey,PhySurfaceEntry >::const_iterator p(_phy.begin());p!=_phy.end();) - r.push_back(std::pair(p->first.reporter,p->second.mySurface)); + { + Mutex::Lock _l(_phy_m); + r.reserve(_phy.size()); + for(std::map< PhySurfaceKey,PhySurfaceEntry >::const_iterator p(_phy.begin());p!=_phy.end();++p) + r.push_back(std::pair(p->first.reporter,p->second.mySurface)); + } return r; } From e99eda4a4a178bbdbb419791587b581431061439 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 27 Jul 2015 17:28:13 -0700 Subject: [PATCH 14/37] Fix IP scoping bug, and disable remotely reported surface push... not helping. :( --- node/InetAddress.cpp | 2 +- node/Peer.cpp | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/node/InetAddress.cpp b/node/InetAddress.cpp index 91bfbed6c..1942c4cd4 100644 --- a/node/InetAddress.cpp +++ b/node/InetAddress.cpp @@ -74,7 +74,7 @@ InetAddress::IpScope InetAddress::ipScope() const if ((ip & 0xfff00000) == 0xac100000) return IP_SCOPE_PRIVATE; // 172.16.0.0/12 break; case 0xc0: - if ((ip & 0xffff0000) == 0xc9a80000) return IP_SCOPE_PRIVATE; // 192.168.0.0/16 + if ((ip & 0xffff0000) == 0xc0a80000) return IP_SCOPE_PRIVATE; // 192.168.0.0/16 break; case 0xff: return IP_SCOPE_NONE; // 255.0.0.0/8 (broadcast, or unused/unusable) default: diff --git a/node/Peer.cpp b/node/Peer.cpp index 804e6e392..ab3d61a6b 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -226,15 +226,13 @@ void Peer::doPingAndKeepalive(const RuntimeEnvironment *RR,uint64_t now) void Peer::pushDirectPaths(const RuntimeEnvironment *RR,RemotePath *path,uint64_t now,bool force) { - if ((((now - _lastDirectPathPush) >= ZT_DIRECT_PATH_PUSH_INTERVAL)||(force))) { + if ((true)||(((now - _lastDirectPathPush) >= ZT_DIRECT_PATH_PUSH_INTERVAL)||(force))) { _lastDirectPathPush = now; std::vector dps(RR->node->directPaths()); - /* Also push paths reported to us by non-root-server peers. This assists - * with NAT traversal behind NATs that engage in strange or randomized - * port assignment behavior. */ - std::vector
rootAddresses(RR->topology->rootAddresses()); + // Push peer-reported surface -- tried this and it didn't help much with difficult NATs so commenting out. + /* std::vector< std::pair > surface(RR->sa->getReportedSurface()); for(std::vector< std::pair >::const_iterator s(surface.begin());s!=surface.end();++s) { bool alreadyHave = false; @@ -244,9 +242,10 @@ void Peer::pushDirectPaths(const RuntimeEnvironment *RR,RemotePath *path,uint64_ break; } } - if ((!alreadyHave)&&(std::find(rootAddresses.begin(),rootAddresses.end(),s->first) == rootAddresses.end())) + if (!alreadyHave) dps.push_back(Path(s->second,0,Path::TRUST_NORMAL)); } + */ #ifdef ZT_TRACE { From 821f1f366e468d1ff2f45a9e871ccec04b80fd3f Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 27 Jul 2015 17:34:58 -0700 Subject: [PATCH 15/37] Fix to NAT escalation sequence. --- node/Switch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index 3d9ef5b18..18935ce5e 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -470,7 +470,7 @@ unsigned long Switch::doTimerTasks(uint64_t now) if (p < 0xffff) { tmpaddr.setPort((unsigned int)p); qi->peer->attemptToContactAt(RR,tmpaddr,now); - } else qi->strategyIteration = 9; + } else qi->strategyIteration = 5; } else { // All strategies tried, expire entry _contactQueue.erase(qi++); From 40d5c79b62e7ca7f6da7697e720fb0eb49a26125 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 10:29:25 -0700 Subject: [PATCH 16/37] Enable SO_NO_CHECK if available to skip UDP checksum on packet send for slight performance improvement. We do our own cryptographically secure authentication so UDP checksum is worthless. --- osdep/Http.cpp | 2 +- osdep/Phy.hpp | 12 ++++++++++-- selftest.cpp | 2 +- service/OneService.cpp | 2 +- tcp-proxy/tcp-proxy.cpp | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/osdep/Http.cpp b/osdep/Http.cpp index cd3cf1370..d491b062a 100644 --- a/osdep/Http.cpp +++ b/osdep/Http.cpp @@ -232,7 +232,7 @@ unsigned int Http::_do( handler.error = false; handler.done = false; - Phy phy(&handler,true); + Phy phy(&handler,true,true); bool instantConnect = false; handler.phy = &phy; diff --git a/osdep/Phy.hpp b/osdep/Phy.hpp index ec01625ba..5afd715bf 100644 --- a/osdep/Phy.hpp +++ b/osdep/Phy.hpp @@ -144,7 +144,7 @@ private: fd_set _readfds; fd_set _writefds; #if defined(_WIN32) || defined(_WIN64) - fd_set _exceptfds; + fd_set _exceptfds; #endif long _nfds; @@ -152,13 +152,15 @@ private: ZT_PHY_SOCKFD_TYPE _whackSendSocket; bool _noDelay; + bool _noCheck; public: /** * @param handler Pointer of type HANDLER_PTR_TYPE to handler * @param noDelay If true, disable TCP NAGLE algorithm on TCP sockets + * @param noCheck If true, attempt to set UDP SO_NO_CHECK option to disable sending checksums */ - Phy(HANDLER_PTR_TYPE handler,bool noDelay) : + Phy(HANDLER_PTR_TYPE handler,bool noDelay,bool noCheck) : _handler(handler) { FD_ZERO(&_readfds); @@ -202,6 +204,7 @@ public: _whackReceiveSocket = pipes[0]; _whackSendSocket = pipes[1]; _noDelay = noDelay; + _noCheck = noCheck; } ~Phy() @@ -296,6 +299,11 @@ public: #endif #ifdef IP_MTU_DISCOVER f = 0; setsockopt(s,IPPROTO_IP,IP_MTU_DISCOVER,&f,sizeof(f)); +#endif +#ifdef SO_NO_CHECK + if (_noCheck) { + f = 1; setsockopt(s,SOL_SOCKET,SO_NO_CHECK,(void *)&f,sizeof(f)); + } #endif } #endif // Windows or not diff --git a/selftest.cpp b/selftest.cpp index cf20fdf3d..714964cb9 100644 --- a/selftest.cpp +++ b/selftest.cpp @@ -696,7 +696,7 @@ static int testPhy() std::cout << "[phy] Creating phy endpoint..." << std::endl; TestPhyHandlers testPhyHandlers; - testPhyInstance = new Phy(&testPhyHandlers,false); + testPhyInstance = new Phy(&testPhyHandlers,false,true); std::cout << "[phy] Binding UDP listen socket to 127.0.0.1/60002... "; PhySocket *udpListenSock = testPhyInstance->udpBind((const struct sockaddr *)&bindaddr); diff --git a/service/OneService.cpp b/service/OneService.cpp index d582a8937..b83cd83f6 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -404,7 +404,7 @@ public: #ifdef ZT_ENABLE_NETWORK_CONTROLLER _controller((_homePath + ZT_PATH_SEPARATOR_S + ZT1_CONTROLLER_DB_PATH).c_str()), #endif - _phy(this,false), + _phy(this,false,true), _overrideRootTopology((overrideRootTopology) ? overrideRootTopology : ""), _node((Node *)0), _controlPlane((ControlPlane *)0), diff --git a/tcp-proxy/tcp-proxy.cpp b/tcp-proxy/tcp-proxy.cpp index 6acf7b423..70c0281af 100644 --- a/tcp-proxy/tcp-proxy.cpp +++ b/tcp-proxy/tcp-proxy.cpp @@ -297,7 +297,7 @@ int main(int argc,char **argv) srand(time((time_t *)0)); TcpProxyService svc; - Phy phy(&svc,false); + Phy phy(&svc,false,true); svc.phy = &phy; svc.udpPortCounter = 1023; From dda376c9eb0800b824f423db30399d93e89cb162 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 11:16:43 -0700 Subject: [PATCH 17/37] Nuke some abandoned code. --- node/Peer.cpp | 16 ---------------- node/SelfAwareness.hpp | 15 --------------- 2 files changed, 31 deletions(-) diff --git a/node/Peer.cpp b/node/Peer.cpp index ab3d61a6b..2bfd421fa 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -231,22 +231,6 @@ void Peer::pushDirectPaths(const RuntimeEnvironment *RR,RemotePath *path,uint64_ std::vector dps(RR->node->directPaths()); - // Push peer-reported surface -- tried this and it didn't help much with difficult NATs so commenting out. - /* - std::vector< std::pair > surface(RR->sa->getReportedSurface()); - for(std::vector< std::pair >::const_iterator s(surface.begin());s!=surface.end();++s) { - bool alreadyHave = false; - for(std::vector::const_iterator p(dps.begin());p!=dps.end();++p) { - if (p->address() == s->second) { - alreadyHave = true; - break; - } - } - if (!alreadyHave) - dps.push_back(Path(s->second,0,Path::TRUST_NORMAL)); - } - */ - #ifdef ZT_TRACE { std::string ps; diff --git a/node/SelfAwareness.hpp b/node/SelfAwareness.hpp index 1b160a3f4..4eede5921 100644 --- a/node/SelfAwareness.hpp +++ b/node/SelfAwareness.hpp @@ -66,21 +66,6 @@ public: */ void clean(uint64_t now); - /** - * @return List of external surface addresses as reported by peers - */ - inline std::vector< std::pair > getReportedSurface() const - { - std::vector< std::pair > r; - { - Mutex::Lock _l(_phy_m); - r.reserve(_phy.size()); - for(std::map< PhySurfaceKey,PhySurfaceEntry >::const_iterator p(_phy.begin());p!=_phy.end();++p) - r.push_back(std::pair(p->first.reporter,p->second.mySurface)); - } - return r; - } - private: struct PhySurfaceKey { From b31071463cafda54afbf6f01d37aa7451b217b12 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 11:28:47 -0700 Subject: [PATCH 18/37] Try another NAT traversal improvement. --- node/Constants.hpp | 3 +++ node/IncomingPacket.cpp | 2 +- node/SelfAwareness.cpp | 15 +++++++++++++++ node/SelfAwareness.hpp | 5 +++++ node/Switch.cpp | 17 +++++++++++++---- node/Switch.hpp | 4 ++-- 6 files changed, 39 insertions(+), 7 deletions(-) diff --git a/node/Constants.hpp b/node/Constants.hpp index c192381cd..31a4c3137 100644 --- a/node/Constants.hpp +++ b/node/Constants.hpp @@ -296,6 +296,9 @@ /** * Delay between initial direct NAT-t packet and more aggressive techniques + * + * This may also be a delay before sending the first packet if we determine + * that we should wait for the remote to initiate rendezvous first. */ #define ZT_NAT_T_TACTICAL_ESCALATION_DELAY 1000 diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index 76c47933d..b1fda8ef8 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -488,7 +488,7 @@ bool IncomingPacket::_doRENDEZVOUS(const RuntimeEnvironment *RR,const SharedPtr< InetAddress atAddr(field(ZT_PROTO_VERB_RENDEZVOUS_IDX_ADDRESS,addrlen),addrlen,port); TRACE("RENDEZVOUS from %s says %s might be at %s, starting NAT-t",peer->address().toString().c_str(),with.toString().c_str(),atAddr.toString().c_str()); peer->received(RR,_remoteAddress,hops(),packetId(),Packet::VERB_RENDEZVOUS,0,Packet::VERB_NOP); - RR->sw->contact(withPeer,atAddr); + RR->sw->rendezvous(withPeer,atAddr); } else { TRACE("dropped corrupt RENDEZVOUS from %s(%s) (bad address or port)",peer->address().toString().c_str(),_remoteAddress.toString().c_str()); } diff --git a/node/SelfAwareness.cpp b/node/SelfAwareness.cpp index 000157886..716cf7f34 100644 --- a/node/SelfAwareness.cpp +++ b/node/SelfAwareness.cpp @@ -147,4 +147,19 @@ void SelfAwareness::clean(uint64_t now) } } +bool SelfAwareness::areGlobalIPv4PortsRandomized() const +{ + int port = 0; + Mutex::Lock _l(_phy_m); + for(std::map< PhySurfaceKey,PhySurfaceEntry >::const_iterator p(_phy.begin());p!=_phy.end();++p) { + if ((p->first.scope == InetAddress::IP_SCOPE_GLOBAL)&&(p->second.mySurface.ss_family == AF_INET)) { + const int tmp = (int)p->second.mySurface.port(); + if ((port)&&(tmp != port)) + return true; + else port = tmp; + } + } + return false; +} + } // namespace ZeroTier diff --git a/node/SelfAwareness.hpp b/node/SelfAwareness.hpp index 4eede5921..d3b79d186 100644 --- a/node/SelfAwareness.hpp +++ b/node/SelfAwareness.hpp @@ -66,6 +66,11 @@ public: */ void clean(uint64_t now); + /** + * @return True if our external (global scope) IPv4 ports appear to be randomized by a NAT device + */ + bool areGlobalIPv4PortsRandomized() const; + private: struct PhySurfaceKey { diff --git a/node/Switch.cpp b/node/Switch.cpp index 18935ce5e..a580078ef 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -43,6 +43,7 @@ #include "Topology.hpp" #include "Peer.hpp" #include "AntiRecursion.hpp" +#include "SelfAwareness.hpp" #include "Packet.hpp" namespace ZeroTier { @@ -385,15 +386,23 @@ bool Switch::unite(const Address &p1,const Address &p2,bool force) return true; } -void Switch::contact(const SharedPtr &peer,const InetAddress &atAddr) +void Switch::rendezvous(const SharedPtr &peer,const InetAddress &atAddr) { TRACE("sending NAT-t message to %s(%s)",peer->address().toString().c_str(),atAddr.toString().c_str()); const uint64_t now = RR->node->now(); - // Attempt to contact directly - peer->attemptToContactAt(RR,atAddr,now); + /* Attempt direct contact now unless we are IPv4 and our external ports + * appear to be randomized by a NAT device. In that case, we should let + * the other side send a message first. Why? If the other side is also + * randomized and symmetric, we are probably going to fail. But if the + * other side is "port restricted" but otherwise sane, us sending a + * packet first may actually close the remote's outgoing port to us! + * This assists with NAT-t in cases where one side is symmetric and the + * other is full cone but port restricted. */ + if ((atAddr.ss_family != AF_INET)||(!RR->sa->areGlobalIPv4PortsRandomized())) + peer->attemptToContactAt(RR,atAddr,now); - // If we have not punched through after this timeout, open refreshing can of whupass + // After 1s, try again and perhaps try more NAT-t strategies { Mutex::Lock _l(_contactQueue_m); _contactQueue.push_back(ContactQueueEntry(peer,now + ZT_NAT_T_TACTICAL_ESCALATION_DELAY,atAddr)); diff --git a/node/Switch.hpp b/node/Switch.hpp index e7f1523a9..ac85606e2 100644 --- a/node/Switch.hpp +++ b/node/Switch.hpp @@ -136,12 +136,12 @@ public: bool unite(const Address &p1,const Address &p2,bool force); /** - * Send NAT traversal messages to peer at the given candidate address + * Attempt NAT traversal to peer at a given physical address * * @param peer Peer to contact * @param atAddr Address of peer */ - void contact(const SharedPtr &peer,const InetAddress &atAddr); + void rendezvous(const SharedPtr &peer,const InetAddress &atAddr); /** * Request WHOIS on a given address From 17bfd4d55e96390147e2804b81c08985816ac4cd Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 11:32:34 -0700 Subject: [PATCH 19/37] Add TRACE for NAT-t debugging. --- node/Switch.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index a580078ef..6f4659d57 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -399,8 +399,11 @@ void Switch::rendezvous(const SharedPtr &peer,const InetAddress &atAddr) * packet first may actually close the remote's outgoing port to us! * This assists with NAT-t in cases where one side is symmetric and the * other is full cone but port restricted. */ - if ((atAddr.ss_family != AF_INET)||(!RR->sa->areGlobalIPv4PortsRandomized())) + if ((atAddr.ss_family != AF_INET)||(!RR->sa->areGlobalIPv4PortsRandomized())) { peer->attemptToContactAt(RR,atAddr,now); + } else { + TRACE("behind randomizing symmetric NAT -- delaying initial message to %s(%s)",peer->address().toString().c_str(),atAddr.toString().c_str()); + } // After 1s, try again and perhaps try more NAT-t strategies { From 708aac1ea73a01fd81997a7215824dab832ba3d3 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 11:43:09 -0700 Subject: [PATCH 20/37] Remove some left over debug code, and fix attempt to send to self if we are an active bridge. --- node/Multicaster.cpp | 16 ++++++++++------ node/Peer.cpp | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/node/Multicaster.cpp b/node/Multicaster.cpp index 33424e4a1..489c170b4 100644 --- a/node/Multicaster.cpp +++ b/node/Multicaster.cpp @@ -211,9 +211,11 @@ void Multicaster::send( unsigned int count = 0; for(std::vector
::const_iterator ast(alwaysSendTo.begin());ast!=alwaysSendTo.end();++ast) { - out.sendOnly(RR,*ast); - if (++count >= limit) - break; + if (*ast != RR->identity.address()) { + out.sendOnly(RR,*ast); + if (++count >= limit) + break; + } } unsigned long idx = 0; @@ -264,9 +266,11 @@ void Multicaster::send( unsigned int count = 0; for(std::vector
::const_iterator ast(alwaysSendTo.begin());ast!=alwaysSendTo.end();++ast) { - out.sendAndLog(RR,*ast); - if (++count >= limit) - break; + if (*ast != RR->identity.address()) { + out.sendAndLog(RR,*ast); + if (++count >= limit) + break; + } } unsigned long idx = 0; diff --git a/node/Peer.cpp b/node/Peer.cpp index 2bfd421fa..3cf0ec4e5 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -226,7 +226,7 @@ void Peer::doPingAndKeepalive(const RuntimeEnvironment *RR,uint64_t now) void Peer::pushDirectPaths(const RuntimeEnvironment *RR,RemotePath *path,uint64_t now,bool force) { - if ((true)||(((now - _lastDirectPathPush) >= ZT_DIRECT_PATH_PUSH_INTERVAL)||(force))) { + if (((now - _lastDirectPathPush) >= ZT_DIRECT_PATH_PUSH_INTERVAL)||(force)) { _lastDirectPathPush = now; std::vector dps(RR->node->directPaths()); From b69afa010ee04924b36cd9b605e8f37ed917f0b2 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 11:50:01 -0700 Subject: [PATCH 21/37] Disable type punning on ARM by ifdef. --- node/Constants.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/node/Constants.hpp b/node/Constants.hpp index 31a4c3137..901237cee 100644 --- a/node/Constants.hpp +++ b/node/Constants.hpp @@ -60,6 +60,13 @@ #include #endif +// Disable type punning on ARM architecture -- some ARM chips throw SIGBUS on unaligned access +#if defined(__arm__) || defined(__ARMEL__) +#ifndef ZT_NO_TYPE_PUNNING +#define ZT_NO_TYPE_PUNNING +#endif +#endif + #if defined(__FreeBSD__) || defined(__OpenBSD__) #ifndef __UNIX_LIKE__ #define __UNIX_LIKE__ From d2bfdfa6e79e54ba1d5127a75a56f7ec57415cf9 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 11:57:18 -0700 Subject: [PATCH 22/37] Play with NAT-t tweaks some more. --- node/Switch.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index 6f4659d57..247b2d18c 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -391,24 +391,15 @@ void Switch::rendezvous(const SharedPtr &peer,const InetAddress &atAddr) TRACE("sending NAT-t message to %s(%s)",peer->address().toString().c_str(),atAddr.toString().c_str()); const uint64_t now = RR->node->now(); - /* Attempt direct contact now unless we are IPv4 and our external ports - * appear to be randomized by a NAT device. In that case, we should let - * the other side send a message first. Why? If the other side is also - * randomized and symmetric, we are probably going to fail. But if the - * other side is "port restricted" but otherwise sane, us sending a - * packet first may actually close the remote's outgoing port to us! - * This assists with NAT-t in cases where one side is symmetric and the - * other is full cone but port restricted. */ - if ((atAddr.ss_family != AF_INET)||(!RR->sa->areGlobalIPv4PortsRandomized())) { + if ((atAddr.ss_family == AF_INET)&&(RR->sa->areGlobalIPv4PortsRandomized())) { peer->attemptToContactAt(RR,atAddr,now); } else { TRACE("behind randomizing symmetric NAT -- delaying initial message to %s(%s)",peer->address().toString().c_str(),atAddr.toString().c_str()); } - // After 1s, try again and perhaps try more NAT-t strategies { Mutex::Lock _l(_contactQueue_m); - _contactQueue.push_back(ContactQueueEntry(peer,now + ZT_NAT_T_TACTICAL_ESCALATION_DELAY,atAddr)); + _contactQueue.push_back(ContactQueueEntry(peer,now + (ZT_NAT_T_TACTICAL_ESCALATION_DELAY / 2),atAddr)); } } @@ -473,10 +464,10 @@ unsigned long Switch::doTimerTasks(uint64_t now) continue; } else { if (qi->strategyIteration == 0) { - // First strategy: send packet directly (we already tried this but try again) + // First strategy: send packet directly to destination qi->peer->attemptToContactAt(RR,qi->inaddr,now); } else if (qi->strategyIteration <= 4) { - // Strategies 1-4: try escalating ports + // Strategies 1-4: try escalating ports for symmetric NATs that remap sequentially InetAddress tmpaddr(qi->inaddr); int p = (int)qi->inaddr.port() + qi->strategyIteration; if (p < 0xffff) { From 4564dd95ffa287b3752a59378137c59773d51ef9 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 12:00:50 -0700 Subject: [PATCH 23/37] Revert... no luck with any of that. --- node/Switch.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index 247b2d18c..bf9308b0e 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -390,16 +390,10 @@ void Switch::rendezvous(const SharedPtr &peer,const InetAddress &atAddr) { TRACE("sending NAT-t message to %s(%s)",peer->address().toString().c_str(),atAddr.toString().c_str()); const uint64_t now = RR->node->now(); - - if ((atAddr.ss_family == AF_INET)&&(RR->sa->areGlobalIPv4PortsRandomized())) { - peer->attemptToContactAt(RR,atAddr,now); - } else { - TRACE("behind randomizing symmetric NAT -- delaying initial message to %s(%s)",peer->address().toString().c_str(),atAddr.toString().c_str()); - } - + peer->attemptToContactAt(RR,atAddr,now); { Mutex::Lock _l(_contactQueue_m); - _contactQueue.push_back(ContactQueueEntry(peer,now + (ZT_NAT_T_TACTICAL_ESCALATION_DELAY / 2),atAddr)); + _contactQueue.push_back(ContactQueueEntry(peer,now + ZT_NAT_T_TACTICAL_ESCALATION_DELAY,atAddr)); } } From 5986d837384d5794286ee6954bc433eb0d7cc668 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 12:04:14 -0700 Subject: [PATCH 24/37] Kill more kittens. --- node/Constants.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node/Constants.hpp b/node/Constants.hpp index 901237cee..b7aa98170 100644 --- a/node/Constants.hpp +++ b/node/Constants.hpp @@ -253,10 +253,10 @@ /** * How frequently to send a zero-byte UDP keepalive packet * - * There are NATs with timeouts as short as 30 seconds, so this turns out + * There are NATs with timeouts as short as 20 seconds, so this turns out * to be needed. */ -#define ZT_NAT_KEEPALIVE_DELAY 25000 +#define ZT_NAT_KEEPALIVE_DELAY 19000 /** * Delay between scans of the topology active peer DB for peers that need ping From 21e6850722539d4ff72b6c5841da47356233bb67 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 12:18:59 -0700 Subject: [PATCH 25/37] Cancel NAT-t attempts if peer is no longer "alive" --- node/Switch.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index bf9308b0e..028813318 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -452,8 +452,8 @@ unsigned long Switch::doTimerTasks(uint64_t now) Mutex::Lock _l(_contactQueue_m); for(std::list::iterator qi(_contactQueue.begin());qi!=_contactQueue.end();) { if (now >= qi->fireAtTime) { - if (qi->peer->hasActiveDirectPath(now)) { - // We've successfully NAT-t'd, so cancel attempt + if ((!qi->peer->alive(now))||(qi->peer->hasActiveDirectPath(now))) { + // Cancel attempt if we've already connected or peer is no longer "alive" _contactQueue.erase(qi++); continue; } else { From eea8d58afa6ceb0fd04d6d82c551ff9f81a0ffe7 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 12:39:03 -0700 Subject: [PATCH 26/37] docs,cleanup --- node/Switch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/Switch.cpp b/node/Switch.cpp index 028813318..989f497a0 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -448,7 +448,7 @@ unsigned long Switch::doTimerTasks(uint64_t now) { unsigned long nextDelay = 0xffffffff; // ceiling delay, caller will cap to minimum - { + { // Iterate through NAT traversal strategies for entries in contact queue Mutex::Lock _l(_contactQueue_m); for(std::list::iterator qi(_contactQueue.begin());qi!=_contactQueue.end();) { if (now >= qi->fireAtTime) { From fe6d5b1402307e1be80e6d78b765cf5175288c1f Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 14:32:02 -0700 Subject: [PATCH 27/37] UPNP/NAT-PMP support with libminiupnpc (if built with it) -- GitHub issue #64 --- make-mac.mk | 19 ++-- osdep/UPNPClient.cpp | 192 +++++++++++++++++++++++++++++++++++++++++ osdep/UPNPClient.hpp | 84 ++++++++++++++++++ service/OneService.cpp | 21 ++++- 4 files changed, 308 insertions(+), 8 deletions(-) create mode 100644 osdep/UPNPClient.cpp create mode 100644 osdep/UPNPClient.hpp diff --git a/make-mac.mk b/make-mac.mk index 02d42252e..55b117e6f 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -11,7 +11,7 @@ LIBS= ARCH_FLAGS=-arch x86_64 include objects.mk -OBJS+=osdep/OSXEthernetTap.o +OBJS+=osdep/OSXEthernetTap.o # Disable codesign since open source users will not have ZeroTier's certs CODESIGN=echo @@ -21,7 +21,8 @@ CODESIGN_INSTALLER_CERT= # For internal use only -- signs everything with ZeroTier's developer cert ifeq ($(ZT_OFFICIAL_RELEASE),1) - DEFS+=-DZT_OFFICIAL_RELEASE -DZT_AUTO_UPDATE + DEFS+=-DZT_OFFICIAL_RELEASE -DZT_AUTO_UPDATE + ZT_USE_MINIUPNPC=1 CODESIGN=codesign PRODUCTSIGN=productsign CODESIGN_APP_CERT="Developer ID Application: ZeroTier Networks LLC (8ZD9JUCZ4V)" @@ -29,19 +30,25 @@ ifeq ($(ZT_OFFICIAL_RELEASE),1) endif ifeq ($(ZT_AUTO_UPDATE),1) - DEFS+=-DZT_AUTO_UPDATE + DEFS+=-DZT_AUTO_UPDATE +endif + +ifeq ($(ZT_USE_MINIUPNPC),1) + DEFS+=-DZT_USE_MINIUPNPC + LIBS+=/usr/local/lib/libminiupnpc.a + OBJS+=osdep/UPNPClient.o endif # Build with ZT_ENABLE_NETWORK_CONTROLLER=1 to build with the Sqlite network controller ifeq ($(ZT_ENABLE_NETWORK_CONTROLLER),1) - DEFS+=-DZT_ENABLE_NETWORK_CONTROLLER + DEFS+=-DZT_ENABLE_NETWORK_CONTROLLER LIBS+=-L/usr/local/lib -lsqlite3 - OBJS+=controller/SqliteNetworkController.o + OBJS+=controller/SqliteNetworkController.o endif # Debug mode -- dump trace output, build binary with -g ifeq ($(ZT_DEBUG),1) - DEFS+=-DZT_TRACE + DEFS+=-DZT_TRACE CFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS) STRIP=echo # The following line enables optimization for the crypto code, since diff --git a/osdep/UPNPClient.cpp b/osdep/UPNPClient.cpp new file mode 100644 index 000000000..20aa9d391 --- /dev/null +++ b/osdep/UPNPClient.cpp @@ -0,0 +1,192 @@ +/* + * ZeroTier One - Network Virtualization Everywhere + * Copyright (C) 2011-2015 ZeroTier, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * -- + * + * ZeroTier may be used and distributed under the terms of the GPLv3, which + * are available at: http://www.gnu.org/licenses/gpl-3.0.html + * + * If you would like to embed ZeroTier into a commercial application or + * redistribute it in a modified binary form, please contact ZeroTier Networks + * LLC. Start here: http://www.zerotier.com/ + */ + +#ifdef ZT_USE_MINIUPNPC + +// Uncomment to dump debug messages +//#define ZT_UPNP_TRACE 1 + +// Uncomment to build a main() for ad-hoc testing +//#define ZT_UPNP_TEST 1 + +#include +#include +#include + +#include "../node/Utils.hpp" +#include "UPNPClient.hpp" + +#include +#include + +namespace ZeroTier { + +class UPNPClientImpl +{ +public: + UPNPClientImpl(int localUdpPortToMap) : + run(true), + localPort(localUdpPortToMap) + { + } + + void threadMain() + throw() + { + char lanaddr[4096]; + char externalip[4096]; // no range checking? so make these buffers larger than any UDP packet a uPnP server could send us as a precaution :P + char inport[16]; + char outport[16]; + struct UPNPUrls urls; + struct IGDdatas data; + +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: started for UDP port %d"ZT_EOL_S,localPort); +#endif + + unsigned int tryPortStart = 0; + Utils::getSecureRandom(&tryPortStart,sizeof(tryPortStart)); + tryPortStart = (tryPortStart % (65535 - 1025)) + 1025; + + while (run) { + { + int upnpError = 0; + UPNPDev *devlist = upnpDiscover(2000,(const char *)0,(const char *)0,0,0,&upnpError); + if (devlist) { +#ifdef ZT_UPNP_TRACE + { + UPNPDev *dev = devlist; + while (dev) { + fprintf(stderr,"UPNPClient: found device at URL '%s': %s"ZT_EOL_S,dev->descURL,dev->st); + dev = dev->pNext; + } + } +#endif + + memset(lanaddr,0,sizeof(lanaddr)); + memset(externalip,0,sizeof(externalip)); + memset(&urls,0,sizeof(urls)); + memset(&data,0,sizeof(data)); + Utils::snprintf(inport,sizeof(inport),"%d",localPort); + + if ((UPNP_GetValidIGD(devlist,&urls,&data,lanaddr,sizeof(lanaddr)))&&(lanaddr[0])) { +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: my LAN IP address: %s"ZT_EOL_S,lanaddr); +#endif + if ((UPNP_GetExternalIPAddress(urls.controlURL,data.first.servicetype,externalip) == UPNPCOMMAND_SUCCESS)&&(externalip[0])) { +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: my external IP address: %s"ZT_EOL_S,externalip); +#endif + + for(int tries=0;tries<64;++tries) { + int tryPort = (int)tryPortStart + tries; + if (tryPort >= 65535) + tryPort = (tryPort - 65535) + 1025; + Utils::snprintf(outport,sizeof(outport),"%u",tryPort); + + int mapResult = 0; + if ((mapResult = UPNP_AddPortMapping(urls.controlURL,data.first.servicetype,outport,inport,lanaddr,"ZeroTier","UDP",(const char *)0,ZT_UPNP_LEASE_DURATION)) == UPNPCOMMAND_SUCCESS) { + #ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: reserved external port: %s"ZT_EOL_S,outport); + #endif + { + Mutex::Lock sl(surface_l); + surface.clear(); + InetAddress tmp(externalip); + tmp.setPort(tryPort); + surface.push_back(tmp); + } + break; + } else { + #ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: UPNP_AddAnyPortMapping(%s) failed: %d"ZT_EOL_S,outport,mapResult); + #endif + Thread::sleep(1000); + } + } + } else { +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: UPNP_GetExternalIPAddress failed"ZT_EOL_S); +#endif + } + } else { +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: UPNP_GetValidIGD failed"ZT_EOL_S); +#endif + } + + freeUPNPDevlist(devlist); + } else { +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: upnpDiscover error code: %d"ZT_EOL_S,upnpError); +#endif + } + } + +#ifdef ZT_UPNP_TRACE + fprintf(stderr,"UPNPClient: rescanning in %d ms"ZT_EOL_S,ZT_UPNP_CLIENT_REFRESH_DELAY); +#endif + Thread::sleep(ZT_UPNP_CLIENT_REFRESH_DELAY); + } + delete this; + } + + volatile bool run; + int localPort; + Mutex surface_l; + std::vector surface; +}; + +UPNPClient::UPNPClient(int localUdpPortToMap) +{ + _impl = new UPNPClientImpl(localUdpPortToMap); + Thread::start(_impl); +} + +UPNPClient::~UPNPClient() +{ + _impl->run = false; +} + +std::vector UPNPClient::get() const +{ + Mutex::Lock _l(_impl->surface_l); + return _impl->surface; +} + +} // namespace ZeroTier + +#ifdef ZT_UPNP_TEST +int main(int argc,char **argv) +{ + ZeroTier::UPNPClient *client = new ZeroTier::UPNPClient(12345); + ZeroTier::Thread::sleep(0xffffffff); // wait forever + return 0; +} +#endif + +#endif // ZT_USE_MINIUPNPC diff --git a/osdep/UPNPClient.hpp b/osdep/UPNPClient.hpp new file mode 100644 index 000000000..28b9979d3 --- /dev/null +++ b/osdep/UPNPClient.hpp @@ -0,0 +1,84 @@ +/* + * ZeroTier One - Network Virtualization Everywhere + * Copyright (C) 2011-2015 ZeroTier, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * -- + * + * ZeroTier may be used and distributed under the terms of the GPLv3, which + * are available at: http://www.gnu.org/licenses/gpl-3.0.html + * + * If you would like to embed ZeroTier into a commercial application or + * redistribute it in a modified binary form, please contact ZeroTier Networks + * LLC. Start here: http://www.zerotier.com/ + */ + +#ifndef ZT_UPNPCLIENT_HPP +#define ZT_UPNPCLIENT_HPP + +#ifdef ZT_USE_MINIUPNPC + +#include + +#include "../node/Constants.hpp" +#include "../node/InetAddress.hpp" +#include "../node/Mutex.hpp" +#include "Thread.hpp" + +/** + * How frequently should we refresh our UPNP/NAT-PnP/whatever state? + */ +#define ZT_UPNP_CLIENT_REFRESH_DELAY 600000 + +/** + * UPNP lease duration in seconds (as string) + */ +#define ZT_UPNP_LEASE_DURATION "3600" + +namespace ZeroTier { + +class UPNPClientImpl; + +/** + * UPnP/NAT-PnP daemon thread + */ +class UPNPClient +{ + friend class UPNPClientImpl; + +public: + /** + * Create and start UPNP client service + * + * @param localUdpPortToMap Port we want visible to the outside world + */ + UPNPClient(int localUdpPortToMap); + + ~UPNPClient(); + + /** + * @return All current external mappings for our port + */ + std::vector get() const; + +private: + UPNPClientImpl *_impl; +}; + +} // namespace ZeroTier + +#endif // ZT_USE_MINIUPNPC + +#endif diff --git a/service/OneService.cpp b/service/OneService.cpp index b83cd83f6..05fdfb905 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -54,6 +54,7 @@ #include "../osdep/OSUtils.hpp" #include "../osdep/Http.hpp" #include "../osdep/BackgroundResolver.hpp" +#include "../osdep/UPNPClient.hpp" #include "OneService.hpp" #include "ControlPlane.hpp" @@ -415,6 +416,9 @@ public: _tcpFallbackTunnel((TcpConnection *)0), _termReason(ONE_STILL_RUNNING), _port(port), +#ifdef ZT_USE_MINIUPNPC + _upnpClient((int)port), +#endif _run(true) { struct sockaddr_in in4; @@ -511,7 +515,7 @@ public: _lastRestart = clockShouldBe; uint64_t lastTapMulticastGroupCheck = 0; uint64_t lastTcpFallbackResolve = 0; - uint64_t lastLocalInterfaceAddressCheck = 0; + uint64_t lastLocalInterfaceAddressCheck = (OSUtils::now() - ZT1_LOCAL_INTERFACE_CHECK_INTERVAL) + 15000; // do this in 15s to give UPnP time to configure and other things time to settle #ifdef ZT_AUTO_UPDATE uint64_t lastSoftwareUpdateCheck = 0; #endif // ZT_AUTO_UPDATE @@ -576,9 +580,18 @@ public: ztDevices.push_back(t->second->deviceName()); } + _node->clearLocalInterfaceAddresses(); + +#ifdef ZT_USE_MINIUPNPC + std::vector upnpAddresses(_upnpClient.get()); + for(std::vector::const_iterator ext(upnpAddresses.begin());ext!=upnpAddresses.end();++ext) { + printf("Adding UPNP address: %s\n",ext->toString().c_str()); + _node->addLocalInterfaceAddress(reinterpret_cast(&(*ext)),0,ZT1_LOCAL_INTERFACE_ADDRESS_TRUST_NORMAL); + } +#endif + struct ifaddrs *ifatbl = (struct ifaddrs *)0; if ((getifaddrs(&ifatbl) == 0)&&(ifatbl)) { - _node->clearLocalInterfaceAddresses(); struct ifaddrs *ifa = ifatbl; while (ifa) { if ((ifa->ifa_name)&&(ifa->ifa_addr)) { @@ -1242,6 +1255,10 @@ private: unsigned int _port; +#ifdef ZT_USE_MINIUPNPC + UPNPClient _upnpClient; +#endif + bool _run; Mutex _run_m; }; From 569c5e77fdd247f59d48d1732dbea6a69bc7d6b3 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 14:48:26 -0700 Subject: [PATCH 28/37] Add binary build of libminiupnpc for Mac x64. --- ext/bin/miniupnpc/Changelog.txt | 633 ++++++++++++++++++ ext/bin/miniupnpc/LICENSE | 27 + ext/bin/miniupnpc/README.md | 4 + ext/bin/miniupnpc/VERSION | 1 + .../miniupnpc/include/miniupnpc/codelength.h | 54 ++ .../include/miniupnpc/connecthostport.h | 18 + .../include/miniupnpc/igd_desc_parse.h | 49 ++ .../miniupnpc/include/miniupnpc/minisoap.h | 15 + .../miniupnpc/include/miniupnpc/minissdpc.h | 15 + .../miniupnpc/include/miniupnpc/miniupnpc.h | 154 +++++ .../include/miniupnpc/miniupnpc_declspec.h | 21 + .../include/miniupnpc/miniupnpcstrings.h | 23 + .../include/miniupnpc/miniupnpctypes.h | 19 + .../miniupnpc/include/miniupnpc/miniwget.h | 30 + ext/bin/miniupnpc/include/miniupnpc/minixml.h | 37 + .../include/miniupnpc/portlistingparse.h | 65 ++ .../miniupnpc/include/miniupnpc/receivedata.h | 19 + .../include/miniupnpc/upnpcommands.h | 348 ++++++++++ .../miniupnpc/include/miniupnpc/upnperrors.h | 26 + .../include/miniupnpc/upnpreplyparse.h | 63 ++ ext/bin/miniupnpc/mac-x64/libminiupnpc.a | Bin 0 -> 95616 bytes make-mac.mk | 8 +- service/OneService.cpp | 4 +- 23 files changed, 1628 insertions(+), 5 deletions(-) create mode 100644 ext/bin/miniupnpc/Changelog.txt create mode 100644 ext/bin/miniupnpc/LICENSE create mode 100644 ext/bin/miniupnpc/README.md create mode 100644 ext/bin/miniupnpc/VERSION create mode 100644 ext/bin/miniupnpc/include/miniupnpc/codelength.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/connecthostport.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/igd_desc_parse.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/minisoap.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/minissdpc.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/miniupnpc.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/miniupnpc_declspec.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/miniupnpcstrings.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/miniupnpctypes.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/miniwget.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/minixml.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/portlistingparse.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/receivedata.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/upnpcommands.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/upnperrors.h create mode 100644 ext/bin/miniupnpc/include/miniupnpc/upnpreplyparse.h create mode 100644 ext/bin/miniupnpc/mac-x64/libminiupnpc.a diff --git a/ext/bin/miniupnpc/Changelog.txt b/ext/bin/miniupnpc/Changelog.txt new file mode 100644 index 000000000..bb2abb7ee --- /dev/null +++ b/ext/bin/miniupnpc/Changelog.txt @@ -0,0 +1,633 @@ +$Id: Changelog.txt,v 1.208 2015/07/15 12:18:59 nanard Exp $ +miniUPnP client Changelog. + +2015/07/15: + Check malloc/calloc + +2015/06/16: + update getDevicesFromMiniSSDPD() to process longer minissdpd + responses + +2015/05/22: + add searchalltypes param to upnpDiscoverDevices() + increments API_VERSION to 13 + +2015/04/30: + upnpc: output version on the terminal + +2015/04/27: + _BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE + fix CMakeLists.txt COMPILE_DEFINITIONS + fix getDevicesFromMiniSSDPD() not setting scope_id + improve -r command of upnpc command line tool + +2014/11/17: + search all : + upnpDiscoverDevices() / upnpDiscoverAll() functions + listdevices executable + increment API_VERSION to 12 + validate igd_desc_parse + +2014/11/13: + increment API_VERSION to 11 + +2014/11/05: + simplified function GetUPNPUrls() + +2014/09/11: + use remoteHost arg of DeletePortMapping + +2014/09/06: + Fix python3 build + +2014/07/01: + Fix parsing of IGD2 root descriptions + +2014/06/10: + rename LIBSPEC to MINIUPNP_LIBSPEC + +2014/05/15: + Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange + +2014/02/05: + handle EINPROGRESS after connect() + +2014/02/03: + minixml now handle XML comments + +VERSION 1.9 : released 2014/01/31 + +2014/01/31: + added argument remoteHost to UPNP_GetSpecificPortMappingEntry() + increment API_VERSION to 10 + +2013/12/09: + --help and -h arguments in upnpc.c + +2013/10/07: + fixed potential buffer overrun in miniwget.c + Modified UPNP_GetValidIGD() to check for ExternalIpAddress + +2013/08/01: + define MAXHOSTNAMELEN if not already done + +2013/06/06: + update upnpreplyparse to allow larger values (128 chars instead of 64) + +2013/05/14: + Update upnpreplyparse to take into account "empty" elements + validate upnpreplyparse.c code with "make check" + +2013/05/03: + Fix Solaris build thanks to Maciej Małecki + +2013/04/27: + Fix testminiwget.sh for BSD + +2013/03/23: + Fixed Makefile for *BSD + +2013/03/11: + Update Makefile to use JNAerator version 0.11 + +2013/02/11: + Fix testminiwget.sh for use with dash + Use $(DESTDIR) in Makefile + +VERSION 1.8 : released 2013/02/06 + +2012/10/16: + fix testminiwget with no IPv6 support + +2012/09/27: + Rename all include guards to not clash with C99 + (7.1.3 Reserved identifiers). + +2012/08/30: + Added -e option to upnpc program (set description for port mappings) + +2012/08/29: + Python 3 support (thanks to Christopher Foo) + +2012/08/11: + Fix a memory link in UPNP_GetValidIGD() + Try to handle scope id in link local IPv6 URL under MS Windows + +2012/07/20: + Disable HAS_IP_MREQN on DragonFly BSD + +2012/06/28: + GetUPNPUrls() now inserts scope into link-local IPv6 addresses + +2012/06/23: + More error return checks in upnpc.c + #define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id + parseURL() now parses IPv6 addresses scope + new parameter for miniwget() : IPv6 address scope + increment API_VERSION to 9 + +2012/06/20: + fixed CMakeLists.txt + +2012/05/29 + Improvements in testminiwget.sh + +VERSION 1.7 : released 2012/05/24 + +2012/05/01: + Cleanup settings of CFLAGS in Makefile + Fix signed/unsigned integer comparaisons + +2012/04/20: + Allow to specify protocol with TCP or UDP for -A option + +2012/04/09: + Only try to fetch XML description once in UPNP_GetValidIGD() + Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments. + +2012/04/05: + minor improvements to minihttptestserver.c + +2012/03/15: + upnperrors.c returns valid error string for unrecognized error codes + +2012/03/08: + make minihttptestserver listen on loopback interface instead of 0.0.0.0 + +2012/01/25: + Maven installation thanks to Alexey Kuznetsov + +2012/01/21: + Replace WIN32 macro by _WIN32 + +2012/01/19: + Fixes in java wrappers thanks to Alexey Kuznetsov : + https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc + Make and install .deb packages (python) thanks to Alexey Kuznetsov : + https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc + +2012/01/07: + The multicast interface can now be specified by name with IPv4. + +2012/01/02: + Install man page + +2011/11/25: + added header to Port Mappings list in upnpc.c + +2011/10/09: + Makefile : make clean now removes jnaerator generated files. + MINIUPNPC_VERSION in miniupnpc.h (updated by make) + +2011/09/12: + added rootdescURL to UPNPUrls structure. + +VERSION 1.6 : released 2011/07/25 + +2011/07/25: + Update doc for version 1.6 release + +2011/06/18: + Fix for windows in miniwget.c + +2011/06/04: + display remote host in port mapping listing + +2011/06/03: + Fix in make install : there were missing headers + +2011/05/26: + Fix the socket leak in miniwget thanks to Richard Marsh. + Permit to add leaseduration in -a command. Display lease duration. + +2011/05/15: + Try both LinkLocal and SiteLocal multicast address for SSDP in IPv6 + +2011/05/09: + add a test in testminiwget.sh. + more error checking in miniwget.c + +2011/05/06: + Adding some tool to test and validate miniwget.c + simplified and debugged miniwget.c + +2011/04/11: + moving ReceiveData() to a receivedata.c file. + parsing presentation url + adding IGD v2 WANIPv6FirewallControl commands + +2011/04/10: + update of miniupnpcmodule.c + comments in miniwget.c, update in testminiwget + Adding errors codes from IGD v2 + new functions in upnpc.c for IGD v2 + +2011/04/09: + Support for litteral ip v6 address in miniwget + +2011/04/08: + Adding support for urn:schemas-upnp-org:service:WANIPv6FirewallControl:1 + Updating APIVERSION + Supporting IPV6 in upnpDiscover() + Adding a -6 option to upnpc command line tool + +2011/03/18: + miniwget/parseURL() : return an error when url param is null. + fixing GetListOfPortMappings() + +2011/03/14: + upnpDiscover() now reporting an error code. + improvements in comments. + +2011/03/11: + adding miniupnpcstrings.h.cmake and CMakeLists.txt files. + +2011/02/15: + Implementation of GetListOfPortMappings() + +2011/02/07: + updates to minixml to support character data starting with spaces + minixml now support CDATA + upnpreplyparse treats specificaly + change in simpleUPnPcommand to return the buffer (simplification) + +2011/02/06: + Added leaseDuration argument to AddPortMapping() + Starting to implement GetListOfPortMappings() + +2011/01/11: + updating wingenminiupnpcstrings.c + +2011/01/04: + improving updateminiupnpcstrings.sh + +VERSION 1.5 : released 2011/01/01 + +2010/12/21: + use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo + +2010/12/11: + Improvements on getHTTPResponse() code. + +2010/12/09: + new code for miniwget that handle Chunked transfer encoding + using getHTTPResponse() in SOAP call code + Adding MANIFEST.in for 'python setup.py bdist_rpm' + +2010/11/25: + changes to minissdpc.c to compile under Win32. + see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=729 + +2010/09/17: + Various improvement to Makefile from Michał Górny + +2010/08/05: + Adding the script "external-ip.sh" from Reuben Hawkins + +2010/06/09: + update to python module to match modification made on 2010/04/05 + update to Java test code to match modification made on 2010/04/05 + all UPNP_* function now return an error if the SOAP request failed + at HTTP level. + +2010/04/17: + Using GetBestRoute() under win32 in order to find the + right interface to use. + +2010/04/12: + Retrying with HTTP/1.1 if HTTP/1.0 failed. see + http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1703 + +2010/04/07: + avoid returning duplicates in upnpDiscover() + +2010/04/05: + Create a connecthostport.h/.c with connecthostport() function + and use it in miniwget and miniupnpc. + Use getnameinfo() instead of inet_ntop or inet_ntoa + Work to make miniupnpc IPV6 compatible... + Add java test code. + Big changes in order to support device having both WANIPConnection + and WANPPPConnection. + +2010/04/04: + Use getaddrinfo() instead of gethostbyname() in miniwget. + +2010/01/06: + #define _DARWIN_C_SOURCE for Mac OS X + +2009/12/19: + Improve MinGW32 build + +2009/12/11: + adding a MSVC9 project to build the static library and executable + +2009/12/10: + Fixing some compilation stuff for Windows/MinGW + +2009/12/07: + adaptations in Makefile and updateminiupnpcstring.sh for AmigaOS + some fixes for Windows when using virtual ethernet adapters (it is the + case with VMWare installed). + +2009/12/04: + some fixes for AmigaOS compilation + Changed HTTP version to HTTP/1.0 for Soap too (to prevent chunked + transfer encoding) + +2009/12/03: + updating printIDG and testigddescparse.c for debug. + modifications to compile under AmigaOS + adding a testminiwget program + Changed miniwget to advertise itself as HTTP/1.0 to prevent chunked + transfer encoding + +2009/11/26: + fixing updateminiupnpcstrings.sh to take into account + which command that does not return an error code. + +VERSION 1.4 : released 2009/10/30 + +2009/10/16: + using Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS in python module. + +2009/10/10: + Some fixes for compilation under Solaris + compilation fixes : http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1464 + +2009/09/21: + fixing the code to ignore EINTR during connect() calls. + +2009/08/07: + Set socket timeout for connect() + Some cleanup in miniwget.c + +2009/08/04: + remove multiple redirections with -d in upnpc.c + Print textual error code in upnpc.c + Ignore EINTR during the connect() and poll() calls. + +2009/07/29: + fix in updateminiupnpcstrings.sh if OS name contains "/" + Sending a correct value for MX: field in SSDP request + +2009/07/20: + Change the Makefile to compile under Mac OS X + Fixed a stackoverflow in getDevicesFromMiniSSDPD() + +2009/07/09: + Compile under Haiku + generate miniupnpcstrings.h.in from miniupnpcstrings.h + +2009/06/04: + patching to compile under CygWin and cross compile for minGW + +VERSION 1.3 : + +2009/04/17: + updating python module + Use strtoull() when using C99 + +2009/02/28: + Fixed miniwget.c for compiling under sun + +2008/12/18: + cleanup in Makefile (thanks to Paul de Weerd) + minissdpc.c : win32 compatibility + miniupnpc.c : changed xmlns prefix from 'm' to 'u' + Removed NDEBUG (using DEBUG) + +2008/10/14: + Added the ExternalHost argument to DeletePortMapping() + +2008/10/11: + Added the ExternalHost argument to AddPortMapping() + Put a correct User-Agent: header in HTTP requests. + +VERSION 1.2 : + +2008/10/07: + Update docs + +2008/09/25: + Integrated sameport patch from Dario Meloni : Added a "sameport" + argument to upnpDiscover(). + +2008/07/18: + small modif to make Clang happy :) + +2008/07/17: + #define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV... + +2008/07/14: + include declspec.h in installation (to /usr/include/miniupnpc) + +VERSION 1.1 : + +2008/07/04: + standard options for install/ln instead of gnu-specific stuff. + +2008/07/03: + now builds a .dll and .lib with win32. (mingw32) + +2008/04/28: + make install now install the binary of the upnpc tool + +2008/04/27: + added testupnpigd.py + added error strings for miniupnpc "internal" errors + improved python module error/exception reporting. + +2008/04/23: + Completely rewrite igd_desc_parse.c in order to be compatible with + Linksys WAG200G + Added testigddescparse + updated python module + +VERSION 1.0 : + +2008/02/21: + put some #ifdef DEBUG around DisplayNameValueList() + +2008/02/18: + Improved error reporting in upnpcommands.c + UPNP_GetStatusInfo() returns LastConnectionError + +2008/02/16: + better error handling in minisoap.c + improving display of "valid IGD found" in upnpc.c + +2008/02/03: + Fixing UPNP_GetValidIGD() + improved make install :) + +2007/12/22: + Adding upnperrors.c/h to provide a strupnperror() function + used to translate UPnP error codes to string. + +2007/12/19: + Fixing getDevicesFromMiniSSDPD() + improved error reporting of UPnP functions + +2007/12/18: + It is now possible to specify a different location for MiniSSDPd socket. + working with MiniSSDPd is now more efficient. + python module improved. + +2007/12/16: + improving error reporting + +2007/12/13: + Try to improve compatibility by using HTTP/1.0 instead of 1.1 and + XML a bit different for SOAP. + +2007/11/25: + fixed select() call for linux + +2007/11/15: + Added -fPIC to CFLAG for better shared library code. + +2007/11/02: + Fixed a potential socket leak in miniwget2() + +2007/10/16: + added a parameter to upnpDiscover() in order to allow the use of another + interface than the default multicast interface. + +2007/10/12: + Fixed the creation of symbolic link in Makefile + +2007/10/08: + Added man page + +2007/10/02: + fixed memory bug in GetUPNPUrls() + +2007/10/01: + fixes in the Makefile + Added UPNP_GetIGDFromUrl() and adapted the sample program accordingly. + Added SONAME in the shared library to please debian :) + fixed MS Windows compilation (minissdpd is not available under MS Windows). + +2007/09/25: + small change to Makefile to be able to install in a different location + (default is /usr) + +2007/09/24: + now compiling both shared and static library + +2007/09/19: + Cosmetic changes on upnpc.c + +2007/09/02: + adapting to new miniSSDPd (release version ?) + +2007/08/31: + Usage of miniSSDPd to skip discovery process. + +2007/08/27: + fixed python module to allow compilation with Python older than Python 2.4 + +2007/06/12: + Added a python module. + +2007/05/19: + Fixed compilation under MinGW + +2007/05/15: + fixed a memory leak in AddPortMapping() + Added testupnpreplyparse executable to check the parsing of + upnp soap messages + minixml now ignore namespace prefixes. + +2007/04/26: + upnpc now displays external ip address with -s or -l + +2007/04/11: + changed MINIUPNPC_URL_MAXSIZE to 128 to accomodate the "BT Voyager 210" + +2007/03/19: + cleanup in miniwget.c + +2007/03/01: + Small typo fix... + +2007/01/30: + Now parsing the HTTP header from SOAP responses in order to + get content-length value. + +2007/01/29: + Fixed the Soap Query to speedup the HTTP request. + added some Win32 DLL stuff... + +2007/01/27: + Fixed some WIN32 compatibility issues + +2006/12/14: + Added UPNPIGD_IsConnected() function in miniupnp.c/.h + Added UPNP_GetValidIGD() in miniupnp.c/.h + cleaned upnpc.c main(). now using UPNP_GetValidIGD() + +2006/12/07: + Version 1.0-RC1 released + +2006/12/03: + Minor changes to compile under SunOS/Solaris + +2006/11/30: + made a minixml parser validator program + updated minixml to handle attributes correctly + +2006/11/22: + Added a -r option to the upnpc sample thanks to Alexander Hubmann. + +2006/11/19: + Cleanup code to make it more ANSI C compliant + +2006/11/10: + detect and display local lan address. + +2006/11/04: + Packets and Bytes Sent/Received are now unsigned int. + +2006/11/01: + Bug fix thanks to Giuseppe D'Angelo + +2006/10/31: + C++ compatibility for .h files. + Added a way to get ip Address on the LAN used to reach the IGD. + +2006/10/25: + Added M-SEARCH to the services in the discovery process. + +2006/10/22: + updated the Makefile to use makedepend, added a "make install" + update Makefile + +2006/10/20: + fixing the description url parsing thanks to patch sent by + Wayne Dawe. + Fixed/translated some comments. + Implemented a better discover process, first looking + for IGD then for root devices (as some devices only reply to + M-SEARCH for root devices). + +2006/09/02: + added freeUPNPDevlist() function. + +2006/08/04: + More command line arguments checking + +2006/08/01: + Added the .bat file to compile under Win32 with minGW32 + +2006/07/31: + Fixed the rootdesc parser (igd_desc_parse.c) + +2006/07/20: + parseMSEARCHReply() is now returning the ST: line as well + starting changes to detect several UPnP devices on the network + +2006/07/19: + using GetCommonLinkProperties to get down/upload bitrate + diff --git a/ext/bin/miniupnpc/LICENSE b/ext/bin/miniupnpc/LICENSE new file mode 100644 index 000000000..cb5a06044 --- /dev/null +++ b/ext/bin/miniupnpc/LICENSE @@ -0,0 +1,27 @@ +MiniUPnPc +Copyright (c) 2005-2015, Thomas BERNARD +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + diff --git a/ext/bin/miniupnpc/README.md b/ext/bin/miniupnpc/README.md new file mode 100644 index 000000000..c3d538ba9 --- /dev/null +++ b/ext/bin/miniupnpc/README.md @@ -0,0 +1,4 @@ +libminiupnpc binaries +====== + +This is a binary build of [libminiupnpc](http://miniupnp.free.fr) for certain architectures to faciliate easy building. Where possible the build flags were set for improved security by enabling options like stack protector (a.k.a. stack canary), ASLR support, etc. diff --git a/ext/bin/miniupnpc/VERSION b/ext/bin/miniupnpc/VERSION new file mode 100644 index 000000000..2e0e38c63 --- /dev/null +++ b/ext/bin/miniupnpc/VERSION @@ -0,0 +1 @@ +1.9 diff --git a/ext/bin/miniupnpc/include/miniupnpc/codelength.h b/ext/bin/miniupnpc/include/miniupnpc/codelength.h new file mode 100644 index 000000000..f5f8e30f9 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/codelength.h @@ -0,0 +1,54 @@ +/* $Id: codelength.h,v 1.5 2015/07/09 12:40:18 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas BERNARD + * copyright (c) 2005-2015 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +#ifndef CODELENGTH_H_INCLUDED +#define CODELENGTH_H_INCLUDED + +/* Encode length by using 7bit per Byte : + * Most significant bit of each byte specifies that the + * following byte is part of the code */ + +/* n : unsigned + * p : unsigned char * + */ +#define DECODELENGTH(n, p) n = 0; \ + do { n = (n << 7) | (*p & 0x7f); } \ + while((*(p++)&0x80) && (n<(1<<25))); + +/* n : unsigned + * READ : function/macro to read one byte (unsigned char) + */ +#define DECODELENGTH_READ(n, READ) \ + n = 0; \ + do { \ + unsigned char c; \ + READ(c); \ + n = (n << 7) | (c & 0x07f); \ + if(!(c&0x80)) break; \ + } while(n<(1<<25)); + +/* n : unsigned + * p : unsigned char * + * p_limit : unsigned char * + */ +#define DECODELENGTH_CHECKLIMIT(n, p, p_limit) \ + n = 0; \ + do { \ + if((p) >= (p_limit)) break; \ + n = (n << 7) | (*(p) & 0x7f); \ + } while((*((p)++)&0x80) && (n<(1<<25))); + + +/* n : unsigned + * p : unsigned char * + */ +#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \ + if(n>=2097152) *(p++) = (n >> 21) | 0x80; \ + if(n>=16384) *(p++) = (n >> 14) | 0x80; \ + if(n>=128) *(p++) = (n >> 7) | 0x80; \ + *(p++) = n & 0x7f; + +#endif /* CODELENGTH_H_INCLUDED */ diff --git a/ext/bin/miniupnpc/include/miniupnpc/connecthostport.h b/ext/bin/miniupnpc/include/miniupnpc/connecthostport.h new file mode 100644 index 000000000..56941d6fa --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/connecthostport.h @@ -0,0 +1,18 @@ +/* $Id: connecthostport.h,v 1.3 2012/09/27 15:42:10 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ + * Author: Thomas Bernard + * Copyright (c) 2010-2012 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef CONNECTHOSTPORT_H_INCLUDED +#define CONNECTHOSTPORT_H_INCLUDED + +/* connecthostport() + * return a socket connected (TCP) to the host and port + * or -1 in case of error */ +int connecthostport(const char * host, unsigned short port, + unsigned int scope_id); + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/igd_desc_parse.h b/ext/bin/miniupnpc/include/miniupnpc/igd_desc_parse.h new file mode 100644 index 000000000..0de546b69 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/igd_desc_parse.h @@ -0,0 +1,49 @@ +/* $Id: igd_desc_parse.h,v 1.12 2014/11/17 17:19:13 nanard Exp $ */ +/* Project : miniupnp + * http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005-2014 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef IGD_DESC_PARSE_H_INCLUDED +#define IGD_DESC_PARSE_H_INCLUDED + +/* Structure to store the result of the parsing of UPnP + * descriptions of Internet Gateway Devices */ +#define MINIUPNPC_URL_MAXSIZE (128) +struct IGDdatas_service { + char controlurl[MINIUPNPC_URL_MAXSIZE]; + char eventsuburl[MINIUPNPC_URL_MAXSIZE]; + char scpdurl[MINIUPNPC_URL_MAXSIZE]; + char servicetype[MINIUPNPC_URL_MAXSIZE]; + /*char devicetype[MINIUPNPC_URL_MAXSIZE];*/ +}; + +struct IGDdatas { + char cureltname[MINIUPNPC_URL_MAXSIZE]; + char urlbase[MINIUPNPC_URL_MAXSIZE]; + char presentationurl[MINIUPNPC_URL_MAXSIZE]; + int level; + /*int state;*/ + /* "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1" */ + struct IGDdatas_service CIF; + /* "urn:schemas-upnp-org:service:WANIPConnection:1" + * "urn:schemas-upnp-org:service:WANPPPConnection:1" */ + struct IGDdatas_service first; + /* if both WANIPConnection and WANPPPConnection are present */ + struct IGDdatas_service second; + /* "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1" */ + struct IGDdatas_service IPv6FC; + /* tmp */ + struct IGDdatas_service tmp; +}; + +void IGDstartelt(void *, const char *, int); +void IGDendelt(void *, const char *, int); +void IGDdata(void *, const char *, int); +#ifdef DEBUG +void printIGD(struct IGDdatas *); +#endif /* DEBUG */ + +#endif /* IGD_DESC_PARSE_H_INCLUDED */ diff --git a/ext/bin/miniupnpc/include/miniupnpc/minisoap.h b/ext/bin/miniupnpc/include/miniupnpc/minisoap.h new file mode 100644 index 000000000..14c859d1e --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/minisoap.h @@ -0,0 +1,15 @@ +/* $Id: minisoap.h,v 1.5 2012/09/27 15:42:10 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. */ +#ifndef MINISOAP_H_INCLUDED +#define MINISOAP_H_INCLUDED + +/*int httpWrite(int, const char *, int, const char *);*/ +int soapPostSubmit(int, const char *, const char *, unsigned short, + const char *, const char *, const char *); + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/minissdpc.h b/ext/bin/miniupnpc/include/miniupnpc/minissdpc.h new file mode 100644 index 000000000..915b0026f --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/minissdpc.h @@ -0,0 +1,15 @@ +/* $Id: minissdpc.h,v 1.2 2012/09/27 15:42:10 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2005-2007 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef MINISSDPC_H_INCLUDED +#define MINISSDPC_H_INCLUDED + +struct UPNPDev * +getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath); + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/miniupnpc.h b/ext/bin/miniupnpc/include/miniupnpc/miniupnpc.h new file mode 100644 index 000000000..0eeabc234 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/miniupnpc.h @@ -0,0 +1,154 @@ +/* $Id: miniupnpc.h,v 1.42 2015/07/21 13:16:55 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ + * Author: Thomas Bernard + * Copyright (c) 2005-2015 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef MINIUPNPC_H_INCLUDED +#define MINIUPNPC_H_INCLUDED + +#include "miniupnpc_declspec.h" +#include "igd_desc_parse.h" + +/* error codes : */ +#define UPNPDISCOVER_SUCCESS (0) +#define UPNPDISCOVER_UNKNOWN_ERROR (-1) +#define UPNPDISCOVER_SOCKET_ERROR (-101) +#define UPNPDISCOVER_MEMORY_ERROR (-102) + +/* versions : */ +#define MINIUPNPC_VERSION "1.9.20150721" +#define MINIUPNPC_API_VERSION 13 + +#ifdef __cplusplus +extern "C" { +#endif + +/* Structures definitions : */ +struct UPNParg { const char * elt; const char * val; }; + +char * +simpleUPnPcommand(int, const char *, const char *, + const char *, struct UPNParg *, + int *); + +struct UPNPDev { + struct UPNPDev * pNext; + char * descURL; + char * st; + unsigned int scope_id; + char buffer[2]; +}; + +/* upnpDiscover() + * discover UPnP devices on the network. + * The discovered devices are returned as a chained list. + * It is up to the caller to free the list with freeUPNPDevlist(). + * delay (in millisecond) is the maximum time for waiting any device + * response. + * If available, device list will be obtained from MiniSSDPd. + * Default path for minissdpd socket will be used if minissdpdsock argument + * is NULL. + * If multicastif is not NULL, it will be used instead of the default + * multicast interface for sending SSDP discover packets. + * If sameport is not null, SSDP packets will be sent from the source port + * 1900 (same as destination port) otherwise system assign a source port. + * "searchalltypes" parameter is useful when searching several types, + * if 0, the discovery will stop with the first type returning results. */ +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock, int sameport, + int ipv6, + int * error); + +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverAll(int delay, const char * multicastif, + const char * minissdpdsock, int sameport, + int ipv6, + int * error); + +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverDevice(const char * device, int delay, const char * multicastif, + const char * minissdpdsock, int sameport, + int ipv6, + int * error); + +MINIUPNP_LIBSPEC struct UPNPDev * +upnpDiscoverDevices(const char * const deviceTypes[], + int delay, const char * multicastif, + const char * minissdpdsock, int sameport, + int ipv6, + int * error, + int searchalltypes); + +/* freeUPNPDevlist() + * free list returned by upnpDiscover() */ +MINIUPNP_LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist); + +/* parserootdesc() : + * parse root XML description of a UPnP device and fill the IGDdatas + * structure. */ +MINIUPNP_LIBSPEC void parserootdesc(const char *, int, struct IGDdatas *); + +/* structure used to get fast access to urls + * controlURL: controlURL of the WANIPConnection + * ipcondescURL: url of the description of the WANIPConnection + * controlURL_CIF: controlURL of the WANCommonInterfaceConfig + * controlURL_6FC: controlURL of the WANIPv6FirewallControl + */ +struct UPNPUrls { + char * controlURL; + char * ipcondescURL; + char * controlURL_CIF; + char * controlURL_6FC; + char * rootdescURL; +}; + +/* UPNP_GetValidIGD() : + * return values : + * 0 = NO IGD found + * 1 = A valid connected IGD has been found + * 2 = A valid IGD has been found but it reported as + * not connected + * 3 = an UPnP device has been found but was not recognized as an IGD + * + * In any non zero return case, the urls and data structures + * passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to + * free allocated memory. + */ +MINIUPNP_LIBSPEC int +UPNP_GetValidIGD(struct UPNPDev * devlist, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen); + +/* UPNP_GetIGDFromUrl() + * Used when skipping the discovery process. + * When succeding, urls, data, and lanaddr arguments are set. + * return value : + * 0 - Not ok + * 1 - OK */ +MINIUPNP_LIBSPEC int +UPNP_GetIGDFromUrl(const char * rootdescurl, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen); + +MINIUPNP_LIBSPEC void +GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, + const char *, unsigned int); + +MINIUPNP_LIBSPEC void +FreeUPNPUrls(struct UPNPUrls *); + +/* return 0 or 1 */ +MINIUPNP_LIBSPEC int UPNPIGD_IsConnected(struct UPNPUrls *, struct IGDdatas *); + + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/miniupnpc_declspec.h b/ext/bin/miniupnpc/include/miniupnpc/miniupnpc_declspec.h new file mode 100644 index 000000000..40adb922e --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/miniupnpc_declspec.h @@ -0,0 +1,21 @@ +#ifndef MINIUPNPC_DECLSPEC_H_INCLUDED +#define MINIUPNPC_DECLSPEC_H_INCLUDED + +#if defined(_WIN32) && !defined(MINIUPNP_STATICLIB) + /* for windows dll */ + #ifdef MINIUPNP_EXPORTS + #define MINIUPNP_LIBSPEC __declspec(dllexport) + #else + #define MINIUPNP_LIBSPEC __declspec(dllimport) + #endif +#else + #if defined(__GNUC__) && __GNUC__ >= 4 + /* fix dynlib for OS X 10.9.2 and Apple LLVM version 5.0 */ + #define MINIUPNP_LIBSPEC __attribute__ ((visibility ("default"))) + #else + #define MINIUPNP_LIBSPEC + #endif +#endif + +#endif /* MINIUPNPC_DECLSPEC_H_INCLUDED */ + diff --git a/ext/bin/miniupnpc/include/miniupnpc/miniupnpcstrings.h b/ext/bin/miniupnpc/include/miniupnpc/miniupnpcstrings.h new file mode 100644 index 000000000..80a1d757d --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/miniupnpcstrings.h @@ -0,0 +1,23 @@ +/* $Id: miniupnpcstrings.h.in,v 1.6 2014/11/04 22:31:55 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2005-2014 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef MINIUPNPCSTRINGS_H_INCLUDED +#define MINIUPNPCSTRINGS_H_INCLUDED + +#define OS_STRING "Darwin/14.4.0" +#define MINIUPNPC_VERSION_STRING "1.9" + +#if 0 +/* according to "UPnP Device Architecture 1.0" */ +#define UPNP_VERSION_STRING "UPnP/1.0" +#else +/* according to "UPnP Device Architecture 1.1" */ +#define UPNP_VERSION_STRING "UPnP/1.1" +#endif + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/miniupnpctypes.h b/ext/bin/miniupnpc/include/miniupnpc/miniupnpctypes.h new file mode 100644 index 000000000..591c32fb6 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/miniupnpctypes.h @@ -0,0 +1,19 @@ +/* $Id: miniupnpctypes.h,v 1.2 2012/09/27 15:42:10 nanard Exp $ */ +/* Miniupnp project : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org + * Author : Thomas Bernard + * Copyright (c) 2011 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided within this distribution */ +#ifndef MINIUPNPCTYPES_H_INCLUDED +#define MINIUPNPCTYPES_H_INCLUDED + +#if (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) +#define UNSIGNED_INTEGER unsigned long long +#define STRTOUI strtoull +#else +#define UNSIGNED_INTEGER unsigned int +#define STRTOUI strtoul +#endif + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/miniwget.h b/ext/bin/miniupnpc/include/miniupnpc/miniwget.h new file mode 100644 index 000000000..d6db71a85 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/miniwget.h @@ -0,0 +1,30 @@ +/* $Id: miniwget.h,v 1.10 2015/07/21 13:16:55 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005-2015 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef MINIWGET_H_INCLUDED +#define MINIWGET_H_INCLUDED + +#include "miniupnpc_declspec.h" + +#ifdef __cplusplus +extern "C" { +#endif + +MINIUPNP_LIBSPEC void * getHTTPResponse(int s, int * size); + +MINIUPNP_LIBSPEC void * miniwget(const char *, int *, unsigned int); + +MINIUPNP_LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int, unsigned int); + +int parseURL(const char *, char *, unsigned short *, char * *, unsigned int *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/minixml.h b/ext/bin/miniupnpc/include/miniupnpc/minixml.h new file mode 100644 index 000000000..9f43aa48c --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/minixml.h @@ -0,0 +1,37 @@ +/* $Id: minixml.h,v 1.7 2012/09/27 15:42:10 nanard Exp $ */ +/* minimal xml parser + * + * Project : miniupnp + * Website : http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef MINIXML_H_INCLUDED +#define MINIXML_H_INCLUDED +#define IS_WHITE_SPACE(c) ((c==' ') || (c=='\t') || (c=='\r') || (c=='\n')) + +/* if a callback function pointer is set to NULL, + * the function is not called */ +struct xmlparser { + const char *xmlstart; + const char *xmlend; + const char *xml; /* pointer to current character */ + int xmlsize; + void * data; + void (*starteltfunc) (void *, const char *, int); + void (*endeltfunc) (void *, const char *, int); + void (*datafunc) (void *, const char *, int); + void (*attfunc) (void *, const char *, int, const char *, int); +}; + +/* parsexml() + * the xmlparser structure must be initialized before the call + * the following structure members have to be initialized : + * xmlstart, xmlsize, data, *func + * xml is for internal usage, xmlend is computed automatically */ +void parsexml(struct xmlparser *); + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/portlistingparse.h b/ext/bin/miniupnpc/include/miniupnpc/portlistingparse.h new file mode 100644 index 000000000..661ad1faa --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/portlistingparse.h @@ -0,0 +1,65 @@ +/* $Id: portlistingparse.h,v 1.11 2015/07/21 13:16:55 nanard Exp $ */ +/* MiniUPnP project + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * (c) 2011-2015 Thomas Bernard + * This software is subject to the conditions detailed + * in the LICENCE file provided within the distribution */ +#ifndef PORTLISTINGPARSE_H_INCLUDED +#define PORTLISTINGPARSE_H_INCLUDED + +#include "miniupnpc_declspec.h" +/* for the definition of UNSIGNED_INTEGER */ +#include "miniupnpctypes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* sample of PortMappingEntry : + + 202.233.2.1 + 2345 + TCP + 2345 + 192.168.1.137 + 1 + dooom + 345 + + */ +typedef enum { PortMappingEltNone, + PortMappingEntry, NewRemoteHost, + NewExternalPort, NewProtocol, + NewInternalPort, NewInternalClient, + NewEnabled, NewDescription, + NewLeaseTime } portMappingElt; + +struct PortMapping { + struct PortMapping * l_next; /* list next element */ + UNSIGNED_INTEGER leaseTime; + unsigned short externalPort; + unsigned short internalPort; + char remoteHost[64]; + char internalClient[64]; + char description[64]; + char protocol[4]; + unsigned char enabled; +}; + +struct PortMappingParserData { + struct PortMapping * l_head; /* list head */ + portMappingElt curelt; +}; + +MINIUPNP_LIBSPEC void +ParsePortListing(const char * buffer, int bufsize, + struct PortMappingParserData * pdata); + +MINIUPNP_LIBSPEC void +FreePortListing(struct PortMappingParserData * pdata); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ext/bin/miniupnpc/include/miniupnpc/receivedata.h b/ext/bin/miniupnpc/include/miniupnpc/receivedata.h new file mode 100644 index 000000000..0520a11d3 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/receivedata.h @@ -0,0 +1,19 @@ +/* $Id: receivedata.h,v 1.4 2012/09/27 15:42:10 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2011-2012 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef RECEIVEDATA_H_INCLUDED +#define RECEIVEDATA_H_INCLUDED + +/* Reads data from the specified socket. + * Returns the number of bytes read if successful, zero if no bytes were + * read or if we timed out. Returns negative if there was an error. */ +int receivedata(int socket, + char * data, int length, + int timeout, unsigned int * scope_id); + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/upnpcommands.h b/ext/bin/miniupnpc/include/miniupnpc/upnpcommands.h new file mode 100644 index 000000000..22eda5e39 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/upnpcommands.h @@ -0,0 +1,348 @@ +/* $Id: upnpcommands.h,v 1.31 2015/07/21 13:16:55 nanard Exp $ */ +/* Miniupnp project : http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005-2015 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided within this distribution */ +#ifndef UPNPCOMMANDS_H_INCLUDED +#define UPNPCOMMANDS_H_INCLUDED + +#include "upnpreplyparse.h" +#include "portlistingparse.h" +#include "miniupnpc_declspec.h" +#include "miniupnpctypes.h" + +/* MiniUPnPc return codes : */ +#define UPNPCOMMAND_SUCCESS (0) +#define UPNPCOMMAND_UNKNOWN_ERROR (-1) +#define UPNPCOMMAND_INVALID_ARGS (-2) +#define UPNPCOMMAND_HTTP_ERROR (-3) +#define UPNPCOMMAND_INVALID_RESPONSE (-4) +#define UPNPCOMMAND_MEM_ALLOC_ERROR (-5) + +#ifdef __cplusplus +extern "C" { +#endif + +MINIUPNP_LIBSPEC UNSIGNED_INTEGER +UPNP_GetTotalBytesSent(const char * controlURL, + const char * servicetype); + +MINIUPNP_LIBSPEC UNSIGNED_INTEGER +UPNP_GetTotalBytesReceived(const char * controlURL, + const char * servicetype); + +MINIUPNP_LIBSPEC UNSIGNED_INTEGER +UPNP_GetTotalPacketsSent(const char * controlURL, + const char * servicetype); + +MINIUPNP_LIBSPEC UNSIGNED_INTEGER +UPNP_GetTotalPacketsReceived(const char * controlURL, + const char * servicetype); + +/* UPNP_GetStatusInfo() + * status and lastconnerror are 64 byte buffers + * Return values : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error code */ +MINIUPNP_LIBSPEC int +UPNP_GetStatusInfo(const char * controlURL, + const char * servicetype, + char * status, + unsigned int * uptime, + char * lastconnerror); + +/* UPNP_GetConnectionTypeInfo() + * argument connectionType is a 64 character buffer + * Return Values : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error code */ +MINIUPNP_LIBSPEC int +UPNP_GetConnectionTypeInfo(const char * controlURL, + const char * servicetype, + char * connectionType); + +/* UPNP_GetExternalIPAddress() call the corresponding UPNP method. + * if the third arg is not null the value is copied to it. + * at least 16 bytes must be available + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR Either an UPnP error code or an unknown error. + * + * possible UPnP Errors : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. */ +MINIUPNP_LIBSPEC int +UPNP_GetExternalIPAddress(const char * controlURL, + const char * servicetype, + char * extIpAdd); + +/* UPNP_GetLinkLayerMaxBitRates() + * call WANCommonInterfaceConfig:1#GetCommonLinkProperties + * + * return values : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error Code. */ +MINIUPNP_LIBSPEC int +UPNP_GetLinkLayerMaxBitRates(const char* controlURL, + const char* servicetype, + unsigned int * bitrateDown, + unsigned int * bitrateUp); + +/* UPNP_AddPortMapping() + * if desc is NULL, it will be defaulted to "libminiupnpc" + * remoteHost is usually NULL because IGD don't support it. + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR. Either an UPnP error code or an unknown error. + * + * List of possible UPnP errors for AddPortMapping : + * errorCode errorDescription (short) - Description (long) + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization and + * the sender was not authorized. + * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be + * wild-carded + * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded + * 718 ConflictInMappingEntry - The port mapping entry specified conflicts + * with a mapping assigned previously to another client + * 724 SamePortValuesRequired - Internal and External port values + * must be the same + * 725 OnlyPermanentLeasesSupported - The NAT implementation only supports + * permanent lease times on port mappings + * 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard + * and cannot be a specific IP address or DNS name + * 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and + * cannot be a specific port value + * 728 NoPortMapsAvailable - There are not enough free ports available to + * complete port mapping. + * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed + * due to conflict with other mechanisms. + * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded + */ +MINIUPNP_LIBSPEC int +UPNP_AddPortMapping(const char * controlURL, const char * servicetype, + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto, + const char * remoteHost, + const char * leaseDuration); + +/* UPNP_AddAnyPortMapping() + * if desc is NULL, it will be defaulted to "libminiupnpc" + * remoteHost is usually NULL because IGD don't support it. + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR. Either an UPnP error code or an unknown error. + * + * List of possible UPnP errors for AddPortMapping : + * errorCode errorDescription (short) - Description (long) + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization and + * the sender was not authorized. + * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be + * wild-carded + * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded + * 728 NoPortMapsAvailable - There are not enough free ports available to + * complete port mapping. + * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed + * due to conflict with other mechanisms. + * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded + */ +MINIUPNP_LIBSPEC int +UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype, + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto, + const char * remoteHost, + const char * leaseDuration, + char * reservedPort); + +/* UPNP_DeletePortMapping() + * Use same argument values as what was used for AddPortMapping(). + * remoteHost is usually NULL because IGD don't support it. + * Return Values : + * 0 : SUCCESS + * NON ZERO : error. Either an UPnP error code or an undefined error. + * + * List of possible UPnP errors for DeletePortMapping : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. + * 714 NoSuchEntryInArray - The specified value does not exist in the array */ +MINIUPNP_LIBSPEC int +UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, + const char * extPort, const char * proto, + const char * remoteHost); + +/* UPNP_DeletePortRangeMapping() + * Use same argument values as what was used for AddPortMapping(). + * remoteHost is usually NULL because IGD don't support it. + * Return Values : + * 0 : SUCCESS + * NON ZERO : error. Either an UPnP error code or an undefined error. + * + * List of possible UPnP errors for DeletePortMapping : + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. + * 730 PortMappingNotFound - This error message is returned if no port + * mapping is found in the specified range. + * 733 InconsistentParameters - NewStartPort and NewEndPort values are not consistent. */ +MINIUPNP_LIBSPEC int +UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype, + const char * extPortStart, const char * extPortEnd, + const char * proto, + const char * manage); + +/* UPNP_GetPortMappingNumberOfEntries() + * not supported by all routers */ +MINIUPNP_LIBSPEC int +UPNP_GetPortMappingNumberOfEntries(const char* controlURL, + const char* servicetype, + unsigned int * num); + +/* UPNP_GetSpecificPortMappingEntry() + * retrieves an existing port mapping + * params : + * in extPort + * in proto + * in remoteHost + * out intClient (16 bytes) + * out intPort (6 bytes) + * out desc (80 bytes) + * out enabled (4 bytes) + * out leaseDuration (16 bytes) + * + * return value : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error Code. + * + * List of possible UPnP errors for _GetSpecificPortMappingEntry : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. + * 714 NoSuchEntryInArray - The specified value does not exist in the array. + */ +MINIUPNP_LIBSPEC int +UPNP_GetSpecificPortMappingEntry(const char * controlURL, + const char * servicetype, + const char * extPort, + const char * proto, + const char * remoteHost, + char * intClient, + char * intPort, + char * desc, + char * enabled, + char * leaseDuration); + +/* UPNP_GetGenericPortMappingEntry() + * params : + * in index + * out extPort (6 bytes) + * out intClient (16 bytes) + * out intPort (6 bytes) + * out protocol (4 bytes) + * out desc (80 bytes) + * out enabled (4 bytes) + * out rHost (64 bytes) + * out duration (16 bytes) + * + * return value : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error Code. + * + * Possible UPNP Error codes : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 606 Action not authorized - The action requested REQUIRES authorization + * and the sender was not authorized. + * 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds + */ +MINIUPNP_LIBSPEC int +UPNP_GetGenericPortMappingEntry(const char * controlURL, + const char * servicetype, + const char * index, + char * extPort, + char * intClient, + char * intPort, + char * protocol, + char * desc, + char * enabled, + char * rHost, + char * duration); + +/* UPNP_GetListOfPortMappings() Available in IGD v2 + * + * + * Possible UPNP Error codes : + * 606 Action not Authorized + * 730 PortMappingNotFound - no port mapping is found in the specified range. + * 733 InconsistantParameters - NewStartPort and NewEndPort values are not + * consistent. + */ +MINIUPNP_LIBSPEC int +UPNP_GetListOfPortMappings(const char * controlURL, + const char * servicetype, + const char * startPort, + const char * endPort, + const char * protocol, + const char * numberOfPorts, + struct PortMappingParserData * data); + +/* IGD:2, functions for service WANIPv6FirewallControl:1 */ +MINIUPNP_LIBSPEC int +UPNP_GetFirewallStatus(const char * controlURL, + const char * servicetype, + int * firewallEnabled, + int * inboundPinholeAllowed); + +MINIUPNP_LIBSPEC int +UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype, + const char * remoteHost, + const char * remotePort, + const char * intClient, + const char * intPort, + const char * proto, + int * opTimeout); + +MINIUPNP_LIBSPEC int +UPNP_AddPinhole(const char * controlURL, const char * servicetype, + const char * remoteHost, + const char * remotePort, + const char * intClient, + const char * intPort, + const char * proto, + const char * leaseTime, + char * uniqueID); + +MINIUPNP_LIBSPEC int +UPNP_UpdatePinhole(const char * controlURL, const char * servicetype, + const char * uniqueID, + const char * leaseTime); + +MINIUPNP_LIBSPEC int +UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID); + +MINIUPNP_LIBSPEC int +UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype, + const char * uniqueID, int * isWorking); + +MINIUPNP_LIBSPEC int +UPNP_GetPinholePackets(const char * controlURL, const char * servicetype, + const char * uniqueID, int * packets); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/ext/bin/miniupnpc/include/miniupnpc/upnperrors.h b/ext/bin/miniupnpc/include/miniupnpc/upnperrors.h new file mode 100644 index 000000000..3115aee5b --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/upnperrors.h @@ -0,0 +1,26 @@ +/* $Id: upnperrors.h,v 1.6 2015/07/21 13:16:55 nanard Exp $ */ +/* (c) 2007-2015 Thomas Bernard + * All rights reserved. + * MiniUPnP Project. + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +#ifndef UPNPERRORS_H_INCLUDED +#define UPNPERRORS_H_INCLUDED + +#include "miniupnpc_declspec.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* strupnperror() + * Return a string description of the UPnP error code + * or NULL for undefinded errors */ +MINIUPNP_LIBSPEC const char * strupnperror(int err); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/ext/bin/miniupnpc/include/miniupnpc/upnpreplyparse.h b/ext/bin/miniupnpc/include/miniupnpc/upnpreplyparse.h new file mode 100644 index 000000000..6badd15b2 --- /dev/null +++ b/ext/bin/miniupnpc/include/miniupnpc/upnpreplyparse.h @@ -0,0 +1,63 @@ +/* $Id: upnpreplyparse.h,v 1.19 2014/10/27 16:33:19 nanard Exp $ */ +/* MiniUPnP project + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * (c) 2006-2013 Thomas Bernard + * This software is subject to the conditions detailed + * in the LICENCE file provided within the distribution */ + +#ifndef UPNPREPLYPARSE_H_INCLUDED +#define UPNPREPLYPARSE_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +struct NameValue { + struct NameValue * l_next; + char name[64]; + char value[128]; +}; + +struct NameValueParserData { + struct NameValue * l_head; + char curelt[64]; + char * portListing; + int portListingLength; + int topelt; + const char * cdata; + int cdatalen; +}; + +/* ParseNameValue() */ +void +ParseNameValue(const char * buffer, int bufsize, + struct NameValueParserData * data); + +/* ClearNameValueList() */ +void +ClearNameValueList(struct NameValueParserData * pdata); + +/* GetValueFromNameValueList() */ +char * +GetValueFromNameValueList(struct NameValueParserData * pdata, + const char * Name); + +#if 0 +/* GetValueFromNameValueListIgnoreNS() */ +char * +GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, + const char * Name); +#endif + +/* DisplayNameValueList() */ +#ifdef DEBUG +void +DisplayNameValueList(char * buffer, int bufsize); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/ext/bin/miniupnpc/mac-x64/libminiupnpc.a b/ext/bin/miniupnpc/mac-x64/libminiupnpc.a new file mode 100644 index 0000000000000000000000000000000000000000..3c2e528d1d462f057e9edfeb824fd2a5e54c3002 GIT binary patch literal 95616 zcmeFadt4Jo*Eqhpun8dv8*YZH8$d)wT@Vx%?S=%5iW(FxR;>xQf|ZMiidJndT%tvd zN-4G0Cs^u3Tic?d#n##c&{9QO(u$FeXnJeyy@FqR{H z$?<+Jq$j6i82mAz+z~$Oc<B<0c~ZDCR7Vn_%NnRyw`+YD`y7F)P9Ut6HgUs^P4 zSz2xmq+u#3%+D{%$XuEZuXAz>7H7^@=c&{4b91$M8BtG(!xk{2O zT%MDjx%A1%C!get0kps7!4_r}W z$yqb=7G?U=D`zDs`9<2r@hgimm(I$}17QCeKQl8uGiUkZfH8U0+VmGQi=LLt@#e4j zW)*3RmMxu}mzDph9!I-#^7B$w7Gys8E-5GP#U$;@%))8f;`p4RnOcDIQO<J#Lv{`y#QEtqGwWO zUS?rV`ePXr@`?&qK1%S|o9WAP(=rQZWT6x}kGEh}L1ubR)_*Dmb>obz$I5ax638Pl zr!aGccJX36Rv*O$g#&eGR!W3F_igaoC7IO zq*G*ProZS&_H2IPi;qwXpg7_k9S@_cs1S{e%)-Ka7|H2&($0nvS^yp6AYIfb)I6pj zG%B8mD0C1VGrnKQEOHD;M99;CY0R3XR4Xy;Azc4 zPL^U=0^InUXsk-~k?eQWFifSxOISAX70UfiJKjsWU!la;DfcVw_*KmP1|hzTRV!la zo8u}ubYt`Q2L0GpMQnp&Yy&IqkYZdTXF{bhu0cMwUNNqLL%ZKryI;YCH+#jo8u4vH zd_yhH#oT{3i*M5IS4j6RpH;Dh;8SL!>$tIp8!sbxI?>lQ{o>P;D3gS zDDmB1@$Gi}lG^>MMvUsE+^<_8WfzM+ZGdc!6AWANFUfUDY|^H|X3nt-FSz^gR@=dA%P0#?!XRP;I*27%Qd27`oNBw!1LC?Z*76+b%DoZ0c|YuVt3$qGVr1;;40)|1)aA* zr9tg1s=Po`zA~JrD=1%)%~`?ct*Az|7iSxn^LeXio;9FJkKn}8g09H|j%ouD@ZG4Q zqxzt4pL8#%Hpl@vf*8muO;J31X zYyFUDI9jfCuWa;2gtLKsK*CA@Nyl3mUcN*HpxVnUFCZVm*7P^1z*d>dSB3L5OdFS) z%L}s03$r=J#pOi>JcwVJZ7kH37iE`^h6DxWqc!D)0KB~;0Qpq;%52V3UHRzj@&XI5 z2y2rCoYe*$v!m1+*kl9zJQbzYyjA@2C8-SX#ZXcC5=;3C=trV_6$Qva^{!O$)`asg zcWh_SMQu=%EdaXmX}wd&G`zZe1;twhz-Y>$r&jeta#lkkWIcm<(7AORE~9%M%^qq9 zJf;Oyi@M}N$Fu<*0JFVtSwL$)w(b4??{UJ@0j)w~rHFp40heU~=b`Vgpl@Y?7xh8M zfB-B3XJvusYebOXVvPtW99n@fJpu&T2GouyTy!3Fap03gUQk{Dbn7y zfd3XM(gs}X4g}h6sR?QWEJ3}Rpbq)KV=OC2SBHqUfI@xxv~K!=Y53Ldz&1Ss=4>~j z{C-GA6UVR!e^V(iI<6=76~0q~MV{5fvg+Z!N1}778!c@|2zAGN86Gyq$&6C&){xo~_~|LBF?)F=ZLDxBxtv5? zYz|;;amNI;Tphj+v&4H~*UUm}3ZdDE39s@kFV+s(S@Olhmxovcp%KyqO~kci{?Rm> zr8R&R?v=K;nlcq`icYAc?mZm2Chhu>bS^fx5HquMOC9;HdroyvcEjH~RY3U=lM^mA zQj{+*J>Kv9Wn4FIC2pDFgN0X;*mGWnJ=NyA6ak(dDLXZU9|*W$TMG zQzODI4?B{!r#gurJBg^&?j<_viHaj>@d=B(jC)c8CJ&9T((Xw$@AZ1cB|S=(Fz#243t<##?F|1KFkB_In z7n~=T&O2(@qoG>o@s4K6yMiO6p&tM$v`Ie75l2e)R8y_{cxj|N7jE0mr}!zbg>ilJ2h1~SwUslz&t<&DIGWEZ*748` z09;2}zM`79+Qf-1Fpe+a#GX~-Fzep1@X&my;T2hU%V{3WLd6(w6~Qai@p8Mw#TMQY z4G;KCq5Uo8wuIyrTkg;m+^G0a?pYh36%YzjJp7H92B#WBF$@S$!%OEbHp4Cn{(jP! zEut+Lrh~sgp+}<}Ru}~AdyUD4F)CPbz+WrNDn9CViFCyEtADGKSHxD-$OQ z4Pzb2!Z}uRnV3lf1df$OufVuExPgnR{enYcuoZ+$Cp!^@v1sNV6XyI2<1_nUfJ$|T zM`JMV(52X>#@JoVEhg6Ax8C&*JOsFlkgA7EA4nPh;`X`U@_N%2PmN0rnS)ZLq;7?f24- z(`>fToq4dDulhXJ>Vtq)z$;u-?RBWy4xhc%1oQ)3!ko2GwH-dFLQFdwq}a9uV_TRs z(CSJKfw?dbP(^?a3%9>0i@uI=X?sa#7bs;E#76~HOMN9t<_g!aNk_SgZ53EM9rAJ9 zPdnZ?etXWj32V1@-W=uqDR zJwoc1Qu=YthtI(zH5Gjrd3GVMm(^Y32^)`YbXj%BK=+ycW z$(PKkXET5)hsS!rdsoE}*45Aj^w20oq#9 zToDh;sAAsI>Lo(^njMzUqlEFW?g%_t6Ocu@Fv*PmZJY_MiU}2*32ns{(A<}xK`NN5 zd8-OI%Zp*P#-7PO9owLp_L22D?i(MJ+>PC!Oi_9E?Kpn--b;s; zmtV;IgsL5~WmoGIDTiL0v)&Y57@S^R^>*6tE<;SNTK>Xqy6h;=?;pN>b)7kD=-O^| zgr)cGA@5E@zk74h@5dX^Z`1qe_t^Wv&sD9zHK3LZE0L|<=^J6V_i~x0gm=GGvB%vc z_iKqVT_0m|m6o-N1q-(Ye?!3U&Tq(#Camg+q~db;4t~zACJ*%L+t_UnU)xnD3HoV( z_(*7d<~!2wTs`8eLqkJWD?k6EJhAvKQul?tjlEK*3ck3%Ve=7k7p~#g4hc98&GFdS z8s~xM5XZ@|3w}a8)n`(8Wk_$}zVGhrT_<&yBuvlnFON>xsu=!jy|RQRy(2MCjkN9I zC~k!non!N}DS2S$@Jy!iGZgBCgIy;mfAphQ|<~ zJIPPf!T3neQ{t_|ym~|i|3;fh9?9Bm=7!)cUc2L?E)rfE>Nvr-X-a%G9BOKp8+y^u z6!opTRUaTs&)XhTL!#YR!E(!;iy6q<0JP3}rTXfNB+Jz$uj8WU@=6F#G)k?da zHnE~uhjctIze@S&i$uNNw=K%+V?sDan2X{2gk}ER7%%D~5s*e5F9@}{Zk0xchmir5 znnqc#Ra3>9Y|xh_2sgsd_(UNei!Il*=rG+<0uPDTig8VqbpSrp=On#RFDM&j>DfNH zVzAIQ*3&l<*mq#bL}_Gf7#)a55$vURF>bR+KCs#rVT^a#$2|`17kE4qJ|HP0PU{-Z zZw{czbF5js&5|0-;1(9OqnGPd(p^US01!2s*;5l)kX>H}5O4I_PHnzbG8B+8hI;_D zVUyR{bO9;N<6ALNmM=LZRvX;oI**n^%qo^}ccBZBG=|#%I8rS?#paKwZY?%QnbLIu zR%`4$%vPkRcWa8!N4GZ@Z}N*>)ZWhOk*}_gJw>~}HDJ^8v8zs9a|w~J+Cyx1{S-5F zmuZCUnno?gqrzqFbIURXxSvvQ#{Hy;+cGUfwN*N4wx%S$c@APMJSj2ndUg=5O5AO7VJk>jR6HwTs4RUh_TebuGd; z7`JIXeP{HsFEkMIsm&5jI{SyTx^f^5l`B=9*=HqVDL`htFB$^et^{f-iHG1vxz}8p z+>aJ0x;)T$z|)BNzR<~XkpUI(dobVib?BH3ws4n!hCyhU%Z`+WYfC6~>2z-^?R{A9 zan!rX>OJmRjC0*TPh}iK8|RiqrW!R>Iw3w(cT}j>Lb%H&yr>bDjm5f!KUsu7ScDO& zuEcz+uDeVpZr4=Vgr`aAjC!NqKux7_j>uDi51=$v8WHqT@>$$3EcI*z>4q}QHN;4> zt5fCv+0_N|Pjsv?&SW15vs}N{Sjua7(?us~QHw69Ll@Mp3!-AwMtu-IFg7NZ6GL!T zt2nD^&T8vvT7<8XuI;KH)y0cccUa>&Ypuc<=`}5F=sam1*n)+2V4>|;D5XT{wsbX) z!dxSJbT*8{|FI{PLK^_bB~;Ax5mB*KdKk0 zsqHw&Tlhu_*B=-_!A!|w^#_F8lD%kLr1JBsTTQk|)-{<=yv3(kbigtI`a$QGPY9za z%}n^oKtI{&XEFRl6wGY%IAo(;()a5xL9rFjH`v1k_E5Oc9=bU~p>G3gcO#@%;JNg$ zJm4MMacNsrD?0#2D1Q+Qa792@JkSD<(S|O>8b=GKfnoCj~ZFPv3k>bdL|*MZ{XAv$<5%cVV^&eYh|ssfQAz zo1uE4v?9KW*CTp=^FX$Xwo#Vt9$lRo?h?nJ4wTK^bhkX8>s29Gt0?z3+~pg)%eZl^ zmJ<2}-`hGb!@RI$;Y-$HPF|&nl1eC6K~v~a|DqnH!DgbLVOw|J!fY-=p!KVWE#1Vt z4Epu&h~u^Ajc!tC=2@0sThveTf!rR^rS4!3svHWD<`Gjug;V<6N66GuzvXcE30I-X zp*i#?8*L1yUV{EleW`%M+2zmHRuAem>hZEp<6QPL(mD-)BJnR6o8d0dfNs4flf0nNLq<^c{PEVhW|@RIm~CS{iEO(;adi-XbA#&RE_u|~+lfugPz@L;%& zzX&a7ipO!$14w9l0FbpyfNNxz&f;gesSgLCwQr)v*&E3YXn(`cD7YSrZ|-X?qXPkOH7~L{v$!-B;xEf-v8GA?Pl4(1%nSjbVp?HF7cQE0nZm=;|n#{|{5@J*M(uo#T6e2N)|egKBg)%3%qB-OFs6B)pW+LXr{($ea{i*dmZ+g+{w0;b3h}XxrJBZ? z(3B&>MT1TPq6}LpqaXYIO7+(2JpS|Xb-HN)aDgWPTwVGc0Q_7$0@yal0WkeV+hhRP zBmjWh#^a&2C9Ch zTf}L+p3SRIbE_|O;|zD(eVXmIpS9b{+I^P2`=Y%VdgK$u^v)UHKJ|%W(q_A*eTApF z@D69XeGTPC_RC|5()M3D44|E7PBH@P(O%be-2pv|EUjJUH6i&=t>vE~{k2T@iuKV#NNi7;8 z=Elg4cL0)aejll9z3XX|S2tk3eBM{#9$O?(%`+XsmMa&QeR{w0@<>A{Ys|@cJ@h5z z;jU=Kr~Z4a`qL9{&f0QL96J57+w@VVKb5%iC+5D(n&A@RC7VV^-z!@1-GIzKag1d1 zG`CdMs1!Q%o+`8F;Ai|T+>4EQO>EPq(+_UU+VW;3k0n&z<)w6Y&iNc6;?zKO=|cZp ztb5GK3@fM2*}jif@{;;X*^f%u&b~Zy^TU7#o)T0-##YYOk+CO~(Vd?W8zKWIK7S_+ z2MkM2FhxIDy8Y`b_QrNMd=`6BF~7Cw!Y{cC9$bobUn29Ie*cx8xR%nSk8&55F@^qd z^BKt!gzYgp)C9?ndA?x*DQ~G%iNCXE|E?NEyf)+hm)bX2<{ACncjkV~*ar?gp6<)7 zW%->FPG`#4l7Igda5NrhXJN%66lb7su0PkjPHNF9(|aQc}7aP z(7Q__o8&Qq$i9Y$0ayJ=*$Fjk^W~6Nza!3M^fbJVtDHS|h9S0#?2QHL4Z$+s?h7%~ z=PlQjL@QjBTQ;SvRm|VI;X>JnC-XOo1kU`oMk;$Q{F?V3r^89DZm0SVoS3)!$s&H7 zwE3Q$ZXXmWxl|vE3C5S9#e%O}m0Hd*_T)rYDuZ{Km`l za>tN<7#}_H2BL$H-oLPxzJ%_6dw*UYZFC^<*Khnk#X{^P*w>hUkfSA^PDd+F&Rb#a zenz7G{JWMplPAtRSDgD#);flkVso!K?i$x5u6Ht;y8c>6@9;0S z12bmFyc%8TW8*9DyRXNQk2Pk~g}%+9c8=9|P{s7nS;t7rSkHdLP8qj&DYrsEB7?~G z&ELvK68G#lb~`2Q?Cv=_vfxic;Nt2vVH+R1NuvIMo?iaE|ND<1JAC25qldL`Ji^q( zj*G`GK^BQoe!5|Sc)pWJFDz%q*_ix!J9UQB69IzvJAH=MyFP{8WgKVQ@iR8}nB#6` zZnNX=V6N41cQ1FrR%ReV=N&CVgXGs?=04Q@Z}uD*;kf&G*Hz*~mluK}^j^a z_6VZ$$%k{zY{AU?MY(q-4)T4$s_WbTK2K=+#~ZU9-3*-OV!|cF;+Acgmu>AvoY%N= ztexgcfd4Fc_EkG8yX;`&qt_@ZK2riqS@tt9R&l7EFZ{8Na*l`}%WZu#lnj^sbfB=u zL6s}=FSDc$;W498{9GazaOQ#B)q(^ z&B+|>=-vE>Slv%}2N=TpNYe*plxy8+)r}qpn|SlbU;V6T!iAY2=ES@gb^5;L3pyuZ zkMp_hI70(}>t5QiJ$N9vrk*GYo@s4$#GJh9!X2f9{~id1L2; zrSrdZwxMyxWCw#!#^WaT&(I6sc+vV8cU!xl^V1qZ#Dh!R*2^IP%ynyji9l5^Gw`@9 z_*2s%-D;gZ9kT?nLp3MRF&{H5KOa^NpRfduetf;g8VoF*FmAfA|DZU+KG!zpzA;zX zzp4P>Q-8+79&e9*R&QgAX5K%5xOiV>#?S0m98+)4ujA?+E4a0JOJ8>qDX_b8hU34K zTg~}v?D)KM>=(!<7dZAs3!n?FO20pNOYEGkyX_0rxs?u*>vSOW2o9`=eBi~}a5-dy zQrYSKs*}{Z936Jo!O8b;xL;W`aU(32ltMfi2E*&QI%Z*MgaI*tz8f)}K4xfyg;P#8z$~+t=YPVf`ZF>D=3H_x8tF0zmvC@2?FsgdCugj~ z42ew~^yaG$W_!;*^yc_!oE1T*FJ!pVErE1x?)}P)o2(?~Vt9XzxcEevZAoxkNS{L;Awh5>SBZ=Yj`Y5!oIcdnPv>fXM3_~ya~ z)>E-tf&brgi*^pKz5{#Ql#Y4B-mRJ9M=w9xAU5lt-dePl(Yd%kN_)`uSjNVC;zw(w zM%0`DLfU6vqB(ahu=cUz_}o62bq@m>0<(VBInB>tMpAB%PdFy&pCo@Fbn8teVczjEL1R~AAX5Kc8O_B~I+%^D(f9-hqKGTbkvP@>ZN=qu`ERRZ3zOp?noa4JIy1GNB3c+gqSe7Gvq@(GjzKD;! zXu;Va-l&knj@WBff#5|AXbQL}Mo&}><_ixZ&A>?v1Y%{8{G*;-)!UI4+(PmMr$1~cB`P6A1kK~X&@6*Mj3l1gLP%BIk%{7Y;cfPP7X_lOp?yM3xI z3Eb|o!mPiJkL8;r#&q^=z1lEKnqSOW0=gRZ9KKG%Nn>BONh|70H5iDEQlNGCF4sh% zP*BaQ6(@E>d5M?fDUeZ}K(d10Fy6aJN-39mNx9>Wcg?qf)}*A#W$U4F)fujGM&zdP zX#*9}DubW8J3>_|Z1bQw-dlU?OGW`=FqMTfkXt}c0bGL?Cd)T?sI)@On@i|!amQ#} z1o1A{F_6`cGee6rKq1sgCv+w)mWfg#PSmOfT{H+2TNES~TH@w6Q!#>eVG9#a!*h=- zK0-|lweX50Px|PS0&aht78`P{Mkl$dQ8PxIKb)Xc&K>U6j!;52C&iP3fL$%05+_oU7=Eey)udf-A1G|J8gB# zZAm2QsY_x<4QVYQx9XF)Q3s>=JhuJpMpz&ncVOW>(XH518DmVLvF^7*jGJ-krW>8V zv$C7D>=JG&j6W!Xangz=8H7X`^|04Gwt3)|} zYbGv*lrgz0OiYm<1v1aea<{PT5eJib#Nk<9S&BGo(bN$oqgul*04-JdnLSi=3jc!Uh@H_u@`#8$rhW48U5bTFo35mk z8N_Ijov+I5d=(fV;;TD=B_;uHv;r^H;BcchLd;Kcc=a#Da(5E^dH8d{a+`;9k5$PA zKr%wC-BF@|ttUe%2 z2hNN)@ckGj>)^AaA@t-bB9LVevdW1bB4?)|4LCPD61p4s<07itMtLp~cn0xDNiwKz zR-~uQ-80C`C{adXJtFz+4N@;piZ_{(?jbo;nhvA=C|0Bw3{*Byc06I0wUU(;63*L( zHmj7IodfDSkmO6)LPl*YCPR${B!(g5?$M*vr_#o^^eDG}MQ-VeYuO}BRDkG8>V6CB z)Fv2a%yTb{?Kq7IVQOIJC>+9hcrf5;61mv73ffA^_hn|Y(R*}hNen}0WjwhvnD(JI zMh~I&@!@(lSC*LUWwG+H;bl=RKmsA>maV{+Hc2SJ`Z(dze6ocWCJNWPVx@zDZC10Sk<@OTC~C1^9^VgiECmKl zV|P60r@INmt+Hm}4v8_1t+EO5kd4`x_}opC9we@6Zfk*ptO30VjkKgLE&5SYHRh;9 zVWq2y6MQYUd@nF20Sw)WU^10Ndel}Mm8MC;0{JP_R1HjEp0wZ}QBw=%`%-Bwy4SIB z#pB-po3i1jA<;YH@yBW0T-|EiEHAe}gPzRQ54N6sz zND_^;UlQb@xCBD_Uz)Fj{x}EQLR?Dc>yR66I_J2_C3{2@zJ|5^hWKL z+Y4lZsonB1+_!|o!Uh8_zkXGv9CfegMo3ky%1S9=i)=bYfQ?I)QDwM8JQEdQV0Nby zFF7`8Wko32#6p1y?dkhkW1^jcqQ2J1)c$*ueSx15)51wA@1`KjXVD2D>sW5Ynu$L; zyv`*{)TNtJ{kl6Rrj0Hs$tXENfNjn9U6jh0ibs9}i!@I=eIeU2`x;DRi^ByUH?Eleu4=?+9kJ^8K-b3~0^By~(Vg7j`eQ0Q~%$SJJ`LFpn7>={ZzcU|? zN9N;lFdyG9cbt=<6Tm954Njr3;#w7BD-`3v%8)rmGQNZ}_R(>azd8MawHxD3!?6}4 zI@VHcj4M%$uT=OyGX7KeS8~SJD&VBec(7k=V8PqiY7TSuMn105IJOOPap1@eR64=J z(TKaP;yY@`DVm#v_~ySkMbi@3u86H@9*2N$MplMk26zaL?&xDr8^^+Vm{x^H)I+NfZa-5x#|*~14r?BUmgJ$!8vQM8n+^1%d?vFuv5C5lZWJ9xnoVoL3L z_z9Pcw_ByZGB=3aV&V_t*OYwy+=ls*lOeH_FhQw`KY1I6RT6$e!kvXR)SZxMpxXZv z8|*Tt4YsWkrdIg-Nn@g?0C$1EF;JY+mv({InbmxiMw zjE%3?V>Z59T%_s(mpSSX%q5w0nMJ2Wcb6Veq?!FLcC^=A_~m;0qI==tHn;uHq2iFO zDA=E4ijtwJq@V_K@3o4rVEAsU;6S@Tqd~{9?wG|tcZoF`ULL{A!+07U-eVPacZt7m z$CqQg!Y;g^3tvX@axgrbL^h#UXt4$kZuJ*J@$w)q#=E0&ziGx56^rTwlYP^0?_}>S zGrc=zdV9#@QuQ`V_~@{c z)|4!p9X#aUo8hJ$Gi3X~X{auJ;4zjkv0Id=6@85fv*lj#GOseJ_pHDzdo^&##{yNv zq?EP@Bj2rgt~Se*ESfDFuBiB-P7I)?C}yj^Al~wOH@>h;`jy&yOJqx3*}LYAOqP-g z^;v!3Pc?xT$-vf{05}!13$2&_U$Maz04$8H?OeKh>a3JE&~L^C^jqZ5x{YmC&TmU| z!4(wyj(y$uF$_dcZZ{);7yx;>g1XQtZ-pOwuXp{2caME|ZP8B6v3E?SO;{zJ3+J=U z5w25^y(n003S5%;SJcAL7cIgm7QR4#o{zmR!QvIZE##0bQI%T$mf#@@UnTP(!{7lH z0WV-YFPDr%GSOw7Uj?7bmgcLCV=dv*0V>}a;f7oIm_|-66-@B0Wv<9tDF|6iVPadc zBH)^S^tUAMCCi2}ZLERWJ))v^-uYrhV4r^URIv0UXZDWVL#g$}w! zAXW4VIFrC?fst-BCxbx{7=?Ly=jV$}N3ZD5=k`bwG4*OZ9L@K4lwXK4qFZr{Rxt-uxj&d_dY^N(htzkS>b z#cZ3vDA`F6u;Di&nManJ-n$WF`!z+_pe*5=h7E(cdnoA=0gGh@(T|}B$!9)r!~KYK z|7^N47i0-};h})Dvx{WXIvS_QM!g`E%_(_{OlcQGw={5|PgiS+?bf$W%dCR4@^XLn z3MBEMFry|;cCXaNpU3CJ+W%TB7)ZVac2aEf#4r5o=-pr5#)lF&IuB{Z8Ui}o2!C@8 zqogzVty(H=0Ml75I>1q@ZUER`MM3R8qsUebba0zBu2ok8m6Nc}1uIqJtlAw6FT>Aj zsrUdUV+YE3OygtF3offTQ;`YhAW?Lrv`)1#y52ofdX>eEww$)i* zQ4k(-QbvL?r&R>7%0wBm`kH}2CDnssjrwiMv79Ty%2Dc*G`ay|xF)oW(w)S{anKD= zp;2GfG7K!^l)__RH7bI}DMTeP0QN;%bQ)|xhk7K6%rRsU(1?B_lDPRd$m#2JqR=dp zvM1CT4dg14>z+|%6+z)^>h9KblusErbd82n^F+itQN?ILQeqkvJdkNC4!u)XECULr zclu@1s+~aZ)6=M(_P1Pkt1}`py9B8By^QIN(1Dvd95Ft0OT73jSFGYUN6-|nG9aZ; z^M!2?FYF>0#FOi*q!r{k9g^9V04^_S27nD8whkIu0zWu+y%Fqc`457#*Zl)V(ONd7 z`AH`RA=l2~us4-^{XkX^>H{%id;}hn8jPeu;{g@i@u|JggOT3jV|z7dcytii@q?j` zy@+JutVV0uUd&b;Z}T*Q8XK{VJ)U3zmk-nvC4fG)5{93QZZ1QAPTc`A?4@gZBRLQaVHBdP-Vh zeTC_y{Ui+Bl)h3;6$vJYX1VubE(#O8g(=Vy@od6Bg_J>MpP|a$vk3H}eJqdwhs59^ zbO<7P%?L#F-m8F+RMja!O_mhPCqS#VML?^HVfFF!OY%fvg-mMrC)r8vVMn#$lwdU}SWOES zs|A+|du`#whoqJLChj|fUzFacMI9hV4Z#AkT&>#walmTUW7uX`>|K@8lYOFG%b$sz z6B4M3yl2`p{|l$W|Ints);D7vN;yz)rhUz-c&Jpqe1C?ruXQEuc#(2u;-!!ktb2Bi zcJiC|O`9%m>PGemKILFVaQDEb)YTY>6i)p(vCylMktCQlIn4{?lwE??awFuZznWZo zBV^306X;M$OVmBEvvOz*7xYYeO62!p%07=H^Jo7GiwWX5qhz-0+LpinkEcX_`rT6^ zPYj&%*X-Z?qw<$Om-$bpP0`0rGZSd^Xl)#TdTL4b+$TYt?xT(+NxSyLv zbCYI)wr>v@9RQ-FFFtzChv)gNmu7&c6C>ofF1I4_K!mcV6RLWa^SGEa@Rc5it{q;L z`4zA_Q&?^Zj--q>{Usl2n#f9kh^GO{LOQqV=NN0DUl%N_aQ5&1n;};N3&;mILOxkL z_Z&y*A&=NPV}7es6E}LzbAOFozGmKEBM+>RzGj!zc8By!k3RovpXK(Pc}nE>-#;bt z$KRe3`EynkvYXMZ`R+g#b90Z!7_Vr)yPq)JZY@%>X}kKWLw*%=GsG#R+HSZ!{51r;^w)77|dNbbjyCzb62KycI(aZ)lQ`JbCJz8ya?0F_w8g}U^VpZw`DhQEqudymw#am&{^XqsRnUYfTGZUL;nCwD|I02P~IsAM8B_L z*=4w8W$v^^|j%E$2Q^;aM96DQOCj(7S|Gt0szZ}pT2CB7vLYORCDJ{lTq zB)^37*C4w^Iuu3wV&C=Fb5WtTeVJV#zr=7*63|A=xu`lhmg{?w)Ey8mC8Foym$h4MY z=c7zYNH!-p`+zV~LeInBfMmuQP?|gfN^AGAHDu~ufznzNAlcPmD6Lomm41dw%Yo8l zF;JSuA7Ja-0I+SJMCbaR4l#pr2a=Wb0c?sjP?~L`;f3SYfsl;987keaf@IH!LKC7q zRP%5@S14^GBx5B(rRp$9rrv5fAJs6K%=P^?6kuEG0i}(DWSoC+k<7$-{cq*BqoSkw z<+nL6WGqBJz3d*o>|)%<<+rh*`vQ3~%jvIYD(tQQNAg>#U4Gm0@8!3qKg(}_h6ept ze)|+JEq^1wZ7b_VB5w{U0XIW;Kq!iVb0Tq%83{`nsU~>#`IC>K{~(OT?vn1msKwSU zE7Kg23HNez2fU#;=5|(Z0L$re7#)^9vVQTmJ6ab5T9ZM5(R_vBaIk5E5XU^ z+;*tc{o0=#Dvd8eK8c!-ntV9f9W|VC|5+ox3&2>#KZBR0en{$V(g%R8m$6VC_%>qIFD3=7 z)X}HQZrO3j^8T-XD8|*)-}r~BP+&fm^R&}z58_2g299)TAOnvlk$V_UvedIAq?#b@ zvT)=pF)G-^$ih95Zx~OfZ@g|{RT6*lkuR`NqgjrgcLeN;eiz%x_)0I5<`^3$;fglskdKlKDgJJSm;&c^hk2l zwK0_O)1l#oa5Eew3v-4tVt2r4kR!n(#62Z$SyW!VQ#?< z2Z+t>(cqNCosWd~aFKAh9?ijj^1HEDaH^J=AUL&?2o#*MV6FnS1rsG=b>~X!Oj&8~ zSQkuPHAk{NYyI{k3#KkwzS&e4&)s<>$WXOrhskWpVu!WlT-;x){Khh3#gA9hiw*|v z_~?g%F^7Js`p2?6doS(?dTrSmi>IJe-0x^(T!ZL`!jJMMCcbu|d*yrL70vVV@68=E z^7xJGOXjW+joaGZec{H4P1mn~G;dOAhkU`!uTOk_t#Eu?{#V_3#Xk;z=Etj<2PaGz z@#6>b7d#eyW?nuujrUI^7x7FB`f=uztQ{Iu;vW|EegGL#eEq`e-OqD8zqcbB-Ld>h?rX zn%x4S^c6Pe=r(w)bx{r7&K_b0?H70)X(l*A9|VI9I6m#J2&J+gFTrR#=0m?zAgHC$ z901ys&w!zj?!TJFJ!)}?7brzu%I1wx@d}ZKiduB$8w&O%Mx+4DdVa!4K! zd{$)To>c@J0#6BBqU@TBc_p%Go2_wSsI+s5=(l?g`n@t5{eE-Q`uj5qs>%3AQ%$we zMpRhi?D`D5osW{SRRFU`j9Y=JN3-c!u9eMvY;LJ(rfFztYkY^g3`^biHemCgsZnWa zOz#{0g~_JnW_Lx$Q#*R${Gi+uOvuzLKMQIl>85KCV4yGkBY(Av*h(R8;CxCLoYNu+iiH^122S1Y6pfF zPzaSl+;0#nSCi5?)YN*Eu%4IL0E!iVNa&Ra`WL(yCA1CXrh%ELR36Sh?gI*w5WGyH zYbq>-WBnKoXw?PSOnNPMXM1)ANJ33WvqGZ!@fVm=+o09U^7R-5`WKEG3_^6IH+wYr z)Tq#Sm%Iy>eum6Axmcxbv0z}}`K_j_7JERbgnnou zp}Uw%OJdlwaOcUL_7}Y0<9Y3zBHQT|>^AMnK#ENRWm$l-M47Sc-ky72jhEOT%9)3B z=7C@O_FTp`Ed(!>RLi{phkR%p7buS^wME!~Af<9Y^^pQaJ<`(9ApD)<%OI#!Qg3?| zk|Q!im^3GVw-A$D%gwjMfKrDGea7>s7+g@mAl?hQZb9@#LJi0?hXak4pFmhHm7Hct zQ$S|wg7>(lSx-boR8Z;=z1$*7=?+i@hc}DT>R-2Q&=2YqX$dfaav^l=NN`?JE-}R~ z!2w7O3=f+x811l(-88r)#j-qvAGNDm;`v)=#FXw6R$Uf$v=B+O5}j&z6VxWGGLMMQ zb$yI6IKn&Hx1!l|9v;Pa(l$IY*Z+2Z7BzOX-JPn#z6LpCe%!$3@%>pg7~egSKQdt(>%DVDG4F4Mkzu<hhv?0IU}ye*kB;;4awV zm-x?KTTQD_!;Q#=oCUezMb6+X{cd=5qO#ivT^y2i8c%oCA=jyGD8lJFmD%IE0#|2z zrwUuRHB=b)b1rLg825`3`gJnm3vP`njN4M8173;jzXn3uzu)t^U@oqKSUWWd!?|q| z+GU8KIab(AW^ln8%!_K$tNd2{;M`lW= z%I8YFj0f~OZYb6|m8-K3ftvqs_Q3tNVERY4U}V27SiI8~OtFoN=@_8E_hcu=BJKCW zoS;YUGpBL67+?-Asy3(JMyxE_^O3j6U2L|MNdene%_9evej?}gRikQVv2^w%!kk!= z@p%h-V`iO$*3z)AecaaUxkM~HH9mNo9$zE6wseZit5?a;R|RWcy()6KJ>j1}(r>TK z`Bt6sedfwx#UnnsK8}ct`0StGd?-DUu+)}n8G2f@=E(d=pSstV|MNZdn4;g;A1o9d z>AkV*wQuhF?E7hA=c#dOyZgvh=ceT+-|5{eR*vksK63RN->8%RAbroHTqNc-|J+!3sjYj=_;5 zOL&wO*dz}sp!6#&MCDU{Nuh^c205o4C|Bu!BI}c~x zQL09He^wCASfhPqko28Ap0{_1=J?FW!=9lf)MQm+pK0TL_YJ+HyHw)d+KthBQmo`w zNfIP@VDM@wp#MY8Fy;Xs5-3NeVDq{rK5>i8MLOn%d) zh?9J)8ka(%s zDi(E76N&bMT-$<#3TddI0Ov%@Cxff63TdoBhnFkH9?!~A>gQ^7U4{g37wDowrxbKx zCSj8rhWUV3KrdQUwz#EBjg2M)z-}VEY}J8%y5m-pyavmsiedfDZec~j`a7*491Ez` z?=7*pxWHZ@T?eavr34^yBYEFM$RpF}a5^A*ANMGoAor?+`n?1?-oPsGZ3E`z*m8xc zCFY!qB$kuq$?+bZRTwutdh)CcZ)82Mjrcrzg12O{sWWwQAv$r(nq3WNlO`78CnKl1 z2gp3T;Y9iCC2C=!9Bk-cFJsnkeB{`%v37-v{rd>$Lk{VW zE$AO#&;K;-$@P3OoM-qSt>;O*zJ)9Kx8FzLdpzy?2>-R0|EpL0ztOi424pYq{5}HV z-@>dAxZ^9E<3PD#HO5so$JWAEB<$J=MXb5sVBG!zi2tBe!I0P5N)GimpPx|pLxM(y zKkU3f4PyUnM6GdrH5lycpZ3`Zq@3wO_RjxCIRoBuOPXVMGr%9>OaS=Xo5zEhyh$;k z8q_RcJ8z4tHBPML=y+JNJJ{XB$1Ln$&G?I+=QPvsw&wBGoCyF-eKRuN?>{lHm|V}U z8{Otqw)|INg>-a)(*LZmvhR8@q_85{B<^o2fjzjfhHGV~_%BMohscj*)~)~V3LnqR$$yH^p=zC&lUvLG=j|%1sNcc{IXDHHzg*wiKm_ZlDoknyW1zi}9d6`eL zuxRs#EG)(BhZTX!r_wwPYcNZ((`Gm9u9=5H*EF5Zeuq$! zr03}rVK6{$c3m~@$>TC`O3jm;K7G2{Yc@A{$hL8lnC}*hnJ|ltGGpxc+0n_6jUb5k zh7nEg9_6-v(c;R_c@^A>UcOw?c$II6+O8`;HK3GGMTXIIQ_Bb0y9rNH=9x0bybe$W z8HsVjnp(JTzskzEwEpX3;Ch+OPFt3c>-8EN`(8Cm>ALmjT`!!Mcn|%Sro+0X+zuPf zVn;dxga=bcu?T?}Lo5$BwNz zAD;vWY0pL2-b{yuf5ab5Hq67JkA4`=Y31_&5Od9*@=ObcNoFOpx9x7|xZ zEv$?*!*1Al{$G5*Vk78`GnnsJOnIa;j$IduVZa#B_bb9S1DAk5^!shc zFj$S!iJPl$YPOU8uY_JY$E$kdX7oV6|1 zk9SsGJ-oQwS#_t&Er(M1C(U6^khAKx0qqKV)%C_N3~LLd+!3(#I^Q~ z&*U-*5JJK=TulHGE!cn{AgB`v7%gg0Yq8!Y2nrSv6)m=Ea|42+2C)=xZBVqdr|m(d zimmNQAR;PSM61+WgQ&&Uwoq-0t!=+&PXf}u=e_;^>wDL`)^}#H$jqKS`+j|%Xa9c5 z;vx4mPwg&8MC+u}r0#?MTivuZL+%Fzb&iBd>oUM90p#Lvfr1=ZGQ@BP7cXxCP*vE) z4V0qCnZ(d;3a%8t7cd4z--3{#gCU?*D@b=<>NQL#aRPkUzXn}9dzcX8SqxX&zvktc zfp7yU2%u&aDg0qktic#I+8v@WF`sgPqy-LB+dsfqX1gb8-71jtL*>B*gd3n5G}>SA z^1dFHi#2ZKAeTnU?hV6o@c^Pg2lZ(SfDvkpqVIuDo`3s+wZm)bq? z^4hSc1vT4!ST0^47DWR~fT6R?D2mpR!*U_TpXQ=+cofrzMUl_o!s-%TltSl0qBe`J zl--LkhKas~g6f4{VJ~vCF>Tafc|b0b@WBtHb^XxF8T1!WP?Ioxh?&F+uJ8^ns0(ir zOQ-Llx{s1-iTxhx0vgLu6p?ne4tQ4@lRqpMt6aojhlDO@QJ}vh?O*Wn?l8EHN`feS zh85Ju!*XF`KW$NI&koDQ2AoAg^l(8gAc_e39-_$ocM9quR5#kL!ZlBPAO3@EOFZlx z<%H3D8NBc&#xoV#G5TP@P8d_es4W*_6Gj_^SZ7D}OEJya6K*#A?aY;2{pUp=sb2QD zkmr|NW6;F^bol#Q#~9m7n0 zPa-@oO?XMM%_Q)c_+GHE>JE4F!}Pz&w~cd^mvC9Jy+0l)yZh|=o4+l8`{w<}dwHWi zzW06qZttC5yWh`?3J(mHjS=jaR`O}q2bn3F4Kv=Epv?PV%U!CWG;7-DnrRP9_xl!o zP40*9u2x=p*nfRd^%lR)VRJcSKKI{Ts&y|4KeIgX@}}vW-H(g^eqzQz*jF1*US04) z(e-l=;!ZwzDZHM%sr|X-_!r_==S>3Qmx&qeY>(eIxUyG%@XSZw=KSQpi0Hna|MP;l z@5?)iCM@{*6}$P#%iY%>JWk}j{K?&~u09DY{m0pYS9kqZ`o`kmjs-8Q+y3R9#$S^T ze)YxOH@VZ_Zdv>Hs~alD9&cIW^Xd6F|It!-b^fMJ=f6}9{Ov)|KhEU+{CMOK{r4tx z@7eov|JNUN2IyBFy}4%LC!@xkPo3n~amDsq--_{Vi>g1nwDRSdo@*@f$%|7gd%oFh zk54u*{`$nL=U)wu*~h>7$s)U@%ff;2ul~+&S-A4? zseHppN11)}K@5j3i5I>vpSGrQ`_J!wGi}X??_;kzeR=2P_MdkTCTXK9o1L4nd;7FC zS@UGO!_#Wl>XBEOB)VDefB9~~O}Zc-&JFyo^!TkGjutGcMjw3VR}@w|Bvu`pmhcO) z_Qd=+I%6lFFZ;Or{o_yG+w;cVpB^>6_c5_g8D2E7?&EVyUiszQE2nZfB}o&$&d8oL zs%5Qe{Hv9xgleZ%e!pZS)}Ooi(PPoVg0ipPhipYmSEK=J{I1-V~A zsZx|d6j&gNdU0mqWky63Bf^-R(1l_@X|D@Wt%RsuwO5nCyO_L$M<p000<_x}+z`0FV%fQeyuwQw{Q;F3Yp_x8R<_OV&-$ ztri9E!xQ()Cg@Ao5f2K9`vSjfP&=s7bD?Aux{mk@=77@7+FFznXceuihNVXyaGw623Kc>>$}in`dfZTjt`gNYFcZ5{5}N=OEhPcyWz%78^1nszF#zLK z+8ST$WuaHFpwlOzqCAFsZe8B8DZC$JW|k?mvxSvjdVKIcW6B%@srdAaI~f{qD0@SD zcKl_~V0@Fsiu!^uBo|`R~S9;jZ@%{uPAOko7{T}px=XLbI&OaIcH||0I zt=G~2%l@4y6VG3g?6A#|*F|ob>f7n*)V^flH9Dufo;mtII=J6Yj%ohYu z#?q#IB9~(kUOkC2FeL)u9w-X%w({9+cd(gXD?FZK^P-;@xFbDM^lvLBY?i0*2noM1 z&i8c*(hyaLX3Tt81SoA@!nLp-l3M~a-`4>9+_$a8h!V{I#o%PIakEJ6)ZjTaxn`N< zM&nd=nM%F1VR{{+;0ivyi%52FpXwZ*?Yl{A+*`8S@YZJUD#h=McN4*zgIadnc$EH{ zu}0qTYjD}B1E-q2^EUh8My_UkzVqr!<9?H6y`o|J${WTJEkOEp=zR-tiM{*M^;O2( zE3wj=fI45pxgZ`;h5a&~i#)VOHX{#f#wEy+D5pWs&MTrs`$yzTpP4Fe2-&U44BI2! zkhgjH&2aS9E64Zd&l}UajGI<0{i9ZR>$P0{&%(gtm3iQ}*r=@$l=dBTGK9UF^{GJ& z>Aaa+*-nSQ{$mu#*SGXF!NFWg6b$TQzb0%RmAw0%hKQ8i`%7|pBmcy9_U>u!hEsWQ zUj(2?uZ<7ZNkp3U?S`imXkqY`=9TpOql2}Dm&Sc-ST3tO^RAdCDm(P0I1HlLv#b8? z^%Laodp8><>`!JTNAE~wCFU{qmuH4OoX5*z&~le3|CH6Nk{VtM6vC0bb10DyuFWuV z457EPynE=!>o20m=7rBKd6CS55(Y8K5k3@MTk8t?s})-uHPYo&6FxQH`7{Y>4t_Px z4f(k+J>|fg_wEa(7LEz-tUfiu;4Cz_SB71RrkT}}k!o28b?)~Abtu);C;lnmVCC0D>=;t0R8Ldl1JCB$QqD1L@O37!-MzMWK0ANA- z!Xt&mJ#qndB!oD{e#8`3#Bqx#j!vja0sM=UzzF-Da4Ui+sfhD@*$nh&47?&vRE+K< zGVnDeND9WJ3OHHL+|OyJzl72FV6}sl*s| z9M)VOEY(w7QYk}OeCmZo2ZNMFF&T_Iu?%ulNq~|VsURgGSkWxCm>o`v!OpZ0O`Q*< zU}_2r3bdy1mD`=jx!?~z15XUQ3yN%<@F2{h%67TF#kWQ$^^owFQG9EscTPKB&sCe-b6N9%cC5nCsSdt`(FS8hGxc~qf z90*tku9`qF{ba5N$PtPPfPc1tqpUL|Ta?Sz@aCv-Ur!cr=N)XB0GO@)QjzR|3`2J$ z?pweG+?%Do0VC;y^tBk|`vSm`NSR(_ivaA2MFAB@AOwqrL=RlvF<_<62r^Jbx5P6Rip3Y0-ek=g{;}}?EUO8_eh9y%vf7%khtf_N*cu-ZGVd_Xwv5=M3b0xN079Y>wI^u@Ku{Q! zE&!C+)ue8hfsM3C9n>Re0F&PiZ(uaThy_w*lyJ}H+?{;=6?h-+YYx(>`IdwlodQz- z1nKGhdcKT6>6wlBWE-rP5Ed^#s| zyB*>=kcI-yxLP_|I#9IHY3tyT-Vax7VVvptibf;%E=6bqH7}F>1MBvUVA2Phf84~a z9`ftpwfW*z@KJp8%hQ7d363MM8fQQ~{Q!5so{mNbXAxL`_GP@i=hE+&=mXa|#E`K< z%_^*a;KzazhPCIb6OkOj_QgNX4N@at*rNIQW=VpX$*sBwho<3Zv--<4$E$+to9ySk z<2QL3X>tG94*Sg@PQXhT0;b)}C`AXYMQg}@!KCy4uaQ3tG|~<^W-|5M#J^z1euuZF z4173!{zmX-hXilE?KrBgKSPLjFq1UnsIWj&(x#gT`&(@x1a8v6b-pB4DfuFs6yIdu z9rW%<0J=?Wtz09-%u%Vic@v;TE^GnBb8zWo% zS=Xv1Zj2S@8aS3?Iej|vdbBASyv>qy9OE4UZvYD07?~2ux>{}V25)^XnqxUw8F<^9 z0^Tl5AhdoI+Ir+|B81i*1m4tc;Eh`j-VAc^mKzMoNDvmzC-!ksy3nN(V;I7_8l2CO zRF@SErzPyO7R(^d0&9!P(<)}sIG#uxJlD67KFS1htR{OW4(2nZgR|}%I7{HWV;&(= zOC>Wipyw^+t8vc1%z$KZELvReyjU7wOLuJ2amMh_*RF9 zw6E+=9iMYC4KIg0>u@KE9PZb-nC~{oF3j)8VLc>mm)~git!a^Z9QK3x{ZzXCC79m< zS2hghcd}h>vijCAqdZo*z{{3&RzBM2>xA4yo|&?$I85m+s$Mq%jaQ`4Vt9DZK6oj8 z0MZGk7g}BHNdOpT!r=TwiWm;D)Kc&jAcMsjwFzoV5%YOx{2&7+$4)dk9+K3I6cb}E z*xbB-5Wx&A_VivNsxK}}%Iu)vD9HyVAcSv{G{BIr8m;Xox`PxN1{}&*fG=QO1H@W4 zRiQ;*5f|{p=H>~gK4vBi>8D_@2clPLz2GzoiHNGuY`#y5mRLnHzBe2AIGP$MG&NE%HQo*+Wf|3wI6lh7a+ryi zf!l6FZmU0IZ#c)f4Q2!OVc`QfY$Nr6*|$#)%Zwsq!&Q| zwLXtH4T>d8zN1Z}>#W zcin-A2-h!4+$fHlqpCIqrtt)rd23RA*@Dcng`$-M%p>Zuc|`s*M2PkkuDYAp81DjE z=r}^1lz6sh1&!riw-_iNgeUI5Qp9eg%3R2GRt#6);%3!G_DTSK=cI)jGJ*kk!y~#- z$xIk4S}860&|K!yyiOX7aqyavy{#e2+Q>(mv16OASq$Q_C`pNPu`kf%Y;D=a*~ona z%bprE9}if?fS06`hL>0jJ9^9DV=iDwB{MJRyq7v%179OAqewa_IATOZOLcixbrbf3 z5|$Qoxr8kf&z{0Fy2Nk4AM}%Cpsc$TdltaqYJmY;6eW&PPh7347Q3eL3@-6*Zvg&0 z`((!!;KLL_wk4rZPZHM)V$t?`_9yY>9Zk07oDgjmR^W~DdqVwl*Y8=O+A4stBAGy$ z*&#-pvB}Kd5Ga98Tal{pZU1Bj1Ojz|4GicJj-m0WQ~Ts%netEgL|$7c|E};n-X^k9sky)c=*{k!{pRvM@dM5gxWF z+0+1yR+ftvrio^m^cKl~cNG9%O}yx*l0GK@l1NHzmVHp)LY@j8RoFM?YpJrI|0%|K zZ9gBN@4L*hzty)y=mOgD03cXCA|x)k1`FNcxD(J!sx@NH10g4bILE%Mn6OvAVy|Ao znzH6Qw29(kbqdPcX7PxK5*;?Mao}c@1zxrkGFSVnq&G?T5MjIfWeZx%7EvSCfOX^o zbvY|k;?@s`#vUN}ERe>sV%(r}bU+Wx8PFv{SN(}Hsgl2@Ox=M1*`L$KoM?dMcavfZ z)OQE7*&`bESmw<*cI ztBuMsE-+WrXeWDq9mVoN;PvJpSjw3>8)4fa@WaAlqn_&kHr2DQ)Uk)UYM*W*7btfR zx^YLgMOa2aBzhZXQWlhDRX1k?99#wf>OKSHq=N&DsA_FEYzV$LIll(WW#kMMH-t8_-cHK z)c~}h#vESREZORFLZfS<;?WD z^vn&d^TB4Qr<2W*wwYs~9O2d2o$zXz)aAH2`5jpCe$pJ-rbMs)R_GG5)49hrrxMs- zyR}ZfVY`4g!sP|SmKTg$UI3Pe1uWioHR}7NHehrvP&MJ@h(EP~oyi@WP&rSVDXNcW z;@+j14cHV?daKWSoIB!-(DuVXR+?!9d_SC5ktxcJXO8q9Tch4GBm1OfY*8qHn2)8V zGdgXRFmO&m1E+Vcr0FF_gcRsIDc~$`WuKh7%5N#0`veMjVA|D2vW`zzv!_9e%2%0K zJbA6RT;tt1Pf+rLD14XwsmA_$yMI+ZZBe5Sl!d72;MaoYB3R(NM4az^GqXS ziOUBzXJ%m4(_6~s{JyzM`%F_adHT-N+dAj>O?b)*H_>A7+<&_=hnc08Seb=cMZAJ|k{WGb{#t z75=mPU;wvCK2W$Pwx!0mM^`WtYfe-8T@7t?OLblOs{9c@jdhZQJ>#jSiczBDt2JHV zz{G353I_B=1)#|td||8rO)6rwP{+WE@6}Wabv=wULZ*x2R`9ymaNKexa28vqB1Crp z7eBqVLKNUr7;W&ckx>Pn|9AayM#MA)S zXacY3q|V={E4FEiceWI!BsFdU9Lk-|38)v7-~*q4e7semU0JU!gg$)V#Qz}bhQPaz zL3r(TS}c`#8`#`!HHLYNwW9hOB|Fei1iuT=uT(MzC8A=Kc^bXzzs-he>52qMj7wkc zxU8yH2NECM(#(8>r6q$v$TE3`WpcV^Ql@6oT$y*P%-f2uyhUcxQ$Sx@9GU`5_W~ca zbsms*gp3z=;p@a*>jB^2MX+yYC6v!?hJ4wKrP;8W!7f&M_?;04AeqyAkP$5%L1R#n z8-FH7h#${5O1*X`{t^ii?tu^QJ4Y}xA`LN*sm(`dGZg%op-K!hdb`B z&mHTy>#3e39%!8B7HUtziJZZ^k7`|#>~8k`Px25{*K5}wlhJgl{^8$`bwB61?;RR?&c2<>e#l6(T{^zK%Vr+rS3~@q zc3iFdE}@2*ziI&6YOPBs;Mk!JnyYhw$HRfOGv2DEcdG+~yVdFug$d`izg706GczO% zpx%PbZy~kA0aj&4GP|j!znL&druqgo$naPB(6JRC?I!wE9u>Qy3O|P`wXrKjG1s?2 zdO2Fc5KmXAE;37>%}C$q|1oAKo-KI9AZ(Y8Z5Q3QJG2zMfg4y-bhsdLur;jv%)bZ| zDpRvRW_*UiG$6vstvy#p^ogGmm=-CAFxU*We3ZrU1&eiba!(9q@puVh?Bi^jzm~Lc zC(jDt(SnBfl_wbIwJ~RJ!vT&&~%vTol9F&E<8QJcfiHk5_!k?6gNi)0=(x{^Dwc zGl$MlysSp4obu^gPaE2W>-UCJr_TO9Xo)5e~SI!+2sZ;RdYMz^5s{YI?*Upwa(;ra-FoW4| zGXZ~0{&ysm!095Ju*rRB6aUz;i4RN}>=*hs-?B?W9uKyY(|`s@^YP9dK_R5c0pYws zRI=|KH$^Y~MOd*ByO;Ra_DEgEIkUu2{cnWQD2qejY#ZHTP^*=U2L{+&Q+d5n z;}+r48NMY1+p>6muN~U$!-abegAD4?%{@6}i`X@IYRfpVugUxeHpuHbDeEmJ%{6-Y zrxkBH?#36G9Cyc7bTOd~L-X21*ZUz~n}P*|WDOA>KM6WxC5SbrJH$KC2!SeF9!|Lz zp^TZd_0p9HWzwXrSAD7-@P)@BNhn6q5qp|`+<5&xb+?<9L0w63@KD#R$6(NKLvj^4 z8h44%hGV>`)C%7^^R?(q{CEymXSyC;Bg2UKrSV)dbxz5V9nZ1pFy1lV0RhN8=5jxZ zOo?D!sn&Qiq+QWZlHuES30D`{GJ& zm^r`n3AZV-#Q>jJQW-CuQ-^?XMp^~Jnciti&ivBFP9O+sV%@C97lP=#3bp! z&T1YZb~hu+mhrwy9@Gqc2$xFyPvf+3XtRNa|7&p~8I}jjlFk}|lq5ZXPkz!u$&H@o zVjad=2Wyu)90yegX5uGn1JY#eGNPM=qfyv+UyAM+&l3^657P~p!ef?bDW*w!y(lG$el-oqu!Vi+zCRjQ)C22Kv<|Pq6`9F22``$3`+s}Qi(B|^Jb7Q z2Dv{P&j3h~WF&Hz!xn5GuI;Sf6IT*GfG)`1(TFu5kokB=@r}6zg_!UWJN)Zx>1KTUt1;z{V8I7%QG7*cvxygUzn< zdtuH-+Y{Lc6rk1RIWJ|8YuAV*IzSO0wO_Qx0+}OEAKLU%UKP&riUbLx*ufa(OY+R% z3DpC#1ciENg6=HrwN$HMdkY%94GlRp+DY(=zEoliI|FwftQTngCBj5xDHoLlfjqJU zXWO-Uca@6{`jd;0#L*7`{z0>eM4}r8g@*fWcA+7B3Ua-hzBMVb=RqJ543)+;Qc2y> zY-iBsP#V}xs$mtqdknqE2PKj(5h|M58-(5(;Vn}GZz+KbQWa4kJu786wR*Iw_k*~O zwFI>i0zgb^G^vP-upPm?@L_8v{y-em34)to(4fwil7}NpZkTAy0>f&kB}+!VmTq>>rIBuR7)&shRB| zy`d&v6%an@dRLrV>i;_x*bI=}tANC6ypppPgo9(%Ba)$|a@&v~ac>x;Yb+L8I&MZY zBS|e|GwI+jK=3i1DUtTz@kAlo*Pvuv@jzP&$|pG-Z7DiDbfQcsjhKl&PS#kFupt?C z93mfqcj|}=C@HfW(uz$7b>b>Ka@AgNA(4x8DzFVwus5!?x&4l^uTE!q)iGeNL+_Jf zSIsfHBQhm(I&Z4f5h(f!0Vx-UM%PnvyQT^kQ|ZOYH{}36;F%RF)wIKtwAIp zN`u@j*y%#blQ!xW-g5hD^$2OqCRle)!4%N&TLYvqlUBTg6SDw1Nt9!b66~;jaPWBo zaqF!mZP#BjcMKf!MS7!7T;7uohRo0}cn~&Vqr$9_3R-|2Fyq9))MJ2IM#%=fgG*zi z&Ie|bxu84HC4lZg6UczGBKGki7Jdi$;_TxCBUMS1kfsm}#g1a$Vp ztL&W}`uB%+y}Vs+e@lGQ;*SLIMz@WChQ*o!nF<9vGZ23{r}B*{d|(K0DP&8;n`2QY zF?$&Se7*_JW>Udu8`;H~McR24!E6hw_N5da(u^H>gy`}(2@ljMXlTnI5L8f@p8%Ot z4Vzzrq5c3u3OT~15@T3DREP&_J*`uLqZUY~LVApZ+Cc+2Xio&OrEv{I01@uFq?$nZc1^09P-v_qPJy7eyT@)@i+ z7L!jGU5?Y;cLqyUxC+Ta*;ub!O1z+X zP^>%U@~QMz;g8M!6>-$3eMFDz7tfxw6zd3nf%H~Gi4L3#Z`+6-uUDk}A|j{A~1yEPKIeYPP&t)c%a55KpE-_Wa zu|ik5K+`1R#j8~(HSy&OOjLzP?1On*`&@w9C9VT+2H~lOgs$AIfH6&{h2ifs+mIUA zq>t#Z7%Z#sB{I&lDvvcJt2Uc%_x?>vu;M8a3qZymz+yqq=By_%op6=fA0BYdaTz?U zq|ie*(MY021p9L781yZPz6}BCp)J+FJvkC)gKi7~Q=X!A4(;6I^u5pgOWp-9fR7z3z%ynA_ znlr;>5touSy8(GbMXzqISZ(1>qTJx2OZOvsn5aY#ZOkH&oPp|~v&RR0OQLW4OZ5@o zfs*W2Lk)Wp3KLWuTUFBiD6FXXvAr<^>Mo{An&o)r#{OdJ(1G!Y<2gL`iMfplWFd}c zMeOf3vo1@@fM;L^VH*6R!ZGutuW!RJv)QG=?UM$bg`3DNXNV`kK-3$CrO&H?&yWheFV=!<7``CvwZ$+dw&}V{O=CgW zt8qP~PJ?Mt;6wRaDAwpkHf|gZL;Gz;L5Qd#o_$=5`LUy6!o>*VL3ip*o%w zNd>h=HrU}fo^z85Ert>(RQfp_v!yO*@kHfUT=_*Y)bOY;fEhZ>;6s;BKa|fS#&QAnErcWV;QoBTFQiVT8G*N6}oZzjy~7J;&Rjv?&(4|wIro!p&uCC4GZl3 zKv~t;TV~;ILj52MQPWg(a9)R|Z`h#lfCn=tMgkA7#-oRZvLp6>(5@eaN;MpP+h6*+ z66u0&2zGKHZF^-t6>-u#t9;N{bULXIX^B9yR1UiB-+=B2awi+r>}H(=I>uie&*7bJ zC6nO&FOKKYx82ev33S58j^{ByxN#-{r{(}WN2K@{H_{{HzRRa4qLGFg^^3|)C;Um^ z$0naZ;Tv5PmFA%DWRdMi6Rq|vci8}I*E>wa-Re^B@kd7)l7W96I{7D6bvIL|CbhI^ zKUg#A4#=yONbS=>s08iN2AQaxxs`?L%bW)FwIkP!A+Dn9>xKfTncTmVVKMI6NE;g9 zM1&}APvolQ5SYNn7-FHU3Nr@>3LMm#K+RH-TRtFG&tm}9Q6IYsXYO!fGRi@tbP}oS z_F6>tv3RPY!J4bK(qnO_yIAJ;2UrKOz(;?NMCJrqIJJYRypv4WDJ|`p$y0aIqLz3|Ychi<;Sxo>DSt)$ICP%D`=7x`I zGiX-flzY2A9lFw3r1w~%Bmm6Ow+2s50*V@gOK}w?-9IW_59hn-UQy@{{64431z0~_ z%HkQISa_2ZGEDpEQf>pdP>aXtWNeN%DrI#7lyZA=Dl8FUGYM^*topX{R`u>8fuUSI>juTXf1V50<9jw{gI8`utu zs6r0MU!0glV%WQ|O(>QsqrpIa66+_TGca2KyWw_NpQS|<^5l1~|G45P?zC$9?E|hU z**Zpf4DQhlgxp)0&Ye6j!PH5!c6FOWrkmvhMV}zKsrfw3xxFg*qK{C&=goKgBX@uh zw20W^;CkpkZWqw*TWptx|1>D&Jl;7dWXSmDbOV88c^O}QiY&!0pLlknOZ0Ea`t-?B zBE2J=g_{R0qvY>9^b}zM6ztsx8mIHQlQv4L93CIrWv4y|9D>}+FObCIapS(XobNeo ztA;{&ykaL>8+YzgES3wvn7^P=0kpkU1)G_4wyzc!7@6m0rB|+$Fg0^V{fVn)p_`}y#atowCmk;E>Ijq4aJG1bGb1hnlN9Yod4spBKe4%z$X zD@JT_Sg<)tVrlr$yRC~|?%H(|j&~#e)3b(o0RQcuflHg^~Kj8#pXNOz@vz^JF|BsNV$02I>ju1$OsYkx@4*%2h_ufOY;+IH!v|1+G10RHbGru$p(?#mW zu+}!@FbXT&#c|Ng#tB*_>i-7|YIq`V}}tO0a9ukCFu| zd^bpp$9Q)IhURKK5Q&d3r`S02iH+PR)H$=8EIi-$i9~RW_Xpw@F>?1trYKmSRm(!b ztX%32+#=#~@>;Y>4x(P-b?yWB#N7hY;RV4Rx=3a^>(z!FW4RhOt1-eymTG(yY|f1y zmLSCBj`p|nkcap!6nMx*vMpI8V`5kId#PsF*&gE#fUMbD2HRa*a4&dXzEUR!LC z!F58|*ni6XnmX6vqk-st4@TSIT(n6RZAGCS6!yW+IYtW`=K3^{4$KXK=ydrgx+dDg z3ADAA#i8i>(o7KDEfig!KiXZJLm)a`F>51)wjD)xS9k+FPeg@doq`JIS5!Fa5vXt; zg+Sr_ia1byM}_km6pm#wvbi4tg@aW>;TRQSr~*$XNUbRtr8YAZQmfm7Qmd{+sf~7r z)N0aDYHbQg?dniSEwcutHoOXXSmq9?#iygx)=x#Ljdg<5c7&nS-Ux-%GWVj?8mdrg z*SJG!Ei;g`eUuEM`z5piM2Byo(&N5PLTCq2Xti^YG-2;F5F!xIBN_d>bY;DcqC1W} zNM6uFbiLCcI%1I%$RIkNLD6j*X@lsRP;`PfOyIc(MOV8(n+R!p4pbCGrPC8=mG-^- zX80YHv!Fdb$YBpE897Qm?BwZV6-vWcbl3nLu5g^K7_=o6K^20;Ozb0YnT<`{01JqA z92O8Uo)bQUiSYc2tYf#4lU3I7y7hqLn?iD4N$%>Fh_C^n4IyEJ>JGZnAJ@q zP1H$^ggqNXTHZ)LGtB}NrChixOqcoF-HKe9`T$8B7{*RR`-{NdmRBAfG{p~ zQZ}pPC26pUOQCg8O%1)+E_Z=N6Q&N_j}||dHM~~;Hno?TLM*3Ll9u;k_e&-Ho1+U$ zq`eD}<+y2`phIjZ=_g{;>?lYIaHRg7)Mbiw^9*RSptaRz>eSw?{#PjPUb_P z{wG+5^;_?vLgSE(G1|bhDnLhYwaJ3csscJyL1$}S+wq`ll7Kc`T2@Gvtq-@uU^CYk z%L;Q5_I7b`860PSB^+?9b*rheqFjzT=uU0WSzL6ZI}l*7???i!0f;pgbW0KljO=G+ zLDx(HT>zX=>k1xj)VczELbD|RqrtN~ErIR-4tO>fVRaXl0aOD3X0Q1tqtiW2P_ruF z3Y~a_-Kz@d?GC(C>uRkHYPSTSc&VUH*@&~anW?Vlyj%m2-VW^W@wsIHo?Y}5KKwre z&g22!Ud25}p@pOQ4`J=0b0`k1Jz_sMj4PK)q+wiZl!|oEX(j<^Pm=&3+j`S3acGO4 zvg7BCgKz#rTx~d;hVO90*dZ7oYOC>)POMN0D>Ty3b)(FJXB(6(zY1o;bc6`^#Dg;U zWQGT`gUbyQC`N}WK%OCBk1i1zvLs6p0=G1tHL*m*-EXQFF=d`|*(Dhbj0f0ZX!{s0 z;qDiQPTgNWrkT3ve zaI@W~I7KGTI+6n%Z^anr6#-|pngcMO#U{=w3bgZ_)%LeimsMg;vFRbH2i&nxgga(= z16Bd>$IAoG4y1{rVT@QTHM&FCLzNhX6!mbG#<*iV&`rSwh)WE$hQ75!Z^N<^T`7KC zE(TLST$JJfj*;{&1RgJ@)s-mltsKl@P9d$snPN;p`vG?mh8qX{1IQGH$^wP6h9I#B z`-_y_F&IN_kD!eKzevyj7Yy&!&e<%J*g4unGM!^h6w^80L^*>#<~^IURIOb*qj}oC z+%dwuWIvP@gt4#zep6Vn|5NxYDXv6p_}*N@+l1cFb4DFe7V?g)JAHXW{7%1!83&1y zCGS{nFK`Kafm;StP4i&@2b6tv39vZ9xUpVbQi$;Hv+6aqM43lqX0s*m2b^c?4uoFc zOCz$>5(dA}8IAug6_nO5{6D0Es>ctYkVPm!m7$i<`FUQ5u_|>kSMM^vta`kTDDeQI zs93{gQ(l$^LQtFxy!{^d^ zC?fd07e3!F+2&UapI7@ zAs7p6I8Vtbgb~0Z03!h1rFaq-C^_Z|cM_t5k}HK^5fX6X#&AcC>-erRZ)g zm@c`V^(6sqAP~N9(b9f7V2WU_!-2Lc9-$4ykbyBFL@Kib_mkS~l2BTS)podn5q7iz zE&>}EI}B?8%~N(xD}*&*1gwE@kSS4&Jg`i<1Xu(0ku9Ec=9i9vjo}N0_VJ1?69A$d zDibumu>h||fD4*uR>O@t!lT@ZAeGBytO~e?yl_jA6^+*Ml{Uwy8qX0HoJATg|vT zf;`0~A9IYejm*0u(h7WI@s%D>kv&cokao|C?ou&2{1D1*^)MA!O}W}=?zZkyHMkKf za0`Q^p7wb6JMFqwvmh17#WodC?JQj)=pO6La}8`4H-m{1HQ zU`12}++!G#SBQU%4kuzvT|bM>U+PPvUqaqzw0vy&WV&FfkAQs&hNGw?s?Y(T&kTIVs z8ieWcgpp&LPTtTSxO8;+v;~FhPq3%Fz0zJ6$X?T47s`eez768*(fMG{6Rv}sy)vks z%ZLU!AM9P>a50E81Hhz5#@DU@5duzEnM#adaS+C!Z6b0UYF`zYAc`T~DZyskk%N1W zQ+aHbGDhPAW=}Gtt+xnjR;z7{DWJOv0RZE#R`WJ5 zv)XbQfwz;@@B;nJTC=xD!16yRpsO&7LB2fLOK~&d83p&1|wV| z9(^PSX);AAkZ9foW2I_9kSmuh#{ZEn2IT4ZNEXBctoh%?_?Hd!YL*; zuQdcZ>0o^0Aqh@T$#sX?Iqs2S+q~1!zR2MJ@&+j zAA^?3N(tNQcSCmaJT{LRFBxW{`4WxO^-k z{m=3-uE&2-J{Dl-Te$P@^INz5mEW3#IpJUOv464y{m-_I|KeNt|G~F_W&VqA0dY{6 zm=wR;{NLnTpu~6s_Bjz^rwedKbOCG}i2E%6BJSfqQa>e?|4)efi2V{EKkNo@Vy1V1Y~d;C zVF$k80u6ci&f29_7r(Wm%inyIu4yB+>1hd@Ur+I_I+OiTV1IZGsb=x8fKZxf!AWX$ ziSX1AU%D0V9wvm6qkY|4Gt1QSbJeM=BO)i4jH*+m@`&W=X|2(1rP0aWwc|r`qOziQ z<&O$kIyyUg*ZH&y30f0xyzkEaYYk_zVV@3&un>s0sr$vwm&F*6o!yZDjV9#hxlvGVEOOD=sJ>WDdUvrlkX)fc&o zHrJq(egY{?KXxGTjI*lh?vlC@+#0km`Ja$~RSe3%G>bxEDu%yAk)&-)D29nac75qJ*4CW#5`wC(25cqx65cvH%sp2WJKH)?LgAq8a>AEc88pTlHVbUSY`z5R= zLxJz5M(zNi82knDJe%a8p#yPPgHENb8bYsE_6?!hmvX-wLc!j~WWxN1r;Fa$HA6 z47rO~IYa*2#EPNf?O|sPxwnfmhulM0>xSGL#81N)TpkKvs51|R&+~aSlqnTs=TN3* zn1@QNmHW$3iJ4?J@2P;#4&qCGnse4rW)+(Bq0Ejk4P`ck(7ZV09?QKo0c^n zbfjNeR|}&u>bcO2C9XjjE`~d}czM5I!?*&RNqV@47b&}EgBTZi!9aXmH;hzasn;;B zfMSfL1|M+!B?>^!wo8p6ie9?=AWy&~=}h-o^pLU}cpFUU4n@%hQP{;Az}w)h#^UWS zN@I@E?EyVW>ntD)8O+7j$YD_w;i!kA3-}~mNHj#CE5&ayJzSuBQKuTp0EQ8`KsX*? z-_^lGY0RBrQAEKWcPNTyheZJgSk&lS6a~}mX+ild7#2kvM1c;N&`|)o7uq<&RT}dM zW2x=IO6v{}k79T(`XCAE;~_ZE||&G%jnFuw~IG)rS{Y5u?T7*3kF$q}VG8Jb8R2t+=#P zaiFg9q2Quk;6CygUS7UWUB1J5sPI^V(@P^o%Yu`q>^`>YExg9yna5uyIdP@rIbTnHHL4=tieL)sjE>NI+|ZP#Ff;6?|NyO~nx*0LM%n!v|yJKhTGjc{7Yfiotyr0Ol&halb80!wsX#U}Y za)TcwoV`L6oV=s=$Y)bC?Rd;ktH18mj~wqIj5Y6=aIq0yJR=cir1H><4GMXt`AD&= zAi_%SS_ml%S+<(BtoHnvQL6RGvEl60%thlM?)Q(lSBw+ZhD`t4d#s*x`PcGGW3EZ- z6l>yLWcysdcFp}IACmvIyvixbty2^zaT5NJZn%_BxO+^Su1Sea*&I`LR1n!L;Kyd< z?qWNM>STa}tIwIyoHa_kd)BDk)xtd}^;7rdzIZS6y&YKS{#21R&1Ikdd3UwEXbuYk zizsrxGBpYp)}}%<@`Gy|RYTPiczBng9``Pg8J4~{imo6}foIl^-bOz~y7;0%_~*h~ zUcUQK-iwht(k|TLUN~a7E*7L30zW(^u36UH3l?CStz_0OMni)-hi=MSCuB*&g4gap z!+MjGSFyEG)!`R0^faT{olbYRw?6mK))~!?7PQ;@RRcVs9x^^Z81)wj^XXF<^lPN| z$b#P#)~5d{eV1+ou}SoR3@Q~pA^TEPoF5t}fQdJiNr=g!Cxu;_q=@2MwShMzfuO|# z6&C2X%~U{#Bmme2%x-PkT<^|W1SWhI=cRSKrm0-7V7y$JXR^c-0#wogO0BlCk`aE1 z#xjZXWa*O*2(vF`38%loR?p5X1k@zX`gjyw{1YXL?w=^lEN(87W7Y}WQh1vT1GR^l z#iHB&I;-2(z&7S&PjH7Y@ua>Miu1kMO&8e21kWA(C(L%RVL5-mCY(~0t zgT+lanYXTwAL6-=;=G#6iBoV^hokI|ria}BEqW+lNDU2;E&^nj+1Y8O&rZKMV?GJ@ zbN($f`g|H1eGd(dejWX9qyf^c^J!@GJy*XvwCoq1mF4a#lq3)K%|+ugVdx6OfV{GVU~blxgr7tym)J zYy^P!XBDz^ZpuI>OJ0?b`X|NNJV#>oUW(BJlIEo>H_7;tB}W z72Xh6<%;Vi5Lfn>rSz+&9Qsv(AA0rv^-}ce`&RnZ$+h&Wl^J{Yym{a4ud|%)^@&gj z{}|63-5GEpIrGXLD5#fOj1w+qGd|PBl&bz2kp6lUVBCrk5ZA?p^Jo1DhhJoXsEe+9 zXF-B*9xtbT7K9+5`~1t%t8eDguRh*Izgjs8y}Eh5<}TeZ9!Z2M{9N-4vwZ3mILJ6$ z^_ijixBSV~D5&la-$6k&t#}545^nO}0%;;*p)XB!vc>= zdO5Oc9z^lllnASQa6(jNzeyMMznN)#XA|z1V1M7A%3s6a^@C=1ry*un1;o4a(s&f_ z-48FKB%N3h3rWh@v}Y@N)w7O%b)uVoRgi#QeY$5GdiC%a{pyp^37`wM+Jy(IEG0+_ zDkoe-E2x;#K$JY7LV(_c8oAZ|e0CCqP&s4%b_k*F>OB;~{bRqOz<*gmqF3AY>_p8# zXSJe=faREXHu7^~-&E98e&w0v^faqVL7qR|V?^P6<9!Gfi#Y0aLkvA1($nq^p)UkG zVPz`vd27#ZdoAxoLmacBV91 zZ|2{z@b9R?Q!tn{;4ckR#4*UnNaX^0;sX@NBx{#H00{BcLT&yO-e!X9G*T3$@WVoD zPA516h-Ey|S8*A^tp?3SEI5h_8qnlxXC@y0Dga=rD7A19QFTtU6%OY1yEY)N{}&Y|u$5pq)6K zTd|G;mO49RaO|nKk3FVVzg%t>mQuXZ#V zn8aZ*(gE*Na5U8&4hz=k)yAkSDh3ct;GhPHsnY?8HI-@A|9}Q4vBz^UpqMwOOD`4b zYA?0QAt!ptC+rqXj&-*AfTzAY{5p)6MR2%EJh-9Pwp= zsy$j%ODq$>Ipem7l;-%OytA{wmcmuwG4%~N|JY9H{c2EX(iYb|B|@#a3<%TZY*2D< zr(s-_9xo~3i1`%e4VHgIwxD8EqsAAIF;<`eJ1D(>BQm2PQOeb+VQ_HYLcpi9fS@9~ z01;HAG4JT5#1}w!046r-%)+{@^R#)U5I(Ei2U`e-B{vfym)I_PRD~@GXy)yh8RZ=D zj5{tf#@!ens7wO9jJbhQxi$M!{5(TZWs7k|C{7>aTLAklSO6Gghx|?48RJqf-2UL; zj}EYnFL1lQIW5pZ7}AGpXEN!r7wH=2mj;6o#dLAL?+0*JqgZwX(2&Jn0Ja#o+!8B} z@m2{!=M#xwU!eiiGe+)x7>YI6edU<12tZ(!n^Tt#@?o=!8RoxSp#jV2HI3DaB5WJPFkU^4xgoM9(zX&8h&*0TObiHL6zFz zo`S$uFq3fhRdj`tcd!BH;RqOH$f88u zYjNpwO4Rsl?ptGS2$EoSEEECcR*$P0&7h+sbIyb14Adi*PTr}Q$H<0y)Po3VB3+LL zr*G|mnP^gL^|x_nToM58|MV>r_1_W^G}l0SS4vHRIynBkXTp|`tM3Iks^&a?Y8=>A zeTJv}ANIaJzKJT`|4iPSCTY^9kiIf$ODR}jT0&`|z@!PaK!p^l7O9w&f<>VOs0fNW zN%|6?V1SAh(M=Js>+Whn#Ok6ZZK)NihJspN#1s&57qlR1U0wY>XC?{NMR)JLzq_CN z$L0gg%w*=AGv}P=InUeqKE}d}3GAkt8}Sf$oMytPG{f)|Lp(&Qz5J*L;vonbj{C$P z3kmuxd`AgP?6^e3vHA}-6*H=tzdyQ)4s$I{R8Sl3r`bHHk{+t@tl-1 zSu9g!%v(-Jl5=5G>i4~so+MRKjijS`a`oq;H2d+wEiVJO*YN;RhDQDzCd!|WHKxfw z0!>u8ejmF$j_1FXaMztOqCXwHBzQMS^hbl2blt&Ae-2(!ALT9ypuOW%51Yj=XLK9u z?FrqY47~1BaqVH;xpfr^xelngEaOR@Yw7x!3wh2#`dt-P2@0PZMNj+5A zs;$6`TxE}{df4zN1ZX-TR@3QfCEtQIJ03z*?HQt>7a;7e1vXC-Igapa5Kz|-=no^( z?z8Ig1DoK1#w_*$ViP=5U4ntx#+k5007O;(GYaEHKEk?iP!0tK~c7?>)E0j zc~Dfz_!YP)-gwwNDM%kNrt3>s4gjC)S@+cr;dcr35@8!n-?h$vIEd%#C1x0@_l(t>bunvc9K}|$)}vHy3lr&GL zn{K{{iQ-MUTgK&d##xmgHGm=IO+wOR4bRhU+Y}(6l7|8W1d>U?Hn`(yo_+S|m9VYz3%Xr$?&?Dl@3A^K$IQivh$=Pf#_6u|+|&`Dr|@Y4wr?pdbHoiECkG>mSK z$6Krwa2sTmf&1}o^?7jH9K22aC8cD(XdaedMh})>zJqoO< z^B&ldJj~=Lgc_4oc!x8v&MTDrf%l~qKM3wv?iSlI= zgEu}N{MDZoyrd6a@?-`t$wQaM1TP)txVHvYW|l5rN&cs$HbI&{|&m-OyCGP z4L=Yym@Y4I^z#Cy%bvk>d4!|O11w$U4x&q0`XIX8bod5cma}we8N$-#H-qTXHi#~p zhOl(Gl%va%!F0(i?aj+(9K-&BF3C8cOLu@SD*|-MoMh?J^$&E}%h9EIeDxemm*sfD zIo0Br3p&m<1goGc8TuCa$9o7s(b_C>ZnA1BwVK(=x>DHm-JwOIVQyu6B;H%H2j-H$I{#j9L+Uz zH0O>Dtc9N8J76uu>aU&^lY%Rsf7tE{NW1s*l@ISykgR42Mz6sHv*K>NT+vCeD3$-2 zT@YjN<#X(1KfatQV`;(-YZWXo%xt$luEo|_45}yATDjH5ALUCY@;<_A21>8>LuMZ2 zA5n`%+I8oyLEy6-=4O2oU|pRuqkLJts5MM0Yr*SE()|vI3eSe{cM%F-)&YIF&z%+* zSXAo9$XZcv9$r-Fl1AHh09S^-#(jJ-&TYhw$x8*>im)hrvWi_senk#`gE$b`us%Ql8{UYG(&A{SIf!F(h>H7dzz#@a8cVR)xj3s4{ zo`j~b9}9`l4mb+VgBUm-EN?}Z;Hl8?TT`K3ADRjmL+m^xB00u|e$7Y=9I67m_)pxt zIKa&dUvOT~sXIYb!1KZz5TB>8;&Uq@YrvAyyjlb}ej8G=*B_0ol*EFGgs%1rK0b@* z1BnOTp2!Y-3l>t$)*Av6!7<`iRzO-fh!KzD<`pYZZR0pMCm{8546_R37f$ClACA93 zB-RrrK)N0V(lwY^%D^6Tm+57JGWqfo!%N3u;r2I&7jk39E7H_!h!dY zyhv*5&47Cb;CSQH90*GdC^hRo&e6~p8ItB}ur&WDJNF3KaOTwapnID{t4(4>6Ue~w z&B^IiTU)+rc1ofSqC4;kN<_xIt=hInr1avxx!~lZQI(3P^0_uVD5! zJM!cpZBH@-{)t<`1ITD-PpoJ3sAYgi3pCaj(ZUfGABakdOdCy&faCTY(VM5195OauHmWSz2_?d+mRfC-y2s? zk3UC8K=nDe`uXla^IveUQVp%BZ|S*B&mTeQ;Lfu zj!51!iyE6j^G4_tS+@Y-XktBCN17UI%(>q9D!{U#>QLiwH-6y(`CJ#MIS6oawtHUy zHD_*i9joS`3DtK|HS>7)V_B%bpa#oAoeuRSHGt2J2U*DeX)OPK^a3jjk%@n1q^vBI z3G+EWo{_QPDkYpAqp_lEAi_xAEBhv}whXeBE|R9OM%ELr*n&r|J`+58?F}r;{5@z7 zP)Rw1?1hVQF7n+DECr>;Ta`FS$Gnxt8H3*Vy9knt?3txIxt3O*w9=}Y&AO9=EJ0t3 z;ycE}&oRqsn~uNY8O3Q;GON-c(|=a0k<)AaN7w3iHm3L z5ewiuxPL4Xj=A+QO0K6SCS<u?A9_Zoh{}KbG*>X2) zy+Z}cIa!(}GuZg>mQcAnvL4K~G}!n|N`Q8KnKRoaYYV%)lJXtpU> zkLF!vt61ARH2c?VLk|S>*U2c!VGpvmXly>jS%9aQ+)C$KPzdVBz_(4*F@41RM2)dHmh5hfzQ!cLz^-c>t$eaQNt-Vxd7YiPm=jSvDUCjzg;Z1dyNuK!Q74+Gt1HiJ4cD= zZvg%)tp>OqIFRNvg_a8U*lrIj6+9jA>e}LhpDh(#8*kUJy!sn^^oGg6tM9U?fmh#w zdG%u8)u^X}KM8pCSpyrpXlWYIg+i zYW)TPEuDNr^)2po%;PNqUX4!mvwG{&g$gI=tzI4G)#XF^ccYaouQtWKK2*^d9 zX`CIZ<@7^ALGMaX(ECmlQd-|4!g>nN*p=^=w-MrF$eSn2O5}WEiJ0s>gt(^=l!&as z`fS!nu4v!sLF{*sA^sN%NPbYC{XDoxjC8TGqUod5QIKCuC|2@u`1~*V@?1CA>iyW} zyMK`%_;SAxc9_U8gT^|E6MNLUu=V~D_NcAH9<`~!m-(ZBFYAY3KTbICWeMiXjf42| z>rhWnZ^8CD;LAynfCSt*H4q(g!%CbHvJ#VT2Mo84B|)iCk{#sUCdY)}A;}LN_GbqL z$A4Y9fwr(dpnV)K=m_xkATJ;hhZFfT}BdBKqYFQ7PHz_|%_g_ZFB9P$xl>tCIK z4ZUlyb+)UHHJo~|9;5k~we_TdIhStZw3SuZY$T0g&8}oJ=tCDdMVRFo{$?-xKrXib zp5h*`;0Ge(*#{V~|F&8p4ncNaKYtt$R{D01fp99&iD|=JZE4LmA@<;EK)?mZ)B{cL zW|9WF3~Sj66P9FudqstDMjm8Kj6<~8Nrkyv<{5c^7sae28+NMjef^_|G;vZQB z3F}99glxBvb{*`ry$@nLEf{8IUntz{PyZD=&T=~GHd==TljZbrQz31vfQYG-rydMM z>VT=1m4iT7!uSqv0GZ+F#&IZuh;3gv*G zcI)AuGvpdhQL3FJagT0K1UQJM2v`G2DUb$LLqmb^v5*Ko2H#PFLRN3W^{{ftVBh7o zkg8p#2+r@2)%AuUwmLZF3GCCll8@4+vditi=(o%SvAby^$58ETAQkpoE>wfx(hLJ< z`8B`gk$~UwxYYpY`qp;kP5hR%;B3sMbJeB?^)gX%2MG%bZ{hYndV`AJPF(c5-V84T z{A!UGJY6Inb6>}9SjjZ7lBEG4bjB9W)8&h7%X&954STwJtEZg+pl9sqGMNZq*jSE# zTH_eyu#(WFphx$sZ^V{c#fnh;RrUPkbd4?)6n<)d_K=L;)j@8n&gT3t@#NOQQ8|=;eA;;bx#O!Tz9Q%M7ySIo9gM_7m zDppwH>9Bk2h2gAprId0e!@IBRN4nZ#O$z}`wGo4<0-IaJvN_L2Ei5&lZhcY4s?%eR z__0>215;0}9ZWslw3;*ZysEt5;Y>Z4(cyc^u|7rtVoeslw;e(vWMY4qOoB-;-v($Cw9X6RGy*gr)c9iAAc_c%dsCD>(^g$9CIf`F*_M073gLB^hLujIZ9%85CJfXvk*3cp7eL>ma z#Sp*Eo)|2N;ZF%3S{*?;B%qxvy&T}^#mCVL9i$fz=n1WTGVF&c2>PJ{{^8mQtRJc_ z&d*?a!K%Xu&hkX8vF%~&zb zm~}*n+aA;FwHheMMf0rnJFaMO5qCyqJ_C}(arrX86v7oCU&9*SXHlF2gPqa+9p_l` zZs7zCw+J$1kG^3076c7_JmBIRG6iZeR#DIg8hbXjl#=6FL%k_k@i*WxZmeRYIaw9s zn7ifjZ(DDXyjkwxW4Xbg;RYCL0-^NOl_ zp9)gQvdckv{pt;Q{mqcPegT_j1H$^n0Qt7W1w2%SF->~T;jqmEZEnyeOSvt(8*QLtJmeIyvi;569*mu8;%^WMXW7Fln%sL3RL+fkf#%q z=MhYv6+oV~qFTE=cXrR&ji6A+)e)Bg3UXIQ=;Ti z<5(#Ni?%yk@I3Q{IbX<_X~hlza|;hJxks_`?FFNzgtgyc*{?G$Fvm`=V&z*+6_#&r zJ}vTt2L1Pfd^#>T9~QF?Bq$G$JyzW2|AP;y7r3x85TnzZ>DH5Q*I>ICH}xPC2SzS8#e}`I(E#qgI0tI7oYj-~<~*vYU!uNgT3^A1bpq-3xeN{NXD|%{p{R&xj!(&@n_c>G9ye zKG|Qhk3sCzc!^O}cJI-^Fm!TOu@70R*vD+xDLW3VT}+e;6gL}aYA>vPI9AFJ;{dTz zxbxv-ArV>)-@*0o7qnzk=LP!zCi1^#PO$%}{Lo$j`Hw+=2Xiespuhe~oGA@{TPn{D zai-o(=rt{lGu;(-tmO*Pg7z!(a8Ky?G?0nu1O1B^9oNDr{5 zzKazF&;yL)%V>naTLy8(+s#v{9QC=Vp_v4xE!b!tl<`65bNf#MRv9;@KCn^ug;$T} z#{jp~$^+ceLL#&Zo(anOgY-Qt>;LBXc6-!8?XNmC)PqRP{R7rG{!3%b#u5)6W97d( z#{5jde|wA%W5UvD7l8zTJ@$2wD662H3l=|6?VcWxle3C8L6{f=sFDl8IhD4a-$x5Q zYTg_r=Dn?9lp71l|BZ3|FwUCGxRu+=eRz4!2TplibwgYRf(!9XE=K$&T;qdwwtz5Z$WeAN7p}}}$YhaQA?+D@bKMh*_{}x{VEO?i=mB|Ab zj~P&Sr9Ort0aW@T07)Z&qK@y>CR_vrYEQhsDWT04k5&bM#aTpYO1u_>)z)P(bq}&z zdsn*ZveLw>3+h$_Lrwfk6UciBX8{FUpV-!v0C3nh@M@dnM{EhO!S|FW;jA~|6q9g7 z8{bWk81|Y>IOB~69Bqu9?S@JdeZPRueo%rDsIw^XnhM8iiTEK}?1^u);dY|3#7o-v zPD=uAJiDv7)0TJ^(5vbAzj))j0VlUfeo>on9q!CU&W8XFTOwWs?Y~)3y8z2O9$>G} zdgCuaV{8d$wegoiEx~k$ag6YK7iH(Li4x)XH}R+sVLWQUlPJ z=i3^A#-BvKZ3;AP3E^u{q1&G#d{4;GqIraGdm?%uhwwd_fNH)Ye2rT41O~I#t7bLy z*qD)wipk-bpbh^9?C217P7pg9FmjM=D?$wXOQ=^>>p?pN0iwmB=VgZQLS~pn(-EQp zyFyVL)nD^GWCH_;d=XxmYbFS(De*^MyS#S)*F?E zy%(x9jkxhf8Io(E>n^=JbbqJJJ~>p5$sg<)SH3)i>am~Rg6C0Uqb5dG=&BD(y|q(d zkbYwxsV7s`i{99=W1I_^~(OIr+gyM->yfy`l|LeI5p)vocg7`1Nh5#sHbhM9ea60%H764 z1@Er-TjEPct4#C8Ja+UW03;|;S|a13)+FxEIJ9^}%PS>}7Vs7pn42U^hLh6uPTLT< zBlu+VyvnyeU2AH5_tD4OuU|hcA9eK8<=@rXdJByw(9FLWqw3Qg$jI-}JU?#9(Q_po z^rnf^U!B}NYn$GiG5PPSk3Uz~vn=A}_dw?19+$Ww=IXZLVl=1Zy{OhChL>!3f# z8y2Y=(vqH#M1bd|YIJH=$aENN#>p|yx6f(Az!=947RTmnOU^#}d13n3xwCXC{sX7? zKycjOdlSPH_7)_ z6ba1gF?Ctt+apzcopIa~pz1}=ocwqcwCemrw{Rhi)mh=4bKXC1+$KmqN}^-*r*_+e zw*|WERJw+}J(BA;7V`m!3K^>ZT^Q$*nuK0&;wi7Z#}i^GRZf8PUKJ*sM zHBNrlVB8WF!y+F1e*gp+VuB6SAEe^HC$sS1kMr^0zB};WPZ#6ApRdM$uhindSGVK8 zU+4c1cKzqFdP4)ePn2K*tAm%o@rBJudDn~KhhI0n5MJ}TX=ixNYo_ht(_S-e4d2sh za)vKzHC2ZXZ#6ODpT1=JLAvK9)1k0EkD7LihTms;mv|-K6m~o8Wk6MmMG_{i-xk;J zHHlQM#4z|LTcoiEFJ%TVrBw$n%?)14t_@zQ3SKI31}{Akyky!CxK#T}@RGScc0a>fZgWU|BaM5>C)$kC6KTb}%r$L7Y45P|N8Mk0vu665JWN{VtItF22(2(QCzm1lelR z4+|0v5r}-4Gm9q_Oj$OGubKwOgFjfl&E^DF_HTx6Ty{oAj*bFQ-SJcgT+4(blFXo} zEFDO;S>tqp+s)F2%PT7vEv%|ozN*T)d}UP-a+fWBu$=1x`Dw76s}=o=a_)ZvcXu)f z8gca`8sa`hOL(Lxu5w{e=9NqM|4H3qfuu9!Kf~ayM(J_Rb6o0{Q?!O?S?b($o<03f z2mUJ^ctUgy_ZFWdqP>bwsfe$9qJA>sQ%dnU6#*$-E~1DlO2q}#Xvl71a}Tw)PdZ@B z=`v&=FytH{at|3Mw(=)KLX89ZoEF2x1ANFzZ;JR7$-d}UK>n9&O2rkEVi}6~(xv!< zj`);}SY}dOb}6p-L~z3wJ`rRP0}Nr*r@)D0{ECZI1U%IbsbrKt!*Q*ibjT3bYRGPF z&xP7OhPVTUY#)Cjx~NoKhIS(5S9C-lrT8n`_%ER%N^!kkam^<>XNtIJR^WQ6h|k?{ zr=OrtI3{%)vKyiOH!bRG_Qk*IS6rlVV=nhA`sfHIrdH>_$F~$3j1`)sfQ;Pw`<0et{><_Uac(#TUQQs~x#MLw0@p zMBMmxTv0uL@*x;XTlNV@4)hPy+ijS52^zKrDZlnBzEUbK!f4)Xfc_cK?!xbIcM&9? z=CL{|wg*Sm(i+IBl%c0Kgn2V8l%%}PoN`21pvshoB=cK|xBx-6qa>0AK-a}CsYKaG8) z?DNA51t@1FauLj`z;mBR&5S7G^O{VQQY4vXu&hy%D!xS@xnsA88TA@+&rC#V+a&0e z+D@e@o5%4?weOeFZa}}){Ejf|mB*T6tG)IXjp_HwYOh)Ud=)yAjInm#ydaTMGF2>M z)W2_jfNOz=G8W9umS~j{L7Vw-(j6lu4&vyvmnJGx`5U4ww0oWw(o)*)J4`Ai)r75b z+JG$WP6^L4&7Gi{;Y+^9u6%LJUT0+LTbf7LH=59He-4`fYPQ5s?6Fr1ZME=Vb)I(1 z2DSkG z-N6JkP=zS`hHh@Q-Oyx5mxR>kcHz>1`Yc{KmRyG_ zu;_xTXcyn8V#id#vt+MB6^#J=8LUDS%^;Hdp;q_8peiiF8&&-5ElLSV;At{kfbd?L zU+Cj^sf$(hNNv=r3&Yg;Hnmb%mG;hk6B~RFyil=v%<=Z}{kd1N-YOc&YQ_4ArX?@B zkB*AWn7-Ma{r-Us`ogWrY443IS}cD@r7qj`ZlWE-f)N-KZavgxsJ`>xh0%9Dy7tbr z?Uhc=A>LK#;hs10_N{x#lz#RW^+wI1ynXfFThhZdhuZeL;Na*%6eeCtir0drkE(l6 zQ+CLHRr+>MFk#eHDG0$cU;WkeQ*F2WcKWG9ysvO+H^Jz;Ds6}MOz2os(-*zr)3~xj zZMa@}#sbUQnnj=2YF?tCsZOsFze~xGOlTPIYw6pOBE!x*n-}zzynbi)c4|${!oDFS ztTX3ZV1-d!AR`R*ceXBQ0)PhRH`3l);%9z~A9=|&`phlrqu)wTpM$Poyu8JUXCW<~ zHonUif1z(Eq{af1*H!5$xc^mmqqu5~c&)om+j)!iC2RV}yc958Djwx-w!m#?Z(+PW z@}dQO4+|-1M%s|&UVX&pKE|CpW4m@1=2KDVevRXjsKQE-CmTd>M5*=Rs#fCYYhJTnhO7Yb4{UUtYF|sWJ|oII+M?_>wt6E)9fg4DW1+i^t~PvP9F}gOx{XdaY3EMr zCy={HDR|;|XYyhN_sUjxxC>Befy3N^2xh+I0x72^XqIOe^g&b~uO7VDt~nam7KG%G zC0d&y)Is?52{T-7oSR+K&d;mYq=dDE^G3B0qfEpVJ;ZVM<4wZgvY&m4U+g9!qGcUM z2&h$dN6ProNAm}&DHBmmSS0*t!>ws;v~Y#$65J(wOewlk3Be)Rd|fl_GZO8RbjH0t zpN2-HAc#Q~6x2Cn1Ms__Pf>yhn)+CoVjtg%_)$M1!O-;bTw(}M+GaKMLoCZtlgvvW zZc{F%z~{)1-nc}NSEL`iQ~0LKc2$%`)jUx0D@0i zYj_Zm5=jnwkCyeiaje)KIR2|##(Rhl2y-WJbXnR=dIdc06g1YExBFq6(nH!I9_S#& zSv{n%t!0RyPDc+*jw_6P^MFn+~ybVHun^2}I z{AIy$v*4gYKxtO|9snRTWEd5-F^6$XQ$WPOdzshib)j;-7iQrPI7`x@(VF^!n#VK{ zCXhlL$&>x9De*)9Q0Uby(5s?Je%{||GR`Pn0vOPBcT;5)v;=Ul+QC)51{26m;p7f) zI-!A$IAPWy*Og+(*)|<_i>6;sne-*YHmrGB@F6WE6bg;`ynLm3$PY9TQz;9W3 z>_z#IIhFkpca2t+%5}E$sw=)Bl&Ue_Bakc(OP?dpgic`Y+1ci_Z9#7B0OYA6rTpln z%80f8$aiVsKE+y3>bq+k^w2DLqvhmfduo~n5@0RxLH~Am3Yg<*wLlO3VLIq%*un@| zuik83@0Hvs3Fm3*D}*g1``U9B`qw{g7Cr-g(#Df7j_LNx>?(d9QJg${aoBriiZ`Uw z4&$~!pAO02(RAj6v~|1@rM3|;!}j4`(qY!Xn9zqM>*v{ZkQQtLy(?pg8iE0miBdz1 z9Rff{`(Oiw{2MZRvG#-h>g{(4?lhG8*Hq7F&Yv$B@`@1N_CvGV&YU3Sm+*8zr`hRX z#kt9rc|`1>y~YmO3A`oq6pDZ-g(TuVM|ztDm=gL*Qs*PXU%wPSBVX99$WO>OByGFMVFTSR<$^(}|I>D~mG-hbTpZsZv+E!3Z|fx8O`=ullL;G=}O6Nx>-m<%$~ zJehsN6X(ZVvTTR&(^$zwGlZxn5vQJ$FAlo~on;bdlKtjGeTts*W78l-8F4oRVYDZ@ z^puZwwZ}sxR!aP`;8B={ZbPiwkO&;*pi49>u{(0WOY?1spU`|_=qKs6VerG{qJ6h& z;QPg*t40lbLs;J>+kUZVnB)=4lvnVO|FW%3oIlL90AlEph=F9-_gKY;x$+|d%qW;E z`4@DH!;F?zTdy1@n?zUyp|BDmxdr02l{K~@d6k`X%V%$1Pw%=gw`Y9{KJA;kHCig$^!WVU z9^b%szh@JMtw^!>$8Py4e)SjM&%7|T?wRj$vo*aiosy=Tw*kM#FkvQ{iD^7IeYZ$+#0Dc-ftVKIf7Xvw-$Z$2_3vkyIY zb;a+t$|zF5?$kYk>AcI*ry4(-8owlSx=nxWul%MT5CDZ!l4ri<1CqU$tVCCz?0RhT z={I@r3{5Ie5;^*ZzP;8N{#51j*J>nB!3}F3Td}jQ)wTYu$A5X{{g-}u<)g9BUFDv# z{%-5izcwmst<9fTq)bHu&_CNEkX|ctwB&TGU*}yS`Z$U2di(ihXP!^_YXlwp){75L zB@44WOMZC$>?1R-;deXwuxoKMQ*dp|k>$?&GjrQ!ulrlVpG%v3k?&)30hp>c?lF zJ~&y7zXrkz@Pt@#I+$|KOUyj~(br$h-8xM9;k1&-jCtW#vyWActDBmjB4l;X1v1aQ zx)wy#7&kgM)}BJV^62OdFj0&$k?m>Nm5MJ-eq>7ElK1rdEd$r@o*($(jb%R)&bK66 z1=qiRC!3ob$5kqic{7i@`uZMdpntV%Rc6&}{mf&bmc3T%5IPn&jOE@g_N4&*l zuacf$dzWM<-fsKucI{Am#ZiB_?Z6^bXFiqLU@$L>c~5)kpzM;;>D}&4uvZ@KSJ*U5 zWB#Ib9h7~mtoLqj8pg})&8#-kqWQHAk}mVnmPjIIX^c6Ebc}8<6qEzx-+D%NP&P^B z@@^-_@G6d4huU6V)V0xlGV}5@<+2z$8Om=`LHT_;D4&VN<(DQy`7J73{sgxCTcLc> zSGas85tn}|8OrCc!{xgl$K?;O`j z*p8IgaR9CpvjY4w;EP%2gGwVV{lXnHsTzAUZt4Qah`6rA1}5D2eq7OcI^s+4hLDP{ z&DfX^^?v12{LQ35iO4t^+$+_N9B@6{%$raYfnS`8_|mMn4vq0Bz62jls3k2;S=(`M z4MSng5{SQB3(;_lcx_tUiULR$&xNzqS;-q=ac%!33J*Qxs(UC+Y_`@tSixWAsfotKZo6r=F=JO;#s`_7v z=4%u`B&l0b!Zv;lR8+UZUH2e_5Gv~)q9860*9+FhN7BS70_{pXV@YiD#zPe0%>o0P z*%xoDdyo=81dTD*L6G1>s2g&@W5--CO(7TS3jsIBjl6?-rb119awDZFp!5ayFk7ac zvWMCAg&LXVDU#}_Hgi4^ygvS>Ps9m65ly#>RJTssku;-moqI)W3KIODBJ=VET`mQY zmtthp?3B#%hYGVq`Xq$zrT%90IfmTPlI>?riFb#>D32pMmA zX3TB=?4MmPuoWcjQZ%BJQq(cBdK#oQymvEFA2AbQX~j|-nBJ>uhHZN+<0v0e4K^7`FpmGe_`Yd>Oe(qS!YKP5LrYSLAmx@CnnX4y z?7gQ^()<_!sq7Q+3TQOr*nLuFOf~WEh%v-Ii*iA)S8Yp>!7@ldcwl34Ysdw$O|T{u z!MB}^2!;n1MqLg?>doWbh_IXO2}RzeO8*v$$SbrB3pzv^M-2oEFZhZGx+`Q$I>7e; zmBYteU=Yzr#vVg zwGDY04F-LKz$UG7(?Y4vZ4z&Ij*?Ptzx0o8X|q|no6JWQOxtHpUY9ekIh#idik$|F za$w^-i*=dl7}=6d5dyFu`Oamt+U^SLe9GzDk~-(|s>toZh_mBUMp)LrYc$GR0Ethv z@X2j0JzY=5d*^lSJ2t(fY@DiypN?@1jIP@uT~sVt;=D^#^^LYkN&eI`X3KV16saA|C+^r_Ua+RPUO9<(%VVIGosYBP87@yYoN_GCK` zpFF4KP6&LGtYS|#BM*!gwvS^xG=pIBzsr|mh!9Oq^B_fSBS1$!WMYW;OORoGxmzsM zwAvEW%{~#n7>6(3k1sac64hoGdoeb>puZ`hmq-jG5wbX&#I=d>W+V>ZZnf5}LxXs+ zrtA{2OB|;0cz($Z70>?bLbt-LoWBJTbP6L$FFEXenH(z%nezwoSmz_21h2gO5UH3`*P((j0s8&UbQgIDD{ba;$ zSjLnJgKTmu-0zs6*>#E7D;8@!xGVZa;SAJL`j8d64r*a~pcX%_WheZK#D;D!8N-H-U0xB;DXgo0Ayi*DJF^cDzBpd_=SpLDy z;&aS~8yJW1aIU+3QWt+R)aAzy2I^X4wu+#I{_7q-e;n@Z=b?oSxO1{6mw5d0{Its+ z#Wy}hrAu+agd;8H^8WAmW5#2?pjWH(C2VwK`0@S4^>2~F46UqhChV+8#i55EutAC^ z^YQV=Y>;B#Vto858>IMoEk3@o*g^@CsmF(7pUR=za_=!JAzXEM(rpC`dmVZme_vs$ z3Ojqk=P0Avlv9q$_M$y>3f^nX-cus{>L>8KM0^uoSElTMtSIBn|Cr!sh%FZ$8TxW> zjTRj}C%MQJKnpuEV^ChYz@Xb!F6;hjoFG|sd~CcFSx8t3;N7AGdN$q>Gfu&%E+*35 zBSC+{oDlmvz{b3vE+u<0_)Cdb@`duUQ%?x~paeASTcZxxmD2l_^%K^^kka(H~;IlRBS1>nBb z@_wn$-bZ6S4t-N4DAsCYEVJ_IXrU^mn8g=<;wsu=G_v|Ob{64WFo2f?`u29vw{@Uq zuK`6=DLl5_B2B?B10M^C&|UBy+-J#$W5K9iTO{da{Y~e?@?%Opr@fFaP2`ukx+5jy zlsNQbDg*1%1i^!xXGK=b*wWEVDzPd2K4mpeSPolnd2=gxV1-W;QZ05!0nx6M@a1NY zgZu#g7_Fx2=zP-&WYYaF&;jWiI(H9BJ#i z%YWg>T^IemJ(tpF>UT8plHR#>)c5wF%?R7i3dBPbc9hQ3%nRRHI`3$F{QTHw!r2Q? z0h4(L$$nW*DR&`cth>?QB5mVA*$l8w>>^KR7I+T;rsguhr#ij8DO?Bb#UBfa*gQW` z0`HnOQZ%%GHI>xsAUsyMj{BZ_r@54-xP>hjUKQ*n+D7LW(q9{wWu+Wf zosUO9WQ%@LPG^2hi@e~qLAG4ky%gZwdnYPakb?87a%K2ADwsy(tkt1ucEogNrq70K z1+ro^cVXO7T4);I+#)NM6tyeDg-!Ns1~zspx?nfw3VR%yb8BLOa4m|KQO`0y+sKCz zxEB10-H`8Th217aOLU7Nl|eJQU{LK0r>L`L@p&e~p|X*%!|?2yjs#cxWLNtKL;=79 zk_BO2*ap5iRk@yst~TeEMffbkaL=hRwqRUkm%~NDtba$kIBc&?YTi{~jBQ4vjwJ53 zNwvGG@^+EMj1)T0&4c!vZnyI3zc9kzLztSK=!|mRPE8v^!>_H?@N41i;LIc&0K%jM zy0Oui_kbQ;qj%|t6_-&-O18Ggtu>EStbZi?4)hM@RA%joHmCQPASdGoyR!b)uC}Qi z9l(_?=V7N)yS#;oT1*{vJ>X5ZWtoV=r+1d~qv=<+Ov^H9jdAyttE;7t65yG+hXnV< zrtnHsknkB9y^~)|!4~}_#opa~@EO|oYenRnbJbJkd~}C~8K`>X z`+_%yiG>09ls^Zo>VmD#7TLi5P_XR#*~WMQrQGtaD1OS_ zpG;Xff2l|HUDX%KuS^r^f>rijpG*a^X_bGp`ZME{E7)K=<=oV_N1IsRK=K1$28^Y9 zW30w0&wMXg{ybs2aQw%lf=GYz*H@;#eS2}Bfa3E%p39B^n2gCPK(Z614s85=%$C`o zO<5VUjcd^tfs#Jjhd4lu_his(SeCtnG4syHfe<-3jNa{;TSb209I=L!*tdvMP2)Hrs44(dg8u&KQV zeu{s7%K-M0JbnR&mgQft^%2$~(sxi+KrM@T7J*IlP6S3%9R%P3;|0iPXiG1 z+;i}BPgS#g%#5vKBkd1p+tfq1AdTYzF z7#DpyGu#Y{V{4^f z(Fc*jH@8-H^CwrgXaA9H{2~5iXul7%9YdVcFu4)zj*i>|-rU`eDGhu^jEW*4Y#Cz1 zxghj^Fnpe1U%b10QX_vd1YEbYF%pV|0q%v*nRk8va3V=P3%RRS}O zI_BDZIE}mKjg$p7`D=*bn$COnW?@Z~oYZD;FcCF@_V+mm||7w_SUfpk6j*gA|*hLw3R(@Vv z{dwc=&l}6@4Y2*u|6Z>5^HlY)X#!@pmx)pDeo!&u<`XI%j-!i zUQb#(ais0_q@p48;Befxs0h4?M5*}91d*|of7wty&joy@wLOO+@IH*4?aJr=@Va(= zZN)PmM28)ZUVl8}o#XQ9$L|h1A)kJLd8+O~P2B?$Ha>Zv2CQ0>G-XvK@YX*M$^{hU z%jSqHe$nT&;#2SiQN!_|{$GiujfJ*sSN_bZ!p6*=^!y?oHo*kOlqm)(GUL05P5o1L zou6hFyxBkD>1D#Ve~K!)U>t%iI3FxF=Ni>HTf)*+T4ljBz|K_LBL|KgUHIpDKUVTB zBtlD}z98-lwr>j{qCG;+hNTMAOv>@}2NIMqoSsfdO&L781ENh+3fp9hBy?K}YYrc$ zvbeG#igZhMdtrwrwwdQ@N-U4=IfkR~&ht8|ozSW;s@ih#gJ4;vVA-o8FZ~$PQ ziZ>3T4{M2LJ$X08FV%pg#{@r5L0e8<+Z#l3yZA3)x3%nEw}3Tsa;;lcnO=9CM~AGVinparj>WNDKr^5(j8bC z8Up=O+g7lppWm+hd-$=&ntjSm840WH+?A8{eOM!@wH4UEQclh6J&f&brfo$Ui1Y8L z5(MH(ik^O-ORaXh5>$`vnQBLQUNA=`XA{C0+B007O^60u86}45xS3Z`f z*~J@@QYi16i*!YX@C>}_{X6ssXHbu@X@cPanj}duJV3lqU=GC|xcoCY{bDsW!#^C> zF!*QKAwdjoD~=hMOAsVJLYyAKnVJ~wZ2$xex59_oeUf1_LBesZ&Wvv87b-r; zFep%Jtu9&#PvZ~7Fen&Q!XC2$1~=LFxI_B9M7o!rVHUW_v}3=2X7%%*t;$??Irgvg zwUv$aGmbSCPr5Se{m;q=ddGig`{J7JjrtiyO@eusVN?`DUUhcr;Wd0agyRA_KG2Z zXXdvh9D&_6ee!&Z{6i$G(5v&b>RQc8PnS1iS$M$T-sL5sMtQ~s{}#u>p4#k{=pFcV zrL}MeRQihf=gJJAlxd+c@at)%L6Mr%49y-cZip|2W`EG}j(+^2l`Vyh@$uVU@iz-g ztilqqW@QV0qy#@=A0B^3JIsR;&$8;@5r_`Ztfb(n6$V*O;|2GQ{cvX?l+gQs8@p#5 z%#Zw^dz|yJmeY5KHKyZ)DmqEoGc>1uy-sp;^^$v|j4D+%p#;zMYIDJ6w{q^t6x){r zS5`mycGbh4?R(1BjVO>nF%yvv0CU$anLi;AB<*CXHI=k}iaOG@3$2`iU3=I%{CFi-Cl^cE+gPZJ9Hb;pgQw z2~Nm2PD9SVv*t54fI=6P)968JQW-;eMyc-^3VtkG3_R9OOPAPMa6)_X*0d3yy%@XYmD88BKZ8b6*zhrC?FUHRCuqb#JnJL`udkQuO z(qeGLwxoH@9YU!P{QZ0Eqq-wa4pr|kHN*$(mHq)zvdiPZ_O8e?IG^y7e9=B zA{Ex~PII+Z;7KQRCJ2`}FPmVhBB5nl)Wy@pCHj$kr1%yNM20kbwEDx z*ipDBqwtj`-W@GcTvV7aCs3`4KfIpG*qV@5)l#ZKCfk@xYuXrvLshLr(?kc|Lz*E% zCaT_i$QJRTO}OKst4og0mnlSkKn&XKuOB&Ey*FL! zRPi0e4}B4NTG%djiGVFYW7098E*f59>0r#vR!Pk~J0#ViG$_SrQ!jutX&y1&e|EqO zpvcS<4CFPl6DGTQaafscR#U03!|G7ty?H2nKKOy<#py5YljiP|7Z*-_S^8d<>DUk5 zqq;ibyZYTxy`2D@Brn!k`uju^OvjAB^TKWKK5rdS2z&G-FiHB?!bI?*v9NK`9}YVd z@m4&?E$h7WwDziteQU;@x};AO}ug zEq^$eCkS~b**KhZ*fuQ5liFPqg^2H_XjP$4@);vRF4 zKC4X}fF4T=haNLQ#um}2*jib~Zg?bhy{ta7b>W7%y)9Y^PPpNQI03C-sE#`8k62c8 z!V@*I%!E7(jAa>RR*Jr-z@aQI?pVW{cB0Q?<<~GURbueoFdyuB^-(rkOn0Okw!jLc zW#mriAA_{aywhuSxQ9YFwuqL1$L#>@65~r3QNES|1KiyLrv_;SoH_-u?5WW3M`D+V zA056=PPt+e&Cglsi-#Dphy|h2?7R|xh zH++4yp0NM`Zt;a@rs1T6S&YN%ZYnwpe~!T)%eAxER)jaBx%d-d6g7`o9k$wjzzcqOg7Aaf~`fU)^29={4ck}>^&)vu9w%9|zt zh`w8JKJ4hjrGCh}PT?$G1p0o3^KGZsi~erwZ5u794gZF4Tot52a79lt!U*EMkC$pH z`ya*V*aLnA_)K#(&5fy(eU3?*W^)f6u^YZC;G6DK;F;y)&uMi;?S*M6g_j4M8?d0s zM5O9Cz3C)e9KgHw{zgaGZ5wL6{N8t9l1^{qCr5nIc&>KjQb`_lh7wdzAJYywjAv=p1KHFWT8kN`c#Tq~(^V(RbcJR&>^fWr zL-?8_LGmyRX_q5G^DuRW?2rI29w5>Le0lxY3tqatEp;t5vtJCS+5K?J8?lZ(jh6L^ z3t&@Xdi5~!5#ZOz^SI@Ejv(spe@n%O?bu-6!zK6n~7 z-l>6RVtJ66vBtJRB%`&l@V#C}H^tPjog#ov(XiVSWul60-#R0HgibjkfKGv=W4Keo zgc*_ekuae_J;SAHwQTr*WnFzt6K5FjwY5N7U2#y$su4#0C=7+pQnFRoLQzC&%LKzL zgyJ+}vICbe-LkbSr7-*`qRhgm1fnC#<`#{#6BN_RP`6l-c1X8Q`8XXj?t=}55~ADt z-d&5<{&9Wo>C?M=pL?G7((CVczke7{vKkCVwd>HY5z0Jm{5I!V@x9sw61o&n=I7Ju z>g5rYH$^6@5RA+$VuD2~STsnOptM^+Y4;|64$>++6ah%YXN*GndHN}kp3Dwy(-m3f zWV>-Y;PkpI%sS!m+Bslk zKg`dTtHJyF1=&t@^(e!cf1^#Cp#tr4cD@KF*8df41P`*2s7ovqF5?yM1P7>67Vt_7 zMy^_y8LBIfW|lc*WmgQ+tV-!tJf@i|DWUnBXcMPt^?q7`o3k}}Tjid4qd=G~oRQX; z^2M^+>dNM73w7HYr5z{Q4_ZW2c!gn57UiWhL{=FQN9N|60{k9p75ELq;Me;h%%o`g zvnmKz2clZ1Q%c_pt|CoaXcVgXI@G1}z2Gtz zAHJvBprBOgW(i=$?U>{>dh{fcf%&+LfvFeNK#WMiK0raeXbxkW`!y9Zx4#R*J$PEj zi0Vi_E9zkRw0$=ts#Z1K)5j9fa+7M;%-C{SG9*7rVFD_cGvd3$+@-`Q(IG~_@};f@ z!fR_;0*G1B`ut1cAaZ12d|x~SJ%sg>IGKSY@l%rF`lvgS!MUtRIkjVkL_iEYB!CZ| z_JRO6@^8|pNIZtqA@}~dx^9xQNc6K!zmD)s1w7*N->BIb!BX^g$Z%4mU1vQ{S}ptv z(o$OAmyP&34Fi7LT}(oK7L@T$7a8-7=9FV(sJoKI*7x`-98u~_Id}{Rr|~cjA}V60 z&7}kFrf!Bn$vBs+P+!CcAg4fZv5yO&EU+9NFr>jR`0rZn&%}&>_ikYP&S?_(u{%sk zB)&rFo9f|rQ=)^L#PIyiApNpD)~m{OMIO6ulAAceR@h?Q_dH_Mx3AoaL_{YoJQ}$U zZA5Ma!#0Kq%*4@~SHj!+k0_p!f02#YB)-9mNZ**}&GJEHKP(1s8ahN;9|B=|!gm3k zA}v4KgsjIr;v#+E&Q(xZvO{(({qIr^t@b7 zq?`Ty{b{LQMAWf8P{)t;d`kdt)vg?9-B1uYNl|E@srTT&R9c?;74EfMvX) zH2_CL!(!b6_&GzUmg;YgTVg2l0{ircmBUv?@lo26gQL9W^pjAwJFVdu2_j4VG~wuT zeby=XFgL2lLPp__C(nlz0P_) zg)?YcYiehLla52&v`(r58@eEeRY26Y4?1S$%W%4~_t7~4VLWz`#?%winC{CWKC%e^d=98m^a7CkYyav62Zt>}TER50vv+1T95Q~ioitX2mzC)nXV zFdGDJ3*O_>)GP=8i>Uxs8fvN)%FpkdpzZ>XbdYyK$;n?tx8#5n?2oO5+++omtT~ZH zTSXtRI3YLL@Dd0!><3|{4InH>P;X}^EG*R2EQ&arL^Fdhc|Hicl_0n8{QX!gaVre$ HH01R^+(s$* literal 0 HcmV?d00001 diff --git a/make-mac.mk b/make-mac.mk index 55b117e6f..707d517cc 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -5,7 +5,7 @@ ifeq ($(origin CXX),default) CXX=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) endif -INCLUDES=-I/usr/local/include +INCLUDES= DEFS= LIBS= ARCH_FLAGS=-arch x86_64 @@ -13,6 +13,9 @@ ARCH_FLAGS=-arch x86_64 include objects.mk OBJS+=osdep/OSXEthernetTap.o +# Comment out to disable building against shipped libminiupnpc binary for Mac +ZT_USE_MINIUPNPC=1 + # Disable codesign since open source users will not have ZeroTier's certs CODESIGN=echo PRODUCTSIGN=echo @@ -35,7 +38,8 @@ endif ifeq ($(ZT_USE_MINIUPNPC),1) DEFS+=-DZT_USE_MINIUPNPC - LIBS+=/usr/local/lib/libminiupnpc.a + INCLUDES+=-Iext/bin/miniupnpc/include + LIBS+=ext/bin/miniupnpc/mac-x64/libminiupnpc.a OBJS+=osdep/UPNPClient.o endif diff --git a/service/OneService.cpp b/service/OneService.cpp index 05fdfb905..06e37a45f 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -584,10 +584,8 @@ public: #ifdef ZT_USE_MINIUPNPC std::vector upnpAddresses(_upnpClient.get()); - for(std::vector::const_iterator ext(upnpAddresses.begin());ext!=upnpAddresses.end();++ext) { - printf("Adding UPNP address: %s\n",ext->toString().c_str()); + for(std::vector::const_iterator ext(upnpAddresses.begin());ext!=upnpAddresses.end();++ext) _node->addLocalInterfaceAddress(reinterpret_cast(&(*ext)),0,ZT1_LOCAL_INTERFACE_ADDRESS_TRUST_NORMAL); - } #endif struct ifaddrs *ifatbl = (struct ifaddrs *)0; From 5097aae7161856193d0c9df46fa1fbb5802f5141 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 14:50:24 -0700 Subject: [PATCH 29/37] Add miniupnpc to third party libs. --- AUTHORS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AUTHORS.md b/AUTHORS.md index 4900aab54..b286e7ca3 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -39,3 +39,6 @@ digital signature algorithm, and Poly1305 MAC algorithm, all by Daniel J. Bernstein (public domain)
http://cr.yp.to/ + + * MiniUPNPC by Thomas Bernard [BSD] + http://miniupnp.free.fr From ebe5c526bb6ca2b28f8175d2d00e30e0715379a6 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 15:05:04 -0700 Subject: [PATCH 30/37] libminiupnpc.a for arm6l --- ext/bin/miniupnpc/linux-arm6l/libminiupnpc.a | Bin 0 -> 62698 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ext/bin/miniupnpc/linux-arm6l/libminiupnpc.a diff --git a/ext/bin/miniupnpc/linux-arm6l/libminiupnpc.a b/ext/bin/miniupnpc/linux-arm6l/libminiupnpc.a new file mode 100644 index 0000000000000000000000000000000000000000..4983f6280ac2d0b955033b76f25abc97b74772e1 GIT binary patch literal 62698 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 Date: Tue, 28 Jul 2015 15:37:18 -0700 Subject: [PATCH 31/37] Linux make support for libminiupnpc. --- .../libminiupnpc.a | Bin make-linux.mk | 26 ++++++++++++++++++ 2 files changed, 26 insertions(+) rename ext/bin/miniupnpc/{linux-arm6l => linux-arm32}/libminiupnpc.a (100%) diff --git a/ext/bin/miniupnpc/linux-arm6l/libminiupnpc.a b/ext/bin/miniupnpc/linux-arm32/libminiupnpc.a similarity index 100% rename from ext/bin/miniupnpc/linux-arm6l/libminiupnpc.a rename to ext/bin/miniupnpc/linux-arm32/libminiupnpc.a diff --git a/make-linux.mk b/make-linux.mk index d1e0c955f..7697e3ace 100644 --- a/make-linux.mk +++ b/make-linux.mk @@ -26,6 +26,8 @@ ifeq ($(origin CXX),default) CXX=$(shell if [ -e /usr/bin/clang++ ]; then echo clang++; else echo g++; fi) endif +UNAME_M=$(shell uname -m) + INCLUDES= DEFS= LDLIBS?= @@ -36,6 +38,30 @@ OBJS+=osdep/LinuxEthernetTap.o # "make official" is a shortcut for this ifeq ($(ZT_OFFICIAL_RELEASE),1) DEFS+=-DZT_OFFICIAL_RELEASE + ZT_USE_MINIUPNPC=1 +endif + +ifeq ($(ZT_USE_MINIUPNPC),1) + DEFS+=-DZT_USE_MINIUPNPC + INCLUDES+=-Iext/bin/miniupnpc/include +ifeq ($(UNAME_M),armv6l) + MINIUPNPC_LIB=ext/bin/miniupnpc/linux-arm32/libminiupnpc.a +endif +ifeq ($(UNAME_M),armv7l) + MINIUPNPC_LIB=ext/bin/miniupnpc/linux-arm32/libminiupnpc.a +endif +ifeq ($(UNAME_M),x86_64) + MINIUPNPC_LIB=ext/bin/miniupnpc/linux-x64/libminiupnpc.a +endif +ifeq ($(UNAME_M),i386) + MINIUPNPC_LIB=ext/bin/miniupnpc/linux-x86/libminiupnpc.a +endif +ifeq ($(UNAME_M),i686) + MINIUPNPC_LIB=ext/bin/miniupnpc/linux-x86/libminiupnpc.a +endif + MINIUPNPC_LIB?=-lminiupnpc + LDLIBS+=$(MINIUPNPC_LIB) + OBJS+=osdep/UPNPClient.o endif # Build with ZT_ENABLE_NETWORK_CONTROLLER=1 to build with the Sqlite network controller From 7df4eb69b596594b7dfe0acda455c413117c8981 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 24 Jul 2015 17:49:56 -0700 Subject: [PATCH 32/37] Linux x64 libminiupnpc.a --- ext/bin/miniupnpc/linux-x64/libminiupnpc.a | Bin 0 -> 87942 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ext/bin/miniupnpc/linux-x64/libminiupnpc.a diff --git a/ext/bin/miniupnpc/linux-x64/libminiupnpc.a b/ext/bin/miniupnpc/linux-x64/libminiupnpc.a new file mode 100644 index 0000000000000000000000000000000000000000..270366e037abb01553295497010512a049ffdea2 GIT binary patch literal 87942 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 Vbp^|TW4^>2hnb4yX_}<6|1XtcGFSir literal 0 HcmV?d00001 From 3c54187c4019f29ed35a42ad3af06c38e16236ac Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 15:56:37 -0700 Subject: [PATCH 33/37] Linux x86 libminiupnpc.a --- ext/bin/miniupnpc/linux-x86/libminiupnpc.a | Bin 0 -> 67782 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ext/bin/miniupnpc/linux-x86/libminiupnpc.a diff --git a/ext/bin/miniupnpc/linux-x86/libminiupnpc.a b/ext/bin/miniupnpc/linux-x86/libminiupnpc.a new file mode 100644 index 0000000000000000000000000000000000000000..99cbef212b1e77d2bfe7e8763bc396669d5c8153 GIT binary patch literal 67782 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 literal 0 HcmV?d00001 From 14264c2d6f7d20b15081a1db5e8ca4b978d935a0 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 16:50:18 -0700 Subject: [PATCH 34/37] Add miniupnpc builds for Windows, fix some Windows build warnings. --- ext/bin/miniupnpc/windows-x64/miniupnpc.lib | Bin 0 -> 731616 bytes ext/bin/miniupnpc/windows-x86/miniupnpc.lib | Bin 0 -> 702786 bytes ext/installfiles/windows/ZeroTier One.aip | 6 +- osdep/Phy.hpp | 2 +- osdep/UPNPClient.cpp | 10 ++- windows/ZeroTierOne/ZeroTierOne.vcxproj | 46 +++++++++---- .../ZeroTierOne/ZeroTierOne.vcxproj.filters | 63 ++++++++++++++++++ 7 files changed, 109 insertions(+), 18 deletions(-) create mode 100644 ext/bin/miniupnpc/windows-x64/miniupnpc.lib create mode 100644 ext/bin/miniupnpc/windows-x86/miniupnpc.lib diff --git a/ext/bin/miniupnpc/windows-x64/miniupnpc.lib b/ext/bin/miniupnpc/windows-x64/miniupnpc.lib new file mode 100644 index 0000000000000000000000000000000000000000..e05fefc88a8caef4616f2690ca4ab3cacbd7c231 GIT binary patch literal 731616 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⪚< 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

Vo6iu(?H}Xg^}ra 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 N0GfYnETo|f{~x - + @@ -87,8 +87,8 @@ - - + + diff --git a/osdep/Phy.hpp b/osdep/Phy.hpp index 5afd715bf..2ea68b9de 100644 --- a/osdep/Phy.hpp +++ b/osdep/Phy.hpp @@ -781,7 +781,7 @@ public: // Causes entry to be deleted from list in poll(), ignored elsewhere sws.type = ZT_PHY_SOCKET_CLOSED; - if (sws.sock >= _nfds) { + if ((long)sws.sock >= (long)_nfds) { long nfds = (long)_whackSendSocket; if ((long)_whackReceiveSocket > nfds) nfds = (long)_whackReceiveSocket; diff --git a/osdep/UPNPClient.cpp b/osdep/UPNPClient.cpp index 20aa9d391..ceecb3a3a 100644 --- a/osdep/UPNPClient.cpp +++ b/osdep/UPNPClient.cpp @@ -40,8 +40,14 @@ #include "../node/Utils.hpp" #include "UPNPClient.hpp" -#include -#include +#ifdef __WINDOWS__ +#ifndef MINIUPNP_STATICLIB +#define MINIUPNP_STATICLIB +#endif +#endif + +#include "../ext/bin/miniupnpc/include/miniupnpc/miniupnpc.h" +#include "../ext/bin/miniupnpc/include/miniupnpc/upnpcommands.h" namespace ZeroTier { diff --git a/windows/ZeroTierOne/ZeroTierOne.vcxproj b/windows/ZeroTierOne/ZeroTierOne.vcxproj index 554669b60..14bf7c3eb 100644 --- a/windows/ZeroTierOne/ZeroTierOne.vcxproj +++ b/windows/ZeroTierOne/ZeroTierOne.vcxproj @@ -47,6 +47,7 @@ + true @@ -61,6 +62,22 @@ + + + + + + + + + + + + + + + + @@ -108,6 +125,7 @@ + @@ -193,12 +211,13 @@ Level3 Disabled true - $(SolutionDir)\ext\bin\libcrypto\include - NOMINMAX;ZT_TRACE;%(PreprocessorDefinitions) + + + NOMINMAX;ZT_TRACE;ZT_USE_MINIUPNPC;%(PreprocessorDefinitions) true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x86\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false @@ -207,12 +226,13 @@ Level3 Disabled true - $(SolutionDir)\ext\bin\libcrypto\include - NOMINMAX;ZT_TRACE;%(PreprocessorDefinitions) + + + NOMINMAX;ZT_TRACE;ZT_USE_MINIUPNPC;%(PreprocessorDefinitions) true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x64\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false @@ -223,8 +243,9 @@ true true true - $(SolutionDir)\ext\bin\libcrypto\include - ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;NOMINMAX;%(PreprocessorDefinitions) + + + ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;ZT_USE_MINIUPNPC;NOMINMAX;%(PreprocessorDefinitions) MultiThreaded NoExtensions true @@ -236,7 +257,7 @@ true true true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x86\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false @@ -247,8 +268,9 @@ true true true - $(SolutionDir)\ext\bin\libcrypto\include - ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;NOMINMAX;%(PreprocessorDefinitions) + + + ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;ZT_USE_MINIUPNPC;NOMINMAX;%(PreprocessorDefinitions) MultiThreaded NotSet true @@ -260,7 +282,7 @@ true true true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x64\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false diff --git a/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters b/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters index f36b5dc0e..abaa8547d 100644 --- a/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters +++ b/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters @@ -70,6 +70,15 @@ {bf604491-14c4-4a74-81a6-6105d07c5c7c} + + {5939db69-ab17-47c6-97fb-185e2c678737} + + + {3666f510-b6da-47cb-8039-56441f2dac3e} + + + {1a47071e-e51b-4535-89ae-858946f03118} + @@ -177,6 +186,9 @@ Source Files\osdep + + Source Files\osdep + @@ -347,6 +359,57 @@ Header Files\node + + Header Files\osdep + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + From e3983f8a574f4bb4b54bba5995c5f8be0ac78957 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 16:51:46 -0700 Subject: [PATCH 35/37] Get rid of -I on Mac and Linux since we include miniupnpc headers by direct path reference. --- make-linux.mk | 1 - make-mac.mk | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/make-linux.mk b/make-linux.mk index 7697e3ace..2ef9b9850 100644 --- a/make-linux.mk +++ b/make-linux.mk @@ -43,7 +43,6 @@ endif ifeq ($(ZT_USE_MINIUPNPC),1) DEFS+=-DZT_USE_MINIUPNPC - INCLUDES+=-Iext/bin/miniupnpc/include ifeq ($(UNAME_M),armv6l) MINIUPNPC_LIB=ext/bin/miniupnpc/linux-arm32/libminiupnpc.a endif diff --git a/make-mac.mk b/make-mac.mk index 707d517cc..c0b3f89d1 100644 --- a/make-mac.mk +++ b/make-mac.mk @@ -14,7 +14,7 @@ include objects.mk OBJS+=osdep/OSXEthernetTap.o # Comment out to disable building against shipped libminiupnpc binary for Mac -ZT_USE_MINIUPNPC=1 +ZT_USE_MINIUPNPC?=1 # Disable codesign since open source users will not have ZeroTier's certs CODESIGN=echo @@ -38,7 +38,6 @@ endif ifeq ($(ZT_USE_MINIUPNPC),1) DEFS+=-DZT_USE_MINIUPNPC - INCLUDES+=-Iext/bin/miniupnpc/include LIBS+=ext/bin/miniupnpc/mac-x64/libminiupnpc.a OBJS+=osdep/UPNPClient.o endif From 2599b1bacc2b34ca797eca76d079262f34c93366 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 17:10:56 -0700 Subject: [PATCH 36/37] Add CLI support for /explicit/urls (automatically outputs JSON in this case), and some cleanup. --- one.cpp | 20 ++++++++++++++++++-- service/OneService.hpp | 2 -- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/one.cpp b/one.cpp index c4970ab83..d63459193 100644 --- a/one.cpp +++ b/one.cpp @@ -256,7 +256,23 @@ static int cli(int argc,char **argv) requestHeaders["X-ZT1-Auth"] = authToken; - if ((command == "info")||(command == "status")) { + if ((command.length() > 0)&&(command[0] == '/')) { + unsigned int scode = Http::GET( + 1024 * 1024 * 16, + 60000, + (const struct sockaddr *)&addr, + command.c_str(), + requestHeaders, + responseHeaders, + responseBody); + if (scode == 200) { + printf("%s",cliFixJsonCRs(responseBody).c_str()); + return 0; + } else { + printf("%u %s %s"ZT_EOL_S,scode,command.c_str(),responseBody.c_str()); + return 1; + } + } else if ((command == "info")||(command == "status")) { unsigned int scode = Http::GET( 1024 * 1024 * 16, 60000, @@ -363,7 +379,7 @@ static int cli(int argc,char **argv) else if ((!strcmp(jpath->u.object.values[kk].name,"active"))&&(jpath->u.object.values[kk].value->type == json_boolean)) active = (jpath->u.object.values[kk].value->u.boolean != 0); } - if (paddr) { + if ((paddr)&&((active)||(fixed))) { int64_t now = (int64_t)OSUtils::now(); if (lastSend > 0) lastSend = now - lastSend; diff --git a/service/OneService.hpp b/service/OneService.hpp index 7964958c7..7a4f78275 100644 --- a/service/OneService.hpp +++ b/service/OneService.hpp @@ -106,8 +106,6 @@ public: * The terminate() method may be called from a signal handler or another * thread to terminate execution. Otherwise this will not return unless * another condition terminates execution such as a fatal error. - * - * @param */ virtual ReasonForTermination run() = 0; From 7578b5629849f6c286c353dce713b0816b1cc4a9 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 28 Jul 2015 17:22:59 -0700 Subject: [PATCH 37/37] docs --- include/ZeroTierOne.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h index dc2243f21..8583aa3ad 100644 --- a/include/ZeroTierOne.h +++ b/include/ZeroTierOne.h @@ -967,11 +967,15 @@ void ZT1_Node_freeQueryResult(ZT1_Node *node,void *qr); * Take care that these are never ZeroTier interface addresses, otherwise * strange things might happen or they simply won't work. * + * Addresses can also be added here if they are the result of a UPnP or + * NAT-PMP port mapping or other discovery or mapping means. + * * This returns a boolean indicating whether or not the address was * accepted. ZeroTier will only communicate over certain address types * and (for IP) address classes. Thus it's safe to just dump your OS's * entire remote IP list (excluding ZeroTier interface IPs) into here - * and let ZeroTier determine which addresses it will use. + * and let ZeroTier determine which addresses it will use. It will + * reject bad, empty, and unusable addresses. * * @param addr Local interface address * @param metric Local interface metric