net-p2p/reticulum: Remove port

Niche use case, not aligned with broad server application needs
This commit is contained in:
Bastard Operator from Hell 2025-05-27 22:45:48 +02:00
parent 4268bc4054
commit af14b13192
No known key found for this signature in database
GPG Key ID: BDB9B5A617C0BC91
10 changed files with 1 additions and 817 deletions

View File

@ -6676,6 +6676,7 @@ net-p2p/qbittorrent
net-p2p/radarr
net-p2p/readarr
net-p2p/renterd
net-p2p/reticulum
net-p2p/retroshare
net-p2p/rslsync
net-p2p/rtorrent

View File

@ -1,5 +1,4 @@
COMMENT = Peer-to-peer network applications
SUBDIR += reticulum
.include <bsd.port.subdir.mk>

View File

@ -1,33 +0,0 @@
PORTNAME= reticulum
DISTVERSION= 0.7.7
PORTREVISION= 1
CATEGORIES= net-p2p
MASTER_SITES= PYPI
DISTNAME= rns-${DISTVERSION}
MAINTAINER= cs@FreeBSD.org
COMMENT= Self-configuring, encrypted and resilient mesh networking stack
WWW= https://reticulum.network/
LICENSE= MIT
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}netifaces>=0:net/py-netifaces@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR}
USES= python
USE_PYTHON= cryptography distutils
USE_RC_SUBR= reticulum
GROUPS= _reticulum
USERS= _reticulum
SUB_LIST= USERS="${USERS}" \
GROUPS="${GROUPS}" \
PYTHON=${PYTHON_CMD}
PLIST_SUB= USERS="${USERS}" GROUPS="${GROUPS}"
NO_ARCH= yes
post-install:
@${MKDIR} ${STAGEDIR}${ETCDIR} ${STAGEDIR}/var/db/reticulum ${STAGEDIR}/var/run/reticulum ${STAGEDIR}/var/log/reticulum
${INSTALL_DATA} ${PATCHDIR}/config.sample ${STAGEDIR}${ETCDIR}/config.sample
.include <bsd.port.mk>

View File

@ -1,3 +0,0 @@
TIMESTAMP = 1726335418
SHA256 (rns-0.7.7.tar.gz) = 123f2a1f7e3b254a6c13c76bdb3811956d83e5f04221329f86929a64232c43db
SIZE (rns-0.7.7.tar.gz) = 13049034

View File

@ -1,365 +0,0 @@
# This is an example Reticulum config file.
# You should probably edit it to include any additional,
# interfaces and settings you might need.
[reticulum]
# Define the DB directory
dbdir = "/var/db/reticulum"
# If you enable Transport, your system will route traffic
# for other peers, pass announces and serve path requests.
# This should be done for systems that are suited to act
# as transport nodes, ie. if they are stationary and
# always-on. This directive is optional and can be removed
# for brevity.
enable_transport = No
# By default, the first program to launch the Reticulum
# Network Stack will create a shared instance, that other
# programs can communicate with. Only the shared instance
# opens all the configured interfaces directly, and other
# local programs communicate with the shared instance over
# a local socket. This is completely transparent to the
# user, and should generally be turned on. This directive
# is optional and can be removed for brevity.
share_instance = Yes
# If you want to run multiple *different* shared instances
# on the same system, you will need to specify different
# shared instance ports for each. The defaults are given
# below, and again, these options can be left out if you
# don't need them.
shared_instance_port = 37428
instance_control_port = 37429
# On systems where running instances may not have access
# to the same shared Reticulum configuration directory,
# it is still possible to allow full interactivity for
# running instances, by manually specifying a shared RPC
# key. In almost all cases, this option is not needed, but
# it can be useful on operating systems such as Android.
# The key must be specified as bytes in hexadecimal.
# rpc_key = e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790
# You can configure Reticulum to panic and forcibly close
# if an unrecoverable interface error occurs, such as the
# hardware device for an interface disappearing. This is
# an optional directive, and can be left out for brevity.
# This behaviour is disabled by default.
panic_on_interface_error = No
# When Transport is enabled, it is possible to allow the
# Transport Instance to respond to probe requests from
# the rnprobe utility. This can be a useful tool to test
# connectivity. When this option is enabled, the probe
# destination will be generated from the Identity of the
# Transport Instance, and printed to the log at startup.
# Optional, and disabled by default.
respond_to_probes = No
[logging]
# Valid log levels are 0 through 7:
# 0: Log only critical information
# 1: Log errors and lower log levels
# 2: Log warnings and lower log levels
# 3: Log notices and lower log levels
# 4: Log info and lower (this is the default)
# 5: Verbose logging
# 6: Debug logging
# 7: Extreme logging
loglevel = 4
# The interfaces section defines the physical and virtual
# interfaces Reticulum will use to communicate on. This
# section will contain examples for a variety of interface
# types. You can modify these or use them as a basis for
# your own config, or simply remove the unused ones.
[interfaces]
# This interface enables communication with other
# link-local Reticulum nodes over UDP. It does not
# need any functional IP infrastructure like routers
# or DHCP servers, but will require that at least link-
# local IPv6 is enabled in your operating system, which
# should be enabled by default in almost any OS. See
# the Reticulum Manual for more configuration options.
[[Default Interface]]
type = AutoInterface
enabled = yes
# The following example enables communication with other
# local Reticulum peers using UDP broadcasts.
[[UDP Interface]]
type = UDPInterface
enabled = no
listen_ip = 0.0.0.0
listen_port = 4242
forward_ip = 255.255.255.255
forward_port = 4242
# The above configuration will allow communication
# within the local broadcast domains of all local
# IP interfaces.
# Instead of specifying listen_ip, listen_port,
# forward_ip and forward_port, you can also bind
# to a specific network device like below.
# device = eth0
# port = 4242
# Assuming the eth0 device has the address
# 10.55.0.72/24, the above configuration would
# be equivalent to the following manual setup.
# Note that we are both listening and forwarding to
# the broadcast address of the network segments.
# listen_ip = 10.55.0.255
# listen_port = 4242
# forward_ip = 10.55.0.255
# forward_port = 4242
# You can of course also communicate only with
# a single IP address
# listen_ip = 10.55.0.15
# listen_port = 4242
# forward_ip = 10.55.0.16
# forward_port = 4242
# This example demonstrates a TCP server interface.
# It will listen for incoming connections on the
# specified IP address and port number.
[[TCP Server Interface]]
type = TCPServerInterface
enabled = no
# This configuration will listen on all IP
# interfaces on port 4242
listen_ip = 0.0.0.0
listen_port = 4242
# Alternatively you can bind to a specific IP
# listen_ip = 10.0.0.88
# listen_port = 4242
# Or a specific network device
# device = eth0
# port = 4242
# To connect to a TCP server interface, you would
# naturally use the TCP client interface. Here's
# an example. The target_host can either be an IP
# address or a hostname
[[TCP Client Interface]]
type = TCPClientInterface
enabled = no
target_host = 127.0.0.1
target_port = 4242
# This example shows how to make your Reticulum
# instance available over I2P, and connect to
# another I2P peer. Please be aware that you
# must have an I2P router running on your system
# with the SAMv3 API enabled for this to work.
[[I2P]]
type = I2PInterface
enabled = no
connectable = yes
peers = ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha.b32.i2p
# Here's an example of how to add a LoRa interface
# using the RNode LoRa transceiver.
[[RNode LoRa Interface]]
type = RNodeInterface
# Enable interface if you want use it!
enabled = no
# Serial port for the device
port = /dev/ttyUSB0
# Set frequency to 867.2 MHz
frequency = 867200000
# Set LoRa bandwidth to 125 KHz
bandwidth = 125000
# Set TX power to 7 dBm (5 mW)
txpower = 7
# Select spreading factor 8. Valid
# range is 7 through 12, with 7
# being the fastest and 12 having
# the longest range.
spreadingfactor = 8
# Select coding rate 5. Valid range
# is 5 throough 8, with 5 being the
# fastest, and 8 the longest range.
codingrate = 5
# You can configure the RNode to send
# out identification on the channel with
# a set interval by configuring the
# following two parameters. The trans-
# ceiver will only ID if the set
# interval has elapsed since it's last
# actual transmission. The interval is
# configured in seconds.
# This option is commented out and not
# used by default.
# id_callsign = MYCALL-0
# id_interval = 600
# For certain homebrew RNode interfaces
# with low amounts of RAM, using packet
# flow control can be useful. By default
# it is disabled.
flow_control = False
# An example KISS modem interface. Useful for running
# Reticulum over packet radio hardware.
[[Packet Radio KISS Interface]]
type = KISSInterface
# Enable interface if you want use it!
enabled = no
# Serial port for the device
port = /dev/ttyUSB1
# Set the serial baud-rate and other
# configuration parameters.
speed = 115200
databits = 8
parity = none
stopbits = 1
# Set the modem preamble. A 150ms
# preamble should be a reasonable
# default, but may need to be
# increased for radios with slow-
# opening squelch and long TX/RX
# turnaround
preamble = 150
# Set the modem TX tail. In most
# cases this should be kept as low
# as possible to not waste airtime.
txtail = 10
# Configure CDMA parameters. These
# settings are reasonable defaults.
persistence = 200
slottime = 20
# You can configure the interface to send
# out identification on the channel with
# a set interval by configuring the
# following two parameters. The KISS
# interface will only ID if the set
# interval has elapsed since it's last
# actual transmission. The interval is
# configured in seconds.
# This option is commented out and not
# used by default.
# id_callsign = MYCALL-0
# id_interval = 600
# Whether to use KISS flow-control.
# This is useful for modems that have
# a small internal packet buffer, but
# support packet flow control instead.
flow_control = false
# If you're using Reticulum on amateur radio spectrum,
# you might want to use the AX.25 KISS interface. This
# way, Reticulum will automatically encapsulate it's
# traffic in AX.25 and also identify your stations
# transmissions with your callsign and SSID.
#
# Only do this if you really need to! Reticulum doesn't
# need the AX.25 layer for anything, and it incurs extra
# overhead on every packet to encapsulate in AX.25.
#
# A more efficient way is to use the plain KISS interface
# with the beaconing functionality described above.
[[Packet Radio AX.25 KISS Interface]]
type = AX25KISSInterface
# Set the station callsign and SSID
callsign = NO1CLL
ssid = 0
# Enable interface if you want use it!
enabled = no
# Serial port for the device
port = /dev/ttyUSB2
# Set the serial baud-rate and other
# configuration parameters.
speed = 115200
databits = 8
parity = none
stopbits = 1
# Whether to use KISS flow-control.
# This is useful for modems with a
# small internal packet buffer.
flow_control = false
# Set the modem preamble. A 150ms
# preamble should be a reasonable
# default, but may need to be
# increased for radios with slow-
# opening squelch and long TX/RX
# turnaround
preamble = 150
# Set the modem TX tail. In most
# cases this should be kept as low
# as possible to not waste airtime.
txtail = 10
# Configure CDMA parameters. These
# settings are reasonable defaults.
persistence = 200
slottime = 20

View File

@ -1,105 +0,0 @@
--- RNS/Reticulum.py.orig 2022-11-03 16:31:20 UTC
+++ RNS/Reticulum.py
@@ -141,6 +141,7 @@ class Reticulum:
# named ".reticulum" inside the current users home directory
userdir = os.path.expanduser("~")
configdir = None
+ dbdir = ""
configpath = ""
storagepath = ""
cachepath = ""
@@ -181,7 +182,9 @@ class Reticulum:
if configdir != None:
Reticulum.configdir = configdir
else:
- if os.path.isdir("/etc/reticulum") and os.path.isfile("/etc/reticulum/config"):
+ if os.path.isdir("/usr/local/etc/reticulum") and os.path.isfile("/usr/local/etc/reticulum/config"):
+ Reticulum.configdir = "/usr/local/etc/reticulum"
+ elif os.path.isdir("/etc/reticulum") and os.path.isfile("/etc/reticulum/config"):
Reticulum.configdir = "/etc/reticulum"
elif os.path.isdir(Reticulum.userdir+"/.config/reticulum") and os.path.isfile(Reticulum.userdir+"/.config/reticulum/config"):
Reticulum.configdir = Reticulum.userdir+"/.config/reticulum"
@@ -193,10 +196,7 @@ class Reticulum:
RNS.logfile = Reticulum.configdir+"/logfile"
Reticulum.configpath = Reticulum.configdir+"/config"
- Reticulum.storagepath = Reticulum.configdir+"/storage"
- Reticulum.cachepath = Reticulum.configdir+"/storage/cache"
- Reticulum.resourcepath = Reticulum.configdir+"/storage/resources"
- Reticulum.identitypath = Reticulum.configdir+"/storage/identities"
+ Reticulum.dbdir = Reticulum.configdir
Reticulum.__transport_enabled = False
Reticulum.__use_implicit_proof = True
@@ -226,18 +226,6 @@ class Reticulum:
self.last_data_persist = time.time()
self.last_cache_clean = 0
- if not os.path.isdir(Reticulum.storagepath):
- os.makedirs(Reticulum.storagepath)
-
- if not os.path.isdir(Reticulum.cachepath):
- os.makedirs(Reticulum.cachepath)
-
- if not os.path.isdir(Reticulum.resourcepath):
- os.makedirs(Reticulum.resourcepath)
-
- if not os.path.isdir(Reticulum.identitypath):
- os.makedirs(Reticulum.identitypath)
-
if os.path.isfile(self.configpath):
try:
self.config = ConfigObj(self.configpath)
@@ -253,7 +241,7 @@ class Reticulum:
self.__apply_config()
RNS.log("Configuration loaded from "+self.configpath, RNS.LOG_VERBOSE)
-
+
RNS.Identity.load_known_destinations()
RNS.Transport.start(self)
@@ -345,6 +333,9 @@ class Reticulum:
if "reticulum" in self.config:
for option in self.config["reticulum"]:
value = self.config["reticulum"][option]
+ if option == "dbdir":
+ value = self.config["reticulum"][option]
+ Reticulum.dbdir = value
if option == "share_instance":
value = self.config["reticulum"].as_bool(option)
self.share_instance = value
@@ -369,6 +360,23 @@ class Reticulum:
if v == False:
Reticulum.__use_implicit_proof = False
+ Reticulum.storagepath = Reticulum.dbdir+"/storage"
+ Reticulum.cachepath = Reticulum.dbdir+"/storage/cache"
+ Reticulum.resourcepath = Reticulum.dbdir+"/storage/resources"
+ Reticulum.identitypath = Reticulum.dbdir+"/storage/identities"
+
+ if not os.path.isdir(Reticulum.storagepath):
+ os.makedirs(Reticulum.storagepath)
+
+ if not os.path.isdir(Reticulum.cachepath):
+ os.makedirs(Reticulum.cachepath)
+
+ if not os.path.isdir(Reticulum.resourcepath):
+ os.makedirs(Reticulum.resourcepath)
+
+ if not os.path.isdir(Reticulum.identitypath):
+ os.makedirs(Reticulum.identitypath)
+
self.__start_local_interface()
if self.is_shared_instance or self.is_standalone_instance:
@@ -1275,6 +1283,9 @@ __default_rns_config__ = '''# This is the default Reti
[reticulum]
+
+# Define the DB directory
+dbdir = "/var/db/reticulum"
# If you enable Transport, your system will route traffic
# for other peers, pass announces and serve path requests.

View File

@ -1,12 +0,0 @@
--- RNS/Utilities/rnsd.py.orig 2023-02-23 17:25:44 UTC
+++ RNS/Utilities/rnsd.py
@@ -80,6 +80,9 @@ __example_rns_config__ = '''# This is an example Retic
[reticulum]
+# Define the DB directory
+dbdir = "/var/db/reticulum"
+
# If you enable Transport, your system will route traffic
# for other peers, pass announces and serve path requests.
# This should be done for systems that are suited to act

View File

@ -1,39 +0,0 @@
#!/bin/sh
# PROVIDE: reticulum
# REQUIRE: DAEMON FILESYSTEMS
# BEFORE: LOGIN
#
# Add these lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# reticulum_enable (bool): Set to NO by default.
# Set it to YES to enable reticulum.
# reticulum_config (path): Set to %%PREFIX%%/etc/reticulum/
# by default.
# reticulum_user (str): Reticulum daemon user. Default: %%USERS%%
# reticulum_group (str): Reticulum daemon group. Default: %%GROUPS%%
. /etc/rc.subr
name="reticulum"
rcvar="reticulum_enable"
load_rc_config $name
: ${reticulum_enable:="NO"}
: ${reticulum_config="%%PREFIX%%/etc/reticulum/"}
: ${reticulum_user="%%USERS%%"}
: ${reticulum_group="%%GROUPS%%"}
pidfiledir="/var/run/${name}"
pidfile="${pidfiledir}/${name}.pid"
logfiledir="/var/log/${name}"
logfile="${logfiledir}/${name}.log"
command="/usr/sbin/daemon"
command_interpreter=%%PYTHON%%
procname="%%PREFIX%%/bin/rnsd"
command_args="-f -o $logfile -p $pidfile $procname --config $reticulum_config"
run_rc_command "$1"

View File

@ -1,4 +0,0 @@
Reticulum is a cryptography-based networking stack for building local and
wide-area networks with readily available hardware. Reticulum can continue to
operate even in adverse conditions with very high latency and extremely low
bandwidth.

View File

@ -1,255 +0,0 @@
bin/rncp
bin/rnid
bin/rnir
bin/rnodeconf
bin/rnpath
bin/rnprobe
bin/rnsd
bin/rnstatus
bin/rnx
@sample %%ETCDIR%%/config.sample
%%PYTHON_SITELIBDIR%%/RNS/Buffer.py
%%PYTHON_SITELIBDIR%%/RNS/Channel.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/AES.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/Ed25519.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/Fernet.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/HKDF.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/HMAC.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/Hashes.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/PKCS7.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/Provider.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/Proxies.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/SHA256.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/SHA512.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/X25519.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/AES%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/AES%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Ed25519%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Ed25519%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Fernet%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Fernet%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HKDF%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HKDF%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HMAC%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HMAC%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Hashes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Hashes%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/PKCS7%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/PKCS7%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Provider%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Provider%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Proxies%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Proxies%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA256%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA256%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA512%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA512%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/X25519%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/X25519%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/aes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/aes%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/aes.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/utils.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/_ed25519%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/_ed25519%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/basic%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/basic%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/ed25519_oop%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/ed25519_oop%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/eddsa%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/eddsa%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/_ed25519.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/basic.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/ed25519_oop.py
%%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/eddsa.py
%%PYTHON_SITELIBDIR%%/RNS/Destination.py
%%PYTHON_SITELIBDIR%%/RNS/Identity.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/AX25KISSInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/KISSInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/RNodeInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/SerialInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/AutoInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/I2PInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/Interface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/KISSInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/LocalInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/PipeInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/RNodeInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/RNodeMultiInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/SerialInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/TCPInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/UDPInterface.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AX25KISSInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AX25KISSInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AutoInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AutoInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/I2PInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/I2PInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/Interface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/Interface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/LocalInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/LocalInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/PipeInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/PipeInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/RNodeMultiInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/RNodeMultiInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/TCPInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/TCPInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/UDPInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/UDPInterface%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Link.py
%%PYTHON_SITELIBDIR%%/RNS/Packet.py
%%PYTHON_SITELIBDIR%%/RNS/Resolver.py
%%PYTHON_SITELIBDIR%%/RNS/Resource.py
%%PYTHON_SITELIBDIR%%/RNS/Reticulum.py
%%PYTHON_SITELIBDIR%%/RNS/Transport.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rncp%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rncp%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnid%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnid%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnir%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnir%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnodeconf%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnodeconf%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnpath%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnpath%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnprobe%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnprobe%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnsd%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnsd%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnstatus%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnstatus%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnx%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnx%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rncp.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnid.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnir.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnodeconf.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnpath.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnprobe.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnsd.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnstatus.py
%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnx.py
%%PYTHON_SITELIBDIR%%/RNS/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Buffer%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Buffer%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Channel%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Channel%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Destination%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Destination%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Identity%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Identity%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Link%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Link%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Packet%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Packet%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resolver%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resolver%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resource%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resource%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Reticulum%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Reticulum%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Transport%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Transport%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/_version%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/__pycache__/_version%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/_version.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/configobj%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/configobj%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/platformutils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/platformutils%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/six%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/six%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/umsgpack%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/umsgpack%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/configobj.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__version__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__version__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/aiosam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/aiosam%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/log%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/log%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/sam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/sam%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/tunnel%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/tunnel%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__version__.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/aiosam.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/exceptions.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/log.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/sam.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/tunnel.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/utils.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__init__.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_posix%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_posix%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_shared%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_shared%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_win32%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_win32%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/niwrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/niwrapper%%PYTHON_EXT_SUFFIX%%.pyc
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/_posix.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/_shared.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/_win32.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/niwrapper.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/platformutils.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/six.py
%%PYTHON_SITELIBDIR%%/RNS/vendor/umsgpack.py
%%PYTHON_SITELIBDIR%%/rns-0.7.7-py%%PYTHON_VER%%.egg-info/PKG-INFO
%%PYTHON_SITELIBDIR%%/rns-0.7.7-py%%PYTHON_VER%%.egg-info/SOURCES.txt
%%PYTHON_SITELIBDIR%%/rns-0.7.7-py%%PYTHON_VER%%.egg-info/dependency_links.txt
%%PYTHON_SITELIBDIR%%/rns-0.7.7-py%%PYTHON_VER%%.egg-info/entry_points.txt
%%PYTHON_SITELIBDIR%%/rns-0.7.7-py%%PYTHON_VER%%.egg-info/requires.txt
%%PYTHON_SITELIBDIR%%/rns-0.7.7-py%%PYTHON_VER%%.egg-info/top_level.txt
@owner %%USERS%%
@group %%GROUPS%%
@dir /var/db/reticulum
@dir /var/log/reticulum
@dir /var/run/reticulum