From c4ecbf29cb8afe8637ae2d139f7031f45a4b4e9d Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Sun, 2 Jun 2024 08:39:38 +0200 Subject: [PATCH] Updated docs --- docs/manual/_images/meshchat_1.webp | Bin 0 -> 76660 bytes .../_sources/gettingstartedfast.rst.txt | 22 +++++++++++++++ docs/manual/gettingstartedfast.html | 10 +++++++ docs/manual/index.html | 1 + docs/manual/searchindex.js | 2 +- docs/source/gettingstartedfast.rst | 25 +++++++++++++++++- docs/source/screenshots/meshchat_1.png | Bin 0 -> 83973 bytes docs/source/screenshots/meshchat_1.webp | Bin 0 -> 76660 bytes 8 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 docs/manual/_images/meshchat_1.webp create mode 100644 docs/source/screenshots/meshchat_1.png create mode 100644 docs/source/screenshots/meshchat_1.webp diff --git a/docs/manual/_images/meshchat_1.webp b/docs/manual/_images/meshchat_1.webp new file mode 100644 index 0000000000000000000000000000000000000000..87b0ddb2c330a86034760d79d65b6423438c4427 GIT binary patch literal 76660 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 V82JCkz`rIp7!Tk~hX71n{s%%hf$IPO literal 0 HcmV?d00001 diff --git a/docs/manual/_sources/gettingstartedfast.rst.txt b/docs/manual/_sources/gettingstartedfast.rst.txt index 6af7569..d1106b1 100644 --- a/docs/manual/_sources/gettingstartedfast.rst.txt +++ b/docs/manual/_sources/gettingstartedfast.rst.txt @@ -128,6 +128,28 @@ systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted Q Paper Messages, or anything else Reticulum supports. It also interoperates with the Nomad Network program. +Meshchat +^^^^^^^^ + +The `Reticulum Meshchat `_ application +is a user-friendly LXMF client for macOS and Windows, that also includes voice call +functionality, and a range of other interesting functions. + +.. only:: html + + .. image:: screenshots/meshchat_1.webp + :align: center + :target: _images/meshchat_1.webp + +.. only:: latexpdf + + .. image:: screenshots/meshchat_1.png + :align: center + :target: _images/meshchat_1.png + +Reticulum Meshchat is of course also compatible with Sideband and Nomad Network, or +any other LXMF client. + Using the Included Utilities ============================================= Reticulum comes with a range of included utilities that make it easier to diff --git a/docs/manual/gettingstartedfast.html b/docs/manual/gettingstartedfast.html index 07c60af..41a18d9 100644 --- a/docs/manual/gettingstartedfast.html +++ b/docs/manual/gettingstartedfast.html @@ -315,6 +315,15 @@ systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted Q Paper Messages, or anything else Reticulum supports. It also interoperates with the Nomad Network program.

+

Using the Included Utilities#

@@ -735,6 +744,7 @@ section of this manual.

  • Remote Shell
  • Nomad Network
  • Sideband
  • +
  • Meshchat
  • Using the Included Utilities
  • diff --git a/docs/manual/index.html b/docs/manual/index.html index 91b3951..f49aa73 100644 --- a/docs/manual/index.html +++ b/docs/manual/index.html @@ -247,6 +247,7 @@ to participate in the development of Reticulum itself.

  • Remote Shell
  • Nomad Network
  • Sideband
  • +
  • Meshchat
  • Using the Included Utilities
  • diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js index c61a580..4249ca7 100644 --- a/docs/manual/searchindex.js +++ b/docs/manual/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["examples", "forhumans", "gettingstartedfast", "hardware", "index", "interfaces", "networks", "reference", "support", "understanding", "using", "whatis"], "filenames": ["examples.rst", "forhumans.rst", "gettingstartedfast.rst", "hardware.rst", "index.rst", "interfaces.rst", "networks.rst", "reference.rst", "support.rst", "understanding.rst", "using.rst", "whatis.rst"], "titles": ["Code Examples", "An Explanation of Reticulum for Human Beings", "Getting Started Fast", "Communications Hardware", "Reticulum Network Stack Manual", "Configuring Interfaces", "Building Networks", "API Reference", "Support Reticulum", "Understanding Reticulum", "Using Reticulum on Your System", "What is Reticulum?"], "terms": {"A": [0, 2, 5, 6, 7, 9, 10, 11], "number": [0, 2, 5, 6, 7, 9, 10], "ar": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "includ": [0, 3, 4, 5, 7, 9], "sourc": [0, 2, 3, 6, 9, 11], "distribut": [0, 2, 6, 7, 9, 10], "reticulum": [0, 5, 6, 7], "you": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "can": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "us": [0, 3, 4, 5, 6, 7, 9], "learn": [0, 2, 8, 9], "how": [0, 2, 3, 5, 6, 9, 10, 11], "write": [0, 2, 5, 7, 9, 10], "your": [0, 2, 3, 4, 5, 6, 8, 9, 11], "own": [0, 2, 6, 7, 9, 10, 11], "program": [0, 3, 4, 5, 7, 9, 11], "The": [0, 2, 3, 4, 5, 6, 7, 11], "demonstr": [0, 5], "bare": [0, 5], "minimum": [0, 5, 6, 7, 9], "setup": [0, 2, 4, 5, 10], "requir": [0, 2, 5, 6, 7, 9, 10, 11], "connect": [0, 3, 4, 5, 6, 7, 9, 10, 11], "network": [0, 3, 5, 7, 9, 10, 11], "from": [0, 2, 3, 5, 6, 7, 9, 10, 11], "In": [0, 2, 3, 5, 6, 7, 9, 10, 11], "about": [0, 2, 3, 5, 6, 7, 9], "five": 0, "line": [0, 2, 4, 5, 6, 9, 10, 11], "have": [0, 2, 3, 5, 6, 7, 9, 10], "stack": [0, 2, 6, 7, 9, 10, 11], "initialis": [0, 7, 10], "readi": [0, 2, 3, 5, 6, 7, 11], "pass": [0, 3, 5, 6, 7, 9, 10], "traffic": [0, 2, 5, 6, 7, 9, 10], "thi": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "rn": [0, 2, 3, 7, 9, 10], "start": [0, 3, 4, 5, 7, 9, 10], "up": [0, 2, 3, 5, 6, 9, 10, 11], "gener": [0, 2, 3, 5, 6, 7, 9, 10, 11], "new": [0, 4, 6, 7, 9, 10], "destin": [0, 2, 4, 6, 7, 10], "let": [0, 2, 5, 6, 9, 10], "user": [0, 2, 5, 6, 9, 10, 11], "send": [0, 5, 7, 9, 10], "an": [0, 2, 3, 5, 6, 7, 9, 10, 11], "import": [0, 2, 3, 5, 6, 7, 8, 9], "argpars": 0, "": [0, 2, 5, 6, 9, 10, 11], "defin": [0, 5, 7, 9, 10], "app": [0, 2, 7, 9], "name": [0, 4, 5, 6, 7], "we": [0, 2, 3, 5, 8, 9], "ll": [0, 2, 11], "all": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "creat": [0, 4, 5, 6, 7, 9, 10, 11], "sinc": [0, 2, 5, 6, 7, 9], "basic": [0, 2, 4, 7, 10], "i": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "part": [0, 5, 6, 7, 9, 10], "rang": [0, 2, 3, 5, 6, 9, 10, 11], "util": [0, 3, 4, 5, 9], "put": [0, 3, 5, 10], "them": [0, 2, 3, 5, 6, 8, 9, 10, 11], "within": [0, 2, 5, 6, 7, 9], "namespac": 0, "example_util": 0, "app_nam": [0, 7], "execut": [0, 2, 5, 7, 10], "when": [0, 2, 3, 5, 6, 7, 9, 10], "def": 0, "program_setup": 0, "configpath": 0, "must": [0, 2, 5, 6, 7, 9, 10], "first": [0, 2, 5, 7, 9, 10], "randomli": [0, 9], "ident": [0, 2, 4, 7, 10, 11], "our": [0, 9], "just": [0, 2, 3, 5, 6, 9, 11], "endpoint": [0, 6, 7, 9], "address": [0, 2, 5, 6, 7, 9, 11], "commun": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11], "also": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "exist": [0, 2, 3, 5, 9, 10, 11], "which": [0, 2, 5, 6, 7, 9, 10], "know": [0, 2, 3, 6, 7, 9, 11], "thei": [0, 2, 5, 6, 7, 9, 10], "reachabl": [0, 2, 5, 6, 7, 9, 10], "automat": [0, 2, 3, 5, 6, 7, 9, 10, 11], "path": [0, 2, 3, 5, 7, 9, 10], "anywher": [0, 5], "els": [0, 2, 6, 9], "IN": [0, 7], "singl": [0, 5, 7, 9, 10, 11], "minimalsampl": 0, "configur": [0, 2, 3, 4, 6, 7, 9, 11], "prove": [0, 9], "packet": [0, 2, 4, 5, 6, 7, 10, 11], "By": [0, 2, 5, 7, 9, 10], "do": [0, 2, 3, 5, 7, 9, 10, 11], "proof": [0, 7, 9, 10], "each": [0, 2, 5, 6, 9, 10], "incom": [0, 5, 7, 10], "transmit": [0, 5, 9], "back": [0, 5, 9, 11], "sender": [0, 2, 6, 9, 10], "anyon": [0, 2, 3, 5, 6, 7, 9, 10], "tri": 0, "whether": [0, 5, 7, 9], "wa": [0, 3, 5, 6, 7, 9, 10, 11], "receiv": [0, 2, 5, 7, 9, 10], "correctli": 0, "set_proof_strategi": [0, 7], "prove_al": [0, 7], "everyth": [0, 6, 9], "hand": 0, "over": [0, 3, 4, 5, 7, 9, 10, 11], "control": [0, 2, 3, 4, 6, 7, 9, 11], "loop": 0, "announceloop": 0, "log": [0, 5, 10], "prettyhexrep": 0, "hash": [0, 2, 7, 9, 10], "run": [0, 2, 3, 5, 6, 7, 9, 10, 11], "hit": 0, "enter": [0, 10], "manual": [0, 2, 5, 6, 7, 10], "ctrl": 0, "c": [0, 6, 10], "quit": 0, "until": [0, 2, 5, 7], "exit": [0, 2, 7, 10], "If": [0, 2, 3, 5, 6, 7, 9, 10, 11], "server": [0, 2, 3, 4, 7, 10], "client": [0, 2, 3, 4, 7], "messag": [0, 2, 7, 9, 10], "direct": [0, 2, 3, 6, 7, 9, 10], "toward": [0, 5, 9], "while": [0, 2, 3, 5, 6, 7, 9, 11], "true": [0, 2, 5, 7, 10], "input": [0, 10], "sent": [0, 2, 7, 9, 10], "startup": [0, 10], "get": [0, 3, 4, 5, 7, 11], "pars": 0, "desir": [0, 3, 5, 9], "mode": [0, 2, 3, 4, 9, 10, 11], "__name__": 0, "__main__": 0, "try": [0, 4, 5], "parser": 0, "argumentpars": 0, "descript": [0, 10], "add_argu": 0, "config": [0, 2, 6, 10], "action": 0, "store": [0, 3, 9, 10], "default": [0, 2, 3, 5, 6, 7, 9, 10], "none": [0, 2, 5, 7, 9, 10], "help": [0, 6, 8, 9, 10, 11], "altern": [0, 2, 5, 10], "directori": [0, 10], "type": [0, 2, 4, 5, 6, 7, 10], "str": 0, "arg": 0, "parse_arg": 0, "configarg": 0, "except": [0, 5, 7], "keyboardinterrupt": 0, "print": [0, 5, 10], "found": [0, 2, 5, 6, 9, 10], "http": [0, 2, 8], "github": [0, 2, 8], "com": [0, 2, 8], "markqvist": [0, 2, 8], "blob": [0, 9], "master": [0, 7], "py": [0, 2, 9, 10], "build": [0, 2, 3, 4, 5, 9, 11], "upon": [0, 9], "previou": 0, "explor": [0, 9, 11], "notif": [0, 7], "relev": [0, 3, 5, 7, 9, 10], "set": [0, 2, 3, 5, 6, 7, 9, 10, 11], "callback": [0, 7], "applic": [0, 2, 5, 6, 7, 9, 10, 11], "arriv": [0, 9], "random": [0, 7, 9], "two": [0, 2, 3, 5, 6, 7, 9], "list": [0, 2, 3, 5, 7, 9, 11], "string": [0, 7], "app_data": [0, 7], "fruit": 0, "peach": 0, "quinc": 0, "date": [0, 2], "tangerin": 0, "pomelo": 0, "carambola": 0, "grape": 0, "noble_gas": 0, "helium": 0, "neon": 0, "argon": 0, "krypton": 0, "xenon": 0, "radon": 0, "oganesson": 0, "announcesampl": 0, "space": [0, 2, 3, 6, 9, 11], "destination_1": 0, "destination_2": 0, "handler": [0, 7], "onli": [0, 2, 3, 5, 6, 7, 9, 10, 11], "ask": [0, 2, 3, 7], "chang": [0, 2, 5, 7, 9, 10, 11], "filter": [0, 6, 9, 10], "see": [0, 2, 5, 6, 7, 9, 10, 11], "what": [0, 2, 4, 7, 9], "happen": [0, 2, 7, 9], "announce_handl": 0, "exampleannouncehandl": 0, "aspect_filt": [0, 7], "regist": [0, 7], "transport": [0, 2, 4, 5, 6, 7, 10, 11], "register_announce_handl": [0, 7], "select": [0, 5], "randint": 0, "0": [0, 2, 5, 7, 9, 10, 11], "len": 0, "1": [0, 2, 5, 7, 9, 10], "data": [0, 2, 3, 4, 5, 6, 7, 9, 11], "encod": [0, 7], "utf": 0, "8": [0, 5, 10], "nobl": 0, "ga": 0, "noble_ga": 0, "need": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "class": [0, 6, 7, 11], "method": [0, 2, 5, 7, 9], "take": [0, 2, 5, 9, 10, 11], "option": [0, 2, 3, 4, 6, 7, 9, 10], "argument": [0, 7, 10], "instanc": [0, 4, 5, 7, 9, 10], "some": [0, 2, 3, 5, 6, 7, 9, 10], "want": [0, 2, 5, 6, 9, 10, 11], "aspect": [0, 3, 5, 7, 9, 10], "__init__": [0, 7], "self": [0, 6, 11], "call": [0, 6, 7, 9, 11], "system": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11], "match": [0, 5, 9, 10], "specif": [0, 3, 4, 5, 7, 10, 11], "cannot": [0, 2, 5, 11], "wildcard": 0, "received_announc": [0, 7], "destination_hash": [0, 7, 10], "announced_ident": [0, 7], "contain": [0, 6, 7, 9, 10], "follow": [0, 2, 3, 5, 7, 8, 9, 10, 11], "decod": 0, "plaintext": [0, 7], "unencrypt": [0, 7, 9], "inform": [0, 2, 4, 5, 6, 7, 9, 10], "ani": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "listen": [0, 5, 9, 10], "sy": 0, "did": 0, "one": [0, 2, 3, 5, 6, 7, 9, 10, 11], "public_inform": 0, "ad": [0, 3, 4, 5, 6, 7, 9, 11], "so": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "differ": [0, 2, 3, 5, 6, 7, 9, 10, 11], "plain": [0, 3, 5, 7, 9], "uncencrypt": 0, "broadcast_destin": 0, "specifi": [0, 2, 3, 5, 6, 7, 10], "everi": [0, 5, 6, 7, 9], "time": [0, 2, 3, 5, 6, 7, 9, 10], "set_packet_callback": [0, 7], "packet_callback": 0, "main": 0, "broadcastloop": 0, "simpli": [0, 2, 3, 5, 6, 9, 10], "out": [0, 2, 3, 5, 6, 7, 9, 10, 11], "r": [0, 5, 9, 10], "n": [0, 9, 10], "end": [0, 5, 6, 7, 9, 11], "stdout": [0, 5, 10], "flush": 0, "text": [0, 2, 6, 9], "prompt": 0, "channelarg": 0, "between": [0, 5, 6, 7, 9], "interfac": [0, 3, 4, 6, 7, 10], "simpl": [0, 3, 7, 9, 10, 11], "respond": [0, 7, 10], "receipt": [0, 7, 9], "o": [0, 2, 9, 10, 11], "choos": [0, 2, 5, 9], "global": [0, 2, 5, 6, 7, 9, 11], "load": [0, 2, 7, 10], "file": [0, 2, 3, 5, 6, 7, 9, 10, 11], "randomlei": 0, "ifilepath": 0, "storag": 0, "identitiesi": 0, "configdir": [0, 7], "server_ident": 0, "from_fil": [0, 7], "log_verbos": 0, "queri": [0, 2, 7], "abl": [0, 2, 5, 6, 7, 9, 10], "verifi": [0, 7, 9, 10, 11], "repli": [0, 10], "encrypt": [0, 2, 6, 7, 9, 10, 11], "wai": [0, 2, 5, 6, 7, 9, 10], "certain": [0, 5, 6, 8, 9], "than": [0, 2, 5, 6, 7, 9, 10, 11], "read": [0, 2, 5, 7, 9, 10], "echo_destin": 0, "tell": [0, 5], "function": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "server_callback": 0, "wait": [0, 5, 9], "go": [0, 2, 5, 9], "handl": [0, 3, 5, 6, 7, 9, 10, 11], "reception_stat": 0, "is_connected_to_shared_inst": 0, "reception_rssi": 0, "get_packet_rssi": 0, "packet_hash": 0, "reception_snr": 0, "get_packet_snr": 0, "rssi": [0, 7, 10], "dbm": [0, 5, 10], "snr": [0, 7, 10], "db": [0, 10], "destination_hexhash": 0, "timeout": [0, 7, 10], "binari": [0, 2, 7, 9, 10], "represent": [0, 7], "command": [0, 2, 5, 10], "dest_len": 0, "truncated_hashlength": [0, 7], "2": [0, 5, 7, 9, 10], "rais": [0, 7], "valueerror": [0, 7], "length": [0, 5, 7, 9], "invalid": [0, 7], "hex": 0, "hexadecim": [0, 9, 10], "charact": 0, "byte": [0, 7, 9, 10, 11], "format": [0, 4, 10, 11], "fromhex": 0, "e": [0, 6, 10], "check": [0, 2, 7, 9, 10], "overrid": 0, "loglevel": [0, 7, 10], "provid": [0, 2, 3, 4, 5, 6, 7, 9, 11], "feedback": [0, 4], "log_info": 0, "doe": [0, 2, 3, 4, 5, 6, 7, 9, 10], "has_path": [0, 7], "To": [0, 2, 3, 5, 6, 9, 10, 11], "public": [0, 4, 5, 7, 10], "kei": [0, 4, 6, 7, 10, 11], "done": [0, 2, 5, 6, 9, 10], "recal": [0, 7, 10], "modul": [0, 2, 3, 9, 10, 11], "known": [0, 5, 7, 9, 10], "return": [0, 7, 10], "outgo": [0, 5, 7, 9, 10], "got": 0, "correct": [0, 9], "convent": 0, "request_destin": 0, "add": [0, 2, 5, 6, 7, 10], "echo_request": 0, "get_random_hash": [0, 7], "successfulli": [0, 7, 9], "packetreceipt": [0, 4, 7], "packet_receipt": [0, 7], "set_timeout": [0, 7], "set_timeout_callback": [0, 7], "packet_timed_out": 0, "deliveri": [0, 2, 7, 11], "set_delivery_callback": [0, 7], "packet_deliv": 0, "yet": [0, 5, 9, 11], "retri": [0, 7, 9], "onc": [0, 2, 3, 5, 6, 7, 9, 10, 11], "request_path": [0, 7], "statu": [0, 2, 4, 5, 7, 9, 10], "deliv": [0, 7], "rtt": [0, 7, 9], "get_rtt": [0, 7], "round": [0, 7, 10], "3": [0, 5, 9, 10, 11], "rttstring": 0, "second": [0, 5, 7, 9, 10, 11], "1000": 0, "millisecond": [0, 10], "proof_packet": 0, "valid": [0, 5, 7, 9, 10], "trip": [0, 7, 10], "fail": [0, 2, 7], "store_tru": 0, "t": [0, 2, 5, 6, 7, 10], "metavar": 0, "float": [0, 7], "narg": 0, "timeoutarg": 0, "print_help": 0, "establish": [0, 2, 5, 6, 7, 11], "remot": [0, 4, 7, 10], "forth": 0, "refer": [0, 2, 4], "latest": [0, 2, 5, 10], "latest_client_link": 0, "server_destin": 0, "linkexampl": 0, "set_link_established_callback": [0, 7], "client_connect": 0, "server_loop": 0, "set_link_closed_callback": [0, 7], "client_disconnect": 0, "server_packet_receiv": 0, "disconnect": [0, 5], "activ": [0, 2, 5, 7, 9], "last": [0, 5, 7], "reply_text": 0, "reply_data": 0, "server_link": 0, "sleep": [0, 10], "begin": [0, 3, 7], "And": 0, "client_packet_receiv": 0, "close": [0, 6, 7, 10], "link_establish": 0, "link_clos": 0, "interact": [0, 2, 7, 9, 10], "client_loop": 0, "becom": [0, 2, 6, 9], "should_quit": 0, "fals": [0, 5, 7, 10], "should": [0, 2, 5, 6, 7, 9, 10, 11], "q": [0, 10], "teardown": [0, 7], "mdu": [0, 7], "size": [0, 2, 5, 7, 9, 10], "exce": [0, 5, 7], "log_error": 0, "error": [0, 2, 8, 10], "ha": [0, 2, 3, 5, 6, 7, 9, 11], "been": [0, 2, 3, 5, 6, 7, 9, 11], "later": [0, 2, 5, 10], "teardown_reason": 0, "now": [0, 2, 6, 9, 10], "elif": 0, "destination_clos": 0, "exit_handl": 0, "5": [0, 2, 5, 7, 9, 10, 11], "_exit": 0, "identifi": [0, 5, 7, 9, 10], "intiat": 0, "initi": [0, 6, 7, 9, 11], "peer": [0, 2, 5, 7, 9, 10], "identifyexampl": 0, "set_remote_identified_callback": [0, 7], "remote_identifi": 0, "origin": [0, 6, 9], "displai": [0, 9, 10], "remote_p": 0, "unidentifi": 0, "get_remote_ident": [0, 7], "client_ident": 0, "sendig": 0, "perform": [0, 2, 5, 6, 9, 10], "random_text_gener": 0, "request_id": [0, 7], "link_id": [0, 7], "remote_ident": [0, 7], "requested_at": [0, 7], "look": [0, 2, 5, 9, 10], "On": [0, 2, 5, 10], "full": [0, 5, 7, 9, 10, 11], "moon": 0, "becki": 0, "upset": 0, "stai": [0, 9, 10], "awai": [0, 5, 6, 9, 10], "pet": 0, "shop": 0, "stock": 0, "requestexampl": 0, "register_request_handl": [0, 7], "response_gener": [0, 7], "allow": [0, 2, 3, 5, 6, 7, 9, 10, 11], "allow_al": [0, 7], "response_callback": [0, 7], "got_respons": 0, "failed_callback": [0, 7], "request_fail": 0, "request_receipt": [0, 7], "request_receiv": 0, "structur": [0, 7, 9, 11], "datetim": 0, "vendor": [0, 3], "umsgpack": 0, "share": [0, 2, 6, 7, 9, 10], "object": [0, 7], "subclass": [0, 7], "messagebas": [0, 4, 7], "ensur": [0, 5, 7, 9, 10, 11], "serial": [0, 2, 4, 9, 11], "deseri": 0, "multiplex": 0, "other": [0, 2, 3, 5, 6, 7, 9, 10], "both": [0, 2, 3, 5, 6, 7, 9, 10, 11], "same": [0, 2, 3, 5, 6, 7, 9, 10], "definit": [0, 9], "note": [0, 3, 4, 5, 7, 9, 10], "wish": [0, 9, 10], "make": [0, 2, 3, 5, 8, 9, 10], "stringmessag": 0, "convei": 0, "timestamp": 0, "msgtype": [0, 7], "variabl": [0, 7], "assign": [0, 9, 10], "integ": 0, "valu": [0, 5, 7, 9], "constructor": 0, "uniqu": [0, 5, 7, 9, 11], "across": [0, 3, 6, 7], "0xf000": [0, 7], "reserv": [0, 7, 9], "0x0101": 0, "callabl": [0, 7], "paramet": [0, 3, 5, 6, 7, 9, 10], "empti": 0, "version": [0, 2, 9, 10], "unpack": [0, 7], "final": [0, 7, 9], "implement": [0, 5, 6, 7, 8, 9, 11], "pack": [0, 7], "raw": [0, 3, 7], "payload": [0, 7, 9, 10], "packag": [0, 2, 5, 9], "bundl": 0, "could": [0, 2, 5, 6, 7, 9, 11], "struct": 0, "python": [0, 4, 7, 9, 10, 11], "more": [0, 2, 3, 5, 6, 7, 9, 10, 11], "fit": 0, "entir": [0, 6, 7, 9, 10], "avail": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "properti": [0, 6, 7], "slightli": [0, 2], "less": [0, 5, 7, 9, 11], "due": [0, 6], "header": [0, 7, 9], "content": [0, 2, 6, 10], "stream": [0, 7, 9], "packb": 0, "unpackb": 0, "channelexampl": 0, "get_channel": [0, 7], "register_message_typ": [0, 7], "add_message_handl": [0, 7], "server_message_receiv": 0, "param": 0, "deserializ": 0, "unless": [0, 2, 5, 7, 9], "preced": 0, "indic": [0, 7], "isinst": 0, "reply_messag": 0, "order": [0, 7, 10], "were": [0, 6], "consid": [0, 5, 7, 9, 11], "subsequ": [0, 9], "skip": 0, "packed_s": 0, "is_ready_to_send": [0, 7], "pleas": [0, 2, 5, 7, 10, 11], "pend": 0, "complet": [0, 2, 3, 5, 6, 7, 9, 10, 11], "client_message_receiv": 0, "reader": [0, 7], "writer": [0, 7], "__future__": 0, "annot": 0, "latest_buff": 0, "bufferexampl": 0, "old": [0, 3, 8, 9], "stream_id": [0, 7], "bit": [0, 2, 5, 7, 9, 10, 11], "like": [0, 2, 3, 5, 6, 7, 9, 10, 11], "descriptor": 0, "actual": [0, 2, 5, 9], "separ": [0, 2, 5, 6, 9, 10], "unidirect": 0, "flow": [0, 5, 6], "opposit": [0, 5], "create_bidirectional_buff": [0, 7], "server_buffer_readi": 0, "ready_byt": [0, 7], "int": [0, 7], "otherwis": [0, 7], "forc": [0, 10], "server_client_connect": 0, "detail": [0, 2, 4, 5, 7, 10, 11], "client_buffer_readi": 0, "termin": [0, 2, 7], "download": [0, 5, 10], "resourc": [0, 2, 4, 7, 8], "effici": [0, 2, 5, 9, 11], "serv": [0, 3, 5, 6, 9, 10], "larg": [0, 3, 5, 6, 7, 9, 11], "transfer": [0, 7, 9, 10, 11], "recommend": [0, 2, 9], "compress": [0, 7, 9], "hashmap": 0, "sequenc": [0, 7, 9, 11], "long": [0, 2, 3, 5, 7, 9], "slow": [0, 5, 9], "cpu": [0, 9], "probabl": [0, 2, 6, 9, 10, 11], "result": [0, 9, 10], "befor": [0, 2, 5, 7, 9, 10], "prepar": [0, 6], "instead": [0, 2, 5, 7, 9, 10], "slice": 0, "chunk": 0, "suitabl": [0, 2, 5, 6, 9, 11], "thread": 0, "app_timeout": 0, "45": [0, 9], "serve_path": 0, "here": [0, 2, 5, 9, 10], "conveni": 0, "list_fil": 0, "entri": [0, 2, 9], "listdir": 0, "isfil": 0, "join": [0, 2, 6, 8, 9], "host": [0, 2, 5, 9, 10], "still": [0, 2, 5, 6, 9, 10], "isdir": 0, "list_packet": 0, "list_receipt": 0, "list_deliv": 0, "list_timeout": 0, "too": [0, 6], "mani": [0, 2, 3, 5, 6, 7, 9, 10, 11], "split": 0, "filelist": 0, "multipl": [0, 5, 6, 9, 10], "hint": 0, "alreadi": [0, 2, 3, 6, 7, 9, 10], "support": [0, 2, 4, 5, 6, 7, 9, 10, 11], "after": [0, 2, 5, 6, 7, 9, 10], "re": [0, 5, 7, 9], "keep": [0, 6, 7, 9, 10, 11], "open": [0, 3, 5, 6, 7, 8, 9, 10, 11], "client_request": 0, "longer": [0, 2, 6, 9, 10], "filenam": 0, "rb": 0, "file_resourc": 0, "resource_sending_conclud": 0, "somethign": 0, "went": 0, "wrong": [0, 5], "don": [0, 2, 6, 7, 10], "unknown": [0, 5, 7, 9, 10], "conclud": [0, 7], "hasattr": 0, "server_fil": 0, "current": [0, 2, 4, 5, 7, 9], "current_download": 0, "current_filenam": 0, "statist": [0, 5, 7, 8], "download_start": 0, "download_finish": 0, "download_tim": 0, "transfer_s": 0, "file_s": 0, "expect": [0, 2, 5, 7, 9, 10], "normal": [0, 2, 5, 7, 10], "accordingli": 0, "filelist_receiv": 0, "advertis": [0, 7], "set_resource_strategi": [0, 7], "accept_al": [0, 7], "set_resource_started_callback": [0, 7], "download_began": 0, "set_resource_concluded_callback": [0, 7], "download_conclud": 0, "menu": 0, "menu_mod": 0, "down": [0, 3, 5, 7], "request_packet": 0, "create_receipt": [0, 7], "print_menu": 0, "25": [0, 4, 11], "user_input": 0, "screen": 0, "variou": [0, 2, 5, 6, 9, 10], "state": 0, "It": [0, 2, 3, 5, 7, 9, 10, 11], "uninterest": 0, "won": 0, "clear_screen": 0, "print_filelist": 0, "percent": [0, 5], "get_progress": [0, 7], "100": [0, 5, 9], "rprogress": 0, "save_error": 0, "disk": [0, 7], "hour": [0, 5], "rem": 0, "divmod": 0, "3600": [0, 5], "minut": [0, 2, 5, 9], "60": [0, 5], "timestr": 0, "05": 0, "2f": 0, "ttime": 0, "taken": [0, 9], "tfile": 0, "size_str": 0, "tdata": 0, "teffect": 0, "rate": [0, 4, 7, 10], "suffix": 0, "b": [0, 6, 10], "ttransfer": 0, "press": 0, "index": [0, 2, 4], "enumer": 0, "filelist_data": 0, "extend": [0, 2, 7], "local": [0, 2, 5, 6, 7, 9, 10, 11], "append": [0, 9], "visibl": 0, "updat": [0, 2, 7, 9, 10], "small": [0, 5, 6, 9, 11], "job": 0, "potenti": [0, 5, 8, 9, 10, 11], "target": [0, 5, 10], "filelist_timeout_job": 0, "daemon": [0, 2, 5, 7, 10], "detect": 0, "shown": 0, "progress": [0, 7, 10, 11], "total_s": 0, "saved_filenam": 0, "counter": 0, "wb": 0, "human": [0, 7, 8, 9], "readabl": [0, 7, 9], "num": 0, "unit": [0, 2, 7, 10], "ki": 0, "mi": 0, "gi": 0, "ti": [0, 9], "pi": [0, 4, 6, 9, 10, 11], "ei": 0, "zi": 0, "last_unit": 0, "yi": 0, "k": 0, "m": [0, 2, 9, 10], "g": [0, 10], "p": [0, 10], "z": 0, "y": 0, "ab": 0, "1024": 0, "clear": [0, 5, 7, 9, 10], "cl": 0, "nt": 0, "dir": 0, "best": [2, 9, 11], "guid": [2, 3, 9], "outlin": [2, 3, 9], "sensibl": [2, 3, 5], "scenario": [2, 4, 9], "relat": 2, "easiest": [2, 3, 5, 9], "via": [2, 3, 5, 8, 9, 10, 11], "pip": [2, 3, 10], "manag": [2, 6, 7, 9, 10, 11], "sudo": [2, 10], "apt": 2, "python3": [2, 3], "pamac": 2, "similar": [2, 3, 5, 6, 7, 10, 11], "dowload": 2, "releas": [2, 5, 9], "wheel": 2, "channel": [2, 4, 5, 6, 7, 8, 9, 11], "offlin": 2, "py3": 2, "whl": 2, "mai": [2, 5, 7, 9, 10], "case": [2, 3, 5, 6, 9, 10], "usual": 2, "essenti": [2, 5, 9], "deriv": [2, 7, 9, 11], "arch": 2, "manjaro": 2, "devel": 2, "fedora": 2, "dnf": 2, "groupinstal": 2, "tool": [2, 3, 9, 10, 11], "librari": 2, "compil": 2, "miss": 2, "even": [2, 5, 6, 9, 10, 11], "pre": [2, 7, 9], "built": [2, 5, 9, 11], "few": [2, 3, 5, 6, 9, 10, 11], "extrem": [2, 9, 10, 11], "low": [2, 3, 5, 6, 9, 11], "bandwidth": [2, 5, 6, 7, 9, 10, 11], "These": [2, 5, 7, 9, 10], "feel": 2, "work": [2, 3, 5, 6, 9, 10, 11], "design": [2, 3, 6, 9, 11], "well": [2, 3, 5, 6, 7, 9, 10, 11], "lora": [2, 3, 4, 9, 11], "link": [2, 3, 4, 5, 6, 7, 10, 11], "wifi": [2, 4, 5, 6, 9, 10, 11], "wire": [2, 3, 4, 5, 11], "ethernet": [2, 4, 5, 6, 9, 11], "combin": [2, 4, 6, 9], "As": [2, 3, 5, 6, 7, 9, 11], "easi": [2, 3, 5, 9, 10, 11], "experi": [2, 9], "without": [2, 3, 5, 6, 9, 10, 11], "transceiv": [2, 3, 5, 9, 11], "infrastructur": [2, 3, 5, 6, 9, 10], "launch": [2, 10], "devic": [2, 4, 5, 6, 7, 9, 10], "enough": [2, 3, 9], "physic": [2, 3, 5, 7, 9, 10], "rnsh": [2, 10], "fulli": [2, 3, 9, 10, 11], "session": [2, 9], "pipe": [2, 4, 11], "ssh": 2, "veri": [2, 3, 5, 6, 7, 8, 9, 10, 11], "facilit": 2, "suit": [2, 3, 9, 10], "featur": [2, 8, 9, 11], "delai": [2, 5, 9, 10], "browser": 2, "page": [2, 4, 9], "dynam": [2, 10], "render": 2, "authent": [2, 5, 6, 7, 9, 11], "face": [2, 5], "protocol": [2, 3, 4, 5, 11], "lxmf": [2, 10], "anoth": [2, 7, 9, 10], "project": 2, "nomadnet": 2, "might": [2, 5, 6, 9, 10], "reboot": 2, "again": [2, 5, 9, 10], "would": [2, 5, 6, 7, 9], "rather": [2, 7], "graphic": 2, "linux": [2, 3, 9], "maco": 2, "peopl": [2, 9], "compat": [2, 3, 5, 7, 9], "i2p": [2, 4, 11], "qr": 2, "paper": 2, "anyth": [2, 3, 5, 9, 10, 11], "interoper": [2, 3, 6, 9, 11], "come": [2, 9], "easier": [2, 5, 6, 10], "rnsd": [2, 4], "background": [2, 5], "foreground": 2, "servic": [2, 4, 6], "rnstatu": [2, 4, 5, 9], "rnpath": [2, 4, 5], "rnprobe": [2, 4], "view": [2, 5, 9, 10], "chapter": [2, 3, 5, 6, 7, 9, 10, 11], "locat": [2, 3, 6, 9, 10], "exampl": [2, 3, 4, 5, 7, 9, 10, 11], "exampleconfig": [2, 10], "broadcast": [2, 4, 5, 7, 9], "domain": [2, 5], "further": [2, 4, 5], "tcp": [2, 3, 4, 6, 9, 11], "There": [2, 6, 9, 11], "subnet": [2, 6], "rout": [2, 3, 5, 6, 7, 9, 10, 11], "tabl": [2, 5, 6, 9, 10], "thing": 2, "discov": [2, 5], "topographi": [2, 6, 9], "situat": [2, 3, 5, 6, 9], "where": [2, 3, 4, 5, 6, 7, 9, 10], "utilis": [2, 5, 6, 7, 10, 11], "extern": [2, 5, 7, 11], "often": [2, 5, 6, 9, 10], "suffici": [2, 5, 9, 10], "act": [2, 7, 9, 10], "gatewai": [2, 5, 6, 9], "enabl": [2, 3, 5, 6, 7, 9, 10, 11], "wider": [2, 5, 9, 10], "autointerfac": [2, 3, 5, 10], "possibli": 2, "offer": [2, 4, 5, 7, 9], "carefulli": 2, "tcpserverinterfac": [2, 5], "access": [2, 4, 5, 6, 7, 10], "ip": [2, 3, 5, 9, 10, 11], "faster": [2, 5, 9], "lower": [2, 5, 10], "latenc": [2, 9, 11], "energi": 2, "i2pinterfac": [2, 5], "howev": [2, 6, 9], "leak": 2, "reveal": [2, 7, 9, 11], "who": [2, 9], "inspect": [2, 5, 6, 9, 10], "someon": [2, 5], "determin": [2, 7, 9], "adversari": 2, "record": [2, 9], "metadata": 2, "transmiss": [2, 5, 7, 9], "though": [2, 5, 9], "publicli": [2, 5], "most": [2, 3, 5, 6, 9, 10], "anymor": 2, "through": [2, 3, 5, 6, 7, 9, 10, 11], "invis": [2, 5], "parallel": 2, "For": [2, 3, 5, 6, 7, 9, 10, 11], "alwai": [2, 5, 7, 9, 10], "node": [2, 4, 5, 6, 10, 11], "i2pd": [2, 5], "mix": [2, 5, 6, 10], "hide": 2, "relai": 2, "extra": [2, 5, 6, 10], "comput": [2, 9, 11], "power": [2, 3, 5, 9, 10], "attack": 2, "form": [2, 5, 6, 7, 9], "deep": 2, "much": [2, 5, 6, 9, 10], "difficult": [2, 3], "non": [2, 7, 9], "behind": [2, 9], "firewal": [2, 5], "nat": 2, "preserv": [2, 7], "anonym": [2, 6, 7, 9, 11], "care": [2, 7, 11], "experiment": [2, 11], "made": [2, 7, 9], "amsterdam": 2, "hub": [2, 5], "tcpclientinterfac": [2, 3, 5], "ye": [2, 5, 9, 10], "target_host": [2, 5], "target_port": [2, 5], "4965": [2, 10], "betweenthebord": 2, "4242": [2, 5], "g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq": 2, "b32": [2, 5], "point": [2, 3, 5, 6, 9, 10], "absolut": [2, 8, 11], "usag": [2, 4, 5, 7, 8, 10], "occasion": 2, "test": [2, 9, 10], "failur": [2, 5], "guarante": [2, 9], "hardwar": [2, 4, 5, 6, 7, 9, 10, 11], "wide": [2, 3, 5, 9, 10, 11], "section": [2, 3, 5, 6, 9, 10], "easili": [2, 5, 6, 9, 10, 11], "cheapli": 2, "rnode": [2, 4, 9, 10, 11], "purpos": [2, 3, 5, 7, 9], "digit": [2, 3, 9, 11], "integr": [2, 6, 9], "yourself": [2, 9, 11], "custom": [2, 5, 7, 9, 11], "firmwar": [2, 3, 9, 10], "board": [2, 4, 9, 11], "auto": [2, 3, 4, 7, 9], "script": [2, 3], "prefer": [2, 9], "purchas": [2, 6, 9, 11], "supplier": 2, "addit": [2, 3, 5, 7, 9, 10, 11], "privat": [2, 5, 7, 8, 9, 10, 11], "secur": [2, 9, 11], "uncensor": 2, "mesh": [2, 5, 6, 11], "think": 2, "welcom": 2, "head": 2, "discuss": [2, 3, 9], "propos": 2, "abov": [2, 3, 5, 9, 10], "next": [2, 6, 7, 9], "step": [2, 3], "pyseri": 2, "api": [2, 4, 9, 11], "associ": [2, 7, 9], "recip": 2, "cryptographi": [2, 9, 11], "clone": 2, "repositori": [2, 8, 9], "git": 2, "move": [2, 5, 9, 10], "folder": 2, "symlink": [2, 10], "cd": 2, "ln": [2, 10], "echo": [2, 4], "ve": 2, "immedi": [2, 5, 10], "necessari": [2, 3, 5, 6, 7, 9], "nano": 2, "repeat": 2, "process": [2, 3, 5, 7, 9], "h": [2, 10], "ping": [2, 10], "replac": [2, 9, 10], "below": [2, 3, 5, 10], "174a64852a75682259ad8b921b8bf416": 2, "filetransf": [2, 4, 7], "understand": [2, 4, 7, 10], "submit": 2, "pull": 2, "request": [2, 4, 5, 7, 9, 10], "good": [2, 3, 6, 9, 10], "idea": [2, 9, 10], "introduc": [2, 9], "disucss": 2, "forum": 2, "maintain": [2, 9], "place": [2, 5, 6, 9, 10], "procedur": [2, 7, 9], "quirk": 2, "worth": 2, "being": [2, 5, 7, 9], "awar": [2, 9], "termux": 2, "f": [2, 10], "droid": 2, "emul": 2, "environ": [2, 6, 9], "abil": [2, 3], "pkg": 2, "sure": [2, 3, 10], "upgrad": [2, 9], "Then": 2, "reason": [2, 5, 9], "attempt": [2, 3, 7], "openssl": [2, 9], "libffi": 2, "rust": 2, "export": 2, "cargo_build_target": 2, "aarch64": 2, "sever": [2, 6, 7, 10], "succe": 2, "softwar": [2, 3, 5, 9, 11], "possibl": [2, 3, 5, 6, 7, 9, 10, 11], "apk": 2, "tutori": 2, "code": [2, 3, 4, 5, 10], "architectur": 2, "precompil": 2, "dev": [2, 5, 10], "64": [2, 9, 10], "32": [2, 9], "rasperri": 2, "os": [2, 5], "april": 2, "2023": [2, 10], "onto": [2, 9], "unfortun": 2, "pipx": 2, "isol": [2, 5, 10], "neg": 2, "affect": [2, 5], "ensurepath": 2, "restor": [2, 5], "behaviour": [2, 5, 10], "edit": [2, 10], "conf": 2, "break": [2, 7, 9, 11], "somewhat": 2, "mislead": 2, "choic": 2, "word": 2, "cours": [2, 5, 9], "rare": [2, 5], "lead": [2, 9], "conflict": 2, "pose": [2, 9], "problem": [2, 9], "_could_": 2, "obscur": 2, "rnspure": 2, "No": [2, 5, 9, 10, 11], "matter": [2, 5], "perfectli": 2, "pyca": [2, 9], "cryptograph": [2, 4, 6, 10, 11], "primit": [2, 4], "One": [3, 7], "truli": [3, 9], "valuabl": [3, 8], "almost": [3, 5, 9, 10], "conceiv": 3, "kind": [3, 5, 6, 9], "medium": [3, 5, 6, 7, 9, 11], "flexibl": [3, 5, 11], "cover": [3, 9, 11], "wireless": [3, 6], "decad": 3, "modern": [3, 9], "millimet": 3, "wave": 3, "backhaul": [3, 6], "oper": [3, 5, 6, 7, 9, 10, 11], "chanc": 3, "box": 3, "glue": 3, "littl": [3, 9], "effort": 3, "pipeinterfac": [3, 5], "kiss": [3, 4, 10, 11], "simplyequip": 3, "broad": 3, "abund": 3, "sometim": 3, "especi": [3, 5], "scratch": 3, "real": [3, 6, 11], "world": [3, 6, 11], "minim": [3, 4, 9], "cost": [3, 9, 11], "fundament": [3, 9], "categori": 3, "addition": [3, 5, 9], "common": [3, 4, 6, 9, 10, 11], "briefli": [3, 9], "describ": [3, 5, 7, 9], "emploi": [3, 9], "pattern": [3, 9], "high": [3, 5, 9, 11], "capac": [3, 5, 7, 9], "gain": [3, 7, 9], "antenna": 3, "backbon": 3, "area": [3, 5, 6, 9, 11], "reliabl": [3, 5, 6, 7, 9, 11], "commonli": 3, "either": [3, 5, 6, 7, 9, 10], "expens": 3, "hard": 3, "hungri": 3, "allevi": 3, "particular": 3, "plaform": 3, "depend": [3, 4, 6, 7, 9, 10], "its": [3, 5, 7, 9], "compon": [3, 8, 9], "frequenc": [3, 5, 9, 10], "band": [3, 9], "scheme": 3, "limit": [3, 4, 6, 9], "ism": [3, 9], "avoid": [3, 9, 10], "confus": [3, 9], "layer": [3, 5, 6, 7, 9, 11], "noth": [3, 11], "lorawan": [3, 9], "standard": [3, 9], "central": [3, 6, 9], "iot": 3, "overhead": [3, 5, 9], "level": [3, 5, 9, 10], "directli": [3, 5, 7, 9, 10, 11], "replic": [3, 9], "togeth": [3, 9, 10], "exact": [3, 5, 9], "explain": [3, 7], "approach": [3, 9, 10], "develop": [3, 4, 7, 8, 9, 11], "boil": 3, "obtain": [3, 7, 9], "autom": [3, 8, 9], "provis": [3, 10], "rnodeinterfac": [3, 5, 10], "ic": 3, "semtech": 3, "sx1276": 3, "platform": [3, 4, 9], "esp32": 3, "manufactur": 3, "io": 3, "avr": 3, "atmega1284p": 3, "rnodeconf": [3, 4], "autoinstal": [3, 10], "seri": 3, "question": [3, 5], "port": [3, 4, 5, 6, 9, 11], "air": [3, 11], "id": [3, 5, 7, 9, 10], "itself": [3, 4, 9], "short": [3, 5, 9, 10], "bridg": [3, 4], "behav": 3, "mean": [3, 5, 6, 9, 10], "dhcp": [3, 5, 10], "dn": 3, "least": [3, 5, 9, 10, 11], "transpar": [3, 5, 9, 10], "distanc": [3, 9], "ubiqu": 3, "airmax": 3, "ltu": 3, "mikrotik": 3, "exhaust": [3, 9], "rel": [3, 9, 11], "cheap": [3, 9], "co": [3, 5, 11], "concurr": [3, 9, 10], "switch": [3, 5, 9, 10], "fiber": 3, "optic": [3, 11], "virtual": [3, 5, 6, 9, 10, 11], "adapt": [3, 6], "tun": 3, "tap": 3, "serialinterfac": [3, 5], "usb": [3, 6, 9, 10], "freedv": 3, "tnc": [3, 5, 7, 10, 11], "dire": 3, "wolf": 3, "aim": [4, 9], "particip": [4, 6, 9], "pdf": 4, "epub": 4, "caveat": 4, "emptor": 4, "fast": [4, 5, 7, 9], "standalon": 4, "instal": [4, 5, 6, 9, 10, 11], "resolv": [4, 5, 10], "issu": [4, 6, 8], "base": [4, 5, 6, 7, 9, 10, 11], "shell": [4, 10], "nomad": 4, "sideband": 4, "With": [4, 5, 6, 9, 10], "internet": [4, 5, 9, 11], "testnet": [4, 10], "radio": [4, 5, 6, 7, 9, 10, 11], "android": [4, 10], "arm64": 4, "raspberri": [4, 6, 9, 10, 11], "debian": [4, 9, 10], "bookworm": 4, "ubuntu": [4, 10], "lunar": 4, "pure": [4, 9], "rnid": 4, "rncp": 4, "rnx": 4, "improv": [4, 5, 8], "fix": [4, 9], "motiv": 4, "goal": [4, 5], "introduct": 4, "announc": [4, 7, 10], "mechan": [4, 5], "reach": [4, 5, 6], "prioritis": [4, 5, 6, 7], "propag": [4, 5, 7], "rule": [4, 5], "modem": [4, 5, 6, 7, 9, 11], "udp": [4, 6, 9, 10, 11], "ax": [4, 11], "concept": [4, 9, 10], "overview": [4, 5, 9], "interconnect": [4, 5, 9], "site": [4, 5], "growth": 4, "converg": [4, 9], "identif": [4, 5, 11], "respons": [4, 7, 9], "buffer": [4, 5, 7], "donat": 4, "contribut": 4, "requestreceipt": [4, 7], "rawchannelread": [4, 7], "rawchannelwrit": [4, 7], "search": 4, "distinct": [5, 9], "topologi": [5, 9], "endless": 5, "give": [5, 9, 10], "respect": [5, 11], "discover": 5, "autoconfigur": [5, 11], "ipv6": [5, 10], "router": [5, 10], "sort": [5, 9, 10], "communica": 5, "tion": 5, "usabl": [5, 9], "interface_en": [5, 10], "spe": 5, "cific": 5, "lan": 5, "group": [5, 7, 9], "group_id": 5, "multicast": 5, "temporari": 5, "perman": [5, 10], "multicast_address_typ": 5, "kernel": [5, 10, 11], "wlan0": 5, "eth1": 5, "Or": [5, 10, 11], "ignor": [5, 7, 9], "ones": [5, 10], "ignored_devic": 5, "tun0": 5, "eth0": 5, "autodiscov": 5, "discoveri": [5, 9, 10], "scope": 5, "admin": 5, "organis": [5, 6, 8], "custom_network_nam": 5, "discovery_scop": 5, "discovery_port": 5, "48555": 5, "data_port": 5, "49555": 5, "frequent": 5, "block": 5, "inbound": [5, 7], "portabl": [5, 9], "persist": [5, 10], "achiev": [5, 7, 9], "geti2p": 5, "net": 5, "websit": 5, "base32": 5, "comma": 5, "5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq": 5, "output": [5, 10], "event": 5, "simplest": [5, 9], "tunnel": [5, 9, 11], "interchang": 5, "degre": 5, "retain": 5, "eas": [5, 9], "simpler": 5, "listen_ip": 5, "listen_port": 5, "bind": 5, "10": [5, 9, 10], "88": 5, "i2p_tunnel": 5, "127": 5, "5001": 5, "dedic": [5, 9], "natur": 5, "toler": 5, "intermitt": 5, "gracefulli": 5, "reappear": 5, "hostnam": 5, "expos": [5, 7], "soundmodem": 5, "kiss_fram": 5, "8001": 5, "caution": 5, "frame": 5, "conjunct": 5, "never": [5, 7, 9], "disabl": [5, 9, 10], "intern": [5, 7, 9], "recoveri": 5, "greatli": 5, "unreli": 5, "implic": 5, "better": 5, "udpinterfac": 5, "forward_ip": 5, "255": [5, 10], "forward_port": 5, "assum": [5, 9], "55": 5, "72": 5, "24": 5, "equival": 5, "forward": [5, 7, 9, 11], "segment": [5, 6, 7, 9, 11], "15": 5, "16": [5, 9, 10], "ttyusb0": [5, 10], "867": 5, "mhz": [5, 9], "867200000": 5, "125": 5, "khz": 5, "125000": 5, "tx": [5, 10], "7": [5, 9, 10], "mw": 5, "txpower": 5, "spread": [5, 10], "factor": [5, 7, 10], "12": [5, 10], "fastest": [5, 9], "longest": 5, "spreadingfactor": 5, "throough": 5, "codingr": 5, "interv": [5, 7, 10], "id_callsign": 5, "mycal": 5, "id_interv": 5, "600": 5, "homebrew": 5, "amount": [5, 6, 7, 9, 11], "ram": 5, "flow_control": 5, "airtim": 5, "term": [5, 6, 9], "appli": [5, 7, 9], "window": 5, "approxim": 5, "enforc": 5, "roll": 5, "airtime_limit_long": 5, "airtime_limit_short": 5, "33": 5, "pair": [5, 7, 9, 10], "laser": 5, "baud": [5, 10], "speed": [5, 9, 10], "115200": [5, 10], "databit": [5, 10], "pariti": [5, 10], "stopbit": [5, 10], "stdin": [5, 10], "netcat": 5, "l": [5, 10], "5757": 5, "respawn": 5, "respawn_delai": 5, "continu": [5, 7, 8, 11], "scan": 5, "eof": 5, "respawn_interv": 5, "varieti": [5, 9, 10, 11], "openmodem": [5, 11], "period": [5, 7, 9], "beacon": 5, "station": 5, "kissinterfac": [5, 10], "ttyusb1": 5, "preambl": [5, 10], "150": [5, 10], "tail": 5, "txtail": [5, 10], "cdma": 5, "200": [5, 10], "slottim": [5, 10], "20": [5, 9, 10], "elaps": 5, "comment": [5, 10], "amateur": [5, 11], "spectrum": [5, 9], "encapsul": [5, 11], "callsign": 5, "ssid": 5, "realli": [5, 7], "doesn": 5, "incur": 5, "ax25kissinterfac": 5, "no1cll": 5, "ttyusb2": 5, "150m": 5, "increas": [5, 10], "squelch": 5, "rx": [5, 10], "turnaround": 5, "kept": [5, 6, 7, 9], "wast": 5, "bring": 5, "brought": [5, 10], "access_point": 5, "shorthand": [5, 10], "ap": 5, "shorter": 5, "expiri": 5, "mostli": [5, 6, 9], "quiet": [5, 10], "momentarili": 5, "disappear": [5, 10], "network_nam": 5, "passphras": [5, 9], "alon": 5, "ifac_s": 5, "customis": 5, "carri": [5, 7, 9, 10], "512": [5, 7, 9], "announce_cap": [5, 7], "maximum": [5, 7, 9], "alloc": [5, 7, 9, 10], "given": [5, 6, 7, 9, 10], "upkeep": 5, "cap": 5, "queue": [5, 9], "nearbi": 5, "overwhelm": [5, 7], "rapidli": 5, "spam": 5, "effect": 5, "excess": 5, "benefici": [5, 10], "balanc": 5, "necesarri": 5, "bitrat": [5, 7], "report": [5, 7, 8, 10], "guess": 5, "per": [5, 7, 9, 10, 11], "strictli": [5, 9], "complex": [5, 9], "left": [5, 7, 9, 10], "gw": 5, "behalf": 5, "resid": 5, "requestor": 5, "chain": 5, "along": [5, 6, 7, 9, 10], "boundari": 5, "remain": [5, 7, 9], "roam": 5, "mobil": [5, 9], "seen": [5, 9], "perspect": [5, 7, 9, 11], "vehicl": 5, "equip": [5, 6, 9], "side": [5, 11], "expir": 5, "significantli": 5, "impact": [5, 9], "announce_rate_target": 5, "announce_rate_grac": 5, "announce_rate_penalti": 5, "basi": [5, 7, 9, 10, 11], "moder": 5, "violat": 5, "penalti": 5, "7200": 5, "annouce_cap": 5, "mention": [5, 9], "strategi": [5, 7], "decis": [5, 9], "slower": [5, 7, 9], "hop": [5, 6, 7, 9, 10, 11], "right": [5, 6], "tend": 5, "conserv": 5, "span": [5, 9], "seamlessli": 5, "influx": 5, "newli": [5, 6, 7, 9], "previous": [5, 6, 7, 9], "occur": [5, 10, 11], "hold": [5, 7, 9], "interrupt": 5, "burst": 5, "subsid": 5, "held": [5, 10], "decid": [5, 6, 7, 9], "bogu": 5, "retransmit": [5, 9], "ingress": 5, "individu": [5, 7, 9, 11], "sub": 5, "disrupt": 5, "neccessari": 5, "modifi": [5, 9, 10], "ingress_control": 5, "ic_new_tim": 5, "spawn": 5, "ic_burst_freq_new": 5, "ic_burst_freq": 5, "temporarili": 5, "ic_max_held_announc": 5, "drop": [5, 7, 9, 10], "256": [5, 7, 9, 10], "ic_burst_hold": 5, "threshold": 5, "ic_burst_penalti": 5, "ic_held_release_interv": 5, "30": [5, 10], "knowledg": [6, 9], "tradit": [6, 9], "worri": 6, "coordin": [6, 7, 9, 11], "evolv": 6, "futur": [6, 9], "mind": [6, 11], "autonom": [6, 9], "terminologi": [6, 9], "rest": [6, 11], "billion": [6, 9], "larger": [6, 9, 10], "higher": [6, 11], "discrimin": 6, "ephemer": [6, 7, 9, 11], "ellipt": [6, 7, 9, 11], "curv": [6, 7, 9, 11], "diffi": [6, 9, 11], "hellman": [6, 9, 11], "exchang": [6, 7, 9, 11], "curve25519": [6, 7, 9, 11], "throttl": 6, "thu": [6, 7, 9], "agnost": [6, 9], "equal": [6, 7, 9], "keystor": 6, "degrad": 6, "stationari": [6, 10], "candid": 6, "optim": 6, "intend": [6, 9], "trustless": [6, 9, 11], "leav": [2, 6, 9], "free": [6, 8, 11], "unorganis": 6, "manner": 6, "far": [6, 9], "unexplor": 6, "dissolv": 6, "organ": 6, "restrict": 6, "legaci": 6, "unifi": 6, "underli": [6, 11], "carrier": [6, 11], "involv": 6, "hardlin": 6, "illustr": [6, 9], "plan": [6, 9], "member": 6, "mainli": 6, "three": [6, 9], "hill": 6, "top": [6, 9], "chosen": [6, 9], "sight": 6, "becaus": [6, 9], "four": 6, "At": [6, 9], "cabl": 6, "suppli": [6, 7, 9], "grow": 6, "core": [6, 9, 10, 11], "those": [6, 9], "d": [6, 10], "island": 6, "investig": 6, "dori": 6, "willing": 6, "she": 6, "her": 6, "home": [6, 10], "everyon": [6, 9], "vice": [6, 11], "versa": [6, 11], "vhf": [6, 9, 11], "outli": 6, "geograph": 6, "coverag": 6, "dai": 6, "find": [6, 9], "poorli": 6, "outlier": 6, "signatur": [7, 9, 10, 11], "logdest": 7, "verbos": [7, 10], "exactli": [7, 9], "independ": [7, 9, 11], "inter": 7, "soon": 7, "kill": [7, 9], "forcibli": [7, 10], "advantag": 7, "demand": 7, "mtu": [7, 9, 11], "500": [7, 9, 11], "adher": 7, "prerequisit": 7, "percentag": 7, "schedul": 7, "queu": [7, 10], "fewer": 7, "distant": 7, "smaller": 7, "eventu": 7, "alter": [7, 9], "minimum_bitr": 7, "static": 7, "get_inst": 7, "should_use_implicit_proof": 7, "explicit": 7, "implicit": [7, 9], "transport_en": 7, "create_kei": 7, "decrypt": [7, 9, 10], "verif": [7, 9, 10], "sign": [7, 9, 10], "dh": 7, "keysiz": 7, "x25519": [7, 9, 11], "concaten": 7, "128": [7, 9, 11], "constant": 7, "truncat": [7, 9], "recall_app_data": 7, "heard": [7, 9], "full_hash": 7, "sha": [7, 9], "truncated_hash": 7, "from_byt": 7, "prv_byte": 7, "save": [7, 9], "hazard": 7, "feed": 7, "to_fil": 7, "Be": [7, 10], "get_private_kei": 7, "get_public_kei": 7, "load_private_kei": 7, "load_public_kei": 7, "pub_byt": 7, "ciphertext": 7, "token": [7, 9], "keyerror": 7, "ciphertext_token": 7, "presenc": 7, "ingo": 7, "zero": [7, 11], "expand_nam": 7, "app_and_aspects_from_nam": 7, "full_nam": [7, 10], "tupl": 7, "hash_from_name_and_ident": 7, "adress": [7, 9], "path_respons": 7, "attached_interfac": 7, "tag": 7, "flag": [7, 9], "accepts_link": 7, "accept": [7, 8, 9, 10], "set_proof_requested_callback": 7, "proof_strategi": 7, "prove_non": 7, "prove_app": 7, "proof_requested_callback": 7, "allow_non": 7, "allowed_list": 7, "whatev": [7, 9], "funcion": 7, "allow_list": 7, "deregister_request_handl": 7, "deregist": 7, "symmetr": [7, 9], "typeerror": 7, "incompat": [7, 9], "set_default_app_data": 7, "clear_default_app_data": 7, "ae": [7, 9, 11], "secreci": [7, 9, 11], "instanti": 7, "encrypted_mdu": 7, "383": 7, "plain_mdu": 7, "464": 7, "resend": 7, "get_statu": 7, "cull": 7, "successful": 7, "proven": [7, 9], "established_callback": 7, "closed_callback": 7, "establishment_timeout_per_hop": 7, "6": [7, 10], "keepalive_timeout_factor": 7, "4": [7, 9, 10], "calcul": [7, 9, 10], "stale_grac": 7, "grace": 7, "keepal": [7, 9], "360": 7, "aliv": [7, 9], "stale_tim": 7, "720": 7, "mark": [7, 9], "stale": 7, "torn": 7, "progress_callback": 7, "info": [7, 9, 10], "track_phy_stat": 7, "track": 7, "retriev": 7, "stat": [7, 10], "qualiti": 7, "get_rssi": 7, "signal": 7, "strength": [7, 11], "get_snr": 7, "nois": 7, "ratio": 7, "get_q": 7, "get_establishment_r": 7, "ocur": 7, "no_inbound_for": 7, "no_outbound_for": 7, "outbound": [7, 9], "no_data_for": 7, "travers": [7, 9], "exclud": [7, 9], "inactive_for": 7, "purg": 7, "set_resource_callback": 7, "get_transfer_s": 7, "get_data_s": 7, "get_part": 7, "is_compress": 7, "begun": 7, "resource_strategi": 7, "accept_non": 7, "accept_app": 7, "resource_callback": 7, "unsupport": 7, "get_request_id": 7, "get_respons": 7, "get_response_tim": 7, "auto_compress": 7, "arbitrari": [7, 9, 10, 11], "checksum": [7, 11], "Will": 7, "whenev": [7, 9], "cancel": 7, "total": [7, 9, 11], "get_seg": 7, "divid": 7, "get_hash": 7, "bi": [7, 9], "neither": [7, 9], "constrain": 7, "message_class": 7, "recept": 7, "messagecallbacktyp": 7, "bool": 7, "stop": [7, 11], "remove_message_handl": 7, "remov": [7, 10], "envelop": 7, "thrown": 7, "consum": 7, "adjust": 7, "accommod": [7, 9], "abstract": [7, 9], "greater": [7, 9, 11], "popul": 7, "bufferedread": 7, "bufferedwrit": 7, "bufferedrwpair": 7, "create_read": 7, "ready_callback": 7, "document": [7, 9], "create_writ": 7, "receive_stream_id": 7, "send_stream_id": 7, "rawiobas": 7, "add_ready_callback": 7, "cb": [7, 9], "remove_ready_callback": 7, "pathfinder_m": 7, "attribut": 7, "deregister_announce_handl": 7, "hops_to": 7, "next_hop": 7, "next_hop_interfac": 7, "on_interfac": 7, "recurs": 7, "gratefulli": 8, "monero": 8, "84fpy1qbxhcgdseepynmhthcrgmx4nffbytz2gkytoqhvvhjp8eaw1z1eedrnkd19b3b8nilcgvxzkv17ummmeescrpya5w": 8, "ethereum": 8, "0x81f7b979fea6134ba9fd5c701b3501a2e61e897a": 8, "bitcoin": 8, "3cpmacgm34qyvr6xwlvejmi2ane3pzquuq": 8, "ko": 8, "fi": 8, "roadmap": 8, "realiti": 8, "quickli": [8, 9, 11], "sponsor": [8, 11], "dysfunct": 8, "analyt": 8, "telemetri": 8, "collect": 8, "under": [8, 10, 11], "circumst": [8, 9], "reli": [8, 9], "fashion": 8, "u": [8, 9, 10], "suggest": 8, "overal": 9, "principl": [9, 11], "author": 9, "That": 9, "said": 9, "pretti": 9, "sentiment": 9, "philosophi": 9, "seek": 9, "solv": 9, "solut": [2, 9, 10], "primari": 9, "lack": 9, "my": 9, "belief": 9, "highli": 9, "machin": 9, "censorship": [9, 11], "barrier": 9, "todai": 9, "centralis": 9, "trust": [9, 10], "approv": 9, "gatekeep": 9, "inevit": 9, "govern": 9, "censor": 9, "persecut": 9, "unwant": 9, "actor": 9, "imposs": 9, "freeli": 9, "deploi": 9, "enhanc": 9, "agenc": 9, "freedom": 9, "permissionless": 9, "pick": 9, "ghz": 9, "off": [9, 10, 11], "shelf": [9, 11], "ultim": 9, "vast": 9, "myriad": 9, "thousand": 9, "surveil": 9, "disassoci": 9, "oversight": 9, "beings": 9, "useabl": 9, "critic": [9, 10], "agnostic": 9, "shall": 9, "handheld": 9, "interest": 9, "strong": 9, "oneself": 9, "unlicens": 9, "licens": 9, "condit": [9, 11], "pmr": 9, "written": 9, "programm": 9, "orient": 9, "multipoint": 9, "recipi": 9, "singular": 9, "_represented_": 9, "characterist": 9, "13425ec15b621c1d928589718000d814": 9, "trade": 9, "simultan": 9, "unlik": 9, "nears": 9, "congest": 9, "galact": 9, "scale": [9, 11], "obvious": 9, "ridicul": 9, "multi": [9, 10, 11], "special": [9, 10], "ecdh": [9, 11], "creator": 9, "correspond": 9, "possess": 9, "although": [9, 11], "capabl": 9, "dot": [9, 10], "notat": [9, 10], "repres": 9, "plenti": 9, "environment": 9, "monitor": 9, "measur": 9, "environmentlogg": 9, "remotesensor": 9, "temperatur": 9, "4faf1b2e0a077e6a9d92fa051f256038": 9, "advis": 9, "expand": 9, "recap": 9, "indirectli": 9, "ledger": 9, "therefor": [9, 11], "messeng": 9, "nicknam": 9, "ed25519": [9, 11], "reconstruct": 9, "notic": [9, 10], "piec": 9, "intention": 9, "infer": 9, "throughout": 9, "accord": 9, "around": 9, "topic": 9, "necessarili": 9, "person": 9, "entiti": 9, "robot": 9, "sensor": 9, "someth": 9, "agent": 9, "manipul": [9, 11], "multilater": 9, "creation": [9, 11], "great": 9, "suffic": 9, "cluster": 9, "hear": 9, "But": 9, "lot": 9, "surviv": 9, "overcom": 9, "challeng": 9, "asymmetr": [9, 10, 11], "closer": 9, "distinguish": 9, "contend": 9, "enable_transport": [9, 10], "randomis": 9, "prioriti": 9, "invers": 9, "proport": 9, "count": 9, "insert": 9, "closest": 9, "newer": 9, "newest": 9, "discard": 9, "contact": 9, "shortest": 9, "predict": 9, "constantli": 9, "earlier": 9, "opt": 9, "against": 9, "bidirect": 9, "rememb": 9, "ten": 9, "advanc": 9, "confirm": [9, 11], "insid": 9, "intermediari": 9, "moment": [9, 11], "methodologi": [9, 10], "answer": [9, 10], "malici": 9, "pretend": 9, "recreat": 9, "rotat": 9, "memori": 9, "thereaft": 9, "297": [9, 11], "practic": [2, 9, 11], "neglig": 9, "1200": 9, "96": 9, "keypair": 9, "simplic": 9, "explan": [9, 10], "lki": 9, "laid": 9, "had": 9, "construct": [9, 11], "lkr": 9, "chose": 9, "direction": 9, "unequivoc": 9, "retransmiss": 9, "reassembl": 9, "programmat": 9, "satisfi": 9, "half": [9, 11], "duplex": [9, 11], "averag": 9, "throughput": [9, 11], "x": [9, 10], "runtim": 9, "consist": 9, "whereupon": 9, "stabl": [9, 11], "stage": 9, "year": 9, "microcontrol": 9, "430": 9, "868": 9, "900": 9, "recent": 9, "mac": 9, "tailor": 9, "treat": 9, "regard": 9, "preshar": 9, "ifac": [9, 10], "compos": 9, "field": 9, "context": 9, "465": 9, "vari": [9, 10], "00": [9, 10], "01": 9, "11": 9, "_______": 9, "________________": 9, "________": 9, "______": 9, "__": 9, "_": 9, "01010000": 9, "00000100": 9, "hash1": 9, "hash2": 9, "header_2": 9, "00000000": 9, "00000111": 9, "header_1": 9, "10000000": 9, "51": 9, "167": 9, "83": [9, 10], "115": 9, "99": 9, "conceptu": 9, "hkdf": 9, "fernet": [9, 11], "cbc": [9, 11], "hmac": [9, 11], "hashlib": 9, "pkcs7": [9, 11], "pad": [9, 11], "trivial": [9, 11], "consequ": 9, "backend": 9, "loss": 9, "scrutini": 9, "review": [9, 11], "risk": 9, "driver": [10, 11], "privileg": 10, "light": 10, "weight": 10, "etc": 10, "boot": 10, "ie": 10, "breviti": 10, "socket": 10, "turn": 10, "share_inst": 10, "shared_instance_port": 10, "37428": 10, "instance_control_port": 10, "37429": 10, "rpc": 10, "rpc_kei": 10, "e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790": 10, "panic": 10, "unrecover": 10, "panic_on_interface_error": 10, "probe": 10, "respond_to_prob": 10, "warn": 10, "debug": 10, "unus": 10, "teach": 10, "task": 10, "08": 10, "18": 10, "17": 10, "59": 10, "56": 10, "v": 10, "show": 10, "ifconfig": 10, "gbp": 10, "13": 10, "kb": 10, "86": 10, "mbp": 10, "63": 10, "23": 10, "80": 10, "tcpinterfac": 10, "dublin": 10, "187": 10, "27": 10, "74": 10, "uhf": [10, 11], "kbp": 10, "e702c42ba8": 10, "49": 10, "9": 10, "5245a8efe1788c6a1cd36144a270e13b": 10, "j": 10, "posit": 10, "arx": 10, "atx": 10, "revers": 10, "json": 10, "new_ident": 10, "984b74a3f768bef236af4371e6f248cd": 10, "new_id": 10, "0f4259fef4521ab75a3409e353fe9073eb10783b4912a6a9937c57bf44a62c1": 10, "hidden": 10, "8dd57a738226809646089335a6b03695": 10, "my_fil": 10, "txt": 10, "bc7291552be7a58f361522990465165c": 10, "rfe": 10, "fetch": 10, "30602def3b3506a28ed33db6f60cc6c9": 10, "2b489d06eaf7c543808c76a5332a447d": 10, "my_ident": 10, "2225fdeecaf6e2db4556c3c2d7637294": 10, "w": 10, "decreas": 10, "overwrit": 10, "c89b4da064bf66d280f0e4d8abfd9806": 10, "f53a1c4278e0726bb73fcc623d6ce763": 10, "rnstransport": 10, "2d03725b327348980d570f739a3a5708": 10, "38": 10, "469": 10, "781": 10, "e7536ee90bd4a440e130490b87a25124": 10, "809": 10, "73": 10, "1726dbad538775b5bf9b0ea25a4079c8": 10, "c50cc4e4f7838b6c31f60ab9032cbc62": 10, "allowed_ident": 10, "copi": 10, "tgz": 10, "73cbd378bb0286ed11a707c13447bb1": 10, "allowed_hash": 10, "silent": 10, "auth": 10, "941bed5e228775e5a8079fc38b1ccf3f": 10, "1b03013c25f1c2ca068a4f080b844a10": 10, "7a55144adf826958a9529a3bcf08b149": 10, "cat": 10, "proc": 10, "cpuinfo": 10, "pseudo": 10, "stderr": 10, "noauth": 10, "noid": 10, "mirror": 10, "max": 10, "fw": 10, "nocheck": 10, "flash": 10, "baud_flash": 10, "freq": 10, "hz": 10, "bw": 10, "txp": 10, "sf": 10, "cr": 10, "eeprom": 10, "backup": 10, "dump": 10, "wipe": 10, "hexbyt": 10, "attach": 10, "older": 10, "onlin": 10, "extract": 10, "cach": 10, "921600": 10, "bluetooth": 10, "intens": 10, "consol": 10, "unlock": 10, "administr": 10, "ftdi_ft230x_basic_uart_43891ckm": 10, "if00": 10, "port0": 10, "plug": 10, "unplug": 10, "systemd": 10, "usr": 10, "bin": 10, "execstartpr": 10, "restart": 10, "restartsec": 10, "usernameher": 10, "execstart": 10, "wantedbi": 10, "systemctl": 10, "whole": 10, "regular": 10, "rns_bin_dir": 10, "eg": 10, "reload": 10, "loginctl": 10, "linger": 10, "readili": 11, "advers": 11, "unforg": 11, "acknowledg": 11, "empow": 11, "autonomi": 11, "sovereignti": 11, "subject": 11, "outsid": 11, "planetari": 11, "hierarch": 11, "beaureucrat": 11, "resili": 11, "userland": 11, "beta": 11, "bug": 11, "warrant": 11, "sha256": 11, "iv": 11, "urandom": 11, "intuit": 11, "friendli": 11, "44": 11, "gigabyt": 11, "scalabl": 11, "hoc": 11, "transform": 11, "fact": 11, "generalis": 11, "fibr": 11, "popular": 11, "ideal": 11, "stdio": 11, "hack": 11, "foremost": 11, "audit": 11, "privaci": 11, "thorough": 11, "research": 11, "touch": 11, "weird": 2, "goe": 2, "sai": 2, "hardcod": 2, "ship": 2}, "objects": {"RNS": [[7, 0, 1, "", "Buffer"], [7, 0, 1, "", "Destination"], [7, 0, 1, "", "Identity"], [7, 0, 1, "", "Link"], [7, 0, 1, "", "MessageBase"], [7, 0, 1, "", "Packet"], [7, 0, 1, "", "PacketReceipt"], [7, 0, 1, "", "RawChannelReader"], [7, 0, 1, "", "RawChannelWriter"], [7, 0, 1, "", "RequestReceipt"], [7, 0, 1, "", "Resource"], [7, 0, 1, "", "Reticulum"], [7, 0, 1, "", "Transport"]], "RNS.Buffer": [[7, 1, 1, "", "create_bidirectional_buffer"], [7, 1, 1, "", "create_reader"], [7, 1, 1, "", "create_writer"]], "RNS.Channel": [[7, 0, 1, "", "Channel"]], "RNS.Channel.Channel": [[7, 2, 1, "", "MDU"], [7, 1, 1, "", "add_message_handler"], [7, 1, 1, "", "is_ready_to_send"], [7, 1, 1, "", "register_message_type"], [7, 1, 1, "", "remove_message_handler"], [7, 1, 1, "", "send"]], "RNS.Destination": [[7, 1, 1, "", "accepts_links"], [7, 1, 1, "", "announce"], [7, 1, 1, "", "app_and_aspects_from_name"], [7, 1, 1, "", "clear_default_app_data"], [7, 1, 1, "", "create_keys"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "deregister_request_handler"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "expand_name"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "hash"], [7, 1, 1, "", "hash_from_name_and_identity"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "register_request_handler"], [7, 1, 1, "", "set_default_app_data"], [7, 1, 1, "", "set_link_established_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_proof_requested_callback"], [7, 1, 1, "", "set_proof_strategy"], [7, 1, 1, "", "sign"]], "RNS.Identity": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "KEYSIZE"], [7, 3, 1, "", "TRUNCATED_HASHLENGTH"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "from_bytes"], [7, 1, 1, "", "from_file"], [7, 1, 1, "", "full_hash"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "get_public_key"], [7, 1, 1, "", "get_random_hash"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "load_public_key"], [7, 1, 1, "", "recall"], [7, 1, 1, "", "recall_app_data"], [7, 1, 1, "", "sign"], [7, 1, 1, "", "to_file"], [7, 1, 1, "", "truncated_hash"], [7, 1, 1, "", "validate"]], "RNS.Link": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "ESTABLISHMENT_TIMEOUT_PER_HOP"], [7, 3, 1, "", "KEEPALIVE"], [7, 3, 1, "", "KEEPALIVE_TIMEOUT_FACTOR"], [7, 3, 1, "", "STALE_GRACE"], [7, 3, 1, "", "STALE_TIME"], [7, 1, 1, "", "get_channel"], [7, 1, 1, "", "get_establishment_rate"], [7, 1, 1, "", "get_q"], [7, 1, 1, "", "get_remote_identity"], [7, 1, 1, "", "get_rssi"], [7, 1, 1, "", "get_snr"], [7, 1, 1, "", "identify"], [7, 1, 1, "", "inactive_for"], [7, 1, 1, "", "no_data_for"], [7, 1, 1, "", "no_inbound_for"], [7, 1, 1, "", "no_outbound_for"], [7, 1, 1, "", "request"], [7, 1, 1, "", "set_link_closed_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_remote_identified_callback"], [7, 1, 1, "", "set_resource_callback"], [7, 1, 1, "", "set_resource_concluded_callback"], [7, 1, 1, "", "set_resource_started_callback"], [7, 1, 1, "", "set_resource_strategy"], [7, 1, 1, "", "teardown"], [7, 1, 1, "", "track_phy_stats"]], "RNS.MessageBase": [[7, 3, 1, "", "MSGTYPE"], [7, 1, 1, "", "pack"], [7, 1, 1, "", "unpack"]], "RNS.Packet": [[7, 3, 1, "", "ENCRYPTED_MDU"], [7, 3, 1, "", "PLAIN_MDU"], [7, 1, 1, "", "resend"], [7, 1, 1, "", "send"]], "RNS.PacketReceipt": [[7, 1, 1, "", "get_rtt"], [7, 1, 1, "", "get_status"], [7, 1, 1, "", "set_delivery_callback"], [7, 1, 1, "", "set_timeout"], [7, 1, 1, "", "set_timeout_callback"]], "RNS.RawChannelReader": [[7, 1, 1, "", "__init__"], [7, 1, 1, "", "add_ready_callback"], [7, 1, 1, "", "remove_ready_callback"]], "RNS.RawChannelWriter": [[7, 1, 1, "", "__init__"]], "RNS.RequestReceipt": [[7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_request_id"], [7, 1, 1, "", "get_response"], [7, 1, 1, "", "get_response_time"], [7, 1, 1, "", "get_status"]], "RNS.Resource": [[7, 1, 1, "", "advertise"], [7, 1, 1, "", "cancel"], [7, 1, 1, "", "get_data_size"], [7, 1, 1, "", "get_hash"], [7, 1, 1, "", "get_parts"], [7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_segments"], [7, 1, 1, "", "get_transfer_size"], [7, 1, 1, "", "is_compressed"]], "RNS.Reticulum": [[7, 3, 1, "", "ANNOUNCE_CAP"], [7, 3, 1, "", "MINIMUM_BITRATE"], [7, 3, 1, "", "MTU"], [7, 1, 1, "", "get_instance"], [7, 1, 1, "", "should_use_implicit_proof"], [7, 1, 1, "", "transport_enabled"]], "RNS.Transport": [[7, 3, 1, "", "PATHFINDER_M"], [7, 1, 1, "", "deregister_announce_handler"], [7, 1, 1, "", "has_path"], [7, 1, 1, "", "hops_to"], [7, 1, 1, "", "next_hop"], [7, 1, 1, "", "next_hop_interface"], [7, 1, 1, "", "register_announce_handler"], [7, 1, 1, "", "request_path"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "attribute", "Python attribute"]}, "titleterms": {"code": [0, 8, 9], "exampl": [0, 6], "minim": 0, "announc": [0, 5, 9], "broadcast": 0, "echo": 0, "link": [0, 9], "identif": 0, "request": 0, "respons": 0, "channel": 0, "buffer": 0, "filetransf": 0, "an": 1, "explan": 1, "reticulum": [1, 2, 3, 4, 8, 9, 10, 11], "human": 1, "Beings": 1, "get": [2, 9], "start": 2, "fast": 2, "standalon": 2, "instal": [2, 3], "resolv": 2, "depend": 2, "issu": 2, "try": 2, "us": [2, 10, 11], "base": [2, 3], "program": [2, 10], "remot": 2, "shell": 2, "nomad": 2, "network": [2, 4, 6], "sideband": 2, "includ": [2, 10], "util": [2, 10], "creat": [2, 3], "With": 2, "connect": 2, "instanc": 2, "over": [2, 6], "internet": [2, 6], "public": [2, 9], "testnet": 2, "ad": 2, "radio": [2, 3], "interfac": [2, 5, 9, 11], "develop": 2, "particip": 2, "platform": 2, "specif": [2, 9], "note": 2, "android": 2, "arm64": 2, "raspberri": 2, "pi": 2, "debian": 2, "bookworm": 2, "ubuntu": 2, "lunar": 2, "pure": 2, "python": 2, "commun": 3, "hardwar": 3, "combin": 3, "type": [3, 9, 11], "rnode": [3, 5], "support": [3, 8], "board": 3, "lilygo": 3, "lora32": 3, "v2": 3, "1": 3, "0": 3, "t": 3, "beam": 3, "heltec": 3, "unsign": 3, "x": 3, "v1": 3, "usag": 3, "wifi": 3, "ethernet": 3, "serial": [3, 5, 10], "line": 3, "devic": [3, 11], "packet": [3, 9], "modem": 3, "stack": 4, "manual": 4, "tabl": 4, "Of": 4, "content": 4, "indic": 4, "configur": [5, 10], "auto": 5, "i2p": 5, "tcp": 5, "server": 5, "client": 5, "udp": 5, "lora": [5, 6], "pipe": 5, "kiss": 5, "ax": 5, "25": 5, "common": 5, "option": 5, "mode": 5, "rate": 5, "control": 5, "new": 5, "destin": [5, 9], "limit": 5, "build": 6, "concept": 6, "overview": 6, "scenario": 6, "interconnect": 6, "site": 6, "bridg": 6, "growth": 6, "converg": 6, "api": 7, "refer": [7, 9], "donat": 8, "provid": 8, "feedback": 8, "contribut": 8, "understand": 9, "motiv": 9, "goal": 9, "introduct": 9, "basic": 9, "function": 9, "name": [9, 10], "kei": 9, "ident": 9, "further": 9, "transport": 9, "node": 9, "The": [9, 10], "mechan": 9, "detail": 9, "reach": 9, "establish": 9, "resourc": 9, "setup": 9, "protocol": 9, "prioritis": 9, "access": 9, "wire": 9, "format": 9, "propag": 9, "rule": 9, "cryptograph": 9, "primit": 9, "your": 10, "system": 10, "data": 10, "rnsd": 10, "rnstatu": 10, "rnid": 10, "rnpath": 10, "rnprobe": 10, "rncp": 10, "rnx": 10, "rnodeconf": 10, "improv": 10, "fix": 10, "port": 10, "servic": 10, "systemwid": 10, "userspac": 10, "what": 11, "i": 11, "current": 11, "statu": 11, "doe": 11, "offer": 11, "where": 11, "can": 11, "caveat": 11, "emptor": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Code Examples": [[0, "code-examples"]], "Minimal": [[0, "minimal"]], "Announce": [[0, "announce"]], "Broadcast": [[0, "broadcast"]], "Echo": [[0, "echo"]], "Link": [[0, "link"]], "Identification": [[0, "example-identify"]], "Requests & Responses": [[0, "requests-responses"]], "Channel": [[0, "channel"]], "Buffer": [[0, "buffer"]], "Filetransfer": [[0, "filetransfer"]], "An Explanation of Reticulum for Human Beings": [[1, "an-explanation-of-reticulum-for-human-beings"]], "Getting Started Fast": [[2, "getting-started-fast"]], "Standalone Reticulum Installation": [[2, "standalone-reticulum-installation"]], "Resolving Dependency & Installation Issues": [[2, "resolving-dependency-installation-issues"]], "Try Using a Reticulum-based Program": [[2, "try-using-a-reticulum-based-program"]], "Remote Shell": [[2, "remote-shell"]], "Nomad Network": [[2, "nomad-network"]], "Sideband": [[2, "sideband"]], "Using the Included Utilities": [[2, "using-the-included-utilities"]], "Creating a Network With Reticulum": [[2, "creating-a-network-with-reticulum"]], "Connecting Reticulum Instances Over the Internet": [[2, "connecting-reticulum-instances-over-the-internet"]], "Connect to the Public Testnet": [[2, "connect-to-the-public-testnet"]], "Adding Radio Interfaces": [[2, "adding-radio-interfaces"]], "Develop a Program with Reticulum": [[2, "develop-a-program-with-reticulum"]], "Participate in Reticulum Development": [[2, "participate-in-reticulum-development"]], "Platform-Specific Install Notes": [[2, "platform-specific-install-notes"]], "Android": [[2, "android"]], "ARM64": [[2, "arm64"]], "Raspberry Pi": [[2, "raspberry-pi"]], "Debian Bookworm": [[2, "debian-bookworm"]], "Ubuntu Lunar": [[2, "ubuntu-lunar"]], "Pure-Python Reticulum": [[2, "pure-python-reticulum"]], "Communications Hardware": [[3, "communications-hardware"]], "Combining Hardware Types": [[3, "combining-hardware-types"]], "RNode": [[3, "rnode"]], "Creating RNodes": [[3, "creating-rnodes"]], "Supported Boards": [[3, "supported-boards"]], "LilyGO LoRa32 v2.1": [[3, "lilygo-lora32-v2-1"]], "LilyGO LoRa32 v2.0": [[3, "lilygo-lora32-v2-0"]], "LilyGO T-Beam": [[3, "lilygo-t-beam"]], "Heltec LoRa32 v2.0": [[3, "heltec-lora32-v2-0"]], "Unsigned RNode v2.x": [[3, "unsigned-rnode-v2-x"]], "Unsigned RNode v1.x": [[3, "unsigned-rnode-v1-x"]], "Installation": [[3, "installation"]], "Usage with Reticulum": [[3, "usage-with-reticulum"]], "WiFi-based Hardware": [[3, "wifi-based-hardware"]], "Ethernet-based Hardware": [[3, "ethernet-based-hardware"]], "Serial Lines & Devices": [[3, "serial-lines-devices"]], "Packet Radio Modems": [[3, "packet-radio-modems"]], "Reticulum Network Stack Manual": [[4, "reticulum-network-stack-manual"]], "Table Of Contents": [[4, "table-of-contents"]], "Indices and Tables": [[4, "indices-and-tables"]], "Configuring Interfaces": [[5, "configuring-interfaces"]], "Auto Interface": [[5, "auto-interface"]], "I2P Interface": [[5, "i2p-interface"]], "TCP Server Interface": [[5, "tcp-server-interface"]], "TCP Client Interface": [[5, "tcp-client-interface"]], "UDP Interface": [[5, "udp-interface"]], "RNode LoRa Interface": [[5, "rnode-lora-interface"]], "Serial Interface": [[5, "serial-interface"]], "Pipe Interface": [[5, "pipe-interface"]], "KISS Interface": [[5, "kiss-interface"]], "AX.25 KISS Interface": [[5, "ax-25-kiss-interface"]], "Common Interface Options": [[5, "common-interface-options"]], "Interface Modes": [[5, "interface-modes"]], "Announce Rate Control": [[5, "announce-rate-control"]], "New Destination Rate Limiting": [[5, "new-destination-rate-limiting"]], "Building Networks": [[6, "building-networks"]], "Concepts & Overview": [[6, "concepts-overview"]], "Example Scenarios": [[6, "example-scenarios"]], "Interconnected LoRa Sites": [[6, "interconnected-lora-sites"]], "Bridging Over the Internet": [[6, "bridging-over-the-internet"]], "Growth and Convergence": [[6, "growth-and-convergence"]], "API Reference": [[7, "api-reference"]], "Support Reticulum": [[8, "support-reticulum"]], "Donations": [[8, "donations"]], "Provide Feedback": [[8, "provide-feedback"]], "Contribute Code": [[8, "contribute-code"]], "Understanding Reticulum": [[9, "understanding-reticulum"]], "Motivation": [[9, "motivation"]], "Goals": [[9, "goals"]], "Introduction & Basic Functionality": [[9, "introduction-basic-functionality"]], "Destinations": [[9, "destinations"]], "Destination Naming": [[9, "destination-naming"]], "Public Key Announcements": [[9, "public-key-announcements"]], "Identities": [[9, "understanding-identities"]], "Getting Further": [[9, "getting-further"]], "Reticulum Transport": [[9, "reticulum-transport"]], "Node Types": [[9, "node-types"]], "The Announce Mechanism in Detail": [[9, "the-announce-mechanism-in-detail"]], "Reaching the Destination": [[9, "reaching-the-destination"]], "Link Establishment in Detail": [[9, "link-establishment-in-detail"]], "Resources": [[9, "resources"]], "Reference Setup": [[9, "reference-setup"]], "Protocol Specifics": [[9, "protocol-specifics"]], "Packet Prioritisation": [[9, "packet-prioritisation"]], "Interface Access Codes": [[9, "interface-access-codes"]], "Wire Format": [[9, "wire-format"]], "Announce Propagation Rules": [[9, "announce-propagation-rules"]], "Cryptographic Primitives": [[9, "cryptographic-primitives"]], "Using Reticulum on Your System": [[10, "using-reticulum-on-your-system"]], "Configuration & Data": [[10, "configuration-data"]], "Included Utility Programs": [[10, "included-utility-programs"]], "The rnsd Utility": [[10, "the-rnsd-utility"]], "The rnstatus Utility": [[10, "the-rnstatus-utility"]], "The rnid Utility": [[10, "the-rnid-utility"]], "The rnpath Utility": [[10, "the-rnpath-utility"]], "The rnprobe Utility": [[10, "the-rnprobe-utility"]], "The rncp Utility": [[10, "the-rncp-utility"]], "The rnx Utility": [[10, "the-rnx-utility"]], "The rnodeconf Utility": [[10, "the-rnodeconf-utility"]], "Improving System Configuration": [[10, "improving-system-configuration"]], "Fixed Serial Port Names": [[10, "fixed-serial-port-names"]], "Reticulum as a System Service": [[10, "reticulum-as-a-system-service"]], "Systemwide Service": [[10, "systemwide-service"]], "Userspace Service": [[10, "userspace-service"]], "What is Reticulum?": [[11, "what-is-reticulum"]], "Current Status": [[11, "current-status"]], "What does Reticulum Offer?": [[11, "what-does-reticulum-offer"]], "Where can Reticulum be Used?": [[11, "where-can-reticulum-be-used"]], "Interface Types and Devices": [[11, "interface-types-and-devices"]], "Caveat Emptor": [[11, "caveat-emptor"]]}, "indexentries": {"announce_cap (rns.reticulum attribute)": [[7, "RNS.Reticulum.ANNOUNCE_CAP"]], "buffer (class in rns)": [[7, "RNS.Buffer"]], "curve (rns.identity attribute)": [[7, "RNS.Identity.CURVE"]], "curve (rns.link attribute)": [[7, "RNS.Link.CURVE"]], "channel (class in rns.channel)": [[7, "RNS.Channel.Channel"]], "destination (class in rns)": [[7, "RNS.Destination"]], "encrypted_mdu (rns.packet attribute)": [[7, "RNS.Packet.ENCRYPTED_MDU"]], "establishment_timeout_per_hop (rns.link attribute)": [[7, "RNS.Link.ESTABLISHMENT_TIMEOUT_PER_HOP"]], "identity (class in rns)": [[7, "RNS.Identity"]], "keepalive (rns.link attribute)": [[7, "RNS.Link.KEEPALIVE"]], "keepalive_timeout_factor (rns.link attribute)": [[7, "RNS.Link.KEEPALIVE_TIMEOUT_FACTOR"]], "keysize (rns.identity attribute)": [[7, "RNS.Identity.KEYSIZE"]], "link (class in rns)": [[7, "RNS.Link"]], "mdu (rns.channel.channel property)": [[7, "RNS.Channel.Channel.MDU"]], "minimum_bitrate (rns.reticulum attribute)": [[7, "RNS.Reticulum.MINIMUM_BITRATE"]], "msgtype (rns.messagebase attribute)": [[7, "RNS.MessageBase.MSGTYPE"]], "mtu (rns.reticulum attribute)": [[7, "RNS.Reticulum.MTU"]], "messagebase (class in rns)": [[7, "RNS.MessageBase"]], "pathfinder_m (rns.transport attribute)": [[7, "RNS.Transport.PATHFINDER_M"]], "plain_mdu (rns.packet attribute)": [[7, "RNS.Packet.PLAIN_MDU"]], "packet (class in rns)": [[7, "RNS.Packet"]], "packetreceipt (class in rns)": [[7, "RNS.PacketReceipt"]], "rawchannelreader (class in rns)": [[7, "RNS.RawChannelReader"]], "rawchannelwriter (class in rns)": [[7, "RNS.RawChannelWriter"]], "requestreceipt (class in rns)": [[7, "RNS.RequestReceipt"]], "resource (class in rns)": [[7, "RNS.Resource"]], "reticulum (class in rns)": [[7, "RNS.Reticulum"]], "stale_grace (rns.link attribute)": [[7, "RNS.Link.STALE_GRACE"]], "stale_time (rns.link attribute)": [[7, "RNS.Link.STALE_TIME"]], "truncated_hashlength (rns.identity attribute)": [[7, "RNS.Identity.TRUNCATED_HASHLENGTH"]], "transport (class in rns)": [[7, "RNS.Transport"]], "__init__() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.__init__"]], "__init__() (rns.rawchannelwriter method)": [[7, "RNS.RawChannelWriter.__init__"]], "accepts_links() (rns.destination method)": [[7, "RNS.Destination.accepts_links"]], "add_message_handler() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.add_message_handler"]], "add_ready_callback() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.add_ready_callback"]], "advertise() (rns.resource method)": [[7, "RNS.Resource.advertise"]], "announce() (rns.destination method)": [[7, "RNS.Destination.announce"]], "app_and_aspects_from_name() (rns.destination static method)": [[7, "RNS.Destination.app_and_aspects_from_name"]], "cancel() (rns.resource method)": [[7, "RNS.Resource.cancel"]], "clear_default_app_data() (rns.destination method)": [[7, "RNS.Destination.clear_default_app_data"]], "create_bidirectional_buffer() (rns.buffer static method)": [[7, "RNS.Buffer.create_bidirectional_buffer"]], "create_keys() (rns.destination method)": [[7, "RNS.Destination.create_keys"]], "create_reader() (rns.buffer static method)": [[7, "RNS.Buffer.create_reader"]], "create_writer() (rns.buffer static method)": [[7, "RNS.Buffer.create_writer"]], "decrypt() (rns.destination method)": [[7, "RNS.Destination.decrypt"]], "decrypt() (rns.identity method)": [[7, "RNS.Identity.decrypt"]], "deregister_announce_handler() (rns.transport static method)": [[7, "RNS.Transport.deregister_announce_handler"]], "deregister_request_handler() (rns.destination method)": [[7, "RNS.Destination.deregister_request_handler"]], "encrypt() (rns.destination method)": [[7, "RNS.Destination.encrypt"]], "encrypt() (rns.identity method)": [[7, "RNS.Identity.encrypt"]], "expand_name() (rns.destination static method)": [[7, "RNS.Destination.expand_name"]], "from_bytes() (rns.identity static method)": [[7, "RNS.Identity.from_bytes"]], "from_file() (rns.identity static method)": [[7, "RNS.Identity.from_file"]], "full_hash() (rns.identity static method)": [[7, "RNS.Identity.full_hash"]], "get_channel() (rns.link method)": [[7, "RNS.Link.get_channel"]], "get_data_size() (rns.resource method)": [[7, "RNS.Resource.get_data_size"]], "get_establishment_rate() (rns.link method)": [[7, "RNS.Link.get_establishment_rate"]], "get_hash() (rns.resource method)": [[7, "RNS.Resource.get_hash"]], "get_instance() (rns.reticulum static method)": [[7, "RNS.Reticulum.get_instance"]], "get_parts() (rns.resource method)": [[7, "RNS.Resource.get_parts"]], "get_private_key() (rns.destination method)": [[7, "RNS.Destination.get_private_key"]], "get_private_key() (rns.identity method)": [[7, "RNS.Identity.get_private_key"]], "get_progress() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_progress"]], "get_progress() (rns.resource method)": [[7, "RNS.Resource.get_progress"]], "get_public_key() (rns.identity method)": [[7, "RNS.Identity.get_public_key"]], "get_q() (rns.link method)": [[7, "RNS.Link.get_q"]], "get_random_hash() (rns.identity static method)": [[7, "RNS.Identity.get_random_hash"]], "get_remote_identity() (rns.link method)": [[7, "RNS.Link.get_remote_identity"]], "get_request_id() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_request_id"]], "get_response() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_response"]], "get_response_time() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_response_time"]], "get_rssi() (rns.link method)": [[7, "RNS.Link.get_rssi"]], "get_rtt() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.get_rtt"]], "get_segments() (rns.resource method)": [[7, "RNS.Resource.get_segments"]], "get_snr() (rns.link method)": [[7, "RNS.Link.get_snr"]], "get_status() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.get_status"]], "get_status() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_status"]], "get_transfer_size() (rns.resource method)": [[7, "RNS.Resource.get_transfer_size"]], "has_path() (rns.transport static method)": [[7, "RNS.Transport.has_path"]], "hash() (rns.destination static method)": [[7, "RNS.Destination.hash"]], "hash_from_name_and_identity() (rns.destination static method)": [[7, "RNS.Destination.hash_from_name_and_identity"]], "hops_to() (rns.transport static method)": [[7, "RNS.Transport.hops_to"]], "identify() (rns.link method)": [[7, "RNS.Link.identify"]], "inactive_for() (rns.link method)": [[7, "RNS.Link.inactive_for"]], "is_compressed() (rns.resource method)": [[7, "RNS.Resource.is_compressed"]], "is_ready_to_send() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.is_ready_to_send"]], "load_private_key() (rns.destination method)": [[7, "RNS.Destination.load_private_key"]], "load_private_key() (rns.identity method)": [[7, "RNS.Identity.load_private_key"]], "load_public_key() (rns.identity method)": [[7, "RNS.Identity.load_public_key"]], "next_hop() (rns.transport static method)": [[7, "RNS.Transport.next_hop"]], "next_hop_interface() (rns.transport static method)": [[7, "RNS.Transport.next_hop_interface"]], "no_data_for() (rns.link method)": [[7, "RNS.Link.no_data_for"]], "no_inbound_for() (rns.link method)": [[7, "RNS.Link.no_inbound_for"]], "no_outbound_for() (rns.link method)": [[7, "RNS.Link.no_outbound_for"]], "pack() (rns.messagebase method)": [[7, "RNS.MessageBase.pack"]], "recall() (rns.identity static method)": [[7, "RNS.Identity.recall"]], "recall_app_data() (rns.identity static method)": [[7, "RNS.Identity.recall_app_data"]], "register_announce_handler() (rns.transport static method)": [[7, "RNS.Transport.register_announce_handler"]], "register_message_type() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.register_message_type"]], "register_request_handler() (rns.destination method)": [[7, "RNS.Destination.register_request_handler"]], "remove_message_handler() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.remove_message_handler"]], "remove_ready_callback() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.remove_ready_callback"]], "request() (rns.link method)": [[7, "RNS.Link.request"]], "request_path() (rns.transport static method)": [[7, "RNS.Transport.request_path"]], "resend() (rns.packet method)": [[7, "RNS.Packet.resend"]], "send() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.send"]], "send() (rns.packet method)": [[7, "RNS.Packet.send"]], "set_default_app_data() (rns.destination method)": [[7, "RNS.Destination.set_default_app_data"]], "set_delivery_callback() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_delivery_callback"]], "set_link_closed_callback() (rns.link method)": [[7, "RNS.Link.set_link_closed_callback"]], "set_link_established_callback() (rns.destination method)": [[7, "RNS.Destination.set_link_established_callback"]], "set_packet_callback() (rns.destination method)": [[7, "RNS.Destination.set_packet_callback"]], "set_packet_callback() (rns.link method)": [[7, "RNS.Link.set_packet_callback"]], "set_proof_requested_callback() (rns.destination method)": [[7, "RNS.Destination.set_proof_requested_callback"]], "set_proof_strategy() (rns.destination method)": [[7, "RNS.Destination.set_proof_strategy"]], "set_remote_identified_callback() (rns.link method)": [[7, "RNS.Link.set_remote_identified_callback"]], "set_resource_callback() (rns.link method)": [[7, "RNS.Link.set_resource_callback"]], "set_resource_concluded_callback() (rns.link method)": [[7, "RNS.Link.set_resource_concluded_callback"]], "set_resource_started_callback() (rns.link method)": [[7, "RNS.Link.set_resource_started_callback"]], "set_resource_strategy() (rns.link method)": [[7, "RNS.Link.set_resource_strategy"]], "set_timeout() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_timeout"]], "set_timeout_callback() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_timeout_callback"]], "should_use_implicit_proof() (rns.reticulum static method)": [[7, "RNS.Reticulum.should_use_implicit_proof"]], "sign() (rns.destination method)": [[7, "RNS.Destination.sign"]], "sign() (rns.identity method)": [[7, "RNS.Identity.sign"]], "teardown() (rns.link method)": [[7, "RNS.Link.teardown"]], "to_file() (rns.identity method)": [[7, "RNS.Identity.to_file"]], "track_phy_stats() (rns.link method)": [[7, "RNS.Link.track_phy_stats"]], "transport_enabled() (rns.reticulum static method)": [[7, "RNS.Reticulum.transport_enabled"]], "truncated_hash() (rns.identity static method)": [[7, "RNS.Identity.truncated_hash"]], "unpack() (rns.messagebase method)": [[7, "RNS.MessageBase.unpack"]], "validate() (rns.identity method)": [[7, "RNS.Identity.validate"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["examples", "forhumans", "gettingstartedfast", "hardware", "index", "interfaces", "networks", "reference", "support", "understanding", "using", "whatis"], "filenames": ["examples.rst", "forhumans.rst", "gettingstartedfast.rst", "hardware.rst", "index.rst", "interfaces.rst", "networks.rst", "reference.rst", "support.rst", "understanding.rst", "using.rst", "whatis.rst"], "titles": ["Code Examples", "An Explanation of Reticulum for Human Beings", "Getting Started Fast", "Communications Hardware", "Reticulum Network Stack Manual", "Configuring Interfaces", "Building Networks", "API Reference", "Support Reticulum", "Understanding Reticulum", "Using Reticulum on Your System", "What is Reticulum?"], "terms": {"A": [0, 2, 5, 6, 7, 9, 10, 11], "number": [0, 2, 5, 6, 7, 9, 10], "ar": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "includ": [0, 3, 4, 5, 7, 9], "sourc": [0, 2, 3, 6, 9, 11], "distribut": [0, 2, 6, 7, 9, 10], "reticulum": [0, 5, 6, 7], "you": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "can": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "us": [0, 3, 4, 5, 6, 7, 9], "learn": [0, 2, 8, 9], "how": [0, 2, 3, 5, 6, 9, 10, 11], "write": [0, 2, 5, 7, 9, 10], "your": [0, 2, 3, 4, 5, 6, 8, 9, 11], "own": [0, 2, 6, 7, 9, 10, 11], "program": [0, 3, 4, 5, 7, 9, 11], "The": [0, 2, 3, 4, 5, 6, 7, 11], "demonstr": [0, 5], "bare": [0, 5], "minimum": [0, 5, 6, 7, 9], "setup": [0, 2, 4, 5, 10], "requir": [0, 2, 5, 6, 7, 9, 10, 11], "connect": [0, 3, 4, 5, 6, 7, 9, 10, 11], "network": [0, 3, 5, 7, 9, 10, 11], "from": [0, 2, 3, 5, 6, 7, 9, 10, 11], "In": [0, 2, 3, 5, 6, 7, 9, 10, 11], "about": [0, 2, 3, 5, 6, 7, 9], "five": 0, "line": [0, 2, 4, 5, 6, 9, 10, 11], "have": [0, 2, 3, 5, 6, 7, 9, 10], "stack": [0, 2, 6, 7, 9, 10, 11], "initialis": [0, 7, 10], "readi": [0, 2, 3, 5, 6, 7, 11], "pass": [0, 3, 5, 6, 7, 9, 10], "traffic": [0, 2, 5, 6, 7, 9, 10], "thi": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "rn": [0, 2, 3, 7, 9, 10], "start": [0, 3, 4, 5, 7, 9, 10], "up": [0, 2, 3, 5, 6, 9, 10, 11], "gener": [0, 2, 3, 5, 6, 7, 9, 10, 11], "new": [0, 4, 6, 7, 9, 10], "destin": [0, 2, 4, 6, 7, 10], "let": [0, 2, 5, 6, 9, 10], "user": [0, 2, 5, 6, 9, 10, 11], "send": [0, 5, 7, 9, 10], "an": [0, 2, 3, 5, 6, 7, 9, 10, 11], "import": [0, 2, 3, 5, 6, 7, 8, 9], "argpars": 0, "": [0, 2, 5, 6, 9, 10, 11], "defin": [0, 5, 7, 9, 10], "app": [0, 2, 7, 9], "name": [0, 4, 5, 6, 7], "we": [0, 2, 3, 5, 8, 9], "ll": [0, 2, 11], "all": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "creat": [0, 4, 5, 6, 7, 9, 10, 11], "sinc": [0, 2, 5, 6, 7, 9], "basic": [0, 2, 4, 7, 10], "i": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "part": [0, 5, 6, 7, 9, 10], "rang": [0, 2, 3, 5, 6, 9, 10, 11], "util": [0, 3, 4, 5, 9], "put": [0, 3, 5, 10], "them": [0, 2, 3, 5, 6, 8, 9, 10, 11], "within": [0, 2, 5, 6, 7, 9], "namespac": 0, "example_util": 0, "app_nam": [0, 7], "execut": [0, 2, 5, 7, 10], "when": [0, 2, 3, 5, 6, 7, 9, 10], "def": 0, "program_setup": 0, "configpath": 0, "must": [0, 2, 5, 6, 7, 9, 10], "first": [0, 2, 5, 7, 9, 10], "randomli": [0, 9], "ident": [0, 2, 4, 7, 10, 11], "our": [0, 9], "just": [0, 2, 3, 5, 6, 9, 11], "endpoint": [0, 6, 7, 9], "address": [0, 2, 5, 6, 7, 9, 11], "commun": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11], "also": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "exist": [0, 2, 3, 5, 9, 10, 11], "which": [0, 2, 5, 6, 7, 9, 10], "know": [0, 2, 3, 6, 7, 9, 11], "thei": [0, 2, 5, 6, 7, 9, 10], "reachabl": [0, 2, 5, 6, 7, 9, 10], "automat": [0, 2, 3, 5, 6, 7, 9, 10, 11], "path": [0, 2, 3, 5, 7, 9, 10], "anywher": [0, 5], "els": [0, 2, 6, 9], "IN": [0, 7], "singl": [0, 5, 7, 9, 10, 11], "minimalsampl": 0, "configur": [0, 2, 3, 4, 6, 7, 9, 11], "prove": [0, 9], "packet": [0, 2, 4, 5, 6, 7, 10, 11], "By": [0, 2, 5, 7, 9, 10], "do": [0, 2, 3, 5, 7, 9, 10, 11], "proof": [0, 7, 9, 10], "each": [0, 2, 5, 6, 9, 10], "incom": [0, 5, 7, 10], "transmit": [0, 5, 9], "back": [0, 5, 9, 11], "sender": [0, 2, 6, 9, 10], "anyon": [0, 2, 3, 5, 6, 7, 9, 10], "tri": 0, "whether": [0, 5, 7, 9], "wa": [0, 3, 5, 6, 7, 9, 10, 11], "receiv": [0, 2, 5, 7, 9, 10], "correctli": 0, "set_proof_strategi": [0, 7], "prove_al": [0, 7], "everyth": [0, 6, 9], "hand": 0, "over": [0, 3, 4, 5, 7, 9, 10, 11], "control": [0, 2, 3, 4, 6, 7, 9, 11], "loop": 0, "announceloop": 0, "log": [0, 5, 10], "prettyhexrep": 0, "hash": [0, 2, 7, 9, 10], "run": [0, 2, 3, 5, 6, 7, 9, 10, 11], "hit": 0, "enter": [0, 10], "manual": [0, 2, 5, 6, 7, 10], "ctrl": 0, "c": [0, 6, 10], "quit": 0, "until": [0, 2, 5, 7], "exit": [0, 2, 7, 10], "If": [0, 2, 3, 5, 6, 7, 9, 10, 11], "server": [0, 2, 3, 4, 7, 10], "client": [0, 2, 3, 4, 7], "messag": [0, 2, 7, 9, 10], "direct": [0, 2, 3, 6, 7, 9, 10], "toward": [0, 5, 9], "while": [0, 2, 3, 5, 6, 7, 9, 11], "true": [0, 2, 5, 7, 10], "input": [0, 10], "sent": [0, 2, 7, 9, 10], "startup": [0, 10], "get": [0, 3, 4, 5, 7, 11], "pars": 0, "desir": [0, 3, 5, 9], "mode": [0, 2, 3, 4, 9, 10, 11], "__name__": 0, "__main__": 0, "try": [0, 4, 5], "parser": 0, "argumentpars": 0, "descript": [0, 10], "add_argu": 0, "config": [0, 2, 6, 10], "action": 0, "store": [0, 3, 9, 10], "default": [0, 2, 3, 5, 6, 7, 9, 10], "none": [0, 2, 5, 7, 9, 10], "help": [0, 6, 8, 9, 10, 11], "altern": [0, 2, 5, 10], "directori": [0, 10], "type": [0, 2, 4, 5, 6, 7, 10], "str": 0, "arg": 0, "parse_arg": 0, "configarg": 0, "except": [0, 5, 7], "keyboardinterrupt": 0, "print": [0, 5, 10], "found": [0, 2, 5, 6, 9, 10], "http": [0, 2, 8], "github": [0, 2, 8], "com": [0, 2, 8], "markqvist": [0, 2, 8], "blob": [0, 9], "master": [0, 7], "py": [0, 2, 9, 10], "build": [0, 2, 3, 4, 5, 9, 11], "upon": [0, 9], "previou": 0, "explor": [0, 9, 11], "notif": [0, 7], "relev": [0, 3, 5, 7, 9, 10], "set": [0, 2, 3, 5, 6, 7, 9, 10, 11], "callback": [0, 7], "applic": [0, 2, 5, 6, 7, 9, 10, 11], "arriv": [0, 9], "random": [0, 7, 9], "two": [0, 2, 3, 5, 6, 7, 9], "list": [0, 2, 3, 5, 7, 9, 11], "string": [0, 7], "app_data": [0, 7], "fruit": 0, "peach": 0, "quinc": 0, "date": [0, 2], "tangerin": 0, "pomelo": 0, "carambola": 0, "grape": 0, "noble_gas": 0, "helium": 0, "neon": 0, "argon": 0, "krypton": 0, "xenon": 0, "radon": 0, "oganesson": 0, "announcesampl": 0, "space": [0, 2, 3, 6, 9, 11], "destination_1": 0, "destination_2": 0, "handler": [0, 7], "onli": [0, 2, 3, 5, 6, 7, 9, 10, 11], "ask": [0, 2, 3, 7], "chang": [0, 2, 5, 7, 9, 10, 11], "filter": [0, 6, 9, 10], "see": [0, 2, 5, 6, 7, 9, 10, 11], "what": [0, 2, 4, 7, 9], "happen": [0, 2, 7, 9], "announce_handl": 0, "exampleannouncehandl": 0, "aspect_filt": [0, 7], "regist": [0, 7], "transport": [0, 2, 4, 5, 6, 7, 10, 11], "register_announce_handl": [0, 7], "select": [0, 5], "randint": 0, "0": [0, 2, 5, 7, 9, 10, 11], "len": 0, "1": [0, 2, 5, 7, 9, 10], "data": [0, 2, 3, 4, 5, 6, 7, 9, 11], "encod": [0, 7], "utf": 0, "8": [0, 5, 10], "nobl": 0, "ga": 0, "noble_ga": 0, "need": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "class": [0, 6, 7, 11], "method": [0, 2, 5, 7, 9], "take": [0, 2, 5, 9, 10, 11], "option": [0, 2, 3, 4, 6, 7, 9, 10], "argument": [0, 7, 10], "instanc": [0, 4, 5, 7, 9, 10], "some": [0, 2, 3, 5, 6, 7, 9, 10], "want": [0, 2, 5, 6, 9, 10, 11], "aspect": [0, 3, 5, 7, 9, 10], "__init__": [0, 7], "self": [0, 6, 11], "call": [0, 2, 6, 7, 9, 11], "system": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11], "match": [0, 5, 9, 10], "specif": [0, 3, 4, 5, 7, 10, 11], "cannot": [0, 2, 5, 11], "wildcard": 0, "received_announc": [0, 7], "destination_hash": [0, 7, 10], "announced_ident": [0, 7], "contain": [0, 6, 7, 9, 10], "follow": [0, 2, 3, 5, 7, 8, 9, 10, 11], "decod": 0, "plaintext": [0, 7], "unencrypt": [0, 7, 9], "inform": [0, 2, 4, 5, 6, 7, 9, 10], "ani": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "listen": [0, 5, 9, 10], "sy": 0, "did": 0, "one": [0, 2, 3, 5, 6, 7, 9, 10, 11], "public_inform": 0, "ad": [0, 3, 4, 5, 6, 7, 9, 11], "so": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "differ": [0, 2, 3, 5, 6, 7, 9, 10, 11], "plain": [0, 3, 5, 7, 9], "uncencrypt": 0, "broadcast_destin": 0, "specifi": [0, 2, 3, 5, 6, 7, 10], "everi": [0, 5, 6, 7, 9], "time": [0, 2, 3, 5, 6, 7, 9, 10], "set_packet_callback": [0, 7], "packet_callback": 0, "main": 0, "broadcastloop": 0, "simpli": [0, 2, 3, 5, 6, 9, 10], "out": [0, 2, 3, 5, 6, 7, 9, 10, 11], "r": [0, 5, 9, 10], "n": [0, 9, 10], "end": [0, 5, 6, 7, 9, 11], "stdout": [0, 5, 10], "flush": 0, "text": [0, 2, 6, 9], "prompt": 0, "channelarg": 0, "between": [0, 5, 6, 7, 9], "interfac": [0, 3, 4, 6, 7, 10], "simpl": [0, 3, 7, 9, 10, 11], "respond": [0, 7, 10], "receipt": [0, 7, 9], "o": [0, 2, 9, 10, 11], "choos": [0, 2, 5, 9], "global": [0, 2, 5, 6, 7, 9, 11], "load": [0, 2, 7, 10], "file": [0, 2, 3, 5, 6, 7, 9, 10, 11], "randomlei": 0, "ifilepath": 0, "storag": 0, "identitiesi": 0, "configdir": [0, 7], "server_ident": 0, "from_fil": [0, 7], "log_verbos": 0, "queri": [0, 2, 7], "abl": [0, 2, 5, 6, 7, 9, 10], "verifi": [0, 7, 9, 10, 11], "repli": [0, 10], "encrypt": [0, 2, 6, 7, 9, 10, 11], "wai": [0, 2, 5, 6, 7, 9, 10], "certain": [0, 5, 6, 8, 9], "than": [0, 2, 5, 6, 7, 9, 10, 11], "read": [0, 2, 5, 7, 9, 10], "echo_destin": 0, "tell": [0, 5], "function": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "server_callback": 0, "wait": [0, 5, 9], "go": [0, 2, 5, 9], "handl": [0, 3, 5, 6, 7, 9, 10, 11], "reception_stat": 0, "is_connected_to_shared_inst": 0, "reception_rssi": 0, "get_packet_rssi": 0, "packet_hash": 0, "reception_snr": 0, "get_packet_snr": 0, "rssi": [0, 7, 10], "dbm": [0, 5, 10], "snr": [0, 7, 10], "db": [0, 10], "destination_hexhash": 0, "timeout": [0, 7, 10], "binari": [0, 2, 7, 9, 10], "represent": [0, 7], "command": [0, 2, 5, 10], "dest_len": 0, "truncated_hashlength": [0, 7], "2": [0, 5, 7, 9, 10], "rais": [0, 7], "valueerror": [0, 7], "length": [0, 5, 7, 9], "invalid": [0, 7], "hex": 0, "hexadecim": [0, 9, 10], "charact": 0, "byte": [0, 7, 9, 10, 11], "format": [0, 4, 10, 11], "fromhex": 0, "e": [0, 6, 10], "check": [0, 2, 7, 9, 10], "overrid": 0, "loglevel": [0, 7, 10], "provid": [0, 2, 3, 4, 5, 6, 7, 9, 11], "feedback": [0, 4], "log_info": 0, "doe": [0, 2, 3, 4, 5, 6, 7, 9, 10], "has_path": [0, 7], "To": [0, 2, 3, 5, 6, 9, 10, 11], "public": [0, 4, 5, 7, 10], "kei": [0, 4, 6, 7, 10, 11], "done": [0, 2, 5, 6, 9, 10], "recal": [0, 7, 10], "modul": [0, 2, 3, 9, 10, 11], "known": [0, 5, 7, 9, 10], "return": [0, 7, 10], "outgo": [0, 5, 7, 9, 10], "got": 0, "correct": [0, 9], "convent": 0, "request_destin": 0, "add": [0, 2, 5, 6, 7, 10], "echo_request": 0, "get_random_hash": [0, 7], "successfulli": [0, 7, 9], "packetreceipt": [0, 4, 7], "packet_receipt": [0, 7], "set_timeout": [0, 7], "set_timeout_callback": [0, 7], "packet_timed_out": 0, "deliveri": [0, 2, 7, 11], "set_delivery_callback": [0, 7], "packet_deliv": 0, "yet": [0, 5, 9, 11], "retri": [0, 7, 9], "onc": [0, 2, 3, 5, 6, 7, 9, 10, 11], "request_path": [0, 7], "statu": [0, 2, 4, 5, 7, 9, 10], "deliv": [0, 7], "rtt": [0, 7, 9], "get_rtt": [0, 7], "round": [0, 7, 10], "3": [0, 5, 9, 10, 11], "rttstring": 0, "second": [0, 5, 7, 9, 10, 11], "1000": 0, "millisecond": [0, 10], "proof_packet": 0, "valid": [0, 5, 7, 9, 10], "trip": [0, 7, 10], "fail": [0, 2, 7], "store_tru": 0, "t": [0, 2, 5, 6, 7, 10], "metavar": 0, "float": [0, 7], "narg": 0, "timeoutarg": 0, "print_help": 0, "establish": [0, 2, 5, 6, 7, 11], "remot": [0, 4, 7, 10], "forth": 0, "refer": [0, 2, 4], "latest": [0, 2, 5, 10], "latest_client_link": 0, "server_destin": 0, "linkexampl": 0, "set_link_established_callback": [0, 7], "client_connect": 0, "server_loop": 0, "set_link_closed_callback": [0, 7], "client_disconnect": 0, "server_packet_receiv": 0, "disconnect": [0, 5], "activ": [0, 2, 5, 7, 9], "last": [0, 5, 7], "reply_text": 0, "reply_data": 0, "server_link": 0, "sleep": [0, 10], "begin": [0, 3, 7], "And": 0, "client_packet_receiv": 0, "close": [0, 6, 7, 10], "link_establish": 0, "link_clos": 0, "interact": [0, 2, 7, 9, 10], "client_loop": 0, "becom": [0, 2, 6, 9], "should_quit": 0, "fals": [0, 5, 7, 10], "should": [0, 2, 5, 6, 7, 9, 10, 11], "q": [0, 10], "teardown": [0, 7], "mdu": [0, 7], "size": [0, 2, 5, 7, 9, 10], "exce": [0, 5, 7], "log_error": 0, "error": [0, 2, 8, 10], "ha": [0, 2, 3, 5, 6, 7, 9, 11], "been": [0, 2, 3, 5, 6, 7, 9, 11], "later": [0, 2, 5, 10], "teardown_reason": 0, "now": [0, 2, 6, 9, 10], "elif": 0, "destination_clos": 0, "exit_handl": 0, "5": [0, 2, 5, 7, 9, 10, 11], "_exit": 0, "identifi": [0, 5, 7, 9, 10], "intiat": 0, "initi": [0, 6, 7, 9, 11], "peer": [0, 2, 5, 7, 9, 10], "identifyexampl": 0, "set_remote_identified_callback": [0, 7], "remote_identifi": 0, "origin": [0, 6, 9], "displai": [0, 9, 10], "remote_p": 0, "unidentifi": 0, "get_remote_ident": [0, 7], "client_ident": 0, "sendig": 0, "perform": [0, 2, 5, 6, 9, 10], "random_text_gener": 0, "request_id": [0, 7], "link_id": [0, 7], "remote_ident": [0, 7], "requested_at": [0, 7], "look": [0, 2, 5, 9, 10], "On": [0, 2, 5, 10], "full": [0, 5, 7, 9, 10, 11], "moon": 0, "becki": 0, "upset": 0, "stai": [0, 9, 10], "awai": [0, 5, 6, 9, 10], "pet": 0, "shop": 0, "stock": 0, "requestexampl": 0, "register_request_handl": [0, 7], "response_gener": [0, 7], "allow": [0, 2, 3, 5, 6, 7, 9, 10, 11], "allow_al": [0, 7], "response_callback": [0, 7], "got_respons": 0, "failed_callback": [0, 7], "request_fail": 0, "request_receipt": [0, 7], "request_receiv": 0, "structur": [0, 7, 9, 11], "datetim": 0, "vendor": [0, 3], "umsgpack": 0, "share": [0, 2, 6, 7, 9, 10], "object": [0, 7], "subclass": [0, 7], "messagebas": [0, 4, 7], "ensur": [0, 5, 7, 9, 10, 11], "serial": [0, 2, 4, 9, 11], "deseri": 0, "multiplex": 0, "other": [0, 2, 3, 5, 6, 7, 9, 10], "both": [0, 2, 3, 5, 6, 7, 9, 10, 11], "same": [0, 2, 3, 5, 6, 7, 9, 10], "definit": [0, 9], "note": [0, 3, 4, 5, 7, 9, 10], "wish": [0, 9, 10], "make": [0, 2, 3, 5, 8, 9, 10], "stringmessag": 0, "convei": 0, "timestamp": 0, "msgtype": [0, 7], "variabl": [0, 7], "assign": [0, 9, 10], "integ": 0, "valu": [0, 5, 7, 9], "constructor": 0, "uniqu": [0, 5, 7, 9, 11], "across": [0, 3, 6, 7], "0xf000": [0, 7], "reserv": [0, 7, 9], "0x0101": 0, "callabl": [0, 7], "paramet": [0, 3, 5, 6, 7, 9, 10], "empti": 0, "version": [0, 2, 9, 10], "unpack": [0, 7], "final": [0, 7, 9], "implement": [0, 5, 6, 7, 8, 9, 11], "pack": [0, 7], "raw": [0, 3, 7], "payload": [0, 7, 9, 10], "packag": [0, 2, 5, 9], "bundl": 0, "could": [0, 2, 5, 6, 7, 9, 11], "struct": 0, "python": [0, 4, 7, 9, 10, 11], "more": [0, 2, 3, 5, 6, 7, 9, 10, 11], "fit": 0, "entir": [0, 6, 7, 9, 10], "avail": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "properti": [0, 6, 7], "slightli": [0, 2], "less": [0, 5, 7, 9, 11], "due": [0, 6], "header": [0, 7, 9], "content": [0, 2, 6, 10], "stream": [0, 7, 9], "packb": 0, "unpackb": 0, "channelexampl": 0, "get_channel": [0, 7], "register_message_typ": [0, 7], "add_message_handl": [0, 7], "server_message_receiv": 0, "param": 0, "deserializ": 0, "unless": [0, 2, 5, 7, 9], "preced": 0, "indic": [0, 7], "isinst": 0, "reply_messag": 0, "order": [0, 7, 10], "were": [0, 6], "consid": [0, 5, 7, 9, 11], "subsequ": [0, 9], "skip": 0, "packed_s": 0, "is_ready_to_send": [0, 7], "pleas": [0, 2, 5, 7, 10, 11], "pend": 0, "complet": [0, 2, 3, 5, 6, 7, 9, 10, 11], "client_message_receiv": 0, "reader": [0, 7], "writer": [0, 7], "__future__": 0, "annot": 0, "latest_buff": 0, "bufferexampl": 0, "old": [0, 3, 8, 9], "stream_id": [0, 7], "bit": [0, 2, 5, 7, 9, 10, 11], "like": [0, 2, 3, 5, 6, 7, 9, 10, 11], "descriptor": 0, "actual": [0, 2, 5, 9], "separ": [0, 2, 5, 6, 9, 10], "unidirect": 0, "flow": [0, 5, 6], "opposit": [0, 5], "create_bidirectional_buff": [0, 7], "server_buffer_readi": 0, "ready_byt": [0, 7], "int": [0, 7], "otherwis": [0, 7], "forc": [0, 10], "server_client_connect": 0, "detail": [0, 2, 4, 5, 7, 10, 11], "client_buffer_readi": 0, "termin": [0, 2, 7], "download": [0, 5, 10], "resourc": [0, 2, 4, 7, 8], "effici": [0, 2, 5, 9, 11], "serv": [0, 3, 5, 6, 9, 10], "larg": [0, 3, 5, 6, 7, 9, 11], "transfer": [0, 7, 9, 10, 11], "recommend": [0, 2, 9], "compress": [0, 7, 9], "hashmap": 0, "sequenc": [0, 7, 9, 11], "long": [0, 2, 3, 5, 7, 9], "slow": [0, 5, 9], "cpu": [0, 9], "probabl": [0, 2, 6, 9, 10, 11], "result": [0, 9, 10], "befor": [0, 2, 5, 7, 9, 10], "prepar": [0, 6], "instead": [0, 2, 5, 7, 9, 10], "slice": 0, "chunk": 0, "suitabl": [0, 2, 5, 6, 9, 11], "thread": 0, "app_timeout": 0, "45": [0, 9], "serve_path": 0, "here": [0, 2, 5, 9, 10], "conveni": 0, "list_fil": 0, "entri": [0, 2, 9], "listdir": 0, "isfil": 0, "join": [0, 2, 6, 8, 9], "host": [0, 2, 5, 9, 10], "still": [0, 2, 5, 6, 9, 10], "isdir": 0, "list_packet": 0, "list_receipt": 0, "list_deliv": 0, "list_timeout": 0, "too": [0, 6], "mani": [0, 2, 3, 5, 6, 7, 9, 10, 11], "split": 0, "filelist": 0, "multipl": [0, 5, 6, 9, 10], "hint": 0, "alreadi": [0, 2, 3, 6, 7, 9, 10], "support": [0, 2, 4, 5, 6, 7, 9, 10, 11], "after": [0, 2, 5, 6, 7, 9, 10], "re": [0, 5, 7, 9], "keep": [0, 6, 7, 9, 10, 11], "open": [0, 3, 5, 6, 7, 8, 9, 10, 11], "client_request": 0, "longer": [0, 2, 6, 9, 10], "filenam": 0, "rb": 0, "file_resourc": 0, "resource_sending_conclud": 0, "somethign": 0, "went": 0, "wrong": [0, 5], "don": [0, 2, 6, 7, 10], "unknown": [0, 5, 7, 9, 10], "conclud": [0, 7], "hasattr": 0, "server_fil": 0, "current": [0, 2, 4, 5, 7, 9], "current_download": 0, "current_filenam": 0, "statist": [0, 5, 7, 8], "download_start": 0, "download_finish": 0, "download_tim": 0, "transfer_s": 0, "file_s": 0, "expect": [0, 2, 5, 7, 9, 10], "normal": [0, 2, 5, 7, 10], "accordingli": 0, "filelist_receiv": 0, "advertis": [0, 7], "set_resource_strategi": [0, 7], "accept_al": [0, 7], "set_resource_started_callback": [0, 7], "download_began": 0, "set_resource_concluded_callback": [0, 7], "download_conclud": 0, "menu": 0, "menu_mod": 0, "down": [0, 3, 5, 7], "request_packet": 0, "create_receipt": [0, 7], "print_menu": 0, "25": [0, 4, 11], "user_input": 0, "screen": 0, "variou": [0, 2, 5, 6, 9, 10], "state": 0, "It": [0, 2, 3, 5, 7, 9, 10, 11], "uninterest": 0, "won": 0, "clear_screen": 0, "print_filelist": 0, "percent": [0, 5], "get_progress": [0, 7], "100": [0, 5, 9], "rprogress": 0, "save_error": 0, "disk": [0, 7], "hour": [0, 5], "rem": 0, "divmod": 0, "3600": [0, 5], "minut": [0, 2, 5, 9], "60": [0, 5], "timestr": 0, "05": 0, "2f": 0, "ttime": 0, "taken": [0, 9], "tfile": 0, "size_str": 0, "tdata": 0, "teffect": 0, "rate": [0, 4, 7, 10], "suffix": 0, "b": [0, 6, 10], "ttransfer": 0, "press": 0, "index": [0, 2, 4], "enumer": 0, "filelist_data": 0, "extend": [0, 2, 7], "local": [0, 2, 5, 6, 7, 9, 10, 11], "append": [0, 9], "visibl": 0, "updat": [0, 2, 7, 9, 10], "small": [0, 5, 6, 9, 11], "job": 0, "potenti": [0, 5, 8, 9, 10, 11], "target": [0, 5, 10], "filelist_timeout_job": 0, "daemon": [0, 2, 5, 7, 10], "detect": 0, "shown": 0, "progress": [0, 7, 10, 11], "total_s": 0, "saved_filenam": 0, "counter": 0, "wb": 0, "human": [0, 7, 8, 9], "readabl": [0, 7, 9], "num": 0, "unit": [0, 2, 7, 10], "ki": 0, "mi": 0, "gi": 0, "ti": [0, 9], "pi": [0, 4, 6, 9, 10, 11], "ei": 0, "zi": 0, "last_unit": 0, "yi": 0, "k": 0, "m": [0, 2, 9, 10], "g": [0, 10], "p": [0, 10], "z": 0, "y": 0, "ab": 0, "1024": 0, "clear": [0, 5, 7, 9, 10], "cl": 0, "nt": 0, "dir": 0, "best": [2, 9, 11], "guid": [2, 3, 9], "outlin": [2, 3, 9], "sensibl": [2, 3, 5], "scenario": [2, 4, 9], "relat": 2, "easiest": [2, 3, 5, 9], "via": [2, 3, 5, 8, 9, 10, 11], "pip": [2, 3, 10], "manag": [2, 6, 7, 9, 10, 11], "sudo": [2, 10], "apt": 2, "python3": [2, 3], "pamac": 2, "similar": [2, 3, 5, 6, 7, 10, 11], "dowload": 2, "releas": [2, 5, 9], "wheel": 2, "channel": [2, 4, 5, 6, 7, 8, 9, 11], "offlin": 2, "py3": 2, "whl": 2, "mai": [2, 5, 7, 9, 10], "case": [2, 3, 5, 6, 9, 10], "usual": 2, "essenti": [2, 5, 9], "deriv": [2, 7, 9, 11], "arch": 2, "manjaro": 2, "devel": 2, "fedora": 2, "dnf": 2, "groupinstal": 2, "tool": [2, 3, 9, 10, 11], "librari": 2, "compil": 2, "miss": 2, "even": [2, 5, 6, 9, 10, 11], "pre": [2, 7, 9], "built": [2, 5, 9, 11], "few": [2, 3, 5, 6, 9, 10, 11], "extrem": [2, 9, 10, 11], "low": [2, 3, 5, 6, 9, 11], "bandwidth": [2, 5, 6, 7, 9, 10, 11], "These": [2, 5, 7, 9, 10], "feel": 2, "work": [2, 3, 5, 6, 9, 10, 11], "design": [2, 3, 6, 9, 11], "well": [2, 3, 5, 6, 7, 9, 10, 11], "lora": [2, 3, 4, 9, 11], "link": [2, 3, 4, 5, 6, 7, 10, 11], "wifi": [2, 4, 5, 6, 9, 10, 11], "wire": [2, 3, 4, 5, 11], "ethernet": [2, 4, 5, 6, 9, 11], "combin": [2, 4, 6, 9], "As": [2, 3, 5, 6, 7, 9, 11], "easi": [2, 3, 5, 9, 10, 11], "experi": [2, 9], "without": [2, 3, 5, 6, 9, 10, 11], "transceiv": [2, 3, 5, 9, 11], "infrastructur": [2, 3, 5, 6, 9, 10], "launch": [2, 10], "devic": [2, 4, 5, 6, 7, 9, 10], "enough": [2, 3, 9], "physic": [2, 3, 5, 7, 9, 10], "rnsh": [2, 10], "fulli": [2, 3, 9, 10, 11], "session": [2, 9], "pipe": [2, 4, 11], "ssh": 2, "veri": [2, 3, 5, 6, 7, 8, 9, 10, 11], "facilit": 2, "suit": [2, 3, 9, 10], "featur": [2, 8, 9, 11], "delai": [2, 5, 9, 10], "browser": 2, "page": [2, 4, 9], "dynam": [2, 10], "render": 2, "authent": [2, 5, 6, 7, 9, 11], "face": [2, 5], "protocol": [2, 3, 4, 5, 11], "lxmf": [2, 10], "anoth": [2, 7, 9, 10], "project": 2, "nomadnet": 2, "might": [2, 5, 6, 9, 10], "reboot": 2, "again": [2, 5, 9, 10], "would": [2, 5, 6, 7, 9], "rather": [2, 7], "graphic": 2, "linux": [2, 3, 9], "maco": 2, "peopl": [2, 9], "compat": [2, 3, 5, 7, 9], "i2p": [2, 4, 11], "qr": 2, "paper": 2, "anyth": [2, 3, 5, 9, 10, 11], "interoper": [2, 3, 6, 9, 11], "come": [2, 9], "easier": [2, 5, 6, 10], "rnsd": [2, 4], "background": [2, 5], "foreground": 2, "servic": [2, 4, 6], "rnstatu": [2, 4, 5, 9], "rnpath": [2, 4, 5], "rnprobe": [2, 4], "view": [2, 5, 9, 10], "chapter": [2, 3, 5, 6, 7, 9, 10, 11], "locat": [2, 3, 6, 9, 10], "exampl": [2, 3, 4, 5, 7, 9, 10, 11], "exampleconfig": [2, 10], "broadcast": [2, 4, 5, 7, 9], "domain": [2, 5], "further": [2, 4, 5], "tcp": [2, 3, 4, 6, 9, 11], "There": [2, 6, 9, 11], "subnet": [2, 6], "rout": [2, 3, 5, 6, 7, 9, 10, 11], "tabl": [2, 5, 6, 9, 10], "thing": 2, "discov": [2, 5], "topographi": [2, 6, 9], "situat": [2, 3, 5, 6, 9], "where": [2, 3, 4, 5, 6, 7, 9, 10], "utilis": [2, 5, 6, 7, 10, 11], "extern": [2, 5, 7, 11], "often": [2, 5, 6, 9, 10], "suffici": [2, 5, 9, 10], "act": [2, 7, 9, 10], "gatewai": [2, 5, 6, 9], "enabl": [2, 3, 5, 6, 7, 9, 10, 11], "wider": [2, 5, 9, 10], "autointerfac": [2, 3, 5, 10], "possibli": 2, "offer": [2, 4, 5, 7, 9], "carefulli": 2, "tcpserverinterfac": [2, 5], "access": [2, 4, 5, 6, 7, 10], "ip": [2, 3, 5, 9, 10, 11], "faster": [2, 5, 9], "lower": [2, 5, 10], "latenc": [2, 9, 11], "energi": 2, "i2pinterfac": [2, 5], "howev": [2, 6, 9], "leak": 2, "reveal": [2, 7, 9, 11], "who": [2, 9], "inspect": [2, 5, 6, 9, 10], "someon": [2, 5], "determin": [2, 7, 9], "adversari": 2, "record": [2, 9], "metadata": 2, "transmiss": [2, 5, 7, 9], "though": [2, 5, 9], "publicli": [2, 5], "most": [2, 3, 5, 6, 9, 10], "anymor": 2, "through": [2, 3, 5, 6, 7, 9, 10, 11], "invis": [2, 5], "parallel": 2, "For": [2, 3, 5, 6, 7, 9, 10, 11], "alwai": [2, 5, 7, 9, 10], "node": [2, 4, 5, 6, 10, 11], "i2pd": [2, 5], "mix": [2, 5, 6, 10], "hide": 2, "relai": 2, "extra": [2, 5, 6, 10], "comput": [2, 9, 11], "power": [2, 3, 5, 9, 10], "attack": 2, "form": [2, 5, 6, 7, 9], "deep": 2, "much": [2, 5, 6, 9, 10], "difficult": [2, 3], "non": [2, 7, 9], "behind": [2, 9], "firewal": [2, 5], "nat": 2, "preserv": [2, 7], "anonym": [2, 6, 7, 9, 11], "care": [2, 7, 11], "experiment": [2, 11], "made": [2, 7, 9], "amsterdam": 2, "hub": [2, 5], "tcpclientinterfac": [2, 3, 5], "ye": [2, 5, 9, 10], "target_host": [2, 5], "target_port": [2, 5], "4965": [2, 10], "betweenthebord": 2, "4242": [2, 5], "g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq": 2, "b32": [2, 5], "point": [2, 3, 5, 6, 9, 10], "absolut": [2, 8, 11], "usag": [2, 4, 5, 7, 8, 10], "occasion": 2, "test": [2, 9, 10], "failur": [2, 5], "guarante": [2, 9], "hardwar": [2, 4, 5, 6, 7, 9, 10, 11], "wide": [2, 3, 5, 9, 10, 11], "section": [2, 3, 5, 6, 9, 10], "easili": [2, 5, 6, 9, 10, 11], "cheapli": 2, "rnode": [2, 4, 9, 10, 11], "purpos": [2, 3, 5, 7, 9], "digit": [2, 3, 9, 11], "integr": [2, 6, 9], "yourself": [2, 9, 11], "custom": [2, 5, 7, 9, 11], "firmwar": [2, 3, 9, 10], "board": [2, 4, 9, 11], "auto": [2, 3, 4, 7, 9], "script": [2, 3], "prefer": [2, 9], "purchas": [2, 6, 9, 11], "supplier": 2, "addit": [2, 3, 5, 7, 9, 10, 11], "privat": [2, 5, 7, 8, 9, 10, 11], "secur": [2, 9, 11], "uncensor": 2, "mesh": [2, 5, 6, 11], "think": 2, "welcom": 2, "head": 2, "discuss": [2, 3, 9], "propos": 2, "abov": [2, 3, 5, 9, 10], "next": [2, 6, 7, 9], "step": [2, 3], "pyseri": 2, "api": [2, 4, 9, 11], "associ": [2, 7, 9], "recip": 2, "cryptographi": [2, 9, 11], "clone": 2, "repositori": [2, 8, 9], "git": 2, "move": [2, 5, 9, 10], "folder": 2, "symlink": [2, 10], "cd": 2, "ln": [2, 10], "echo": [2, 4], "ve": 2, "immedi": [2, 5, 10], "necessari": [2, 3, 5, 6, 7, 9], "nano": 2, "repeat": 2, "process": [2, 3, 5, 7, 9], "h": [2, 10], "ping": [2, 10], "replac": [2, 9, 10], "below": [2, 3, 5, 10], "174a64852a75682259ad8b921b8bf416": 2, "filetransf": [2, 4, 7], "understand": [2, 4, 7, 10], "submit": 2, "pull": 2, "request": [2, 4, 5, 7, 9, 10], "good": [2, 3, 6, 9, 10], "idea": [2, 9, 10], "introduc": [2, 9], "disucss": 2, "forum": 2, "maintain": [2, 9], "place": [2, 5, 6, 9, 10], "procedur": [2, 7, 9], "quirk": 2, "worth": 2, "being": [2, 5, 7, 9], "awar": [2, 9], "termux": 2, "f": [2, 10], "droid": 2, "emul": 2, "environ": [2, 6, 9], "abil": [2, 3], "pkg": 2, "sure": [2, 3, 10], "upgrad": [2, 9], "Then": 2, "reason": [2, 5, 9], "attempt": [2, 3, 7], "openssl": [2, 9], "libffi": 2, "rust": 2, "export": 2, "cargo_build_target": 2, "aarch64": 2, "sever": [2, 6, 7, 10], "succe": 2, "softwar": [2, 3, 5, 9, 11], "possibl": [2, 3, 5, 6, 7, 9, 10, 11], "apk": 2, "tutori": 2, "code": [2, 3, 4, 5, 10], "architectur": 2, "precompil": 2, "dev": [2, 5, 10], "64": [2, 9, 10], "32": [2, 9], "rasperri": 2, "os": [2, 5], "april": 2, "2023": [2, 10], "onto": [2, 9], "unfortun": 2, "pipx": 2, "isol": [2, 5, 10], "neg": 2, "affect": [2, 5], "ensurepath": 2, "restor": [2, 5], "behaviour": [2, 5, 10], "edit": [2, 10], "conf": 2, "break": [2, 7, 9, 11], "somewhat": 2, "mislead": 2, "choic": 2, "word": 2, "cours": [2, 5, 9], "rare": [2, 5], "lead": [2, 9], "conflict": 2, "pose": [2, 9], "problem": [2, 9], "_could_": 2, "obscur": 2, "rnspure": 2, "No": [2, 5, 9, 10, 11], "matter": [2, 5], "perfectli": 2, "pyca": [2, 9], "cryptograph": [2, 4, 6, 10, 11], "primit": [2, 4], "One": [3, 7], "truli": [3, 9], "valuabl": [3, 8], "almost": [3, 5, 9, 10], "conceiv": 3, "kind": [3, 5, 6, 9], "medium": [3, 5, 6, 7, 9, 11], "flexibl": [3, 5, 11], "cover": [3, 9, 11], "wireless": [3, 6], "decad": 3, "modern": [3, 9], "millimet": 3, "wave": 3, "backhaul": [3, 6], "oper": [3, 5, 6, 7, 9, 10, 11], "chanc": 3, "box": 3, "glue": 3, "littl": [3, 9], "effort": 3, "pipeinterfac": [3, 5], "kiss": [3, 4, 10, 11], "simplyequip": 3, "broad": 3, "abund": 3, "sometim": 3, "especi": [3, 5], "scratch": 3, "real": [3, 6, 11], "world": [3, 6, 11], "minim": [3, 4, 9], "cost": [3, 9, 11], "fundament": [3, 9], "categori": 3, "addition": [3, 5, 9], "common": [3, 4, 6, 9, 10, 11], "briefli": [3, 9], "describ": [3, 5, 7, 9], "emploi": [3, 9], "pattern": [3, 9], "high": [3, 5, 9, 11], "capac": [3, 5, 7, 9], "gain": [3, 7, 9], "antenna": 3, "backbon": 3, "area": [3, 5, 6, 9, 11], "reliabl": [3, 5, 6, 7, 9, 11], "commonli": 3, "either": [3, 5, 6, 7, 9, 10], "expens": 3, "hard": 3, "hungri": 3, "allevi": 3, "particular": 3, "plaform": 3, "depend": [3, 4, 6, 7, 9, 10], "its": [3, 5, 7, 9], "compon": [3, 8, 9], "frequenc": [3, 5, 9, 10], "band": [3, 9], "scheme": 3, "limit": [3, 4, 6, 9], "ism": [3, 9], "avoid": [3, 9, 10], "confus": [3, 9], "layer": [3, 5, 6, 7, 9, 11], "noth": [3, 11], "lorawan": [3, 9], "standard": [3, 9], "central": [3, 6, 9], "iot": 3, "overhead": [3, 5, 9], "level": [3, 5, 9, 10], "directli": [3, 5, 7, 9, 10, 11], "replic": [3, 9], "togeth": [3, 9, 10], "exact": [3, 5, 9], "explain": [3, 7], "approach": [3, 9, 10], "develop": [3, 4, 7, 8, 9, 11], "boil": 3, "obtain": [3, 7, 9], "autom": [3, 8, 9], "provis": [3, 10], "rnodeinterfac": [3, 5, 10], "ic": 3, "semtech": 3, "sx1276": 3, "platform": [3, 4, 9], "esp32": 3, "manufactur": 3, "io": 3, "avr": 3, "atmega1284p": 3, "rnodeconf": [3, 4], "autoinstal": [3, 10], "seri": 3, "question": [3, 5], "port": [3, 4, 5, 6, 9, 11], "air": [3, 11], "id": [3, 5, 7, 9, 10], "itself": [3, 4, 9], "short": [3, 5, 9, 10], "bridg": [3, 4], "behav": 3, "mean": [3, 5, 6, 9, 10], "dhcp": [3, 5, 10], "dn": 3, "least": [3, 5, 9, 10, 11], "transpar": [3, 5, 9, 10], "distanc": [3, 9], "ubiqu": 3, "airmax": 3, "ltu": 3, "mikrotik": 3, "exhaust": [3, 9], "rel": [3, 9, 11], "cheap": [3, 9], "co": [3, 5, 11], "concurr": [3, 9, 10], "switch": [3, 5, 9, 10], "fiber": 3, "optic": [3, 11], "virtual": [3, 5, 6, 9, 10, 11], "adapt": [3, 6], "tun": 3, "tap": 3, "serialinterfac": [3, 5], "usb": [3, 6, 9, 10], "freedv": 3, "tnc": [3, 5, 7, 10, 11], "dire": 3, "wolf": 3, "aim": [4, 9], "particip": [4, 6, 9], "pdf": 4, "epub": 4, "caveat": 4, "emptor": 4, "fast": [4, 5, 7, 9], "standalon": 4, "instal": [4, 5, 6, 9, 10, 11], "resolv": [4, 5, 10], "issu": [4, 6, 8], "base": [4, 5, 6, 7, 9, 10, 11], "shell": [4, 10], "nomad": 4, "sideband": 4, "With": [4, 5, 6, 9, 10], "internet": [4, 5, 9, 11], "testnet": [4, 10], "radio": [4, 5, 6, 7, 9, 10, 11], "android": [4, 10], "arm64": 4, "raspberri": [4, 6, 9, 10, 11], "debian": [4, 9, 10], "bookworm": 4, "ubuntu": [4, 10], "lunar": 4, "pure": [4, 9], "rnid": 4, "rncp": 4, "rnx": 4, "improv": [4, 5, 8], "fix": [4, 9], "motiv": 4, "goal": [4, 5], "introduct": 4, "announc": [4, 7, 10], "mechan": [4, 5], "reach": [4, 5, 6], "prioritis": [4, 5, 6, 7], "propag": [4, 5, 7], "rule": [4, 5], "modem": [4, 5, 6, 7, 9, 11], "udp": [4, 6, 9, 10, 11], "ax": [4, 11], "concept": [4, 9, 10], "overview": [4, 5, 9], "interconnect": [4, 5, 9], "site": [4, 5], "growth": 4, "converg": [4, 9], "identif": [4, 5, 11], "respons": [4, 7, 9], "buffer": [4, 5, 7], "donat": 4, "contribut": 4, "requestreceipt": [4, 7], "rawchannelread": [4, 7], "rawchannelwrit": [4, 7], "search": 4, "distinct": [5, 9], "topologi": [5, 9], "endless": 5, "give": [5, 9, 10], "respect": [5, 11], "discover": 5, "autoconfigur": [5, 11], "ipv6": [5, 10], "router": [5, 10], "sort": [5, 9, 10], "communica": 5, "tion": 5, "usabl": [5, 9], "interface_en": [5, 10], "spe": 5, "cific": 5, "lan": 5, "group": [5, 7, 9], "group_id": 5, "multicast": 5, "temporari": 5, "perman": [5, 10], "multicast_address_typ": 5, "kernel": [5, 10, 11], "wlan0": 5, "eth1": 5, "Or": [5, 10, 11], "ignor": [5, 7, 9], "ones": [5, 10], "ignored_devic": 5, "tun0": 5, "eth0": 5, "autodiscov": 5, "discoveri": [5, 9, 10], "scope": 5, "admin": 5, "organis": [5, 6, 8], "custom_network_nam": 5, "discovery_scop": 5, "discovery_port": 5, "48555": 5, "data_port": 5, "49555": 5, "frequent": 5, "block": 5, "inbound": [5, 7], "portabl": [5, 9], "persist": [5, 10], "achiev": [5, 7, 9], "geti2p": 5, "net": 5, "websit": 5, "base32": 5, "comma": 5, "5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq": 5, "output": [5, 10], "event": 5, "simplest": [5, 9], "tunnel": [5, 9, 11], "interchang": 5, "degre": 5, "retain": 5, "eas": [5, 9], "simpler": 5, "listen_ip": 5, "listen_port": 5, "bind": 5, "10": [5, 9, 10], "88": 5, "i2p_tunnel": 5, "127": 5, "5001": 5, "dedic": [5, 9], "natur": 5, "toler": 5, "intermitt": 5, "gracefulli": 5, "reappear": 5, "hostnam": 5, "expos": [5, 7], "soundmodem": 5, "kiss_fram": 5, "8001": 5, "caution": 5, "frame": 5, "conjunct": 5, "never": [5, 7, 9], "disabl": [5, 9, 10], "intern": [5, 7, 9], "recoveri": 5, "greatli": 5, "unreli": 5, "implic": 5, "better": 5, "udpinterfac": 5, "forward_ip": 5, "255": [5, 10], "forward_port": 5, "assum": [5, 9], "55": 5, "72": 5, "24": 5, "equival": 5, "forward": [5, 7, 9, 11], "segment": [5, 6, 7, 9, 11], "15": 5, "16": [5, 9, 10], "ttyusb0": [5, 10], "867": 5, "mhz": [5, 9], "867200000": 5, "125": 5, "khz": 5, "125000": 5, "tx": [5, 10], "7": [5, 9, 10], "mw": 5, "txpower": 5, "spread": [5, 10], "factor": [5, 7, 10], "12": [5, 10], "fastest": [5, 9], "longest": 5, "spreadingfactor": 5, "throough": 5, "codingr": 5, "interv": [5, 7, 10], "id_callsign": 5, "mycal": 5, "id_interv": 5, "600": 5, "homebrew": 5, "amount": [5, 6, 7, 9, 11], "ram": 5, "flow_control": 5, "airtim": 5, "term": [5, 6, 9], "appli": [5, 7, 9], "window": [2, 5], "approxim": 5, "enforc": 5, "roll": 5, "airtime_limit_long": 5, "airtime_limit_short": 5, "33": 5, "pair": [5, 7, 9, 10], "laser": 5, "baud": [5, 10], "speed": [5, 9, 10], "115200": [5, 10], "databit": [5, 10], "pariti": [5, 10], "stopbit": [5, 10], "stdin": [5, 10], "netcat": 5, "l": [5, 10], "5757": 5, "respawn": 5, "respawn_delai": 5, "continu": [5, 7, 8, 11], "scan": 5, "eof": 5, "respawn_interv": 5, "varieti": [5, 9, 10, 11], "openmodem": [5, 11], "period": [5, 7, 9], "beacon": 5, "station": 5, "kissinterfac": [5, 10], "ttyusb1": 5, "preambl": [5, 10], "150": [5, 10], "tail": 5, "txtail": [5, 10], "cdma": 5, "200": [5, 10], "slottim": [5, 10], "20": [5, 9, 10], "elaps": 5, "comment": [5, 10], "amateur": [5, 11], "spectrum": [5, 9], "encapsul": [5, 11], "callsign": 5, "ssid": 5, "realli": [5, 7], "doesn": 5, "incur": 5, "ax25kissinterfac": 5, "no1cll": 5, "ttyusb2": 5, "150m": 5, "increas": [5, 10], "squelch": 5, "rx": [5, 10], "turnaround": 5, "kept": [5, 6, 7, 9], "wast": 5, "bring": 5, "brought": [5, 10], "access_point": 5, "shorthand": [5, 10], "ap": 5, "shorter": 5, "expiri": 5, "mostli": [5, 6, 9], "quiet": [5, 10], "momentarili": 5, "disappear": [5, 10], "network_nam": 5, "passphras": [5, 9], "alon": 5, "ifac_s": 5, "customis": 5, "carri": [5, 7, 9, 10], "512": [5, 7, 9], "announce_cap": [5, 7], "maximum": [5, 7, 9], "alloc": [5, 7, 9, 10], "given": [5, 6, 7, 9, 10], "upkeep": 5, "cap": 5, "queue": [5, 9], "nearbi": 5, "overwhelm": [5, 7], "rapidli": 5, "spam": 5, "effect": 5, "excess": 5, "benefici": [5, 10], "balanc": 5, "necesarri": 5, "bitrat": [5, 7], "report": [5, 7, 8, 10], "guess": 5, "per": [5, 7, 9, 10, 11], "strictli": [5, 9], "complex": [5, 9], "left": [5, 7, 9, 10], "gw": 5, "behalf": 5, "resid": 5, "requestor": 5, "chain": 5, "along": [5, 6, 7, 9, 10], "boundari": 5, "remain": [5, 7, 9], "roam": 5, "mobil": [5, 9], "seen": [5, 9], "perspect": [5, 7, 9, 11], "vehicl": 5, "equip": [5, 6, 9], "side": [5, 11], "expir": 5, "significantli": 5, "impact": [5, 9], "announce_rate_target": 5, "announce_rate_grac": 5, "announce_rate_penalti": 5, "basi": [5, 7, 9, 10, 11], "moder": 5, "violat": 5, "penalti": 5, "7200": 5, "annouce_cap": 5, "mention": [5, 9], "strategi": [5, 7], "decis": [5, 9], "slower": [5, 7, 9], "hop": [5, 6, 7, 9, 10, 11], "right": [5, 6], "tend": 5, "conserv": 5, "span": [5, 9], "seamlessli": 5, "influx": 5, "newli": [5, 6, 7, 9], "previous": [5, 6, 7, 9], "occur": [5, 10, 11], "hold": [5, 7, 9], "interrupt": 5, "burst": 5, "subsid": 5, "held": [5, 10], "decid": [5, 6, 7, 9], "bogu": 5, "retransmit": [5, 9], "ingress": 5, "individu": [5, 7, 9, 11], "sub": 5, "disrupt": 5, "neccessari": 5, "modifi": [5, 9, 10], "ingress_control": 5, "ic_new_tim": 5, "spawn": 5, "ic_burst_freq_new": 5, "ic_burst_freq": 5, "temporarili": 5, "ic_max_held_announc": 5, "drop": [5, 7, 9, 10], "256": [5, 7, 9, 10], "ic_burst_hold": 5, "threshold": 5, "ic_burst_penalti": 5, "ic_held_release_interv": 5, "30": [5, 10], "knowledg": [6, 9], "tradit": [6, 9], "worri": 6, "coordin": [6, 7, 9, 11], "evolv": 6, "futur": [6, 9], "mind": [6, 11], "autonom": [6, 9], "terminologi": [6, 9], "rest": [6, 11], "billion": [6, 9], "larger": [6, 9, 10], "higher": [6, 11], "discrimin": 6, "ephemer": [6, 7, 9, 11], "ellipt": [6, 7, 9, 11], "curv": [6, 7, 9, 11], "diffi": [6, 9, 11], "hellman": [6, 9, 11], "exchang": [6, 7, 9, 11], "curve25519": [6, 7, 9, 11], "throttl": 6, "thu": [6, 7, 9], "agnost": [6, 9], "equal": [6, 7, 9], "keystor": 6, "degrad": 6, "stationari": [6, 10], "candid": 6, "optim": 6, "intend": [6, 9], "trustless": [6, 9, 11], "leav": [2, 6, 9], "free": [6, 8, 11], "unorganis": 6, "manner": 6, "far": [6, 9], "unexplor": 6, "dissolv": 6, "organ": 6, "restrict": 6, "legaci": 6, "unifi": 6, "underli": [6, 11], "carrier": [6, 11], "involv": 6, "hardlin": 6, "illustr": [6, 9], "plan": [6, 9], "member": 6, "mainli": 6, "three": [6, 9], "hill": 6, "top": [6, 9], "chosen": [6, 9], "sight": 6, "becaus": [6, 9], "four": 6, "At": [6, 9], "cabl": 6, "suppli": [6, 7, 9], "grow": 6, "core": [6, 9, 10, 11], "those": [6, 9], "d": [6, 10], "island": 6, "investig": 6, "dori": 6, "willing": 6, "she": 6, "her": 6, "home": [6, 10], "everyon": [6, 9], "vice": [6, 11], "versa": [6, 11], "vhf": [6, 9, 11], "outli": 6, "geograph": 6, "coverag": 6, "dai": 6, "find": [6, 9], "poorli": 6, "outlier": 6, "signatur": [7, 9, 10, 11], "logdest": 7, "verbos": [7, 10], "exactli": [7, 9], "independ": [7, 9, 11], "inter": 7, "soon": 7, "kill": [7, 9], "forcibli": [7, 10], "advantag": 7, "demand": 7, "mtu": [7, 9, 11], "500": [7, 9, 11], "adher": 7, "prerequisit": 7, "percentag": 7, "schedul": 7, "queu": [7, 10], "fewer": 7, "distant": 7, "smaller": 7, "eventu": 7, "alter": [7, 9], "minimum_bitr": 7, "static": 7, "get_inst": 7, "should_use_implicit_proof": 7, "explicit": 7, "implicit": [7, 9], "transport_en": 7, "create_kei": 7, "decrypt": [7, 9, 10], "verif": [7, 9, 10], "sign": [7, 9, 10], "dh": 7, "keysiz": 7, "x25519": [7, 9, 11], "concaten": 7, "128": [7, 9, 11], "constant": 7, "truncat": [7, 9], "recall_app_data": 7, "heard": [7, 9], "full_hash": 7, "sha": [7, 9], "truncated_hash": 7, "from_byt": 7, "prv_byte": 7, "save": [7, 9], "hazard": 7, "feed": 7, "to_fil": 7, "Be": [7, 10], "get_private_kei": 7, "get_public_kei": 7, "load_private_kei": 7, "load_public_kei": 7, "pub_byt": 7, "ciphertext": 7, "token": [7, 9], "keyerror": 7, "ciphertext_token": 7, "presenc": 7, "ingo": 7, "zero": [7, 11], "expand_nam": 7, "app_and_aspects_from_nam": 7, "full_nam": [7, 10], "tupl": 7, "hash_from_name_and_ident": 7, "adress": [7, 9], "path_respons": 7, "attached_interfac": 7, "tag": 7, "flag": [7, 9], "accepts_link": 7, "accept": [7, 8, 9, 10], "set_proof_requested_callback": 7, "proof_strategi": 7, "prove_non": 7, "prove_app": 7, "proof_requested_callback": 7, "allow_non": 7, "allowed_list": 7, "whatev": [7, 9], "funcion": 7, "allow_list": 7, "deregister_request_handl": 7, "deregist": 7, "symmetr": [7, 9], "typeerror": 7, "incompat": [7, 9], "set_default_app_data": 7, "clear_default_app_data": 7, "ae": [7, 9, 11], "secreci": [7, 9, 11], "instanti": 7, "encrypted_mdu": 7, "383": 7, "plain_mdu": 7, "464": 7, "resend": 7, "get_statu": 7, "cull": 7, "successful": 7, "proven": [7, 9], "established_callback": 7, "closed_callback": 7, "establishment_timeout_per_hop": 7, "6": [7, 10], "keepalive_timeout_factor": 7, "4": [7, 9, 10], "calcul": [7, 9, 10], "stale_grac": 7, "grace": 7, "keepal": [7, 9], "360": 7, "aliv": [7, 9], "stale_tim": 7, "720": 7, "mark": [7, 9], "stale": 7, "torn": 7, "progress_callback": 7, "info": [7, 9, 10], "track_phy_stat": 7, "track": 7, "retriev": 7, "stat": [7, 10], "qualiti": 7, "get_rssi": 7, "signal": 7, "strength": [7, 11], "get_snr": 7, "nois": 7, "ratio": 7, "get_q": 7, "get_establishment_r": 7, "ocur": 7, "no_inbound_for": 7, "no_outbound_for": 7, "outbound": [7, 9], "no_data_for": 7, "travers": [7, 9], "exclud": [7, 9], "inactive_for": 7, "purg": 7, "set_resource_callback": 7, "get_transfer_s": 7, "get_data_s": 7, "get_part": 7, "is_compress": 7, "begun": 7, "resource_strategi": 7, "accept_non": 7, "accept_app": 7, "resource_callback": 7, "unsupport": 7, "get_request_id": 7, "get_respons": 7, "get_response_tim": 7, "auto_compress": 7, "arbitrari": [7, 9, 10, 11], "checksum": [7, 11], "Will": 7, "whenev": [7, 9], "cancel": 7, "total": [7, 9, 11], "get_seg": 7, "divid": 7, "get_hash": 7, "bi": [7, 9], "neither": [7, 9], "constrain": 7, "message_class": 7, "recept": 7, "messagecallbacktyp": 7, "bool": 7, "stop": [7, 11], "remove_message_handl": 7, "remov": [7, 10], "envelop": 7, "thrown": 7, "consum": 7, "adjust": 7, "accommod": [7, 9], "abstract": [7, 9], "greater": [7, 9, 11], "popul": 7, "bufferedread": 7, "bufferedwrit": 7, "bufferedrwpair": 7, "create_read": 7, "ready_callback": 7, "document": [7, 9], "create_writ": 7, "receive_stream_id": 7, "send_stream_id": 7, "rawiobas": 7, "add_ready_callback": 7, "cb": [7, 9], "remove_ready_callback": 7, "pathfinder_m": 7, "attribut": 7, "deregister_announce_handl": 7, "hops_to": 7, "next_hop": 7, "next_hop_interfac": 7, "on_interfac": 7, "recurs": 7, "gratefulli": 8, "monero": 8, "84fpy1qbxhcgdseepynmhthcrgmx4nffbytz2gkytoqhvvhjp8eaw1z1eedrnkd19b3b8nilcgvxzkv17ummmeescrpya5w": 8, "ethereum": 8, "0x81f7b979fea6134ba9fd5c701b3501a2e61e897a": 8, "bitcoin": 8, "3cpmacgm34qyvr6xwlvejmi2ane3pzquuq": 8, "ko": 8, "fi": 8, "roadmap": 8, "realiti": 8, "quickli": [8, 9, 11], "sponsor": [8, 11], "dysfunct": 8, "analyt": 8, "telemetri": 8, "collect": 8, "under": [8, 10, 11], "circumst": [8, 9], "reli": [8, 9], "fashion": 8, "u": [8, 9, 10], "suggest": 8, "overal": 9, "principl": [9, 11], "author": 9, "That": 9, "said": 9, "pretti": 9, "sentiment": 9, "philosophi": 9, "seek": 9, "solv": 9, "solut": [2, 9, 10], "primari": 9, "lack": 9, "my": 9, "belief": 9, "highli": 9, "machin": 9, "censorship": [9, 11], "barrier": 9, "todai": 9, "centralis": 9, "trust": [9, 10], "approv": 9, "gatekeep": 9, "inevit": 9, "govern": 9, "censor": 9, "persecut": 9, "unwant": 9, "actor": 9, "imposs": 9, "freeli": 9, "deploi": 9, "enhanc": 9, "agenc": 9, "freedom": 9, "permissionless": 9, "pick": 9, "ghz": 9, "off": [9, 10, 11], "shelf": [9, 11], "ultim": 9, "vast": 9, "myriad": 9, "thousand": 9, "surveil": 9, "disassoci": 9, "oversight": 9, "beings": 9, "useabl": 9, "critic": [9, 10], "agnostic": 9, "shall": 9, "handheld": 9, "interest": [2, 9], "strong": 9, "oneself": 9, "unlicens": 9, "licens": 9, "condit": [9, 11], "pmr": 9, "written": 9, "programm": 9, "orient": 9, "multipoint": 9, "recipi": 9, "singular": 9, "_represented_": 9, "characterist": 9, "13425ec15b621c1d928589718000d814": 9, "trade": 9, "simultan": 9, "unlik": 9, "nears": 9, "congest": 9, "galact": 9, "scale": [9, 11], "obvious": 9, "ridicul": 9, "multi": [9, 10, 11], "special": [9, 10], "ecdh": [9, 11], "creator": 9, "correspond": 9, "possess": 9, "although": [9, 11], "capabl": 9, "dot": [9, 10], "notat": [9, 10], "repres": 9, "plenti": 9, "environment": 9, "monitor": 9, "measur": 9, "environmentlogg": 9, "remotesensor": 9, "temperatur": 9, "4faf1b2e0a077e6a9d92fa051f256038": 9, "advis": 9, "expand": 9, "recap": 9, "indirectli": 9, "ledger": 9, "therefor": [9, 11], "messeng": 9, "nicknam": 9, "ed25519": [9, 11], "reconstruct": 9, "notic": [9, 10], "piec": 9, "intention": 9, "infer": 9, "throughout": 9, "accord": 9, "around": 9, "topic": 9, "necessarili": 9, "person": 9, "entiti": 9, "robot": 9, "sensor": 9, "someth": 9, "agent": 9, "manipul": [9, 11], "multilater": 9, "creation": [9, 11], "great": 9, "suffic": 9, "cluster": 9, "hear": 9, "But": 9, "lot": 9, "surviv": 9, "overcom": 9, "challeng": 9, "asymmetr": [9, 10, 11], "closer": 9, "distinguish": 9, "contend": 9, "enable_transport": [9, 10], "randomis": 9, "prioriti": 9, "invers": 9, "proport": 9, "count": 9, "insert": 9, "closest": 9, "newer": 9, "newest": 9, "discard": 9, "contact": 9, "shortest": 9, "predict": 9, "constantli": 9, "earlier": 9, "opt": 9, "against": 9, "bidirect": 9, "rememb": 9, "ten": 9, "advanc": 9, "confirm": [9, 11], "insid": 9, "intermediari": 9, "moment": [9, 11], "methodologi": [9, 10], "answer": [9, 10], "malici": 9, "pretend": 9, "recreat": 9, "rotat": 9, "memori": 9, "thereaft": 9, "297": [9, 11], "practic": [2, 9, 11], "neglig": 9, "1200": 9, "96": 9, "keypair": 9, "simplic": 9, "explan": [9, 10], "lki": 9, "laid": 9, "had": 9, "construct": [9, 11], "lkr": 9, "chose": 9, "direction": 9, "unequivoc": 9, "retransmiss": 9, "reassembl": 9, "programmat": 9, "satisfi": 9, "half": [9, 11], "duplex": [9, 11], "averag": 9, "throughput": [9, 11], "x": [9, 10], "runtim": 9, "consist": 9, "whereupon": 9, "stabl": [9, 11], "stage": 9, "year": 9, "microcontrol": 9, "430": 9, "868": 9, "900": 9, "recent": 9, "mac": 9, "tailor": 9, "treat": 9, "regard": 9, "preshar": 9, "ifac": [9, 10], "compos": 9, "field": 9, "context": 9, "465": 9, "vari": [9, 10], "00": [9, 10], "01": 9, "11": 9, "_______": 9, "________________": 9, "________": 9, "______": 9, "__": 9, "_": 9, "01010000": 9, "00000100": 9, "hash1": 9, "hash2": 9, "header_2": 9, "00000000": 9, "00000111": 9, "header_1": 9, "10000000": 9, "51": 9, "167": 9, "83": [9, 10], "115": 9, "99": 9, "conceptu": 9, "hkdf": 9, "fernet": [9, 11], "cbc": [9, 11], "hmac": [9, 11], "hashlib": 9, "pkcs7": [9, 11], "pad": [9, 11], "trivial": [9, 11], "consequ": 9, "backend": 9, "loss": 9, "scrutini": 9, "review": [9, 11], "risk": 9, "driver": [10, 11], "privileg": 10, "light": 10, "weight": 10, "etc": 10, "boot": 10, "ie": 10, "breviti": 10, "socket": 10, "turn": 10, "share_inst": 10, "shared_instance_port": 10, "37428": 10, "instance_control_port": 10, "37429": 10, "rpc": 10, "rpc_kei": 10, "e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790": 10, "panic": 10, "unrecover": 10, "panic_on_interface_error": 10, "probe": 10, "respond_to_prob": 10, "warn": 10, "debug": 10, "unus": 10, "teach": 10, "task": 10, "08": 10, "18": 10, "17": 10, "59": 10, "56": 10, "v": 10, "show": 10, "ifconfig": 10, "gbp": 10, "13": 10, "kb": 10, "86": 10, "mbp": 10, "63": 10, "23": 10, "80": 10, "tcpinterfac": 10, "dublin": 10, "187": 10, "27": 10, "74": 10, "uhf": [10, 11], "kbp": 10, "e702c42ba8": 10, "49": 10, "9": 10, "5245a8efe1788c6a1cd36144a270e13b": 10, "j": 10, "posit": 10, "arx": 10, "atx": 10, "revers": 10, "json": 10, "new_ident": 10, "984b74a3f768bef236af4371e6f248cd": 10, "new_id": 10, "0f4259fef4521ab75a3409e353fe9073eb10783b4912a6a9937c57bf44a62c1": 10, "hidden": 10, "8dd57a738226809646089335a6b03695": 10, "my_fil": 10, "txt": 10, "bc7291552be7a58f361522990465165c": 10, "rfe": 10, "fetch": 10, "30602def3b3506a28ed33db6f60cc6c9": 10, "2b489d06eaf7c543808c76a5332a447d": 10, "my_ident": 10, "2225fdeecaf6e2db4556c3c2d7637294": 10, "w": 10, "decreas": 10, "overwrit": 10, "c89b4da064bf66d280f0e4d8abfd9806": 10, "f53a1c4278e0726bb73fcc623d6ce763": 10, "rnstransport": 10, "2d03725b327348980d570f739a3a5708": 10, "38": 10, "469": 10, "781": 10, "e7536ee90bd4a440e130490b87a25124": 10, "809": 10, "73": 10, "1726dbad538775b5bf9b0ea25a4079c8": 10, "c50cc4e4f7838b6c31f60ab9032cbc62": 10, "allowed_ident": 10, "copi": 10, "tgz": 10, "73cbd378bb0286ed11a707c13447bb1": 10, "allowed_hash": 10, "silent": 10, "auth": 10, "941bed5e228775e5a8079fc38b1ccf3f": 10, "1b03013c25f1c2ca068a4f080b844a10": 10, "7a55144adf826958a9529a3bcf08b149": 10, "cat": 10, "proc": 10, "cpuinfo": 10, "pseudo": 10, "stderr": 10, "noauth": 10, "noid": 10, "mirror": 10, "max": 10, "fw": 10, "nocheck": 10, "flash": 10, "baud_flash": 10, "freq": 10, "hz": 10, "bw": 10, "txp": 10, "sf": 10, "cr": 10, "eeprom": 10, "backup": 10, "dump": 10, "wipe": 10, "hexbyt": 10, "attach": 10, "older": 10, "onlin": 10, "extract": 10, "cach": 10, "921600": 10, "bluetooth": 10, "intens": 10, "consol": 10, "unlock": 10, "administr": 10, "ftdi_ft230x_basic_uart_43891ckm": 10, "if00": 10, "port0": 10, "plug": 10, "unplug": 10, "systemd": 10, "usr": 10, "bin": 10, "execstartpr": 10, "restart": 10, "restartsec": 10, "usernameher": 10, "execstart": 10, "wantedbi": 10, "systemctl": 10, "whole": 10, "regular": 10, "rns_bin_dir": 10, "eg": 10, "reload": 10, "loginctl": 10, "linger": 10, "readili": 11, "advers": 11, "unforg": 11, "acknowledg": 11, "empow": 11, "autonomi": 11, "sovereignti": 11, "subject": 11, "outsid": 11, "planetari": 11, "hierarch": 11, "beaureucrat": 11, "resili": 11, "userland": 11, "beta": 11, "bug": 11, "warrant": 11, "sha256": 11, "iv": 11, "urandom": 11, "intuit": 11, "friendli": [2, 11], "44": 11, "gigabyt": 11, "scalabl": 11, "hoc": 11, "transform": 11, "fact": 11, "generalis": 11, "fibr": 11, "popular": 11, "ideal": 11, "stdio": 11, "hack": 11, "foremost": 11, "audit": 11, "privaci": 11, "thorough": 11, "research": 11, "touch": 11, "weird": 2, "goe": 2, "sai": 2, "hardcod": 2, "ship": 2, "voic": 2, "meshchat": 4}, "objects": {"RNS": [[7, 0, 1, "", "Buffer"], [7, 0, 1, "", "Destination"], [7, 0, 1, "", "Identity"], [7, 0, 1, "", "Link"], [7, 0, 1, "", "MessageBase"], [7, 0, 1, "", "Packet"], [7, 0, 1, "", "PacketReceipt"], [7, 0, 1, "", "RawChannelReader"], [7, 0, 1, "", "RawChannelWriter"], [7, 0, 1, "", "RequestReceipt"], [7, 0, 1, "", "Resource"], [7, 0, 1, "", "Reticulum"], [7, 0, 1, "", "Transport"]], "RNS.Buffer": [[7, 1, 1, "", "create_bidirectional_buffer"], [7, 1, 1, "", "create_reader"], [7, 1, 1, "", "create_writer"]], "RNS.Channel": [[7, 0, 1, "", "Channel"]], "RNS.Channel.Channel": [[7, 2, 1, "", "MDU"], [7, 1, 1, "", "add_message_handler"], [7, 1, 1, "", "is_ready_to_send"], [7, 1, 1, "", "register_message_type"], [7, 1, 1, "", "remove_message_handler"], [7, 1, 1, "", "send"]], "RNS.Destination": [[7, 1, 1, "", "accepts_links"], [7, 1, 1, "", "announce"], [7, 1, 1, "", "app_and_aspects_from_name"], [7, 1, 1, "", "clear_default_app_data"], [7, 1, 1, "", "create_keys"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "deregister_request_handler"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "expand_name"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "hash"], [7, 1, 1, "", "hash_from_name_and_identity"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "register_request_handler"], [7, 1, 1, "", "set_default_app_data"], [7, 1, 1, "", "set_link_established_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_proof_requested_callback"], [7, 1, 1, "", "set_proof_strategy"], [7, 1, 1, "", "sign"]], "RNS.Identity": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "KEYSIZE"], [7, 3, 1, "", "TRUNCATED_HASHLENGTH"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "from_bytes"], [7, 1, 1, "", "from_file"], [7, 1, 1, "", "full_hash"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "get_public_key"], [7, 1, 1, "", "get_random_hash"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "load_public_key"], [7, 1, 1, "", "recall"], [7, 1, 1, "", "recall_app_data"], [7, 1, 1, "", "sign"], [7, 1, 1, "", "to_file"], [7, 1, 1, "", "truncated_hash"], [7, 1, 1, "", "validate"]], "RNS.Link": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "ESTABLISHMENT_TIMEOUT_PER_HOP"], [7, 3, 1, "", "KEEPALIVE"], [7, 3, 1, "", "KEEPALIVE_TIMEOUT_FACTOR"], [7, 3, 1, "", "STALE_GRACE"], [7, 3, 1, "", "STALE_TIME"], [7, 1, 1, "", "get_channel"], [7, 1, 1, "", "get_establishment_rate"], [7, 1, 1, "", "get_q"], [7, 1, 1, "", "get_remote_identity"], [7, 1, 1, "", "get_rssi"], [7, 1, 1, "", "get_snr"], [7, 1, 1, "", "identify"], [7, 1, 1, "", "inactive_for"], [7, 1, 1, "", "no_data_for"], [7, 1, 1, "", "no_inbound_for"], [7, 1, 1, "", "no_outbound_for"], [7, 1, 1, "", "request"], [7, 1, 1, "", "set_link_closed_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_remote_identified_callback"], [7, 1, 1, "", "set_resource_callback"], [7, 1, 1, "", "set_resource_concluded_callback"], [7, 1, 1, "", "set_resource_started_callback"], [7, 1, 1, "", "set_resource_strategy"], [7, 1, 1, "", "teardown"], [7, 1, 1, "", "track_phy_stats"]], "RNS.MessageBase": [[7, 3, 1, "", "MSGTYPE"], [7, 1, 1, "", "pack"], [7, 1, 1, "", "unpack"]], "RNS.Packet": [[7, 3, 1, "", "ENCRYPTED_MDU"], [7, 3, 1, "", "PLAIN_MDU"], [7, 1, 1, "", "resend"], [7, 1, 1, "", "send"]], "RNS.PacketReceipt": [[7, 1, 1, "", "get_rtt"], [7, 1, 1, "", "get_status"], [7, 1, 1, "", "set_delivery_callback"], [7, 1, 1, "", "set_timeout"], [7, 1, 1, "", "set_timeout_callback"]], "RNS.RawChannelReader": [[7, 1, 1, "", "__init__"], [7, 1, 1, "", "add_ready_callback"], [7, 1, 1, "", "remove_ready_callback"]], "RNS.RawChannelWriter": [[7, 1, 1, "", "__init__"]], "RNS.RequestReceipt": [[7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_request_id"], [7, 1, 1, "", "get_response"], [7, 1, 1, "", "get_response_time"], [7, 1, 1, "", "get_status"]], "RNS.Resource": [[7, 1, 1, "", "advertise"], [7, 1, 1, "", "cancel"], [7, 1, 1, "", "get_data_size"], [7, 1, 1, "", "get_hash"], [7, 1, 1, "", "get_parts"], [7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_segments"], [7, 1, 1, "", "get_transfer_size"], [7, 1, 1, "", "is_compressed"]], "RNS.Reticulum": [[7, 3, 1, "", "ANNOUNCE_CAP"], [7, 3, 1, "", "MINIMUM_BITRATE"], [7, 3, 1, "", "MTU"], [7, 1, 1, "", "get_instance"], [7, 1, 1, "", "should_use_implicit_proof"], [7, 1, 1, "", "transport_enabled"]], "RNS.Transport": [[7, 3, 1, "", "PATHFINDER_M"], [7, 1, 1, "", "deregister_announce_handler"], [7, 1, 1, "", "has_path"], [7, 1, 1, "", "hops_to"], [7, 1, 1, "", "next_hop"], [7, 1, 1, "", "next_hop_interface"], [7, 1, 1, "", "register_announce_handler"], [7, 1, 1, "", "request_path"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "attribute", "Python attribute"]}, "titleterms": {"code": [0, 8, 9], "exampl": [0, 6], "minim": 0, "announc": [0, 5, 9], "broadcast": 0, "echo": 0, "link": [0, 9], "identif": 0, "request": 0, "respons": 0, "channel": 0, "buffer": 0, "filetransf": 0, "an": 1, "explan": 1, "reticulum": [1, 2, 3, 4, 8, 9, 10, 11], "human": 1, "Beings": 1, "get": [2, 9], "start": 2, "fast": 2, "standalon": 2, "instal": [2, 3], "resolv": 2, "depend": 2, "issu": 2, "try": 2, "us": [2, 10, 11], "base": [2, 3], "program": [2, 10], "remot": 2, "shell": 2, "nomad": 2, "network": [2, 4, 6], "sideband": 2, "includ": [2, 10], "util": [2, 10], "creat": [2, 3], "With": 2, "connect": 2, "instanc": 2, "over": [2, 6], "internet": [2, 6], "public": [2, 9], "testnet": 2, "ad": 2, "radio": [2, 3], "interfac": [2, 5, 9, 11], "develop": 2, "particip": 2, "platform": 2, "specif": [2, 9], "note": 2, "android": 2, "arm64": 2, "raspberri": 2, "pi": 2, "debian": 2, "bookworm": 2, "ubuntu": 2, "lunar": 2, "pure": 2, "python": 2, "commun": 3, "hardwar": 3, "combin": 3, "type": [3, 9, 11], "rnode": [3, 5], "support": [3, 8], "board": 3, "lilygo": 3, "lora32": 3, "v2": 3, "1": 3, "0": 3, "t": 3, "beam": 3, "heltec": 3, "unsign": 3, "x": 3, "v1": 3, "usag": 3, "wifi": 3, "ethernet": 3, "serial": [3, 5, 10], "line": 3, "devic": [3, 11], "packet": [3, 9], "modem": 3, "stack": 4, "manual": 4, "tabl": 4, "Of": 4, "content": 4, "indic": 4, "configur": [5, 10], "auto": 5, "i2p": 5, "tcp": 5, "server": 5, "client": 5, "udp": 5, "lora": [5, 6], "pipe": 5, "kiss": 5, "ax": 5, "25": 5, "common": 5, "option": 5, "mode": 5, "rate": 5, "control": 5, "new": 5, "destin": [5, 9], "limit": 5, "build": 6, "concept": 6, "overview": 6, "scenario": 6, "interconnect": 6, "site": 6, "bridg": 6, "growth": 6, "converg": 6, "api": 7, "refer": [7, 9], "donat": 8, "provid": 8, "feedback": 8, "contribut": 8, "understand": 9, "motiv": 9, "goal": 9, "introduct": 9, "basic": 9, "function": 9, "name": [9, 10], "kei": 9, "ident": 9, "further": 9, "transport": 9, "node": 9, "The": [9, 10], "mechan": 9, "detail": 9, "reach": 9, "establish": 9, "resourc": 9, "setup": 9, "protocol": 9, "prioritis": 9, "access": 9, "wire": 9, "format": 9, "propag": 9, "rule": 9, "cryptograph": 9, "primit": 9, "your": 10, "system": 10, "data": 10, "rnsd": 10, "rnstatu": 10, "rnid": 10, "rnpath": 10, "rnprobe": 10, "rncp": 10, "rnx": 10, "rnodeconf": 10, "improv": 10, "fix": 10, "port": 10, "servic": 10, "systemwid": 10, "userspac": 10, "what": 11, "i": 11, "current": 11, "statu": 11, "doe": 11, "offer": 11, "where": 11, "can": 11, "caveat": 11, "emptor": 11, "meshchat": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Code Examples": [[0, "code-examples"]], "Minimal": [[0, "minimal"]], "Announce": [[0, "announce"]], "Broadcast": [[0, "broadcast"]], "Echo": [[0, "echo"]], "Link": [[0, "link"]], "Identification": [[0, "example-identify"]], "Requests & Responses": [[0, "requests-responses"]], "Channel": [[0, "channel"]], "Buffer": [[0, "buffer"]], "Filetransfer": [[0, "filetransfer"]], "An Explanation of Reticulum for Human Beings": [[1, "an-explanation-of-reticulum-for-human-beings"]], "Communications Hardware": [[3, "communications-hardware"]], "Combining Hardware Types": [[3, "combining-hardware-types"]], "RNode": [[3, "rnode"]], "Creating RNodes": [[3, "creating-rnodes"]], "Supported Boards": [[3, "supported-boards"]], "LilyGO LoRa32 v2.1": [[3, "lilygo-lora32-v2-1"]], "LilyGO LoRa32 v2.0": [[3, "lilygo-lora32-v2-0"]], "LilyGO T-Beam": [[3, "lilygo-t-beam"]], "Heltec LoRa32 v2.0": [[3, "heltec-lora32-v2-0"]], "Unsigned RNode v2.x": [[3, "unsigned-rnode-v2-x"]], "Unsigned RNode v1.x": [[3, "unsigned-rnode-v1-x"]], "Installation": [[3, "installation"]], "Usage with Reticulum": [[3, "usage-with-reticulum"]], "WiFi-based Hardware": [[3, "wifi-based-hardware"]], "Ethernet-based Hardware": [[3, "ethernet-based-hardware"]], "Serial Lines & Devices": [[3, "serial-lines-devices"]], "Packet Radio Modems": [[3, "packet-radio-modems"]], "Reticulum Network Stack Manual": [[4, "reticulum-network-stack-manual"]], "Table Of Contents": [[4, "table-of-contents"]], "Indices and Tables": [[4, "indices-and-tables"]], "Configuring Interfaces": [[5, "configuring-interfaces"]], "Auto Interface": [[5, "auto-interface"]], "I2P Interface": [[5, "i2p-interface"]], "TCP Server Interface": [[5, "tcp-server-interface"]], "TCP Client Interface": [[5, "tcp-client-interface"]], "UDP Interface": [[5, "udp-interface"]], "RNode LoRa Interface": [[5, "rnode-lora-interface"]], "Serial Interface": [[5, "serial-interface"]], "Pipe Interface": [[5, "pipe-interface"]], "KISS Interface": [[5, "kiss-interface"]], "AX.25 KISS Interface": [[5, "ax-25-kiss-interface"]], "Common Interface Options": [[5, "common-interface-options"]], "Interface Modes": [[5, "interface-modes"]], "Announce Rate Control": [[5, "announce-rate-control"]], "New Destination Rate Limiting": [[5, "new-destination-rate-limiting"]], "Building Networks": [[6, "building-networks"]], "Concepts & Overview": [[6, "concepts-overview"]], "Example Scenarios": [[6, "example-scenarios"]], "Interconnected LoRa Sites": [[6, "interconnected-lora-sites"]], "Bridging Over the Internet": [[6, "bridging-over-the-internet"]], "Growth and Convergence": [[6, "growth-and-convergence"]], "API Reference": [[7, "api-reference"]], "Support Reticulum": [[8, "support-reticulum"]], "Donations": [[8, "donations"]], "Provide Feedback": [[8, "provide-feedback"]], "Contribute Code": [[8, "contribute-code"]], "Understanding Reticulum": [[9, "understanding-reticulum"]], "Motivation": [[9, "motivation"]], "Goals": [[9, "goals"]], "Introduction & Basic Functionality": [[9, "introduction-basic-functionality"]], "Destinations": [[9, "destinations"]], "Destination Naming": [[9, "destination-naming"]], "Public Key Announcements": [[9, "public-key-announcements"]], "Identities": [[9, "understanding-identities"]], "Getting Further": [[9, "getting-further"]], "Reticulum Transport": [[9, "reticulum-transport"]], "Node Types": [[9, "node-types"]], "The Announce Mechanism in Detail": [[9, "the-announce-mechanism-in-detail"]], "Reaching the Destination": [[9, "reaching-the-destination"]], "Link Establishment in Detail": [[9, "link-establishment-in-detail"]], "Resources": [[9, "resources"]], "Reference Setup": [[9, "reference-setup"]], "Protocol Specifics": [[9, "protocol-specifics"]], "Packet Prioritisation": [[9, "packet-prioritisation"]], "Interface Access Codes": [[9, "interface-access-codes"]], "Wire Format": [[9, "wire-format"]], "Announce Propagation Rules": [[9, "announce-propagation-rules"]], "Cryptographic Primitives": [[9, "cryptographic-primitives"]], "Using Reticulum on Your System": [[10, "using-reticulum-on-your-system"]], "Configuration & Data": [[10, "configuration-data"]], "Included Utility Programs": [[10, "included-utility-programs"]], "The rnsd Utility": [[10, "the-rnsd-utility"]], "The rnstatus Utility": [[10, "the-rnstatus-utility"]], "The rnid Utility": [[10, "the-rnid-utility"]], "The rnpath Utility": [[10, "the-rnpath-utility"]], "The rnprobe Utility": [[10, "the-rnprobe-utility"]], "The rncp Utility": [[10, "the-rncp-utility"]], "The rnx Utility": [[10, "the-rnx-utility"]], "The rnodeconf Utility": [[10, "the-rnodeconf-utility"]], "Improving System Configuration": [[10, "improving-system-configuration"]], "Fixed Serial Port Names": [[10, "fixed-serial-port-names"]], "Reticulum as a System Service": [[10, "reticulum-as-a-system-service"]], "Systemwide Service": [[10, "systemwide-service"]], "Userspace Service": [[10, "userspace-service"]], "What is Reticulum?": [[11, "what-is-reticulum"]], "Current Status": [[11, "current-status"]], "What does Reticulum Offer?": [[11, "what-does-reticulum-offer"]], "Where can Reticulum be Used?": [[11, "where-can-reticulum-be-used"]], "Interface Types and Devices": [[11, "interface-types-and-devices"]], "Caveat Emptor": [[11, "caveat-emptor"]], "Getting Started Fast": [[2, "getting-started-fast"]], "Standalone Reticulum Installation": [[2, "standalone-reticulum-installation"]], "Resolving Dependency & Installation Issues": [[2, "resolving-dependency-installation-issues"]], "Try Using a Reticulum-based Program": [[2, "try-using-a-reticulum-based-program"]], "Remote Shell": [[2, "remote-shell"]], "Nomad Network": [[2, "nomad-network"]], "Sideband": [[2, "sideband"]], "Meshchat": [[2, "meshchat"]], "Using the Included Utilities": [[2, "using-the-included-utilities"]], "Creating a Network With Reticulum": [[2, "creating-a-network-with-reticulum"]], "Connecting Reticulum Instances Over the Internet": [[2, "connecting-reticulum-instances-over-the-internet"]], "Connect to the Public Testnet": [[2, "connect-to-the-public-testnet"]], "Adding Radio Interfaces": [[2, "adding-radio-interfaces"]], "Develop a Program with Reticulum": [[2, "develop-a-program-with-reticulum"]], "Participate in Reticulum Development": [[2, "participate-in-reticulum-development"]], "Platform-Specific Install Notes": [[2, "platform-specific-install-notes"]], "Android": [[2, "android"]], "ARM64": [[2, "arm64"]], "Raspberry Pi": [[2, "raspberry-pi"]], "Debian Bookworm": [[2, "debian-bookworm"]], "Ubuntu Lunar": [[2, "ubuntu-lunar"]], "Pure-Python Reticulum": [[2, "pure-python-reticulum"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/docs/source/gettingstartedfast.rst b/docs/source/gettingstartedfast.rst index 6af7569..0bedc5b 100644 --- a/docs/source/gettingstartedfast.rst +++ b/docs/source/gettingstartedfast.rst @@ -71,7 +71,8 @@ Remote Shell The `rnsh `_ program lets you establish fully interactive remote shell sessions over Reticulum. It also allows you to pipe any program to or from a remote system, and is similar to how ``ssh`` works. The ``rnsh`` is very efficient, and -can facilitate fully interactive shell sessions, even over extremely low-bandwidth links. +can facilitate fully interactive shell sessions, even over extremely low-bandwidth links, +such as LoRa or packet radio. Nomad Network ^^^^^^^^^^^^^ @@ -128,6 +129,28 @@ systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted Q Paper Messages, or anything else Reticulum supports. It also interoperates with the Nomad Network program. +Meshchat +^^^^^^^^ + +The `Reticulum Meshchat `_ application +is a user-friendly LXMF client for macOS and Windows, that also includes voice call +functionality, and a range of other interesting functions. + +.. only:: html + + .. image:: screenshots/meshchat_1.webp + :align: center + :target: _images/meshchat_1.webp + +.. only:: latexpdf + + .. image:: screenshots/meshchat_1.png + :align: center + :target: _images/meshchat_1.png + +Reticulum Meshchat is of course also compatible with Sideband and Nomad Network, or +any other LXMF client. + Using the Included Utilities ============================================= Reticulum comes with a range of included utilities that make it easier to diff --git a/docs/source/screenshots/meshchat_1.png b/docs/source/screenshots/meshchat_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3da5aae6eec7d00dbec8edcc162a824e08644f67 GIT binary patch literal 83973 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

    jmq6HY&>cmN9B_T}F&ShEOfjrjq+Y9VkF8PjA1` z1$b90xs58qC7gL>vC;<8eZ}CIlw|pQx7!2EYxlqBaRpYycDoqQC4{EM_JibLD$8rM zjk-@O^h>nK7Ew6Bei)R_hXs$57TcXiWsjF^JebUUHQJpG!?Wt$0(6pYvX8%HVDw*W z`5BKh&iWB{o@0QPq2+d2E#PB$*r^7z51WuNvZ|z#nY}(ys?akI1Y>H!8(_pFs!04Q z9J{5JPIMx48~$PjquB&nSZ)nAkgT&A_&lRv&&2_r!FOWg|K@neQ+SGLvy%6WW=0v< z3P{o8jO?awnu(-4YYtQr+gKvZzCKmF9#DJz-%|vXu=8~IFHnhxK z&09z;-Qc2iSR@)2xRIjqUcB!^PLCO>+j9RgRcFWu=#se{YUQ{k`!9z+5zP}tfftlT?7PfE#T8*LU zFwt?hT-RQ%d2&grO0+;!=A_3E;&@&4UeGD?60VVMHLcTu^ zc||2%Tt8WKh6a@-Bez9?jy^#;oGY0#%o?wYEi9hxOS>mD z2j+KqmmGYCpxw4jeB6KR>EucKrcS405{sNx4e=92_fPkbcejwmGWxkm)`I3YmeVi? zGWREVPC0`xP&ys>SA>1&GuI2P=w=&&w_ULYlCDhj!Lh#zGwVKlz!9>QkaSasQCpLW{NjzjMFhQ-U#6DyduO(N$stweP8QlZDh`S&^7_M}EN)9&r$IiKU zQXC^69Y|6vqp5I~i#QzQ$beXgYq@0sU!eepz@;Ju6>COHLe#^+>)V+J`QsyTLg>fjtFEe2A3l_dtop99{DAXDDOp)Fb^^{UPo&?7Fy& zQq%%1=xi{`qP}MkPH;j*aOG3g$8su5n5(CAEz-%<0<*L_1)NFH@6k{>gbh(e#7$xp zQ>lf52LgJK+CkbvDsP^C2IM?FXNZgoVM-nbGkF z!s;P|ZD)&x3#dXuLV2dGzZ^p*s`(2GCn6>kr`?M=yE@UMdge4ayS_ZFgDeDWpZTh$ zU`yRl%S#Y8v0|^TZA_clJo)DO%Gjrr3Rp-6Y|jzW4^EZ(UmX5M*bgKF930A8 z&#hj-9Bph$QC4I?o|5v8GuwOVQ%B7Brd%ncidYm_yb({(!e2wfX+58>(b5eKEayY@ZkfSy@EzCc(g?R@>x;eA@L=3RN2{A6_6{ zBU)D~nZ|0LD@XW^N!SoX{$O<*NbO>B*`sBgXgh8+-S^W-sCwK!X4AN@8M~X%dXj9E$KAm+Zs#K62~(!F=8#g; z`tbgNNT+Y}nzUjWzsgTx7;&4bTNaisxZG~g6j>rK3+{X5jmHN@m51zduA}N}?qOY@1>f+xVH8ah;v7584wb1q&E1}9tT*=ddz)kCv)pOo)0T`< z$?Y#F4j4=9ikR3K;a#E5xa9?6&YVoAZ0#&EZ?4Y)0&(`cykl2$1c1l3 zoPuy{Erj>;JG#fOxE^X*5&RTlJ_L{ZbpC#Ktt4+jQ0h~j_HzmcB=lK+Gw$#0AP{j+ zzbL`d$92bTb_eKNS>awP#nnSZP)8FUxig8x6A9Z!Omq-D0H6G7dGrku2tISLPA7CRyX*#>#niL)a+&cYFx z#lj?j084NjJpkD;>^(|+&w68433f)fr6XxpC5Qq9g^PTSvk}Dw^Q0-0`dwYf*Sz_n zBN2;bq=GVd=M+qh+V_&qqhQe@9HOk>WA8_on@$#c#e&xiI z#xzmx;>WusLTJUD`S+5CclnpHdl@TbqEB~A@AEHzT5NeBw`LgLJGt1v+FP60lUC+m zx3$(E%U+goW013Tv>fF~^m+yZ@sm&p&c&ceRZC61;ELX0^+pt3M}BInC%+V<``hf| za9DmgV_UI|o&)T80(nBAF{RM=q>S7kvj9BI^07kdosyd`S}VhG<+&bN+0$hs7+)nb zL|^CDfAk;mL(ua&8T7@zPVoh|Hy`S+bhcnEAY zuefMQD67MVNAC}G4_i(h+I?C!QtDVmXA?zl*7!#P;xMuctvt5HSY;GpV>6KMWO6ZF z2Ivn&I~+_LdFfy4^&pf4iZTN5XGI6EkoL=M<-40WzX|NsIQBcIEjoR$30IP#;V3j* zwcw;Vrmjxtr_kkbqA3g`tUD(>+-+T)YrkGeH9gUSr^xS z;mLe|jBi->gUs*FjdSJZszh0IW^y#^`)u3p^W4!OkW*dig*h(+odKK^oNJXr@iL~Q z3NyPPfs$dsD5cUQSKX+coUw(mLjt2c5_BS|(QVY zCg6Ya^Q&^I^0M8o)o~*vN%V2zm2Yo*1%95lRMC~J!rP-ZwSnyeKgrQXWb6gxv0;0X zs$s5H#%a$N{sdBcZx>-}45J;|mG?iN`_!(TU1I|Mo5WkKzgXS@q$e`$f4oPw*?w^| zc~0hkHR6A_J{jhJktKS6(SLuugWs;_y%!a?a&K~wQ6cKrUUYjg*z1tbxT;##@#;zq z7J$Uwi6X-vXl1hd2q6}EHY2d*103QUZiVu_eDi?d&3(A9pl2G>D^0s*)xkI*egrB$*m6N zD=}YX$#nQybnnd~Dev#<{RsLgIHDVsLjgsNC*#zsGsL z5{2kF-Y#_u!QmAtMMD22T0Fa_-VA9W+s_;WOW0&JcxQ&dFssZO5@%L`&i}igZWUJ*v3%MCjq=L@*?9CbiYCiw|eq$p{`IoZD zU021>_r0(~|Ep8MVb-kg?PCz1iwk3ygJUg25hyq_0fZSvc#daxA8V-{qYw70u2vg_ z@{xs7w0+zVL<(!rpE?Q@#3_0r<)tNk^7uS67Q><7BJ>G9o#U0+{CWb(ZX-#L6T=R; zmqY-4=mYZ6v7n)Us{fvoMVo~`iP1?3YnIRy!x5{f-`-kp``zzZL*J`CW&g|5f|NAnJwpZSJCvhupeqG{cwcQ^HO@q;sKusgxek5P?FdUgJ_z--;%+GvA)e)B> zACPEs{J8a&1sQ{{8Tv{y_k-j{qb{(EJHBA4s8 z749S_$2un)H;Kw8He~*{Z0%<|vsvXo$Wr?Y42ADp4~{oBw+z3h8Ty_|Io$6WlR`Ze zAWVy}^)tGCIdG~BhV7EdIPNko`89oV-J6VS+G@8jZL)!*R0*<~HHxv0Z&3Jjx;|c5 zFkHBY=JgySPGlyQH?c=I{GBDGSO&=dbR^N@WKGwQw0U-A%l~5UoUFacfGy)Wm6%|w zzk}N8=PyHo$d@NxWh>jsWiNoAfIE=T2+n;Za{x(D_aH*U{T=ERoql$3jFDqB5IBg< zmq^(0tijh!j&gx$!=o|2J2hYJ0Dn~pwEdKI6E*C6hdwxS#EQ+ZE%C$Q@q3$IO_h`W z`Lq*5hwlN;RgvZnrhiTNUbTmLd*L^-6{0zYKCL{U>xRYRWRu9{+R73tpCP^xgd|~i zj=cDe-X8$iQo~cq_9za*&gYLL37Ei;4r#1x)W9+Rd|HR*M=ImFu?PnV+p`E+;DaHQqPu$QX_Bwz`UVAzCcYw3!ovAo;jz)GeQ>I(*AIaMkbMd&<^B zfACo5N-61{u^Y-9UEtu2MlGG>T=m1N}1^8#(A z0%$@qqGA}Ucl-Eu%SDl5+Ji?Xzs02q?KRN_P%SJR1a24Z$h#}r2pKIE&Vtu(g zgIsh(YJQe8`tS-*CtB%5uSL3f5`q4T7j-1docjd7)Bhg%%BUJR+G>&w}uSHXHy z*E=Ir1dV&0TOD6r^bnWQgcomL20t64|FwCD*mmS0tB(%mD6w$yARh1c(uY-QwllkS z@HkMARM(k=Q3_N@ijq*7ytSd=(atiN7ZMLH3`&?vQoueS5(wGR@Kt3^c%${APKSVj zk;^#en<2$-7>oU^jU6?8Z|K#YC*UOMTN$;q+3Ngn`x73 z;mfTalK1=@c(3WgT^eK%5;qf4FNx?LM<3l}sK`3WQGZpHn`>0+Z^=MWVI6!FCnB#F zVYWa@*Z3v9-}~I8wo{d90$N0fMRvE&(nVZF_&TJ;7uM_XlNl>tT_ z@<+y4U94!wi>5J11VNy4lz0{VC#Wn`*NAf?#1_ywygqJ*%Ge+4KQmg7BS*Na3OFY} zOVNf*Lu^wB8!Jh48N}U}=E7#HT_-c~>xP(J2c*Y+eABfx7tu+&KmG2dZ_WNvK#yhT zo@Y>TQt$qQ`U97DJpmTC#$=WD()95bPPHWC>$wdGBEyGV+FScFuHF76uU0v&Tu+*@ zUemJWr2*H)gBkG5TyCDSN*1Mp>F!d!D}#;$7t=htxnQ(*o+@mK&_>K{jr{3R2$jS_ z?+Px|GZOQp?(7C)IL%_@q`aEe9BjL^;&h zXW=V19<~;1PM_@Ckk{NAS)Ho+4U{Fg0aB0XVSYJeOZY#%u129xk-;1u+0gCkpcrzl z>KKr`U7Ih_$J0w`=IrAhjHNd3y?5(bi=W*FenWe42{1HXmbf{N2A^hRfxD zKT{?bW`Ba`Oj!3uW=sF1FaN6#-m}-o!)XJJUcT%zD0@DwF$oKGJQgQ0P9bwsa`y-tXcwL=6Oc!AL&ifvYm4fNXxd^i~7z(OGg zgpYsXNM$8BA3Ecy%I81tdOYBSv&BG#&38m-51SEiAcFMh_II}Z@eB{*Y zqp{S>)D(l|R!nTe3@25>54=3BeR_em*klPmhjrEi+C+Nfh&E7)eppiJ70#7Md5Ky` zVIisdElHz`z`zN)QBQk^;^^^IsVfzI1W|B}U*c97P`~=rM2v?xyY&Gy$b&~3+tu-v z=@-MhiH4W-OD>dRCJ3NP&bA?IX?T@+7z{Q!IS6C!eR2hD#2^G~zQ-G|pL%6bY+$HX z=;ixmGGIxqim@X^42IG09^b5`QUgV&uOxdaj*MvtwO%9Z$E;n&k4$;!t0PxbMFpX= z#qg7aJ?Us~#mmyZ4QEZtW2zG@`ski|&_>``2xW89VDi31H&zz(cRF%B76??IQ$Qnz zOZn0^ORhPN`!LT?dkCRw6ArCNJlUE>}oJWE>B5;FYeStr`sPQqL$*3+YmKW{X zyV+kAbC$%%9z=uWjlDEA@d>f9HDDO5*9TLE+0WV4uuZz9eayad$$IQ52h=rq253FS z&QHfSU!dZPpZ6~v!_BrnACrkLvB23efNnRk%%D_%D!uop167f{=L3|KMVTu6)w65u z4cYH6-HPfld(gBAvfwDK^hvzMApyocDZzf0`!81}2j%SLm_ z3`Zb#D)_URfmI6`)tGNaagYe^xdm@jV-k)-33&}*-B&ELcL z^&e*eqKf9YbBt|KRTvm7B0dqZ?oMmFAgM=0k<^fRu#LzY2TCg~K`DVm4;tjVOKvVy z`O{ADuD9f*mrbZS+dI@g||O8 z8AyDl!RJYf{NPtc-ED8&yZo-b=+D|jegqB#{8gXz&1DjSmv>2PoC*Qr@U8P4Igq2$ zEw6yHf_rhKt+Tp|c&k4@F}Hlvwcquv4#}zLDiHNQJD2o7+V@8Qw`ss# z*}y=*Rp7cAN_Q4oaIg9k`Wijjx-G;`Ft+xps<(zjyQRyvo6V4JFP=dkK^r2XJ;}?us?%7!)j1i< z!bxJ?-n^w3mp9w=2E5+fvoa0ptL@%rTBDi5zGuIC!%#7PLIGwvF0od3cVGJ*(7v`W zT~np%U@pbh<$9-W@8;%$yu=m3;^(lfy7fsuxCWzgQg3Oy)L}Q5SM?pl1EFg)%jVvi z90CQ9^vDM|59jzohH?d5Yi5zFW#L}c4~dIU5itLYye!dc7VK4rhZP3YNDl!* z+U-ppRzw4`rR`50X?b~hl9!v?76ptQIU`@KSP_?rNpuI})`wLyAP(C&o?TYQE4SNW z{^wH{hYO<=h>rl8P57%aGmpR4`WTT+n?n|dEMk5rHiYJ+U76R=b;y2e*`dg5C|x3+ z?`}MiJ4~CM;VSXJpp$%ux7y&(?fMBbJ7bXl&+1031xFH;h$9ua4pfuHxgGXc(P<{h z8I^)ha&`^kE71u;YU4cLReMvkYd?%Ta{Qg`Hrme+?-pN@^l}iHQLWFKYZY@x-Zg@O z96}%{Ac|aU>-Z^JC>!m_rorkSyMN^Nw@pI5ie5G zhppINyElEFwY?aX@}Nb(o{4Q*%IM|T+ zh@7#d^75+Fg&48(kXc}_HS7T)H~E^s*XPSaQ;V#-@G-D}?DQiP~4Q(^1<2l9fk zCn`r0A1s5JN1WP0Tk)@Qzd#eH#JRAvT%ow5#?<+|&++-NYNyq9h_$P+&SPMXY3V~G zIIHOe%D%ZO9Zv|V1MR>Q<_);j#qXNTnB^-TmC}i^ug_4v3mtJ|*aefI5J&-p!@>Fz zANXhp+!kxzJWJo5{w43=fLi*g4i*iX4pfWOyitT7S63i5QpX?6EO@ml1r%70M1gJ< zUTGpB(w7T52{UA~Ipg=mg2*aAib-cRx#vcLeaBt|;4>cvU}+^kQ|yjX_-N-fa~mWE z?+9Th|N65i;K>`7BkL(}u@_a}&1~vVo3%O2Y@K*l3Kh>nZ#aIBWC?zYl&MIlTCrmQt8KbFQHHYhClX#_1qoe#nMP~NrytOZ54v^Lq)S>e>--}xX}S|M^xp0g>mm&&`S3f7y^By0`FOtrp48ig|Q8M z-cQK94~_bc29-;c`rU3|1XjZfi6rr*ldDo1xvxM3z=!?#%@o&oLCmq-##AT;Es*?v9ls zwkb4w`mvDw`}0|ri9o4FTWC0ASC{dZEm~BeTS4(hvhdQ?52S2OYEZykc0njJ`i|#R zwEu?YEy`GVBMl{E=9c^##rGZNOnO*wClh3<$sqy*8|fW6M5qn)g0-WRAs_4Eu*HoO zJT?L}+yQ2K9$<%4{4BCW$0ioj$m6-2AVg}SaFo-!5&|YQg#WNR?0;C^M;^BdbmXEA z*lWRk_+%QtmqfBbaHMgQ*;tDWNV0Wz>mcueCAJEYJ~EdV|NS>o@aF^yLHcgi`-0*J zzdrF%Z^Bms)entVuY34QXRYd*BJ%s#NeAjvG>yg&K8e>HIW$h;e}RJxX~i_lf&&!H zRG34(p>hfzrDVT#@16Z(_jYsOboHQJVsLL+3NSiuivbn~K2CF5<7wrq>#a`pHG@=$ zdd^Ly&JoSR0Ykv*D2ABtd4fMbQ2Io9Bq4MKJbKy-dV+qtz-&Wf}A5|NP%2vXT9BCVTLKGkb6yYOO@muZxc{^~65 z_jp;Pvd&lh$b4w<HO;{!$~_|pTxiv#gR z;iLplM|sXN{qX`TSUXI%XaCwVxLzctg64n`3HcJ*H<)Q=9ad*Ha>D> znpTb_S?Ix}a$Xt_o!Tf;t!H)xn_Xiv2Gmmx;(C3j{iU^kWH58su?hrCooQss;+I5K z{QNcEql|6yo%AuERrRXj-o8H^d1p9pf4sADFDpXgQG>-k?fojfU_Qh|PQUi0k+Z%T4-U3n?Y1WBaO421+ivUcJ%nf)%)(1NuZb|gN$|LK!S#aB|(;$ z`-{pCO?cyw-<12qO5OBhNaC6TzSX9vbGmzHAPIEr>_|*}{@Y9WTT4dk6U1+??L}0H zpD&buWtUOp$PZ?)-3%-z0z`j-1s*}&@-qG`+|Z03Ck3O7=~f$(4b~YGpyGs?$-LaF zWjkOhNMb@9)IN6qqA#Z+tWu+~c@fA%8AtOWwiXmcVTe&>0%JEc+NpIEhgZ;xt;q*E z8zII0emp7(ZiJI!v8xXQ|z z$nSkaL#NbjA-E>SJgHtHGOqlS+g~uU2ca|tk8sgC#XwNL4v0ob_`G6jbz~vhg5prBE&tDV8`C0~9}a#CA&-f? zxOKxt7AFTmh+l#0_f(r@%)6#2hTgK3&PrwpRd%wC*>p<~gcj?veK^1#M_{!bu38Sn zZ(#?24ov6K5JLl03rPe1y}0rKa)_d$EU|J?w#CCfD=ddYs{@b7oM(Ery#r}Du>Q!q z9kM7T-AVyAkx|x%2dlCHBwHFGW(xzRVN&oK1104jP*X)xoYh=|7wIyBsW1E02$|{f z-^oM;w33IUo0{bkGb8!rGOfgeM#(`_V#okxRzGM;Qt0zzFgViHn!ol(Ul7t0Ja?$) z^_O4HW;_P1Z7syzS(s^b{ehQ+@_+hGIgI#EL1XYNE}5E}74 z2IVLmjc-$t39SLdZizU&Fku78rodhO`_(qJL8_vWgXOt6Q^l6^)gy7{^mo#W; zU<-r&P8KXjGes@;zqtTJ7>=azjVgA6w5ZjQ)Qw~>!8IRt_GPg*gp5T7mNT5CUN;`d z_0*JkQN2}oFPE>F@{M#`WlVk@NSU?q`LS-JvKbKHhXC|ciQ3Z=G&g3#@Yd8f&LsT0udiwYckh7d<1tLU;ZJkfGNaHH!h2OZYwlzn|X zfhzADX8|eIm0D!mv1^`rU1vQ{TRNi4u;yW<>p=Kk2EK7RAIARliQG*NdZ0&c&x*+8 zBcCfEWeMo0B;1zVAp|%bU`J9E%G(zfqq(P$jxyF)VO)GOU$iWvIpt2W`dB0xBO%p{ z*Oq3Y*qR25Ba;C9X~~K`3dG%x2!@b%fQt}@E|b@ssUNAsTX8PjaeAG2AuSb>Ek#Cj zh&(LcYZ*II-x)LRe(cy+@{z^x619Z(y;#ad^SkCcSy6u&Gvat;6B>iS2i2B7iFz%Kh{<&=NB{X@}CfE}vT(I|El&CWB8Mtb|2_dU4ma7gqE7bImA=BWjC6f9#*!kLALZ+IUGWp2E5u~w+t18p7DyrO83 zYjzpvre3R;q(NMM#Q-7jXb#x}H)voy4F}p^NOJJsQ}&2>qgnUv=kBs0o(qfN40#M21T!l22N%1wE$pcFB0tdzvS z?6ULCoHWhp-h`&ODgRk+r2fm!!Pari9DVoQM>uE@vDIqSO1n%H*`b8O(_Zke&#}n2 z18pZAn8LjfpE5wJ@{4vi3UkOYMS6UslhE zoDc~G_m&x?maH3}6>-zT@jbZ>bhGq2Z&IN(eNL)BWnOPyk)fC_!7PTHqqi`-)J!G< z^Na}3XtP5dTFwICWIN_~tjW1^Dh)sV_~YZ#?@y>|yM1F===JKlG6RM9RR-2Y*{$s4DGoe|;t^-N17Q64TV$VZ3};vroEAVpBp;~%ssN&*EEoeya=_BLJsCNAp$O#|gm1q^Fd zluQha{^L*H%(DsP613jpe{)0TfloUBSN2K}fpoaBscnTZj^~`ozC4!HJbPHS`9wF3 zb$;I5cb~dtRxo4q{)}iVt^L-=`ydPJ&rVM)V}~pORrE<(2EzKl;W&kXaCPsHPL`0? zL$i-HZdj1+53fb2c_af;}4HzzGm-{0;--_HZ)Rxi8LP47=bn)MY7*;?pJi(c12 z{_`8fXGYnEuhr*7!+2kR=L{`a^b9wz5KlbU{!+DXYwv!(D8hd0ZhH0j^VSsZ>iyM8 z`^?q#Ue-M>^3fc`=ZhzhOk7Ps#qbcgXl)S8Q1Y{qR2Gzh+gy(O(5;LQeA_h=t{7Y- zmL$O@jNM(o%#qc;@nwlFaX-juG3vM6%;O zR`D~nvOPE$v7lwO<1cGrzOCO}{qS;FO}%7x-!Ar8uDxm5(#FPhGTp-Eg)(pbQHn@h zImrKn^?tDR{(R@&XJh4l@ZPr&WQws`f{ei`TX98u*Vm~w_>h@qMx0SwAeis-7@LuC zv7&EpiiqA#<;$90vliz*-8~&4_&Kxh_Ulc{Jnpyo-7yS~kqH(~h>sRhH1CV5a?t7B z@a8LZvNy<<-&~N~O7KtFU#!k967-mAzgVLmK(9|;k$6Lb9J|YF$X#XaQtNH9sgX)l z^2$MPZ-(0M?x11iAv4|V&>n((1Vv0y9NMYI;Y`F9)N2kgY8|Kf1i{4CGGdB$EZp%d z_i(N|mh*6w5)~^?rtA*ZHW{+5eF~)Zks*4+4l!$X;LSAJOOl15XA8BZJgzr&sVjI! zF1Gudg=dpvGlg&Q3As7;fq(4KR)9E%54KOaPqT@uSJ8B6_!z{O(R&6{(R~tk20Ie| zy*xMf>Tq~vd7z>!t@e!#a};RyWV5U$vMWdQ^5>36s6%^@KnFIC(X+j)hTEE}A+^A% z&Tff73rj-S|3lVW07dn_VZDd`63mM)Qya4BgCDd~`qmTs1k?oN^J?p!)W1nF+1 zI|SrifB*NL`DVUZW*CNN&z^nGeXjeuuRBg$YCp5=<_{)w-K&9k=tjt!?M@UdE%W?Bw_Cx9N(Ct8YJd^1korFr{-498^@K zxpWxtTATO&(Q&f2)F-dKyPhabTb&%7_&NV2da<5ODWvP_5I4^=_vV)w6_)K1#lq4a z<$IEqr3Jf5%1Oq{c(Ih4s8=0kqlX@KpUkzshhZ%*ElsxmD!a=5ZfEMOQPj2Sd$a0x zk4QuGm9VTni#OEOKcJ{P^dcW*E9o7_YVRUg ze>%f@F=a&f|X-U;RW;LL#6AY1eNlDpiC{VY%o z6vjntM0_pnpM7if6_^i54l8v=4&67%EG%Y&{_=#oBFj=C$tivN@W#&liRq8|~~$L2q2pT3oE7mOEElODK5ktGFc3xL-+#5Q8&&DYPG~)*b}Xovx!%Adi3{ zDQL1-jk#3vwFEV&YSigg8i9XR_~6&x6PSX3+;3WFXyB$&u*4mPqCpa)d|WhK(o_a* z5ejme$BxH33KwIkz0GIU zX6chJYv_ygP*r~Y^l68uV$FI#7(4rqpL>63phiG})^B~2FvkcP94?Z+c?G^DMli@X zhESWB)$B)Aa>TbK0#LYBDotN|{N0i*E7Fdl3@laEj{XZCZEg?Gjvlr0Df=;#-pT$} z@x=Z1xL_P&#~{pblM|~X^su}L=`^7Klpp+0v)gAEOkqx2d_x)#p&sCn8oGcusW*D&RP=kLGgfKtrI zMLBHMR>w-JmsGbQkCvXl1QGMzCH1bagV9d!(N2rcfCk{|jR-;&XMUza*8q%?CLJom znj__cYw)p%zGLrKL;L;jEXt(fm@|L>C$3|1;s50xPYPmhQ)?j-j>M~a-5-<^OsdI# zc1c_wh%J=)tlH*5>*MtLIy&0vN2JgQdCf5&>KfiRVUyrXUeIJEqCk;F+UCQn#!Um< zQYjLyjqnIdA_OU`q5}5!VlX$Y`aGmRg10ob2EztDilyXayg|Ftsw1B?5b+=;4l1u| zFAY2)0@xI+9FjyLm21mE9$Mn1A4&ej(%RZyD=9r9#}`Szjb!1~OMx&tc1vXXw$Kg< zTqHgM8ib(Bq2QT@p=`~ys78zyoCdh;X%XfYBk%bG$`Y_;T79}r!Z@05nkMMSf9CAQmTQ^WtO z1u$JKQ}sP00VK<9|#!@ZVy@q>lgp;{UhiA36O` z8s;V&lP1XFunE%dAj(*s>Gm{vJGs}nmzLF4sPyd1C}Q$wk2{RyW%z4#ST3t*asry% zxQ1$fPeM3dABLKlsrj7n4-VB%Ru|L&GyH#=A{xEK&0Fe464G@N6!{`N>2*`eOBGNl zDc&RzjRYe{AC2z!sLey}E!SZj+kA=OL@4k04muitTGA6&%_Ez*e<)I#r7Q-&1`MG_BRkMs*B8&|3Wfc)OC>Q-@+9u-xUEu#b!%Lxe$W~|o{@y~ zuXu~%p6NL{ko!`C(k;qHG9C4&339$ZI_g!4XNxuKOH1tUai=gJ?|@&v2o4xU0T3H2 zlgj@kp?>O_EzLBd;O?+N^nmw=Yo%$_u4D(P|> zxfs8Eij^6ZQr~N zJ8?_urlSy(BZF}THw&G`Ja%BU36l2BCw0k^{(!R2B3!o?J!li@POEi!UYH#4*r^Rbnz0{;>)A zn^li0cT*+vy*E;yNQHu)PK9%b_M7^Kxsx_JLV*nhxZ;4`a6@cF`_AC{5|W%Vg;uPp zD4NcKPLrM#W-ywJ8z)ZB&B#t!8(ftDhWxuHZY4nSF{-M= zN6P+6+xiM=ui+|))RK}2fsu4kEZa~#MIxb4|;cUAol4H!)We;A( z#TD>R`|4Y&Byx@sLslkqthv578Y;n3(d1FkSeb+T5t*7Tl0|s;(eH`d9|zah|DJz#ryI7L^tn3{2=ckm zZFJ&A2nk5;x!|R<>~icJ;IZCUK*?hhwo07vx1iPKf5*Qtp zmFF9nh!Y}sE8JbJKQ3RquX!aVqbZDlsHTsQP&HqH!CaXtjUd7InivnqndeOo!w}N# z?9;vB-v|4zPY+yO_Xq-q*knmqxe5!Cd})r(ZX)R%GUaDz1YD1gwhxEN> z2i59qT;6a*FZm~*QoH3f6A`7sG#yOx13{N-xRN?ecG(xz5${_1kp*C(#0 zsfx3wT_J=s17*vjD+WhC1W?O0HsSS6uN%&*syUdxQY%e{R8cJcOVd7=A&j%C+~CpS zyi4^A4*0!9;c4doalUNFp?fSl4=uJ&0L_A3ah{U0pkc_wC7hs)QCqW2p#S${P^jT4 zUs?C&n{9ThQ*sGZ%LgiYW7a{Iu)@FzROyn^PyWOx z%9|7fJ;|sgTy}b-R4a{jYl6GRwdv7y1J1YJDw;T%_>%ecgtklU({A20^MXIF{ypgM zd%A4%y6HqjYc%lp_-j8UH_FhYx8VXf<1|DmN!%Dm_~(M>9ths2grsfeDTgd;c{N87 z7MiGkxE+u76JP8NI8n+Qn%kC;z;Z8TT_(-+=93ED0yTepHt^=B+;8=Gln>um8t(4y z-tu7u2A(9s^hjhh_UP`>~aK|CNff#hzR`}KNKHT zzRdV4gyss4D56#Go4jub3QB15!C%VGv>9F0ahM%C`rN@2XInSurrhQ8=WxDh)fb_y zL17jg@aAw;LYl4LD(@Dfi7#V_jfSOpSBPmiJvEdKf1AC`k2vsR{2Gjg+(PrV`7rw> zXn*d=22YI2 z>Tu&3(M`9HZFJ~^!rKh$Wni7rbS>QWVwI4I+jkGf5)X~dc`n8DP<{SF2J73$Mf@@tL_OXIw!Y>IXFs0_r9}wR$Gnt<$G% zpdQmb`}Sk*s8oRRhtO`+sceR$&su0b8?GE@D6ipN+hcxCfIC~kiu|9#4VXAO^yfpJ z&{w?YK>t#^&??i;U%S64f{>ico5(x+uy#n|CYS-T)!Fi4T0xvZ-CXg2aDGv=dOB?=B(axyGF(4LxvJ9qiSDc$9RE;t_Et{G+uMv^^fY3)*pB|s?yY93FIkDmTC^^~*e%J17US#j$Y|*ck9DFy1 zwhtW%UJxm|p+EZ&IULk%XicmgZ}|Hb^I)}h{>kW-NA;b3Nn!M;(%s)BP1TUcuD@E} zuvIrMx*a|P$JhX}JhX-B$(6l7q64 zh<)OIO@c~;x+aVXu!d z*3bu|(##r6Dyvg3?QJelD%GbbrVW6!31BPf7a(*Bn4Z@S^}C}tZZPW`=dO;SUI$8kD_sr0ZnxD40&bYlbs7;Sv)uGT#R+t#<-ihmJ%-W(Bqz(ikyAX{ zh00}8{7QmzyaWbxg9-R}d|zpC?I+cZVzw0~o@mY1DGW2+3Bjx#h?shD2~Y#}Q_EJZF4q>&RG0;;IF zrQR=}eccBHm_PR=Kr7oIc|lpeR4mF2P$p%kW%3qjqaJ^X=j; z;H?F^h4t=h?0w0AR3igcw0`hXAcwHcV~S9bz&j&tB<^D-robs(slN|od1AQfYA}sT?)p(64Yxvlni*|QKiXKoJ z+h;4Nx7ZMep1%WjYbkCmV1Y&QS81vbW9OQ8Q_DS?lI?K=fL>MbeE;N&ncypAW7|PM zFKtq?cOG*y=O z^0(7bIGIsiS8{RjS~N8@gnl<&Y}S+F<>VAx>X2E>;Q(<`xMt}t85A+dNMgACA#3iO z`#$l^Lf;@{=D6Z#6NT)cIS*9YyBw?Gd@W?f9a5*(7r+r!n;IskeOrIdAZxdh@|>{W-{#n!P8AzGh*EUv{1yP1PzW$#1D}Wh z=6Bnd;&S(OT+2)yv&mSVb)UF{r6@Ch6)lgXW)H7fn@@SVj?r|MG>S{6j+hs*0R6fx zOaFif2i|{td>q|>9JTFYe2@NHdx>}^MWD5+oLYNTdl8QISyx*x2jvqa8_%;5jl$!k zwi+0;w`aGv|As2LW4j(EdeB4HW0YsAictRNnqN4-^lNFZnW+KVX8jrRy{t_?w`{@( zP--i5_q0j)iPz`1qom!XjeS)2zKvtIG(fpR8kc==44v1ZsC>1Whik3Ivl|1%eD$(b z?zWI_?5bZi;)a<9D~^K;0}DjPAWqkawSL3ynZ3Jw3vumyY+TM9NOVv{ff6SeAbAah zX(b!ucuSE-B(^$qpRyYa(=~iOAV)<25CCP&9S&15L$hI2gA+8F(P|KKe`YO*)H2X9 zvpzZ)BVT)ljn*y&4YADOa|o(cv#S#Ek;JV8ddYv|Vqpsp&?k_WAJ8OHJvU)HPNW;5 zfStSsewWWi=t?Nx^qdp*O-s1p)CE&&wc?2{i!LwnSxPtCu$!PQ)ih(%uJ@e#M^`{b ztD7J-Qy>RupGsRpjgOJ>Iy44`{T^;N5FG8byzI`o^o*Ni_W3}ozp}&e%z#iWR{jB# z^|C1HjIfOpdWAEFD0#iDyLfXu+g8M}bcSGr>qpORy_+5|zZAq-8+5wyyT_FZMmZ|F zyc|I(>vc^$@yNjqxZ2Oto_0XA(ArmzueNR7sc#x9(MBo9G1hrPH36E;&M#S6Jw%?2 z801=rZAwI{0sl><)A$YX7V1a6>fXxsNfHEB1908roSmK7_3+lpIzZNSXi3P%rWvlN zcFx>D&$rQoA^&aZJ}O)!0F4I4I!Un1+v<*@5K|+np67Y|Bff=_7vaAnu%g-PVA3@Va zgWDQ=ctE-)F~~8<%Wv$A13?a^Ev9)HKl3ag(Oqsv9;O)4Cpm*tNsw(oWTM-(T#^kK z!*VAAu8sb$7SVNu|czvp|2AM}7V=)%fcs~hfqBGvk7~y?h z0lW}PDNGGD{J(?I&stIboV|wcfJmLt0fNs68YMstTNM5_GLtk5`&Kc_KamEh{sfHpz95*SidO*k z`u~tLLwLE)+Z;?-tMML#8EL1~&v~men-Z&d zNNfZo7UIwa#tkd7GN;)HL)u8!!w0uvN`OP#NYgvjS?vlGBkC2bSks&_PV<@mNRZVi zO2U!jWfc2}Hk49J2;(+BC;jgzr&uSD^7p94`_(FndQmS5WF^Ag5dfAFnJ)ks5pqnG z-R1`|ebEy{3$i>?lagg(n7aHz_-bnh*s>yqg{-XF`l#ts^G*7F{FAe_uJJoifBHTJ zfev^uHK-#d4Ufh~LMQ@o5e@I8z_ei4ePr`7Rv(9r#xKk+VLIIDM4uprMIpr9hO`#8 zljFJ(bm1Ogn>kd*kH%&+hp+BR>CuMKseJmw!|-e7Hn1cLgtul2!1@v|07X>*y&424 zTG3Her3=1MEY^=~UT6QFXzCE&gV;m{fHILtMJvj89Ph=*rLR7Cflx}S-B2EGuH9@+ zbqeupN)a|$ei7+@`8TY$17~jYL!(P5#GwgbMjBHeQF3k}1H!P)l@sa1DXQbYP*}!n zQr!6y3PNAy4l2@`leWSUpFsiO%~Z>wUGs$H$x@3}J~6o1>htKoo6vZNVW&Jx72HubK= zA!th@zAr=mh$8|4r)0q7MB@??KQf%)L;$;>1j9QlHNo*T(3^CWeHry`ZARP-l-j>` zA5&3#0?F{>e+=Jrk94;MXE%^o{BQ*LvEW))y?gS^#O_!HzbIh$WU!*r!TJ{~O|u!( z_bwhx)E_AN5%w#wFGzRY^&~r&xw^0K|jcQ~Kc#rRWtlA7;4}Gg*xI65lhpQi}$_9!gV*X zAe!ejWvk^zP6*Q)gy5Hmi+MEw z!4;w5J)I~ausMpAl#rr59(c7R=)9-yA5%moG{6+NZi3tSBq#QMvh`e#t?1Ls*Sh-; zNN-cbUg8-kIc$0W;GquDie%u(fakh?oub7Vv%avPl?)g*?eW!LqtVVDfFpxo;59xhh z^sd9XVU10bpynv7&SI2cjp#vG`sBYu-ebd3uqj_VTHd&f)O@)kl$ZPb{eJur3x!6H zN|(6h!ymEYOn6Fd%yq;$FDU{sebC_aRY5Su?1|sBB3CHd;#)KKE-h{|w5u$wcBUtN zCHU)j$bUWqj)>Q>GC(Cx`TEl8`JOYu0%ec}w|lPp-q5kbSvf?cwS4y$F-YF6QE-VP zrvlSQ8cjs^)Gy@L``;J6CxD$ERdmDY+kSNad5-@=a3zmQ%>0^kYdpL9z{8c{UtC@3 za{y2#U7Unsb9v^^1E#{q1 z5fB+9vo{jg+ITvo;EGLLBwISxXvimO%|`j<#rfd-5G@SYwL_OCv)f1|h;=Ok;&21n zlb%0#`%?~lSULSAr!+|!Q3i?t8C=+@)?0D(E=P_2<+v2^xA$W1xvfOrPg3isa_KLO z?%FZO3r!y=4zn!Dyn?ekdw$`KbBiy|QLO_@902;1fc-N1A~|XVlhCw`z0wb1Cox@} zGa)qxBO_?#t(Mr#0?x;9&*8$4h%g)j7&{0xMa7~1B>#({Gm+YPzf?KNy;O4hy?TnW zwtjOK^Zj;f?rPa+TX#Hb=Zx?TI>h8%l4gMLCTLy^8@>#op-Fwa76Ga8&>wN?vtDS>pKJiV z1C+W^KryPoo@}eD=rMszE?Rm}jS%Ju=ASf8$EO-2&LW5bU`X+#5%0>5YdoGT!~10N zE`EV_3PtkfjRcjp{O>;Txl9(Pkm22LNel@N;W!m2&VRahP{Jf7M^TlQ0ZOWDtVe^Ie$*%ZP<$@w#qR?xyA{05X*{A z&?SyD-Kv+aFBfDXu!c^c<_1FSW>XatKXn_OmC#IRF8}?hD1j@(7(dh^qhTU-TK$Uw z%$>n709zB~XiSq5iK61pi_1(N!>2W+0qWBER!rrj-nbjk zF&*%}mc12cvKOZ{G+wo64U%=a|5@(ZZ0k+$n^jd7W8RG06|cj3Ecn;e?IFJ{QP%!`i z?9rvj2xyR)Hc~})=#J$CAUQ_65d;q5_?oK;QmW2fApoI$Ybf6bFkDfB@VBykYav!v zJ>#>p{`a_l-i8CrlzmL0YmF;)2rr6`iZ^qB}wyo}? z)hI+Bzt((UC-{KdG8%D4KD{t|x|sSv_r`~&5vKALxv@nXH$yY^6G9B0ucMSkQ$V6s z1Z8aG;HKP$(w-cN9J&-=sBoH+dl*XFtL~Lkrj35%x^?B=cX(gVdxYY}rRu)R=ZgON zNM}7!nqg_nGw>Y)u*|62{kUVG>dvV|tBznqzS_wK$QW$1%JNp-7Tm#iX!HGe_ z^lR(-JpNea#`9~fk`-p|8LqyrB~2IaDAtm~Lf{-Al`mbhsL)>Ae{LxPa6h!vKT5_E zsm(Yn<8|@d^tTaqj{=_^uKOeC#WLvlSSt*2T7jCg{AMrbbPpTPeanp2y)@0TCEtGH zdF5v-3$D~Edy!won3<4jBH;D4vQql9G)U~h6{wo_&xp9T_NO%eDwFsMGPET*t4)>P zBDgZ>H*tROXP4bmbHT(J-I}F02O7j%j#Tmc^Zf9V3f$ifx3{C^mO0R%wp` zLu7zJ3}!@w&|0sUfQdpQ1>b5HFx7%2K=pc>55S1CJL|YD9ffI~quD1wsu=;b#T3Q0 zo;6_069Q;Q_Aq&&VBBqZ`ku-@M`oj27iBQ%sO;1!x3>I?u&d)SkQGQnP2vdQfvRv| zgE3mPYd=jn=DK^M=r-t+G^?>MSF>8I`20Etkw88Of9?qG?{v z2m!jTuy86_Qn}@#WYB4j1TT-tR?w#i2Hwd}DY4EL_R?%032t{SBHE&eZ*0gNPABg8q5KT7-JyxWHVCF>T7Qj%rf2PIrg z!{hqYMzmqF1#N!euS7*V33NRFb`=$d_U7K8$$G-rh!GX%^S5A*-yNL1Q-giwe*$a!g5r%GtN-A*VxR4^{`FK#_Gkh*&BYPhcN zOEWPR*RxfZT$50thj(dP<&ww&{0RX1X9VtEu^MA??a9^;3UZp;s)H zatJo056*#z%Xe>j$hfy_0FC4Dtk2b#Zik1*t+_${>%{vyBaP^dRRit_nLP!_*`Fl^ zO-o5}f{Zk2o&^^(;axdrNJZ+6(>U^PI<+kD4)c@5VMz;w#*d~NRHY5GiXiQH$^pFK zWKwbRK#V-uvsaS!x+0BN^swde|vDUJA7oA>>+;jzA+Bn7l@o zhBzkpL9C+SHI%+0->$@d{2!2T06C`M(T=qKl2Gytx2x6X_#QbjM!i&^B)Yu_Tje@$i2!f-NYX=8Mv6@-(>0t#`h51IOl@SS$ zpgWzHV7WFGJz0J6tB3B9q9Udn4(&p=JQD!zNowr^)6=<{fvbR5ChNUb%F}G=7r{O< z5jKWS-FC=N%y&ZnMLLwgk1S!-F<}||e$25dpSk#F<)o5YeD-738%Ev7lqJqFG9Tje zQoWU0J0;|rqkR73qK{}$sF4srd8=V&G(|5HJ+n`^M2|b;m6j*tW^#jm%C<=zijW0j zt^L5Uys;~#fz@B4DOW!TdS52Bb(gN+{Or9`WtDNue;_x(;1@?iH5vt+XScpW@cgMh zT=z=jBlHY5h*8Z5jW!#jNl|EwfNTU`wt_V(jO~wpe4d%JHDAipxT2x&DHu*~QR z8>&$qz`!X-C@t4#7Dn;K(jWFVsF{k{chsPRG&CF`Q5+C~Vy`gx4ka869iIHi}xyd5jgcTVq z6e{2SGD;Z9I%$w^43m1fyK4L>ApLfE(=<5EAPe)PCf5U}Y~tjW$IE%`Y%`eXAH6oB z6Av}Ur3K=+Cf=RT1DE(%AZA)1SXLxW9Z4w$)wb`hVrarJvxP!(KDI<*-<7{U1MLsiM(x*&a$<%?k$Cjz%$J%b;= z)NnplyqI4{f8k!vip-_KktpVB6Y{`TDmff@q-GH5bt&hiOxsxz(%MsRIGz|f7)@Cv z*TF=ANMJ-u7`45qPJ%dyCaX!95bPp=k_ed7C-N^&5SBJ7z-w23Oi3pDOX_tt^{U0C zXZh^@kI^F67!sur+p5`WZ?ldZYTqHrwPh5eQT$g*zF3Bg*ziXz_)8b(%C}WU z?{V9mmr$t9RF*yJN2VADbyW5L3jNUX6czT;)ppr|if9g=5t;n;zP0c2z=qEvel9f- znfMdz*cGdU>bC`JAy}gYF_bdriR(jO)(aF;_Elh@=-)g>pX)M&WzbHlqaN*q*MbBG3`WM>BPW?dpWi8OIP5|438i)CfH=B8i52nNQ z{avVEGsV~nzGq7ATuq?P7V(Jw4=@bD)p{1KKk9c-eoVhzE7)v&-sb#UEl;Ik-n|KT zMicexMQfIyawv&r^Nqf*J0;b9O7iMX zVWKh3>}_>C6sr1VW28$wlYDh9v{IGn`-0_<82bSAzcUXR@kKInqs%HXL;g`?)%{Y* zy_=5BeJM;iWELtuQx#rY} zv3O(i@gX|J{Bv1EPn2kOUfG@WdteJ20iFj~s5ubsaPm|jusI>_dEb#DDa7lEG$1ocIs$ur_W%4XpW`c8;G zqll|jlGdrNC-8nBH=|hj^PU#taV6F8jDx4U>ECG1A6eGKJ{D^yThITeHsC-PFyO^=>veHO~3DVY8r;xW>P`l72o&>Q|4EE&j|tX?gndPd%u_hej8ltt-4abbhF%X9;^8 zZykrlRlz%7Qu{reJx7$1Ahy2Jm|H1ab_?=tfT0~v@9wg^#K~&9fl6moQO($0b7I5;d!sg z{JlcoFd<4NKzl@Gqll6Ugh1|oW)icBrh80g^UPoRrIJ9n#YMXlJHye0@Gb+F{PFkO zmO^aPIpOzIH)kWyZMsnQnjJ;l#C`FaOL;_<3naX{6QV&z40|cbg}< z-EIUCs<-~Z<4*0TN945xI!1%>K9*s@x1v|ew_hqnAw2jCT8HO<&PTJ8t;|XjpUqTT zAs*MVtDu3NwwOY@`h2$v)+mCetO@kd5MR*b}R(FGcqsY!k^_Zh5w62 zJ^;x9)vTy&>w~%LF(bP(7SRV|!&(*Ie7dJjFMjaFQZ6OmwZ!NWp&BUw<;Eb&@U$kQ zR~EN*ba4v-JaP4mjzSt&c)6)o8EG?-mKhP+EtYDyjzPuGazDN#^g2VLE#a%7^F8%X ze`AWrxI&DGNJ^36Tq;_Xi6K3P>OnmX?M9#Z9)8MD|Lm86!(+nF+zPL3q!Ku*EEjp) zUXYvOaGvDFh^=7h3qGCQVNid43Y`TV_kmbh3ebVxQXE0oYNhXghT4@sjmA2>Qz~2* zkdA*C)SXd-qRxJvV*@C>%=)zXnV*xG#mzPns z8TwX8kS{e{aZHjhE0S1f*JMc6aE5N;Dvlq>kd15bgg+5jk$4;6ZN1y+)=F@(I2`r( zv?Ro~`}@(`;9nUI_sL^Co?%}xki)w-QwYHDYk2pWy_1WAtEKaG1MJ*Umo;P2Aoy}j zQS7N5%#a*z+&W8ap=`wCSu}V8(vx|7gp@J_>M3yiThhTs*?|o~X1pZgjM7sioR@mH z#k+Yrte*pdDf-f~qPwaS>Mh7nnyGm%lR{C-T*q{%dij;RFD&ooc&ji(knEO0h2YZs z+av_%jl#yx)*KQi0XvYr6FEX>lS(H}tWTn!5y9(0gCj}xX_A6cC&N;Q9uXDPHmr>C zed@ev^_Q6JL=_0@DkB1Bc4?4lVAZ=OKY}N_Vyq4nlMK3R3FUgDMF-kiyN_h1YqZee z_)A1olYyLEQ!Q7GgSMqdNKYhI6F%09!E$<;P>X>_!M7wl|#Vp{CUryv}V;8gARyd z%XLd1I;v$VAgRv=$srC7e$Ddm6%86smeFYz2SSJ9cWoB{`Lx_;O3~jV7{p$u&d6Qw zKvA9(Dw_~U*f_rCKyUeZLx-rVs(cMRY?AmrfbA>9Cu#y@q0qH{szGF4w8kxzABhM= z0dMOV+tIe$X_7#xdktH}T8&PmkPMok31sdxxJTehVfVJvKcHLUFK{d7?DOA_(-M~c zb0HY<(7o47N?$J+tP#b$BUJV*{&Vk-MdA4W+;vXH0B-p{3JWNWqt6%sSUjkir=-o@ed1!U0~@MP~fWY z$(VVGTqp|@bxjuq?nzi)?N5?r)GRCNkv(VqJ@6nhOJL>s73WsovJMJYOtacA{o=Xz z)B(*7XrZ^g9N6$=5Hookl$}uitOl-UPX-)(>5ugJYIsNCf@hah%aKEgeRHXz)wsA{ z@}n)FcTrk(LE~o|Hni!NLv)HGFk%jmXPif8M1;dDQosyfpjIWE^7kO=kf3%qJffeb z_VevI#mD4YhDZ*{6*i-6+pGP(Wt5!QOE0UDDh<>eVv}V*tNbj4r;b84QhK=;Nm2so zjv!G$lQrGQ#-M&RC9ECdH=UEhHNiHjB&clA?0zP45lE78aBRwRZ1IZ2FpaZw3W)UD zmoGzy!wBxJ#1J+xiwy62IOFpBgdgzA6B*;}sr)wdhYcHt298=y~lTGjU zcj!9p0bK89F*<*B<~YXOd=Sg?7mE6Ee(>E&8N{s1a)&j7CVO?ad*)RJs9Xu(8L}~? z04nlK#!7Nz#~Xe%{u=^^#Q%f<2+R-kKnp4Pdpp=wuh>0msQ35bJShO{p&cEGYfEw? z0!u-a^cmNd$LxEq6jhB=dB(A_(u;ynYb;ko-@Eyg@r9IT(2Xck&c+#%$={sofd}ha zGGKyU1C&!Pv+-pno7dad@EH&sTlyABBc&o1p(JL=hEKx9hUf9m2L%rhWr13CK)VEJ z?=t-kq|s{rS)O+4rBL6Q}T~yBa-UOCfz>POs1>(U6MD8 z{+;Zz7KS@FN3=jgPB<5x%$PtwN`WgFQR9g9vT#sQl7k!_^@NXs_4CI0ChGHuU_Q}& zv{qb&eV%T4yr1wnh0{0~MEt z{}@Hn9v5Fk$t7sl{{8z`k<(oVt*38k7@X6N9R2X7Agx#hid!5B+@&7oRF}n1nj5iHhoaH>GQ*OAYAI zECOri=^p*$XAypZ6FushdeY(F#4}77oH}J~5er~#P09DRd$lEjD$78qvdb`t^Z}7+lCA(5$+dp}#)!m{-RnRjVNt9pD@?f0{W|x7*fxip2iEAoF2SLFPVv zsZg)y!224hNt)x2?9zI}>SMU|4w|a(kFrAxOD15gh$KsF=o>Tl_)`3cB9S=Pua(6+ z?||ZcXaYk!y*>wW4hdlSTnZT&VW7c)QB?_}pq7YLkvWA(x#j4;3?<#bjz!ez`95CF z`hAjcnW9fQ@%h}62y+qC&IsCNIUpraP-_hC6doI&4EaH^GyQ^kzxD#A>RH0v$?5kS zH)g&QWv$Jg{zR;Q#fO1bf0+%SyH$Uq%@I}c68Q4~i@fD~mM`lSBm`y4l*c9uSgp@Z z7sMJ(Jd~5yQAAJWMd}eOK%|v%xeI=0rz#})YlGfTbjZt3=%VI~R^5BYQ-lvzC)82E zOqeSNW$9>G{N17TmmlF+s6Vrg{8Q(T(NjSYHz0(OLS>@Hj2`=jwk7!U0eCuYz1;0x zzoz=u5}Cvg-#fLH?xSOURI`*W8|fR$z3GW;aBN?1H)*@d$X!i@_DB`Fss~vSN&y}x zpb~N_U^HZ`@$O4sbqeWce5)5^%`XC*QS^?!>7PI@SvXDHH(2Hm+&&RY<;%C_Xna2*n2{=^tpiCq%G7;At4JL1}? zUtI9Czay*R8rW@3a=!Kp725p<8~ky^OfrO8&azAW%C2#?jN4<|x5~}c);77dxvj3Q z&YGUS;-Y-}kVPCh&CBZ(L> zb2?nUKK+@8O5YLneRZ1lG@|%Q24fWC;DBB-GN41U&L`2|>pD;NndtL(#kD(O zj1UGKs0j)(QqFm{8AJtL=HV|=7%IdV6*ioM0{rTcqYLtB%SOKLTTBWXwAYpk^=b$j zB&aTLE+PX~EC11gzo=_kS2VXS8eF%7wW*{-ZZ}+7v&1AMGUiocExV^hLqW@JONnAl z&vw_2>waV{yO`=CA`CNEub$D#R}-GJsk(jw%G*$fE03Timz<-?{u zg|$G_e*e+c+S=9ivyYFlv90U%vmT_mi|uKHWR4E6Re#*Kc`45;<{n4A_`9+JF^dzQ zFT>%ZhKS43ievqy;S%N*6-4s+gtO9Lw+*XR%-ht&&dy{5MFe;tMY^|}I_^OC?;=mj z$k0V9YKA>PT-e|5Hb=J2tm|1?Z4E@l^>>gz+qeo&NKQHpDfQm1w|uYf75@hMFLfmZ zumBi;(*OEgX|VB}Q9nt1_&+p#WmH>j)Ab1nZlSnaix)5MP`pS5C>mT_+$~6PZK1eR zN{d@@2oA;Fy|}x>m;3qFo3-*Mzb5C*%r)1{-g`hyR*s(_&_4pTLcF}#701nu+5urz zweg~|FzgCK+{^PN-_w5*bG-AZi>Q>S+4Z*@BO=MgF^kH@J#9!*ojMA?< zDM~=HKIt2MZ#Xi~>UMA0aK_UqHexaU7&XIS_^%BCz%a4X5Gw}r4;KfIega)#;%IHUN)qeN)OZBlHiR@n;ev?A zMKYR08LsPwW zxZMaZ(sT(FI@iExx@2@ZD-28w`s3T%HHsH7dr7DxuEDAW9^wW`icv1BN#0i~RLgx6}|xZWJE`|*Ro|4K+-2*Qa*>nGhFozJNm2Br|doGHxW z9?^aQCbSg2lc!@d1Ph>CiinC@68NzQVTGgLC(H7n$Q0j%Q3F(!AE&TE=TLq$8iH-F z15U_v(^KzXcSt)PL;uI16w3b7=zqcocgF-?Y;Ncwm{Uc224IShs{>a-w zO$gq_a)JEe<0q>eTCf#zcaNpf)4`*JL!xaJLLbJCaO*XOl~H%MPXdE0Aep1Cc;jpx zBia%Cg@uMiOF%p78r7hbizsd-##tTVI5N$mp!XZ($Rf7c5qY2dNesCs!ZrQ|Iw2wZVQVDGYC(sGUxn#H ziW#<0dB*6>4?#m2l1^_dueiq;Si$H{now9I+o6(2sjTh@QrO#b_O&|jvaEg{I;!CR51$x;GT#s32nM{V(;$8-KPTdnrO72jw5B3k z+v!ZPogebhKcxm;*QBhFx?Mee{d7Ibo&4{g@Y=>f@tY{@`QS$6YaCTL34^C+X9PM& zG9pc-C;D>}8vZdXIOokKxJ)#5y0KwO9{A!bqzcB_xSg6KY4SQEr05JZs=g6ay?cP_ zb2ykUbVx|+=Yb9vAcVJXJ)G9$lcHOVv07G*d$8Nh)n{m)Q6PI*$lhWsQ0;m!S5vY} zCI|5|$Ov>RqwQ>vN@do;FvZsEps5iaFm%Dwq*P?o*VPh3A1;@2CPxZF2H^vq2qJD9 zUz{Ms?-oi%gi7|z;{3=l;ZI&v3=hg6TNn4bfEn<+nMq-Eg$`5N=-)ZMVmG_5Qvbp& z?O}!Uf?{Inwe}OZYGN<~j`i72TnorSJOc-jAOFd?`t+|8)6(IoAao8be}wMZ|IF+G zwU*ef_Is69Q!!ZK2_%TpTm6czk7R%dYS*@+|ju zsmR;x>{_CNi7B|M=DrFGD6XR&a0Q>OAYImNtCxb(dww4OW$eJ^90cM&JK5EMC)&8V zc}oT;Sn>IurxZDaYv0N1ygJjTg*nt!IVb1tqwxh1y213f>CE1D3@Ti@O6yJU;O<#) zTV!R|@WV*A_U%p`rrFW6nGW2A0iveK|3D5RARS`wSKJ?~CV zd0ifCYs*hzn4YF5+up|JCGj^=ZGMC&d32P#Hf6HIPioGqwYkVSI1{I*q@)bj;59!A z#|eK}X256ubzapJ57Wa@Dqt}40k%eP;YFxMPA88@zRxy@pLnLmjV{#VL}hhdju(16 z-x3}!fiqy)wzDR1sc3>%kQ9m-MA7(ac3XQ#h=Odi*I*zU4mqh353)aK&EikA)iYts zMw!7AD7mY7cdQh@M9mx^jiI39IgFP91%7z4^EI!ea2I%9^41E4f_N^%BN>r_mr=b^ zW*jRIx*N_M0md zWwqyg6>QP&SOEKZdai0OV%a0x5i?1*KG(~QUs$oS(<^Tgv6?Jym-HKmqYF)-lD~&a z<>QQ_oy2$Zw5S+owV1p@=VLTRx>o^J+fN~<*JY2C5?Q*qa=s|VgHpSuRu70+eLlt2(_+zV6z1>^>SR$;6i6w z8u`bF;QVBqt8`2*(<`gHHNRbXlTqqLTyXo1M>29y^JfWW1~;M9!*QOhLYG#doE9KY4LU^;$4ROGE=xl3Uc$5{kV?hmKwFDvEwiPBIcQG7=Ip zK6oSBFGQC=^lelCh$v}w*u0`55nPM+b?1H)lNvjw$YPQE#Oq+z{#2@OQ23{nXC)BS z6}qMnw~^<8--Cx$_;CpAjAdSb!zhwd()~R^ArBN_YTA1mmw~R|K1)r~`AzQ`9sCz` z9V3b`VW?yy_bPhJeoed?Q#Lyb?IC?je-e_;LLlY#ifc|uvCX2xp)jsDyXrZBtw2Ib zW4wa1L?CX#r3U5W^(HQXF*}DQZ;<7-@rVs8+fB)bkR6VI+6B%&(}^whc_tw65xvUB zr}A+_Npphp3OzhvGg0d$GDnqKs}hDr4H8o@s7?3s02OGiELVRKQ38}3*wGRhyle1$ zhXPQ%JE>;f2n-QQRSUtTgqtl@wx2`+fa*|f6>@;Uw}KfY{LPH-M32=N5vATZ?-UMF zp^2_V4d*2pR--KaC9urjlJM&2>(`H81DmDoZRk?Ql|GLoIH!1|A_t}AH~|-9T^NeW z&1I#+k6h}nv6`0VT?#<3f0HH^N@m+lf2D|1N##{$x&n2J6+fC8gxTt-35izL3Ghaq z(YY|JS%oCaPd{jficC*AY_`<5a9U0!m8xmgy606D;WwgwREJq>(^9?OyJOmv2NJe- zxYY`N_&Rg+9_*QTE~#;UgO3|GzNZ`)h_Md7Q!J@KG~ys0$e!lD7NLw_d7NJ=11;`* zF1 z!>et_o;|1kcHUrMs0me95ze-pLxfb#)L0=gToRw+s^x<{Ra`vhdlc0ePpwIjEL~xM z-5Yf;Cys<5SE5-fmtm6!qV)_a9kghbQ6> zWOB|;ph3#rZqdUp$@_S$gg%EN#;Qe79fru2g~TM4ov$@iz24fGsgXo z=T_4n2O`0T&_F>z*;f#rL+Bf2bPmy42sQUFmrzxp8UCCzT;;on8|LzBs{^m29^K`z zNLY%dh^v#nt5=&@zg1JiXgPBN)ba^XeQvxu{`&&N}7$k zoh6#jf?}D7^8un~_0na=5#yiN-Zrxlpc8#K4*BXx>zMJ~w}I|W5V$ks6M*GkHHIc4 zb?k?QO84Io899u{lElbw>^50oBPqv1Jt!wr4Er9d^=i3g5g+u~vSnoWSFlBCSydL= z-;CnZlo+Bm2)2lnnK`X2*(-DYA7Wz)u`UI%j?da$4udd7&OL%(#LeR1&TtRBd=nqbL?&1gfQ1x1QVfCVHGO*T_{MyF9P1MF_%a2Xz*dBw z1gt^vfdKwoP&q2C@1IK`NF&{jF+{0y$BcU?Q(!&lEoV})vh};Z0qfZe3GqZ8oem5{ zTU|H9*$T`p&JoT9SdX`04P9I)XK|M^5m zNp=dnYk|HTN3jz5i7jfJoY)#Q^NPR2Wu{WLZ%tk_BSCfRpc#_Q5nd!~p=FCQm9-mqg)p-B#LBN#g@Nu;(Dx5&RZJa@ zDV+n42M(Tb;2Dpq`fDe>lMnORZ#V2T3F?L=XO$oiE0RMh3v*t<84n==h}m;{w3Bq> zeFBaN<|Q&?CPw{$xqd^ITHbjcg{N^v{n~Jy3S6JtU>KhF5+-w#ZhMP^ZfNuo; zEIEhNfKlIn0K`x3@T@6SpZEB_>}&@642Y$*1Cwjw0x`1R8a!90wi&W^WV*ATv0kS+ zW_x%?EZFfC*_29E0;w2g{f@4?^6HSegohRzmrnih{%*2UUN#vA6q%vg9>lHMc8#Q z{)byg!;<=bScr@G+t6C{;bvMd(U*fT>e#eM_U5Mg*1Mm~${kCDBfs5(#zeSDG8(bv{s+{JM<&_NAeUEQj~X^m+0=?rIQ{@W_ODHpP~}@xm8|Xx zw~S)TI1tpitJZ$HbNOP=;7?E<2Ib*CTeq&Zt8jn|EBI{A8NkZ@ZQcp0721A=t}i_e z7tFMZeFsGR=4FBq8*7jh7}P%J4$^$Bkt?IyeJvQzU+Dqxe}l@YjH4c9i_u}%${oS$ zl7RCU`-x^q?&TgXB)g+!H*a-&WaZW~7Uj~a)d&okg3!G%^mj#JxSr8z7;5LKos|o` zPNT17A2f=9>Usrbx@Y z6ClRE{)sqEm)49=+We5ZD;r;6$zl;cgE`~fSja(Pn>%Z-x5kz5GozTtJV1SFwK6YJgdT@q19{Ih-cE~OXG`O_6f|XsZ12^(bCQ?ySb?PDnoZI z2XoZPvIfW~dp?f46!*A=+{g?16%r>yo}^1pgITMo7i88-Lu9E;&&SAB!ah2{)Iyqf z-01%iJ8{zQE%ifnUYX>CNj{4pciK^mgU}bGR;og>ZC-E)TN5a`{-_R?dyAqe*HK1* zxmEu48QKsfOa9jbA=~e{1ZDB>|C((ocDMHf_}K?M}H z4D@np{n9y_cZBpN6u(RVKW0+$j}X3$<83Vw9H?hj-_HN3dUdqi?0qF+AmR!AbNAS) ztTg@n%=|Lve$-_I_>1(ic)%%-yE;HFL!iPGx-eIkG!0@ ze;kr!vmjheuv{*m?&mvcwCS!)NTh-z$GL_=QzH?;%n-26h=Q7}1hNYB4z~C znBgJv^HY)Be%#UHO~xA;9lx_Pb;*ZdsoZVPYrAXVZSrl(I>~(Y1jmU!-zTuxBhD}) zzC31r`RTYLj8~td>#2SGc;SIev)i?DImVJdbU-LMrR&Mgt$5$dN-00s@6#46BXmB_EvO< zZp^br6t%@~7&OBH7>(lRsnEZhHta#3whpx5V~;B6-Riu(zg4`qBoPpnvv-9{h@1p1 zwy;wjJ3E%qnU7rIpJ8w~`MM0sPgZSl6v}Te_8s}@{(hFbWIW=%c`dWWf2%>Gezpv; zz7&)WTlvko`a|hIIS5^pl@}OvPv;#~bzByKl7IDTP%a;DJ8C5#ui3|ICGX2`&sl@h z)K{qx^Z3hDbQ}g%{4|avYj(p0Y}WvU{JT(Txfvxklz+mc*2y%#mGcX*+C8lXLsg_;=D$4>LNL`=CK$94we@I^(=z ze_4=W_vEd+5?u4zs1DOABXkC2dI%rS=k13DO&eOOiF8b`wvP!QC~z5XbOY}IUEemX zeP%(H6dJhL6h}NdcuM6QUAldjn+% ziCE^Z{T8w`t>^|TI4|f%@TYPWrL!z8y4SDJ<3r1zl6v@5i@5p_v`;6dZ?I<*G&vMj z+;52f4oiwBdmKjY1Zd!JlVN;;`-+sdM@iqU0z(CxS-{7^Mx9M)F_;itA&}K0-&Y0&k^O=olQG&rt7@w+*X< zkc)ojeY*e0(mw(`B7`L(q|E3p-1+#px&^hx9yJ8MV&Al_c$Rl?QDhiD4t)dD#h~|C zPpD{apJZQo-}euwa+3w$sd}KTuNtu;sPZ4Kr|q#-ovpMzri7=KoE=VkuqH!{mQE7s zVwrw9Rxb?WTc7khySN8P>FMbSPy(e}GH}WFQucht_Bi|5cw`WP?l}{Q9%3}$+sd65 z;Kg-`BUx#SJ zV}{}Vk!aT2qCw9)%cryYZ;fB>VxrN;DzH-04toTS(iOKq;}+sO+uMDn!lCgfEI-sX z^=_WXFYRc)KTQs@VsxhKfI1FCqwU1yW(!mwK=eUk{C7&IW+#`jY`D;dxm4o zQqKDr=!&0x=UvfvtELSP9QOBqL?W&ak?IQ6Kx;U}{gXc>85Zzj+Jg=-rLCB> zkw^#YJ`@AwC>Jt00Ot%ZPyl^^0jTr0Ux!EhydQmbJnx17 z2gH9=36v8{a0!S@QN8`{(^BV8*s_rW=lX~L!f~T^3*M!{k-tat^j9dj13;%%B|>mL z`&)zRRPTANQLq0Ti>FF$Cws4Vn5?*4E6R+av`6Rgyvu(0NX++o{A>_0hSkt#)XwL2 zN!D(Ok!@7o(n+e4HjE#`DgN~GPjCvli|$Gl%I0R|8zU=o^LOZC-iYKKkpJ^P^`}&d zf;8N3s7>d#h6QCS-WV|usN2Z1S$m!9h>@Qe*GHn;Ef1)&T+Y9>I}=W?ZQw2K`Hlbw zvg+f0$?f&GXKm6-fMVPfKm1ZS5hI}3YhUeB+P=F9p zY{aJ`%sL-78D;wYLRfxm_~i?NuovqgIWNw)B*xKgD}O&c>aE>WZGq_2AXX&f))2hs zI3W*S9I%k{pl_OdJCS+A5j}6R&^Z;RPh{>Llp468>d6i!L{?GS;Drd#kASF_WG*-{ zCr?&O{jV2ETJQuBD%%i5nmi->XyTjw#US40cUp+HU8@98_ptUcE*ek=^CyU$9TaE#j|_sG8NLQevrVyIi)9iA zYqFrNmeGv*609gf_Nhh~|7C?EJ|748Iq19C574$Nw8mh5wc`F4>%owQJOCX0o|D9S z(&cwPBRJOc;{8GHILHgYlwN|m2hf)|;zz3AGZ=UJpLJ#RBoc{zi+b60o=kIsPEQdl zrwxJ=s0(3~pjY5?lF7JVUON)4&5(}LwMgt^pyqjmZSmCAq@*OmT+CmR6X^c+fKz<3ie#J2-QvaGN`5!$JEqW^$ zs2Xp(wdr;ZGur&RP9}+;A}moMSvs7-i(rC7WLviWk{%FWc?5Vh%QZ&}X~hgU(KKIP za}xeSH#YWQqQDIFj6mxc#qj9l=jJW}lk<2}2ZGr1@ zk;i`1ee_@{p?IGY6IQdaf#1g0Yppvxd=?xf#n;uBIt(=9beXTdwwOJ?nLmrWdAc8d z+7T5e|0|bEpT$g}m|GRu> zLgD61?CaG6+o+s8m{B;Wkk8$w1d?wZ2(d%O(zvt)leDz{k7wD68xqv^YemWfCP9VQ z5h9uKsXw3o9I}pj9^|XpiYK9gAMi@1i0~9Pi;WngJvDt#E?Ox~^?z6ZDtP%M?cdFN zskjyIBU~Ic_2njEac*dO)|L0z*~q33)aV7(*bA)1S9Hq9?Z>A(rH<8jDfbu+&4I# zVthR67~Ir2QgyqaCkg}9)WLz^o;-Lv#+!HE_v-!hxys^PSs>j~i{ue(!Kc}li+L#*Gy!QB#>=!l>Zd2P0SJ%(%>6vJ{vC$}Z*7@B#2 zV&UZ1{{@OOP!J?-X5>MKgJ)0E{LVrm0~hp>P98$@g?sIy z=ia(i5_ic_;wN}_%-Y}Uv3bY3yR{-s5dCMs_sruaJiAo;flRFkvRF& z8@aL2q^1w2SlkjH|J!!eW7(WbX4 zqP0RV=urw%#UwT8xo=8^A0iu|FOWQ>imTdo;^5S)7}SOX)G)NcfItU~Zf8gC%$(k_ zfBDSZF~YNoEWv%-aIUUNL4Cgi<0tJR zV0-Mf86k{;lp+Ae)!#OkK`0DT6J*Iv`1kQh6W#RT!#S`WGjgD(XCF=Oz^~F{d3#P=e)V3 zEx{gKz{rdBjg|Lj!f%L{p@6`nX1>9(8D*(sy&$JdwW=Ok}ss0@I$HrG3Tux1;ZF=Q)*7}&#s@@{# z=Imu>w?DNU7{C9XlLT?tZuOiXl$*kXB%gQ^nt`_U6Ak^dbcbeG0@zQT|6f2-w0v8> zG%~F&rl+@4sX`i=f*!e#1u`;d@6UX^U=B9BN7=|?BqII-*i_)-OM) zkST5AzYO?@ixMiEiPL$q!qPEfCGzzobo3q%=%#0pPe|3d#F^;8Q8uHJK+~F|#*&F^ z#B3qmg6mNGBQIGf@kiG}+|VM7o$}U{NeW;1R4G`aw^=Z`@0l&XSV=?oSevGbw>@_O zULiQo@8z2?axRo?9t!G&=K2-5n$zg9cgq7v%6Q~PGuGq92NNroX7Gw-iFK_#mODB6 zs@v_kH9HS#&rhe<3YJ7j3|9jHf#S{(IB<)F$wPC;tvuM01|g%&i?==JD@2fX#fUZ# zhAZE!)N{hW=7I0d&f2)q`oXo2V&bp-30?P^`>Zzs`=vmbh`i}2tUD|G#sTPl8eW?3 zDu}muXqj$du_I@2B3yPf`{(RBfSY6k_CNV7*E$M3<6mqB>>MUwl86Y|( zo&OsChhNhP#Dqp&GftDR4S(6vUX|9W%hh>irqb}N zeZyT?j{v8(_=WVdr_(1%Tk*ZoSPnxf$unRb1tuUZYgi`=((vo9Qe)n3A8mh3G3QUM zpWn;Fj$JCLt&4A!zS1q@MIt#8X>RvnKgO&fC~Y-Td861KU=SDGSRwj^@gfBuR*&Qp zxzgT6p`U#<*=pP@%NFkLs<=Vsg*58lRoj2eQcw6g%zH?MX?6dbqo;Ls|Hm_X3Eo_f zNmCfPY9o4vfA85=D_MpR;XnN304qrAfny-w<8Iz^gJe6-ajZlf$^x}@SS0qFcPgEC zMK!i^GqS<$!JJab>A|@_pQF?<$k#i0dRn6aY@o2+CV2vFeNKYE_orNFaGRTT1z_eK z`*-4O1MTS=ESa33pN1b;UKL?Yl&e&ZPYY;&2Y)bG7kSKy0^lljf|QE<`3o5wNs-;Z>^k6J?isg#7&Hcz;mP>iIu2 zF9!!FCno_BO8p`IXc+#?L~qbxKYGxs6#qdVbC-}BqW50GsCMMi-!BxTq+=;f>C1DT z?$x`YWHXW2d4G$pOg8C#+yzApY3a7Czn>P)I_xBM<^jNf7p0;%zo3uw^w{FLV zP2DNpNIbFj4}7uHT^^~tE4T!8-=B~6k0l@NFa7eJ8qEa{9Roq15q)h-^RH?t^M8tB zJd!1B8a)CHSBz9-_Y1b8Pd8Wo*Zm4=(Acb^m5-XiUI^&ZQdp4h_OQ6a3o7ON1AD)_ zQHAXZ(2D=96d>nl*`Q(6+9bBen$|B@^Mq6yQ$#;dqyaaL*wmn6=PcIYa99roQtDEH zC-}Aec!2v*tn!}%(JPV#=3B1rAE+@VROJv0HAEwVgFHZV4An$6U)dU;AS^Ni$(5x7g^9*ZAK* zK5Y$W%u5|g`qKd+tJ>mzIr<8qn$#x{Q1c*j?=2m-F^5b>50k5NSSZ}r*eEOdk2~%2 zju*>dn0?Cj(X&0}H4as)Gc5NMx&c&=v8vEDy3?=@?~ZUMuSJ^Yp`8tw~?<+%pTe z52M%&?JX@n58Q4>S!k^*h7aIg z1_itVU=EP6KZHWqbqWEs<#~L&kU;yOHoxV)SLim#!lM#nS!dWjg& zwr%_{{dK6gM8Mw>NPjn?!~I2Ow-t=Qp4~?Q=8py44Om-i*(%1y^+6g2MbcZ*9`sFP z`e?xA`iT$#edKWC(oUt2A(#MBhR6S*YO2Gq;{xie{AuA&dL03SljMW))c?L6Lvz=k2m0)0!Kqz^hU;J0mSjBg zI(E^$UZ0V>7-qy?_4t~;I%jS~lq>1HEt@4We;;j`-LY3}xY zG>sBZ`J~ObAIra@^rbyo;`=waXD9|W{T^<;kg@cM@ssV1{D@tt%dHpl%nE!y@5n>c zkdLJWE)3Ohh386N^-`ZV1c}G_OS>}*@q*92?ETLuRkuKhOzEDL`K8`PSsjxsDg2Rx z!(U4#iavuS?u~<4Pu=?g9c)zM_uF|e7!Ai0x8_P<>P)i^Z&!F?ySee}cN)-L-kb#% zcI;r38bf0mP@#!#wm^*UIukTX?7GM+x9*SPVK6f{~Dx z7oQZq{X0G9_*)9P*40Iy57;o?6K^HA$ySKwJ>t4M?$Zd>q8g6h02pMBBap_^lh3>N z9)Y9HHu7s0kv71|btfPD3!3bCJJc_QTZal%CWzAfZ1I^rf!~Yq{hY6j&;@wsI7vmhwW;&_Utj8wSr3QgfQekqy_ zx44ub-yA$n(M(-iJAM+#dr|0RAH-JP@Yy+g3q^@^!drv|4dj95eLQh^i<^lTbWh9(6j#pQpy8KBS z;tjqpCPZk!GaC56D?o93E~zu+wH_Jk_o3>IJzdwqd~v>)NN1HqLFgOc#zg@XQ4o-2kZbugeN)7?b?rOEXiRs(Xdzc{Q-#xmS_zaagO zR>v^Gn~e|e_R4u0WSL*UjC+4@=O$-a-3WSz~1Hsr7E7%D+U{1X0!`Sog$hQ3f za^4UbOJ9ZYsZr)Fpvk6L4O!_{g$rcA2$5JJ3DK$2;t1T9Ey@rKBamQVnja*~A~eMV zE6&6%&1&vkBw5nLIu7o4y-$TN6}JETl*qH4`N1p0aBIv~K==0HBlFBQoVI68fO^28 zxGtx4UMzLT(aiD9RG{t3k40PiAo)D672*ha!a^NO!3YZ2d zN@(+iC~;Nj41}OO>j6_o3&_hs1K(iEnN4qUSKDUaIz`L(Oa?W+hnrU6d91HihwqNQ z^1ZJUC3n@gm{?Z6 zqDabWRbTF)26?o|!{ZBJaP>0Ks^c$D#^}doGN--f--czQd#gfO>=^vmmncZh{F%La z_5kIw)m;RBwEXZ!J4hl?@OXYn*Z$xjJ+K*0cwf1+ewiFiW<`_2vpjd2gbF;N0&GQ0 zB~Bp3>$@Aks+ZX``40+b~l=Z+Qb&eN_7i)Wm;q*k@KXqskn z@yceeY$G@l3!ly^o~ zxH-Sg)LX_+PLpa=MpwA{HyL}Owq^gghT9MbS0a`#iuSUXa_a(B^(^dNJk}MWosEME zmvEChrvEGXvg~o7ogX>066lk9G!YT~o4xZC0@|o%soCuI70;W%q+E=sN$cY z>_{3C1)NWaZ$kqCvc5NDhJ^uZqbqTPHUlp{un~`VbEaXdx)K&U{X{OXh-?GWw1gyES>-bKXv@Oa;JvXcM zqd2)PEb{8NE`;u=iy`y19*%yQ({D$-2Xr0^V!t?#+^#v~@@2cHikDyE8$N6yBft!> zdD-pMWXG}nzsH~gn$tL*jdM&^HmT~%fhu$`$wFfS_9G@u_V)H(WvfY8bchS-hXIir zxFgs^MjRnI_~?kC6@Z5o{jG^7rHCo|$l%7pHsFwtY0*}vkA}JLO2a*a@Ib?OExQ!L zMl|rUS27JmSGV-JthTK6p#`FE-+g*om|OC(iu~)J{FhT|-O2hfq@M<#Lp98-A~wk) z3aVx~UK8(_IKA(4U&;LMo=T{ zjeU?Y^nJn<8oggMTK+JIzfyCmZvXfWC_D@1LDgvfr1@XDB#93^xhEx5%{t+s>%d&v zdB7+`U$()Z(D^WhG{_n@9ytzNEYx@j6?p_@0SKp6fJcqU}QO}7%~ zh=%?fQTl1Brq7NK_=V$4fHB6YRRt2`jz$~$;>)uSS|bqSD^wZ?XcPJ}2>21MGropK zSw5tc@KUyMPUCcDf3m>);|PTgInE%g$|!M^D#+MN1zCZWi<%=9DdE|A@}SVc4WW2R zv>oky4}z8x0#@|f*aD@HNX0G}fi&ROoK+*ZPaeFSY&%7LjvMo_2dBO22qhX5D6XSy zgCUBuK2T(6_Mk1zkEU$o6D0quv9K=zIk*gpywS@WFHT-;zSJ!v-$xZOtj!y3bx57x ztC44f_HG5ynNZWB!Ldq6N?UWs*fHt8vdXczh|J_nwU;ed{sjXQ)99qi{gG|#`CyqGhut;$*wo{8ff2<<8J1=W6FnuC^zT9oGMe0dqzg6B)Hs>L z)<)@Vv1GG6?2Z%SG6pk-zs9g4^r81w8ww*uT3Y`ow~tG04*p7lv**q@A2n<4p>QYl zu4Sz_t^Zv936q4ZA`vVMp%hM%oigcak{0NeLXfr8Jx|KB?vR$!fTIQN2Y|c=3rf&* zz%G3<8Ypt@=$G!GYnuZL=Mv1yms1Y2@=2r)z2*+W&tZQRQ62{xnu20oJ`Gxw83d)7 zM0G6&VQ-jlDzqq>+wM(Ix854E;XtAM7GFpi^}lX9i?M!1X>8d3#bDtZlS%oapMpw03q= zr!f{_LvPzx&cK5g{#glSp{+qFyneCRAh@5@DWNI;i5sX6=AfJ8m`+!2Z&ocFq}b|~ z4-50gS|ZMc&5aN+J^cAC<+1jKEeBgiKn!cfpiaIM8&xX1Ai}x5THYj)`!}X@Q#Rx8 z+e&TgIgAb_W42`O_|LC@V2buHZD=$#MH7wdLKPjfvav{|OGudq9Gt~-Mv6f2?;5?B z#}hl+M5&9Pa$&3UlHyD?NPiXKDc|VHj*5uc(2$P9(ju_>C>i>6( z&<40u5(2a;R%@x)gpbRWxPSBt!87fAj76Eg;rq!KQOerlv`oYLNz<(8SH-voVv0aA z8rlMszooKajo%dSjyHyWD-hWo%ryiWe0da7cvUjdbYE#4;p)Y|7_I} zx4v{xa|c54C!%EDHF^bvW|=1s4dQ-9mzLAKmuRx-th zuAlMw$5`+5T(kfapPR_yY_^^wcyEj66#p6O)Xt<$Z2<)X0H5zRh}Fx}+->TYl3a`! zQUUB8&@?{fSYQJ7@p1xWLPCc+eCZT+Gw$9O;9#E3V!A+;^zgV z0XC`3UoY7{Efm%5B14XKN!R5I%4aqr3*3rb)Mso>6mcPP9|)J3&ZSgON(5rgK&4k zK#@L%G<5vWdFb&$Y${UV2!wJerL6N}r`>jPj%ZxI1+FmUv4(xaDbZqpNeR&O2q*rA zKwRj~f4{T%8Y$-#f0ka7Jov{nyk!6Cow3bp8q;R}4s){jJgc#u_~%NI{5_G*1yz44U;B-HT6#=+Pw-Y8g)I_=hXHWaITYQ)Ns$<=C+GAY+iNZPkna&jp{2X zNT%)LlEUksS_^4hC~6}y)H_2L_un3jJ4N-mLtBlH1loP6FBGt8o}Zs*->mGz#0jJ5fJ53f@gn`!v+w|feJjT6QFX-}&DleTefRe95Iy6+$h45<>acFXtdTC3%K z|5!cT9M?Y1z86T9A$f5cJ>wP#?-v*hm<4Q>*6lUi5Ei~aX| z@Cvmb=CUQPLZXXoOc%m=C*N`ghkF$6N3p|yZT$DP#6e-}?to}oSSn|Tr$z4>mytoQ2E9 zzPBN^5VphIW2;tzXMglHIofOT?=LP)I2Zyu`{8xYorQadp^K6uOId$&xGZ@%gD@wd zaV2I1L04{A1>RSgAE7g{SJ*!J#`b}^tnsmCioBR8HS8}|+eGln=BZtNvpErze=OVi z>&`?cYMF5erx|GwKhzjoipr&Kv#3FO6byrSzk=#jxWe z*Wg?zXeC0sURNtw6$7F10mS|OrEMGfQR(Mxw>QWid|th$doMC5uTQGMKFD4^|54{< z=&Qz|dXxlIY5?l8Ua3GjXW)9+ZmxYUQi2H-%7YZQUD+*MC+mvQvZBHNkEX9+inDE+ z-Nj{bCwOpocXtmSAV_dn++lGG9z1xE;O?%$-95Ow+u?b?I=^6RubO*$rhBF*iqOKx zHHkKui~6%5bX%{uPBlgtJP=Tko+Q7|E|{nfmqT4uqOTF$GqStpkJLrV6hYc(E3tu+ zFIcNmIq88tA`O$1%z8Qup#1lR!o`lNO@B>wxa_Op6akL$!}g`k%I07S-bVp{j~u8; zMAnnw{Ay8q=}Zu|sX!g&^tYF6pUw0Hn$;YdDamw%Am1e@sFb3 zL(!uqq8uz!xJ^=JQ>z`~B>RGfj*j)wg{rf$r!cwTj=jsj+a@76;)kXEb!03Vy|Cq%d2_QCK5!kg)l2A(6SqzhhX=7aa+I|xXOhrOYHAE9PVmPTt+T#Q{(2GgSk6xh52p@c}tw=<#r3qh-I42}`F{a<3m{j0Q9`>hsg$+Yw zeE67ZFmkv7+|5^>!O4Y{kNx4XWl{`Z|6uJ0+o0QBS!y|U%At5{{7s~ZvDyDW3qYY{ zA(w7)U>iRS^>}cjg^Tf54N4hdXc#8=OjmEmuAf3~#%y4K1LU4HBKJCCUo?#vEUxVC z&rPBN_caV9e<2zPp=}6cxJi7oW%pw+i4cqtCCs~%ZpeEL%g;H#u)?MbnD+}!BYU?@ z``Z8PqVjV z1jFT!%fi4;_lp46|K3s87_X^&9JKGh`3oHz!YxPWGBr8?676E(V3ZL7AF%8l>^UXc zYp1(7Cyed�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 ZOSa=KYwoMM(gNg1NnTB^T*fru{{c~e3Mv2q literal 0 HcmV?d00001 diff --git a/docs/source/screenshots/meshchat_1.webp b/docs/source/screenshots/meshchat_1.webp new file mode 100644 index 0000000000000000000000000000000000000000..87b0ddb2c330a86034760d79d65b6423438c4427 GIT binary patch literal 76660 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 V82JCkz`rIp7!Tk~hX71n{s%%hf$IPO literal 0 HcmV?d00001

    +

    Meshchat#

    +

    The Reticulum Meshchat application +is a user-friendly LXMF client for macOS and Windows, that also includes voice call +functionality, and a range of other interesting functions.

    +_images/meshchat_1.webp +

    Reticulum Meshchat is of course also compatible with Sideband and Nomad Network, or +any other LXMF client.

    +