From 957ab2cf83b104ca4cba93150e0ec37e92ad910b Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Tue, 19 Jul 2022 12:58:48 -0400 Subject: [PATCH] zrok overview --- .gitignore | 1 + README.md | 3 ++- docs/images/zrok.drawio | 1 + docs/images/zrok_overview.png | Bin 0 -> 17109 bytes 4 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 docs/images/zrok.drawio create mode 100644 docs/images/zrok_overview.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..cac82ea8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.$* diff --git a/README.md b/README.md index 0084f5c5..216a8e55 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# zgroxy +# zrok +![zrok overview](docs/images/zrok_overview.png) diff --git a/docs/images/zrok.drawio b/docs/images/zrok.drawio new file mode 100644 index 00000000..877659fe --- /dev/null +++ b/docs/images/zrok.drawio @@ -0,0 +1 @@ +7Zhbc6MgFMc/jY/tqHhJHnPptjPbncm209nLyw5RYpiiuIi59NMvRIyiuTWTpj7sk3CAA/z5cQQMMIpX9wym8280RMSwzXBlgLFh2wA4pvhIy7qwWMABhSViOFS2yvCM35AyqoZRjkOUaRU5pYTjVDcGNElQwDUbZIwu9WozSvReUxihluE5gKRt/YFDPldW3zSrggeEo3nZtVWWxLCsrQzZHIZ0WTOBOwOMGKW8SMWrESJSvlKYot2XPaXbkTGU8FMafH16tXP25/uEPD6Ef6cvTy80vFFeFpDkasa/McdqwHxdyiA8CcVFZihmkUpjQGguHA+Xc8zRcwoDaVwKCoRtzmMicpZItgdZ9ogYR6uaSQ36HtEYcbYWVVSp7/SKJoohF3hFfllbkFLkeW0tesoGFQPR1nWlkkgood4hmt0S7Y3RV8P2iOh5OGUiFclUQLCcdlNMRvMkRKFS6OMF7LsNAZ0TBfQ+SkDQEnDC8AJy1NZwkKYEB5BjmnSKSsvyQMewdE7EMmV0JWeSIbbAQqHP5tMFXePTbSk5CDhlLaVK7PKYFBXAUE5b8Eoe4RSRCc3whlwwnlLOaVyrMCA4kgWcNhSlOSc4QaPtH828jMyOdVxmcE2VvZbK7R2ehAP5F99sbZhlOJCbnUPG2+aahBXBUjshGVv/rGd+ycytW2bHq3rheH1Mc9F/hPjxnYhC7XDRXpma8u4O5UsbQ0QEwIV+JNm1HKqHCcXyt7Nd+Gb89z3dRUZzFiDVqn6CaDhyfd2R12s4KoRpOdrQsZ32+cD4Vwfm1vR1ZpwjzGxyE8SwmCtipXGF+U/Vk0zX8BO5ypPMHIWvWKzj8B2F1OoUpF6DLd86E1LfbkDqXRfSXsejWgmjedv3NB79gzzKTJPr8xk9NZDanWK03zio+OBMRvu9zw2k/f+B9ARI7RMhBZ2C1LJ6F4qklg0+N5Ra1zohzmjC1duTZWsx0q2TdjhAVqy7GurnnjIv9qPvVhD1LP3e7DRj36l4eo0LuNOMxnvoFFzAda1aKitk+wfs9ns7B7x325jWwQYiUQzhsntl1+HYg7G8XCbTTH6K1wATprhZ0t5VgpXNDVbfNVDdWQPBKqrfdsvLbIzDUPoYMpThNzjd+JOUK5GFc3douOMde669Dw7HhOa9d/sGrHo16q+su+7D5q1l9z1tpeyLEH4DXL0Jnc0y9M4IKbLV03BRvXpiB3f/AA== \ No newline at end of file diff --git a/docs/images/zrok_overview.png b/docs/images/zrok_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..a48e18a6bfa1f75415f9ddaa7efbb56535ee52ed GIT binary patch literal 17109 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 xqipbhY}exlfN@W(r}J