qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [qemu-web PATCH] Add a blog post about FUSE block exports
@ 2021-08-19 10:25 Hanna Reitz
  2021-08-19 10:37 ` Philippe Mathieu-Daudé
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Hanna Reitz @ 2021-08-19 10:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Hanna Reitz, Stefan Hajnoczi

This post explains when FUSE block exports are useful, how they work,
and that it is fun to export an image file on its own path so it looks
like your image file (in whatever format it was) is a raw image now.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
---
You can also find this patch here:
https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1

My first patch to qemu-web, so I hope I am not doing anything overly
stupid here (adding SVGs with extremely long lines comes to mind)...
---
 _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
 screenshots/2021-08-18-block-graph-a.svg  |   2 +
 screenshots/2021-08-18-block-graph-b.svg  |   2 +
 screenshots/2021-08-18-block-graph-c.svg  |   2 +
 screenshots/2021-08-18-block-graph-d.svg  |   2 +
 screenshots/2021-08-18-block-graph-e.svg  |   2 +
 screenshots/2021-08-18-root-directory.svg |   2 +
 screenshots/2021-08-18-root-file.svg      |   2 +
 8 files changed, 502 insertions(+)
 create mode 100644 _posts/2021-08-18-fuse-blkexport.md
 create mode 100644 screenshots/2021-08-18-block-graph-a.svg
 create mode 100644 screenshots/2021-08-18-block-graph-b.svg
 create mode 100644 screenshots/2021-08-18-block-graph-c.svg
 create mode 100644 screenshots/2021-08-18-block-graph-d.svg
 create mode 100644 screenshots/2021-08-18-block-graph-e.svg
 create mode 100644 screenshots/2021-08-18-root-directory.svg
 create mode 100644 screenshots/2021-08-18-root-file.svg

diff --git a/_posts/2021-08-18-fuse-blkexport.md b/_posts/2021-08-18-fuse-blkexport.md
new file mode 100644
index 0000000..e6a55d0
--- /dev/null
+++ b/_posts/2021-08-18-fuse-blkexport.md
@@ -0,0 +1,488 @@
+---
+layout: post
+title:  "Exporting block devices as raw image files with FUSE"
+date:   2021-08-18 18:00:00 +0200
+author: Hanna Reitz
+categories: [storage, features, tutorials]
+---
+Sometimes, there is a VM disk image whose contents you want to manipulate
+without booting the VM.  For raw images, that process is usually fairly simple,
+because most Linux systems bring tools for the job, e.g.:
+* *dd* to just copy data to and from given offsets,
+* *parted* to manipulate the partition table,
+* *kpartx* to present all partitions as block devices,
+* *mount* to access filesystems’ contents.
+
+Sadly, but naturally, such tools only work for raw images, and not for images
+e.g. in QEMU’s qcow2 format.  To access such an image’s content, the format has
+to be translated to create a raw image, for example by:
+* Exporting the image file with `qemu-nbd -c` as an NBD block device file,
+* Converting between image formats using `qemu-img convert`,
+* Accessing the image from a guest, where it appears as a normal block device.
+
+Unfortunately, none of these methods is perfect: `qemu-nbd -c` generally
+requires root rights, converting to a temporary raw copy requires additional
+disk space and the conversion process takes time, and accessing the image from a
+guest is just quite cumbersome in general (and also specifically something that
+we set out to avoid in the first sentence of this blog post).
+
+As of QEMU 6.0, there is another method, namely FUSE block exports.
+Conceptually, these are rather similar to using `qemu-nbd -c`, but they do not
+require root rights.
+
+**Note**: FUSE block exports are a feature that can be enabled or disabled
+during the build process with `--enable-fuse` or `--disable-fuse`, respectively;
+omitting either configure option will enable the feature if and only if libfuse3
+is present.  It is possible that the QEMU build you are using does not have FUSE
+block export support, because it was not compiled in.
+
+FUSE (*Filesystem in Userspace*) is a technology to let userspace processes
+provide filesystem drivers.  For example, *sshfs* is a program that allows
+mounting remote directories from a machine accessible via SSH.
+
+QEMU can use FUSE to make a virtual block device appear as a normal file on the
+host, so that tools like *kpartx* can interact with it regardless of the image
+format.
+
+## Background information
+
+### File mounts
+
+A perhaps little-known fact is that, on Linux, filesystems do not need to have
+a root directory, they only need to have a root node.  A filesystem that only
+provides a single regular file is perfectly valid.
+
+Conceptually, every filesystem is a tree, and mounting works by replacing one
+subtree of the global VFS tree by the mounted filesystem’s tree.  Normally, a
+filesystem’s root node is a directory, like in the following example:
+
+|![Regular filesystem: Root directory is mounted to a directory mount point](/screenshots/2021-08-18-root-directory.svg)|
+|:--:|
+|*Fig. 1: Mounting a regular filesystem with a directory as its root node*|
+
+Here, the directory `/foo` and its content (the files `/foo/a` and `/foo/b`) are
+shadowed by the new filesystem (showing `/foo/x` and `/foo/y`).
+
+Note that a filesystem’s root node generally has no name.  After mounting, the
+filesystem’s root directory’s name is determined by the original name of the
+mount point.
+
+Because a tree does not need to have multiple nodes but may consist of just a
+single leaf, a filesystem with a file for its root node works just as well,
+though:
+
+|![Mounting a file root node to a regular file mount point](/screenshots/2021-08-18-root-file.svg)|
+|:--:|
+|*Fig. 2: Mounting a filesystem with a regular (unnamed) file as its root node*|
+
+Here, FS B only consists of a single node, a regular file with no name.  (As
+above, a filesystem’s root node is generally unnamed.) Consequently, the mount
+point for it must also be a regular file (`/foo/a` in our example), and just
+like before, the content of `/foo/a` is shadowed, and when opening it, one will
+instead see the contents of FS B’s unnamed root node.
+
+### QEMU block exports
+
+QEMU allows exporting block nodes via various protocols (as of 6.0: NBD,
+vhost-user, FUSE).  A block node is an element of QEMU’s block graph (see e.g.
+[Managing the New Block Layer](http://events17.linuxfoundation.org/sites/events/files/slides/talk\_11.pdf),
+a talk given at KVM Forum 2017), which can for example be attached to guest
+devices.  Here is a very simple example:
+
+|![Block graph: image file <-> file node (label: prot-node) <-> qcow2 node (label: fmt-node) <-> virtio-blk guest device](/screenshots/2021-08-18-block-graph-a.svg)|
+|:--:|
+|*Fig. 3: A simple block graph for attaching a qcow2 image to a virtio-blk guest device*|
+
+This is the simplest example for a block graph that connects a *virtio-blk*
+guest device to a qcow2 image file.  The *file* block driver, instanced in the
+form of a block node named *prot-node*, accesses the actual file and provides
+the node above it access to the raw content.  This node above, named *fmt-node*,
+is handled by the *qcow2* block driver, which is capable of interpreting the
+qcow2 format.  Parents of this node will therefore see the actual content of the
+virtual disk that is represented by the qcow2 image.  There is only one parent
+here, which is the *virtio-blk* guest device, which will thus see the virtual
+disk.
+
+The command line to achieve the above could look something like this:
+```
+$ qemu-system-x86_64 \
+    -blockdev node-name=prot-node,driver=file,filename=$image_path \
+    -blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
+    -device virtio-blk,drive=fmt-node
+```
+
+Besides attaching guest devices to block nodes, you can also export them for
+users outside of qemu, for example via NBD.  Say you have a QMP channel open for
+the QEMU instance above, then you could do this:
+```json
+{
+    "execute": "nbd-server-start",
+    "arguments": {
+        "addr": {
+            "type": "inet",
+            "data": {
+                "host": "localhost",
+                "port": "10809"
+            }
+        }
+    }
+}
+{
+    "execute": "block-export-add",
+    "arguments": {
+        "type": "nbd",
+        "id": "fmt-node-export",
+        "node-name": "fmt-node",
+        "name": "guest-disk"
+    }
+}
+```
+
+This opens an NBD server on `localhost:10809`, which exports *fmt-node* (under
+the NBD export name *guest-disk*).  The block graph looks as follows:
+
+|![Same block graph as fig. 3, but with an NBD server attached to fmt-node](/screenshots/2021-08-18-block-graph-b.svg)|
+|:--:|
+|*Fig. 4: Block graph extended by an NBD server*|
+
+NBD clients connecting to this server will see the raw disk as seen by the
+guest – we have *exported* the guest disk:
+
+```
+$ qemu-img info nbd://localhost/guest-disk
+image: nbd://localhost:10809/guest-disk
+file format: raw
+virtual size: 20 GiB (21474836480 bytes)
+disk size: unavailable
+```
+
+### QEMU storage daemon
+
+If you are not running a guest, and so do not need guest devices, but all you
+want is to use the QEMU block layer (for example to interpret the qcow2 format)
+and export nodes from the block graph, then you can use the more lightweight
+QEMU storage daemon instead of a full-blown QEMU process:
+
+```
+$ qemu-storage-daemon \
+    --blockdev node-name=prot-node,driver=file,filename=$image_path \
+    --blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
+    --nbd-server addr.type=inet,addr.host=localhost,addr.port=10809 \
+    --export type=nbd,id=fmt-node-export,node-name=fmt-node,name=guest-disk
+```
+
+Which creates the following block graph:
+
+|![Block graph: image file <-> file node (label: prot-node) <-> qcow2 node (label: fmt-node) <-> NBD server](/screenshots/2021-08-18-block-graph-c.svg)|
+|:--:|
+|*Fig. 5: Exporting a qcow2 image over NBD*|
+
+## FUSE block exports
+
+Besides NBD exports, QEMU also supports vhost-user and FUSE exports.  FUSE block
+exports make QEMU become a FUSE driver that provides a filesystem that consists
+of only a single node, namely a regular file that has the raw contents of the
+exported block node.  QEMU will automatically mount this filesystem on a given
+existing regular file (which acts as the mount point, as described in the
+“File mounts” section).
+
+Thus, FUSE exports can be used like this:
+
+```
+$ touch mount-point
+
+$ qemu-storage-daemon \
+    --blockdev node-name=prot-node,driver=file,filename=$image_path \
+    --blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
+    --export type=fuse,id=fmt-node-export,node-name=fmt-node,mountpoint=mount-point
+```
+
+The mount point now appears as the raw VM disk that is stored in the qcow2
+image:
+```
+$ qemu-img info mount-point
+image: mount-point
+file format: raw
+virtual size: 20 GiB (21474836480 bytes)
+disk size: 196 KiB
+```
+
+And *mount* tells us that this is indeed its own filesystem:
+```
+$ mount | grep mount-point
+/dev/fuse on /tmp/mount-point type fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=100,default_permissions,allow_other,max_read=67108864)
+```
+
+The block graph looks like this:
+
+|![Block graph: image file <-> file node (label: prot-node) <-> qcow2 node (label: fmt-node) <-> FUSE server <-> exported file](/screenshots/2021-08-18-block-graph-d.svg)|
+|:--:|
+|*Fig. 6: Exporting a qcow2 image over FUSE*|
+
+Closing the storage daemon (e.g. with Ctrl-C) automatically unmounts the export,
+turning the mount point back into an empty normal file:
+
+```
+$ mount | grep -c mount-point
+0
+
+$ qemu-img info mount-point
+image: mount-point
+file format: raw
+virtual size: 0 B (0 bytes)
+disk size: 0 B
+```
+
+## Mounting an image on itself
+
+So far, we have seen what FUSE exports are, how they work, and how they can be
+used.  Now let’s add an interesting twist.
+
+### What happens to the old tree under a mount point?
+
+Mounting a filesystem only shadows the mount point’s original content, it does
+not remove it.  The original content can no longer be looked up via its
+(absolute) path, but it is still there, much like a file that has been unlinked
+but is still open in some process.  Here is an example:
+
+First, create some file in some directory, and have some process keep it open:
+
+```
+$ mkdir foo
+
+$ echo 'Is anyone there?' > foo/bar
+
+$ irb
+irb(main):001:0> f = File.open('foo/bar', 'r+')
+=> #<File:foo/bar>
+irb(main):002:0> ^Z
+[1]  + 35494 suspended  irb
+```
+
+Next, mount something on the directory:
+
+```
+$ sudo mount -t tmpfs tmpfs foo
+```
+
+The file cannot be found anymore (because *foo*’s content is shadowed by the
+mounted filesystem), but the process who kept it open can still read from it,
+and write to it:
+```
+$ ls foo
+
+$ cat foo/bar
+cat: foo/bar: No such file or directory
+
+$ fg
+f.read
+irb(main):002:0> f.read
+=> "Is anyone there?\n"
+irb(main):003:0> f.puts('Hello from the shadows!')
+=> nil
+irb(main):004:0> exit
+
+$ ls foo
+
+$ cat foo/bar
+cat: foo/bar: No such file or directory
+```
+
+Unmounting the filesystem lets us see our file again, with its updated content:
+```
+$ sudo umount foo
+
+$ ls foo
+bar
+
+$ cat foo/bar
+Is anyone there?
+Hello from the shadows!
+```
+
+### Letting a FUSE export shadow its image file
+
+The same principle applies to file mounts: The original inode is shadowed (along
+with its content), but it is still there for any process that opened it before
+the mount occurred.  Because QEMU (or the storage daemon) opens the image file
+before mounting the FUSE export, you can therefore specify an image’s path as
+the mount point for its corresponding export:
+
+```
+$ qemu-img create -f qcow2 foo.qcow2 20G
+Formatting 'foo.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
+
+$ qemu-img info foo.qcow2
+image: foo.qcow2
+file format: qcow2
+virtual size: 20 GiB (21474836480 bytes)
+disk size: 196 KiB
+cluster_size: 65536
+Format specific information:
+    compat: 1.1
+    compression type: zlib
+    lazy refcounts: false
+    refcount bits: 16
+    corrupt: false
+    extended l2: false
+
+$ qemu-storage-daemon \
+    --blockdev node-name=node0,driver=qcow2,file.driver=file,file.filename=foo.qcow2 \
+    --export type=fuse,id=node0-export,node-name=node0,mountpoint=foo.qcow2 &
+[1] 40843
+
+$ qemu-img info foo.qcow2
+image: foo.qcow2
+file format: raw
+virtual size: 20 GiB (21474836480 bytes)
+disk size: 196 KiB
+
+$ kill %1
+[1]  + 40843 done       qemu-storage-daemon --blockdev  --export
+```
+
+In graph form, that looks like this:
+
+|![Two graphs: First, foo.qcow2 is opened by QEMU; second, a FUSE server exports the raw disk under foo.qcow2, thus shadowing the original foo.qcow2](/screenshots/2021-08-18-block-graph-e.svg)|
+|:--:|
+|*Fig. 6: Exporting a qcow2 image via FUSE on its own path*|
+
+QEMU (or the storage daemon in this case) keeps the original (qcow2) file open,
+and so it keeps access to it, even after the mount.  However, any other process
+that opens the image by name (i.e. `open("foo.qcow2")`) will open the raw disk
+image exported by QEMU.  Therefore, it looks like the qcow2 image is in raw
+format now.
+
+### `qemu-fuse-disk-export.py`
+
+Because the QEMU storage daemon command line tends to become kind of long, I’ve
+written a script to facilitate the process:
+[qemu-fuse-disk-export.py](https://gitlab.com/hreitz/qemu-scripts/-/blob/main/qemu-fuse-disk-export.py)
+([direct download link](https://gitlab.com/hreitz/qemu-scripts/-/raw/main/qemu-fuse-disk-export.py?inline=false)).
+This script automatically detects the image format, and its `--daemonize` option
+allows safe use in scripts, where it is important that the process blocks until
+the export is fully set up.
+
+Using `qemu-fuse-disk-export.py`, the above example looks like this:
+```
+$ qemu-img info foo.qcow2 | grep 'file format'
+file format: qcow2
+
+$ qemu-fuse-disk-export.py foo.qcow2 &
+[1] 13339
+All exports set up, ^C to revert
+
+$ qemu-img info foo.qcow2 | grep 'file format'
+file format: raw
+
+$ kill -SIGINT %1
+[1]  + 13339 done       qemu-fuse-disk-export.py foo.qcow2
+
+$ qemu-img info foo.qcow2 | grep 'file format'
+file format: qcow2
+```
+
+Or, with `--daemonize`/`-d`:
+```
+$ qemu-img info foo.qcow2 | grep 'file format'
+file format: qcow2
+
+$ qemu-fuse-disk-export.py -dp qfde.pid foo.qcow2
+
+$ qemu-img info foo.qcow2 | grep 'file format'
+file format: raw
+
+$ kill -SIGINT $(cat qfde.pid)
+
+$ qemu-img info foo.qcow2 | grep 'file format'
+file format: qcow2
+```
+
+## Bringing it all together
+
+Now we know how to make disk images in any format understood by QEMU appear as
+raw images.  We can thus run any application on them that works with such raw
+disk images:
+
+```
+$ qemu-fuse-disk-export.py \
+    -dp qfde.pid \
+    Arch-Linux-x86_64-basic-20210711.28787.qcow2
+
+$ parted Arch-Linux-x86_64-basic-20210711.28787.qcow2 p
+WARNING: You are not superuser.  Watch out for permissions.
+Model:  (file)
+Disk /tmp/Arch-Linux-x86_64-basic-20210711.28787.qcow2: 42.9GB
+Sector size (logical/physical): 512B/512B
+Partition Table: gpt
+Disk Flags:
+
+Number  Start   End     Size    File system  Name  Flags
+ 1      1049kB  2097kB  1049kB                     bios_grub
+ 2      2097kB  42.9GB  42.9GB  btrfs
+
+$ sudo kpartx -av Arch-Linux-x86_64-basic-20210711.28787.qcow2
+add map loop0p1 (254:0): 0 2048 linear 7:0 2048
+add map loop0p2 (254:1): 0 83881951 linear 7:0 4096
+
+$ sudo mount /dev/mapper/loop0p2 /mnt/tmp
+
+$ ls /mnt/tmp
+bin   boot  dev  etc  home  lib  lib64  mnt  opt  proc  root  run  sbin  srv
+swap  sys   tmp  usr  var
+
+$ echo 'Hello, qcow2 image!' > /mnt/tmp/home/arch/hello
+
+$ sudo umount /mnt/tmp
+
+$ sudo kpartx -d Arch-Linux-x86_64-basic-20210711.28787.qcow2
+loop deleted : /dev/loop0
+
+$ kill -SIGINT $(cat qfde.pid)
+```
+
+And launching the image, in the guest we see:
+```
+[arch@archlinux ~] cat hello
+Hello, qcow2 image!
+```
+
+## A note on `allow_other`
+
+In the example presented in the above section, we access the exported image with
+a different user than the one who exported it (to be specific, we export it as a
+normal user, and then access it as root).  This does not work prior to QEMU 6.1:
+
+```
+$ qemu-fuse-disk-export.py -dp qfde.pid foo.qcow2
+
+$ sudo stat foo.qcow2
+stat: cannot statx 'foo.qcow2': Permission denied
+```
+
+QEMU 6.1 has introduced support for FUSE’s `allow_other` mount option.  Without
+that option, only the user who exported the image has access to it.  By default,
+if the system allows for non-root users to add `allow_other` to FUSE mount
+options, QEMU will add it, and otherwise omit it.  It does so by simply
+attempting to mount the export with `allow_other` first, and if that fails, it
+will try again without.  (You can also force the behavior with the
+`allow_other=(on|off|auto)` export parameter.)
+
+Non-root users can pass `allow_other` if and only if `/etc/fuse.conf` contains
+the `user_allow_other` option.
+
+## Conclusion
+
+As shown in this blog post, FUSE block exports are a relatively simple way to
+access images in any format understood by QEMU as if they were raw images.
+Any tool that can manipulate raw disk images can thus manipulate images in any
+format, simply by having the QEMU storage daemon provide a translation layer.
+By mounting the FUSE export on the original image path, this translation layer
+will effectively be invisible, and the original image will look like it is in
+raw format, so it can directly be accessed by those tools.
+
+The current main disadvantage of FUSE exports is that they offer relatively bad
+performance.  That should be fine as long as your use case is just light
+manipulation of some VM images, like manually modifying some files on them.
+However, we did not yet really try to optimize performance, so if more serious
+use cases appear that would require better performance, we can try.
diff --git a/screenshots/2021-08-18-block-graph-a.svg b/screenshots/2021-08-18-block-graph-a.svg
new file mode 100644
index 0000000..bea1ba3
--- /dev/null
+++ b/screenshots/2021-08-18-block-graph-a.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="93.084mm" height="112.19mm" version="1.1" viewBox="0 0 93.084 112.19" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><g id="text31368" fill="#802400" stroke-width=".26458px" aria-label="QEMU process"><path id="path7252" d="m72.021 7.6476q-0.75792 0-1.2058 0.565-0.44442 0.565-0.44442 1.54 0 0.97152 0.44442 1.5365 0.44786 0.565 1.2058 0.565 0.75792 0 1.1989-0.565 0.44442-0.565 0.44442-1.5365 0-0.97496-0.44442-1.54-0.44097-0.565-1.1989-0.565zm0.97496 4.5785 0.9164 1.0025h-0.8406l-0.76137-0.82338q-0.11369 0.0069-0.1757 0.01034-0.05857 0.0034-0.11369 0.0034-1.0852 0-1.7363-0.72347-0.64768-0.72692-0.64768-1.943 0-1.2196 0.64768-1.943 0.65112-0.72692 1.7363-0.72692 1.0818 0 1.7294 0.72692 0.64768 0.72347 0.64768 1.943 0 0.89573-0.36174 1.5331-0.35829 0.63734-1.0404 0.94051z"/><path id="path7254" d="m75.487 7.1756h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path id="path7256" d="m79.945 7.1756h1.037l1.3126 3.5002 1.3195-3.5002h1.037v5.1435h-0.67868v-4.5165l-1.3264 3.5278h-0.69936l-1.3264-3.5278v4.5165h-0.67524z"/><path id="path7258" d="m85.953 7.1756h0.69936v3.1247q0 0.82682 0.29972 1.192 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609 0.51332-1.4676 0.51332-0.97496 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path7260" d="m67.594 18.916v2.0464h-0.63734v-5.3261h0.63734v0.58567q0.19982-0.34451 0.50298-0.50988 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811 0.44097 0.55811 0.44097 1.4676t-0.44097 1.4676q-0.43753 0.5581-1.1403 0.5581-0.42375 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332zm2.1566-1.347q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963t-0.79237 0.39963q-0.28594 0.39619-0.28594 1.0955t0.28594 1.099q0.28939 0.39619 0.79237 0.39619t0.78893-0.39619q0.28939-0.39963 0.28939-1.099z"/><path id="path7262" d="m73.695 16.229q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/><path id="path7264" d="m75.701 16.081q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path7266" d="m81.299 15.785v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path7268" d="m85.702 17.408v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35485 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path7270" d="m89.202 15.75v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.7338 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33418-0.05857-0.70625-0.17914v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54433 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168t0.57189 0.15503z"/><path id="path7272" d="m92.878 15.75v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.7338 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54433 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168t0.57189 0.15503z"/></g><rect id="rect991" x="15.436" y="33.475" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313" stroke-width=".26458px" aria-label="qcow2"><path id="path7275" d="m22.055 38.496q0 0.69935 0.28594 1.099 0.28939 0.39619 0.79237 0.39619t0.79237-0.39619q0.28939-0.39963 0.28939-1.099 0-0.69936-0.28939-1.0955-0.28939-0.39963-0.79237-0.39963t-0.79237 0.39963q-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676 0-0.90951 0.43753-1.4676 0.44097-0.55811 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50987v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path7277" d="m28.932 36.711v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path7279" d="m31.529 37.008q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0886q0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path7281" d="m33.982 36.563h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path7283" d="m40.81 39.836h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494t0.66835-0.08613q0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="15.436" y="62.186" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383" stroke-width=".26458px" aria-label="file"><path id="path7303" d="m30.837 65.488v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30317 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path id="path7305" d="m32.163 63.986h0.6339v5.3606h-0.6339z"/><path id="path7307" d="m37.424 67.259v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.5581 1.3815-0.5581 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369" transform="translate(78.903 34.429)" fill="none" stroke="#000" stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><g id="g25195" transform="translate(84.24 30.251)"><rect id="rect22371" x="-75.456" y="-25.487" width="47.071" height="13.398" fill="none" stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080" stroke-width=".26458px" aria-label="virtio-blk"><path id="path7231" d="m-67.446-20.016h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469 3.8585h-0.86127z"/><path id="path7233" d="m-62.815-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path7235" d="m-58.619-19.424q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02411z"/><path id="path7237" d="m-57.327-21.112v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.73381 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path7239" d="m-55.188-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path7241" d="m-51.733-19.572q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path7243" d="m-49.1-18.373h1.8569v0.565h-1.8569z"/><path id="path7245" d="m-43.464-18.084q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955t0.28594 1.099q0.28939 0.39619 0.79237 0.39619t0.78893-0.39619q0.28939-0.39963 0.28939-1.099zm-2.1566-1.347q0.19982-0.34451 0.50298-0.50988 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811 0.44097 0.55811 0.44097 1.4676t-0.44097 1.4676q-0.43753 0.55811-1.1403 0.55811-0.42375 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332v0.57878h-0.63734v-5.3606h0.63734z"/><path id="path7247" d="m-41.756-21.518h0.6339v5.3606h-0.6339z"/><path id="path7249" d="m-39.819-21.518h0.63734v3.166l1.8914-1.664h0.8096l-2.0464 1.8052 2.1325 2.0533h-0.82682l-1.9603-1.8845v1.8845h-0.63734z"/></g></g><rect id="rect23797" x=".26458" y=".26458" width="64.111" height="83.942" rx="5.2917" ry="5.4057" fill="none" stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666" stroke-linecap="round" stroke-width=".52917"/><path id="path24007" d="m32.315 80.657v10.837" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25180" d="m32.315 52.012v9.2246" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25334" d="m32.315 19.127v13.399" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><rect id="rect35415" x="17.503" y="71.251" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text35918" stroke-width=".26458px" aria-label="prot-node"><path id="path7310" d="m21.06 76.592v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823 0.39067-0.29662 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path id="path7312" d="m25.331 74.711q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762 0-0.57878 0.24598-0.20016 0.24357-0.20016 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072 0.05547 0.0048 0.12299 0.01688z"/><path id="path7314" d="m26.735 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762t0.33038 1.0418q0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path7316" d="m29.149 73.53v0.76688h0.91398v0.34486h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34486h0.32556v-0.76688z"/><path id="path7318" d="m30.422 75.447h1.2998v0.3955h-1.2998z"/><path id="path7320" d="m34.674 75.367v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291t-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path7322" d="m36.605 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.20739-0.27974 0.20739-0.76206 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762t0.33038 1.0418q0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path7324" d="m40.358 74.707v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path7326" d="m44.026 75.536v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10128-0.48955 0.15434-0.2508 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect id="rect38770" x="17.503" y="42.585" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text38774" stroke-width=".26458px" aria-label="fmt-node"><path id="path7286" d="m22.93 44.774v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164 0.34726v0.23875h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096 0.20981-0.65595 0.20981-0.2074 0.66559-0.2074z"/><path id="path7288" d="m25.405 46.343q0.1664-0.29904 0.39791-0.44132t0.54501-0.14228q0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291 0.83922v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636t-0.41961-0.1881q-0.34485 0-0.54501 0.2291t-0.20016 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003 0-0.54019 0.23151-0.20016 0.2291-0.20016 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839 0.36415-0.36656t0.50402-0.11817q0.29421 0 0.49919 0.14952 0.2074 0.14952 0.30627 0.43408z"/><path id="path7290" d="m28.552 45.058v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path7292" d="m29.825 46.975h1.2998v0.3955h-1.2998z"/><path id="path7294" d="m34.077 46.896v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291t-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path7296" d="m36.008 46.136q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762t0.33038 1.0418q0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path7298" d="m39.761 46.235v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path7300" d="m43.429 47.065v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><g id="text877" stroke-width=".26458px" aria-label="qcow2 image file"><path id="path7204" d="m52.492 98.541q0 0.69936 0.28594 1.099 0.28939 0.39618 0.79237 0.39618t0.79237-0.39618q0.28939-0.39963 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963t-0.79237 0.39963q-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16537-0.73036 0.16537-0.69936 0-1.1403-0.55811-0.43753-0.5581-0.43753-1.4676t0.43753-1.4676q0.44097-0.55811 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50987v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path7206" d="m59.368 96.757v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18603-0.2825 0.062-0.60289 0.062-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.478 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path7208" d="m61.966 97.053q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39618 0.8096 0.39618 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path7210" d="m64.419 96.609h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path7212" d="m71.247 99.882h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494t0.66835-0.08613q0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/><path id="path7214" d="m46.098 103.78h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.8027h-0.6339z"/><path id="path7216" d="m51.062 104.53q0.23771-0.42719 0.56844-0.63045t0.77859-0.20326q0.60289 0 0.93018 0.42375 0.32728 0.4203 0.32728 1.1989v2.3289h-0.63734v-2.3082q0-0.55466-0.19637-0.82338-0.19637-0.26871-0.59945-0.26871-0.49265 0-0.77859 0.32728t-0.28594 0.89228v2.1808h-0.63734v-2.3082q0-0.5581-0.19637-0.82338-0.19637-0.26871-0.60634-0.26871-0.48576 0-0.7717 0.33073-0.28594 0.32728-0.28594 0.88883v2.1808h-0.63734v-3.8585h0.63734v0.59944q0.21704-0.35484 0.52021-0.52365t0.72003-0.16881q0.4203 0 0.71314 0.2136 0.29628 0.21359 0.43753 0.62011z"/><path id="path7218" d="m56.684 105.7q-0.76826 0-1.0645 0.1757t-0.29628 0.59944q0 0.33762 0.22049 0.53744 0.22393 0.19637 0.60634 0.19637 0.5271 0 0.84405-0.37207 0.32039-0.37552 0.32039-0.99563v-0.14125zm1.2644-0.26183v2.2014h-0.6339v-0.58567q-0.21704 0.3514-0.54088 0.52021-0.32384 0.16537-0.79237 0.16537-0.59256 0-0.94396-0.33073-0.34795-0.33418-0.34795-0.89228 0-0.65113 0.43408-0.98186 0.43753-0.33073 1.3022-0.33073h0.88884v-0.062q0-0.43753-0.28939-0.67524-0.28594-0.24115-0.80615-0.24115-0.33073 0-0.64423 0.0792t-0.60289 0.23771v-0.58566q0.34795-0.13436 0.67524-0.19982 0.32728-0.0689 0.63734-0.0689 0.83716 0 1.2506 0.43408 0.41341 0.43408 0.41341 1.316z"/><path id="path7220" d="m61.793 105.67q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50988 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68557 0.2825 1.0645 0.28594 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753 0.48231-1.3401 0.48231-0.33418 0-0.63045-0.0517-0.29628-0.0482-0.57533-0.15158v-0.61667q0.27905 0.15158 0.55122 0.22393 0.27216 0.0723 0.55466 0.0723 0.62356 0 0.93362-0.32728 0.31006-0.32384 0.31006-0.98185v-0.31351q-0.19637 0.34107-0.50298 0.50988t-0.73381 0.16881q-0.70969 0-1.1438-0.54088t-0.43408-1.4332q0-0.89573 0.43408-1.4366t1.1438-0.54088q0.42719 0 0.73381 0.16881t0.50298 0.50987v-0.58566h0.6339z"/><path id="path7222" d="m67.033 105.56v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.0896 0.34451-0.0896 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22048-0.35829 0.0758-0.72692 0.0758-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31005-0.75103-0.31005-0.53055 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path7224" d="m73.434 103.78v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30316 0.9164-0.30316h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34107zm-0.63734-1.4952h0.63734v0.8027h-0.63734z"/><path id="path7226" d="m74.761 102.28h0.6339v5.3606h-0.6339z"/><path id="path7228" d="m80.021 105.56v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.0896 0.34451-0.0896 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22048-0.35829 0.0758-0.72692 0.0758-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31005-0.75103-0.31005-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g></svg>
diff --git a/screenshots/2021-08-18-block-graph-b.svg b/screenshots/2021-08-18-block-graph-b.svg
new file mode 100644
index 0000000..5bf98af
--- /dev/null
+++ b/screenshots/2021-08-18-block-graph-b.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="93.084mm" height="112.19mm" version="1.1" viewBox="0 0 93.084 112.19" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><rect id="rect991" x="15.436" y="33.475" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313" stroke-width=".26458px" aria-label="qcow2"><path id="path96" d="m22.055 38.496q0 0.69935 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50298 0 0.79237-0.39619 0.28939-0.39963 0.28939-1.099 0-0.69936-0.28939-1.0955-0.28939-0.39963-0.79237-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676 0-0.90951 0.43753-1.4676 0.44097-0.55811 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50987v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path98" d="m28.932 36.711v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path100" d="m31.529 37.008q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0886 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path102" d="m33.982 36.563h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path104" d="m40.81 39.836h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="15.436" y="62.186" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383" stroke-width=".26458px" aria-label="file"><path id="path124" d="m30.837 65.488v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30317 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path id="path126" d="m32.163 63.986h0.6339v5.3606h-0.6339z"/><path id="path128" d="m37.424 67.259v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.5581 1.3815-0.5581 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369" transform="translate(78.903 34.429)" fill="none" stroke="#000" stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><g id="g25195" transform="translate(84.24 30.251)"><rect id="rect22371" x="-75.456" y="-25.487" width="47.071" height="13.398" fill="none" stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080" stroke-width=".26458px" aria-label="virtio-blk"><path id="path75" d="m-67.446-20.016h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469 3.8585h-0.86127z"/><path id="path77" d="m-62.815-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path79" d="m-58.619-19.424q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02411z"/><path id="path81" d="m-57.327-21.112v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.73381 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path83" d="m-55.188-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path85" d="m-51.733-19.572q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path87" d="m-49.1-18.373h1.8569v0.565h-1.8569z"/><path id="path89" d="m-43.464-18.084q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955t0.28594 1.099q0.28939 0.39619 0.79237 0.39619 0.50298 0 0.78893-0.39619 0.28939-0.39963 0.28939-1.099zm-2.1566-1.347q0.19982-0.34451 0.50298-0.50988 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811 0.44097 0.55811 0.44097 1.4676t-0.44097 1.4676q-0.43753 0.55811-1.1403 0.55811-0.42375 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332v0.57878h-0.63734v-5.3606h0.63734z"/><path id="path91" d="m-41.756-21.518h0.6339v5.3606h-0.6339z"/><path id="path93" d="m-39.819-21.518h0.63734v3.166l1.8914-1.664h0.8096l-2.0464 1.8052 2.1325 2.0533h-0.82682l-1.9603-1.8845v1.8845h-0.63734z"/></g></g><rect id="rect23797" x=".26458" y=".26458" width="76.401" height="83.942" rx="6.3061" ry="5.4057" fill="none" stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666" stroke-linecap="round" stroke-width=".52917"/><path id="path24007" d="m32.315 80.657v10.837" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25180" d="m32.315 52.012v9.2246" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25334" d="m32.315 19.127v13.399" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><rect id="rect35415" x="17.503" y="71.251" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text35918" stroke-width=".26458px" aria-label="prot-node"><path id="path131" d="m21.06 76.592v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823 0.39067-0.29662 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path id="path133" d="m25.331 74.711q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762 0-0.57878 0.24598-0.20016 0.24357-0.20016 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072 0.05547 0.0048 0.12299 0.01688z"/><path id="path135" d="m26.735 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path137" d="m29.149 73.53v0.76688h0.91398v0.34486h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34486h0.32556v-0.76688z"/><path id="path139" d="m30.422 75.447h1.2998v0.3955h-1.2998z"/><path id="path141" d="m34.674 75.367v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291t-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path143" d="m36.605 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.20739-0.27974 0.20739-0.76206 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path145" d="m40.358 74.707v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path147" d="m44.026 75.536v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10128-0.48955 0.15434-0.2508 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect id="rect38770" x="17.503" y="42.585" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text38774" stroke-width=".26458px" aria-label="fmt-node"><path id="path107" d="m22.93 44.774v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164 0.34726v0.23875h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096 0.20981-0.65595 0.20981-0.2074 0.66559-0.2074z"/><path id="path109" d="m25.405 46.343q0.1664-0.29904 0.39791-0.44132 0.23151-0.14228 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291 0.83922v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34485 0-0.54501 0.2291t-0.20016 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003 0-0.54019 0.23151-0.20016 0.2291-0.20016 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839 0.36415-0.36656t0.50402-0.11817q0.29421 0 0.49919 0.14952 0.2074 0.14952 0.30627 0.43408z"/><path id="path111" d="m28.552 45.058v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path113" d="m29.825 46.975h1.2998v0.3955h-1.2998z"/><path id="path115" d="m34.077 46.896v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14952-0.19051-0.44855-0.19051-0.35932 0-0.56672 0.2291-0.2074 0.2291-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path117" d="m36.008 46.136q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path119" d="m39.761 46.235v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path121" d="m43.429 47.065v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><g id="g4466" transform="translate(1.1863 -2.0666)"><rect id="rect951" x="61.379" y="16.76" width="28.304" height="19.996" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g id="text955" fill="#808080" stroke-width=".26458px" aria-label="NBD server"><path id="path56" d="m68.257 20.548h0.93707l2.2807 4.3029v-4.3029h0.67524v5.1435h-0.93707l-2.2807-4.3029v4.3029h-0.67524z"/><path id="path58" d="m74.231 23.235v1.8845h1.1162q0.56155 0 0.83027-0.23082 0.27216-0.23427 0.27216-0.71314 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50988 0 0.75792-0.18948 0.25149-0.19293 0.25149-0.58567 0-0.3893-0.25149-0.58222-0.24805-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582 0 1.2265 0.33073 0.43064 0.33073 0.43064 0.94051 0 0.47198-0.22049 0.75103-0.22049 0.27905-0.64768 0.34796 0.51332 0.11024 0.79582 0.46164 0.28594 0.34796 0.28594 0.87161 0 0.68902-0.46853 1.0645-0.46853 0.37552-1.3333 0.37552h-1.8466z"/><path id="path60" d="m79.071 21.12v3.9998h0.8406q1.0645 0 1.5572-0.48231 0.49609-0.48231 0.49609-1.5227 0-1.0335-0.49609-1.5124-0.49265-0.48231-1.5572-0.48231zm-0.69591-0.57189h1.4297q1.4952 0 2.1945 0.62356 0.69936 0.62012 0.69936 1.943 0 1.3298-0.7028 1.9534-0.7028 0.62356-2.1911 0.62356h-1.4297z"/><path id="path62" d="m67.297 29.002v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168 0.31006 0.05168 0.57189 0.15503z"/><path id="path64" d="m71.814 30.659v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35485 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.1447-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path66" d="m75.09 29.481q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01033 0.07924 0.0069 0.1757 0.02412z"/><path id="path68" d="m75.3 28.889h0.67179l1.2058 3.2384 1.2058-3.2384h0.6718l-1.4469 3.8585h-0.86127z"/><path id="path70" d="m83.231 30.659v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.1447-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path72" d="m86.507 29.481q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01033 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path4501" d="m42.542 32.486c0-7.5272 6.2582-7.9595 6.2582-7.9595h12.801" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/></svg>
diff --git a/screenshots/2021-08-18-block-graph-c.svg b/screenshots/2021-08-18-block-graph-c.svg
new file mode 100644
index 0000000..bcdf868
--- /dev/null
+++ b/screenshots/2021-08-18-block-graph-c.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="46.756mm" height="107.74mm" version="1.1" viewBox="0 0 46.756 107.74" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><rect id="rect23797" x=".26458" y="9.1324" width="46.227" height="70.624" rx="3.8155" ry="4.5481" fill="none" stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666" stroke-linecap="round" stroke-width=".52917"/><rect id="rect991" x="6.494" y="29.025" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313" stroke-width=".26458px" aria-label="qcow2"><path id="path54" d="m13.113 34.046q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619t0.79237-0.39619q0.28939-0.39963 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963t-0.79237 0.39963q-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69935 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.5581 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path56" d="m19.99 32.261v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54432-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54432-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path58" d="m22.587 32.557q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path60" d="m25.04 32.113h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path62" d="m31.868 35.386h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68557-0.69246 0.86127-0.89228 0.33418-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="6.494" y="57.736" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383" stroke-width=".26458px" aria-label="file"><path id="path82" d="m21.895 61.038v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30317 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path id="path84" d="m23.221 59.536h0.6339v5.3606h-0.6339z"/><path id="path86" d="m28.482 62.809v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369" transform="translate(69.961 29.979)" fill="none" stroke="#000" stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><g id="g25195" transform="translate(75.298 30.046)"><rect id="rect22371" x="-66.56" y="-29.781" width="29.28" height="17.692" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080" stroke-width=".26458px" aria-label="NBD server"><path id="path35" d="m-59.195-27.145h0.93707l2.2807 4.3029v-4.3029h0.67524v5.1435h-0.93707l-2.2807-4.3029v4.3029h-0.67524z"/><path id="path37" d="m-53.221-24.458v1.8845h1.1162q0.56155 0 0.83027-0.23082 0.27216-0.23427 0.27216-0.71314 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50988 0 0.75792-0.18948 0.25149-0.19292 0.25149-0.58567 0-0.3893-0.25149-0.58222-0.24805-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582 0 1.2265 0.33073 0.43064 0.33073 0.43064 0.94051 0 0.47198-0.22049 0.75103-0.22049 0.27905-0.64768 0.34795 0.51332 0.11024 0.79582 0.46164 0.28594 0.34795 0.28594 0.87161 0 0.68902-0.46853 1.0645-0.46853 0.37552-1.3333 0.37552h-1.8466z"/><path id="path39" d="m-48.38-26.573v3.9998h0.8406q1.0645 0 1.5572-0.48231 0.49609-0.48231 0.49609-1.5227 0-1.0335-0.49609-1.5124-0.49265-0.48231-1.5572-0.48231zm-0.69591-0.57189h1.4297q1.4952 0 2.1945 0.62356 0.69936 0.62012 0.69936 1.943 0 1.3298-0.7028 1.9534-0.7028 0.62356-2.1911 0.62356h-1.4297z"/><path id="path41" d="m-60.154-18.691v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168t0.57189 0.15503z"/><path id="path43" d="m-55.638-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path45" d="m-52.361-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/><path id="path47" d="m-52.151-18.805h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469 3.8585h-0.86128z"/><path id="path49" d="m-44.22-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path51" d="m-40.944-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path24007" d="m23.373 76.207v10.837" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25180" d="m23.373 47.562v9.2246" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25334" d="m23.373 18.929v9.1469" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><rect id="rect35415" x="8.5609" y="66.8" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text35918" stroke-width=".26458px" aria-label="prot-node"><path id="path89" d="m12.118 72.142v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823 0.39067-0.29662 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974-0.35209 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733 0.55466 0.27733 0.35209 0 0.55225-0.27733 0.20257-0.27974 0.20257-0.76929z"/><path id="path91" d="m16.389 70.261q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19292-0.0217-0.3762 0-0.57878 0.24598-0.20016 0.24357-0.20016 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598 0.36415-0.36415 0.22428-0.12058 0.54502-0.12058 0.04582 0 0.10128 0.0072 0.05547 0.0048 0.12299 0.01688z"/><path id="path93" d="m17.793 70.157q-0.35691 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.20739-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path95" d="m20.207 69.08v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path97" d="m21.48 70.997h1.2998v0.3955h-1.2998z"/><path id="path99" d="m25.732 70.917v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291t-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path101" d="m27.663 70.157q-0.35691 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path103" d="m31.416 70.256v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29904 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path105" d="m35.084 71.086v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23875 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect id="rect38770" x="8.5609" y="38.135" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text38774" stroke-width=".26458px" aria-label="fmt-node"><path id="path65" d="m13.988 40.323v0.36897h-0.42444q-0.23875 0-0.3328 0.09646-0.09164 0.09646-0.09164 0.34727v0.23874h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096 0.20981-0.65595 0.20981-0.20739 0.66559-0.20739z"/><path id="path67" d="m16.463 41.893q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34486 0-0.54502 0.2291t-0.20016 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003 0-0.54019 0.23151-0.20016 0.2291-0.20016 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.4992 0.14952 0.20739 0.14952 0.30627 0.43408z"/><path id="path69" d="m19.61 40.608v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path71" d="m20.883 42.525h1.2998v0.3955h-1.2998z"/><path id="path73" d="m25.135 42.446v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291t-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939 0.23875 0.28698 0.23875 0.84646z"/><path id="path75" d="m27.066 41.686q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.20739-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path77" d="m30.819 41.785v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273 0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path79" d="m34.487 42.614v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g></svg>
diff --git a/screenshots/2021-08-18-block-graph-d.svg b/screenshots/2021-08-18-block-graph-d.svg
new file mode 100644
index 0000000..67c1e81
--- /dev/null
+++ b/screenshots/2021-08-18-block-graph-d.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="105.13mm" height="108.92mm" version="1.1" viewBox="0 0 105.13 108.92" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><rect id="rect23797" x=".26458" y=".26458" width="58.32" height="70.624" rx="4.8137" ry="4.5481" fill="none" stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666" stroke-linecap="round" stroke-width=".52917"/><rect id="rect991" x="6.4942" y="20.157" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313" stroke-width=".26458px" aria-label="qcow2"><path id="path64" d="m13.113 25.178q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50298 0 0.79237-0.39619 0.28939-0.39963 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.5581 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path66" d="m19.99 23.393v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path68" d="m22.587 23.69q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path70" d="m25.04 23.245h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path72" d="m31.868 26.518h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="6.4942" y="48.868" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383" stroke-width=".26458px" aria-label="file"><path id="path92" d="m21.895 52.17v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30317 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path id="path94" d="m23.221 50.668h0.6339v5.3606h-0.6339z"/><path id="path96" d="m28.482 53.941v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369" transform="translate(69.961 21.111)" fill="none" stroke="#000" stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><g id="g25195" transform="translate(110.44 35.205)"><rect id="rect22371" x="-66.56" y="-29.781" width="29.28" height="17.692" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080" stroke-width=".26458px" aria-label="FUSE server"><path id="path43" d="m-60.499-27.145h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path45" d="m-56.519-27.145h0.69936v3.1247q0 0.82682 0.29972 1.192 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609 0.51332-1.4676 0.51332-0.97496 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path47" d="m-48.193-26.976v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.09302-0.67868-0.09302-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17226 0.77859 0.27905l0.4203 0.08613q0.77859 0.14814 1.1472 0.52366 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.08268-0.40997-0.08268-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.3204l-0.42375-0.08268q-0.77859-0.15503-1.1265-0.48576-0.34796-0.33073-0.34796-0.91984 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.06546 0.37552 0.06546 0.76826 0.19637z"/><path id="path49" d="m-46.797-27.145h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path id="path51" d="m-60.154-18.691v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168t0.57189 0.15503z"/><path id="path53" d="m-55.638-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path55" d="m-52.361-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/><path id="path57" d="m-52.151-18.805h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469 3.8585h-0.86128z"/><path id="path59" d="m-44.22-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path61" d="m-40.944-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path24007" d="m23.373 67.339v10.837" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25180" d="m23.373 38.694v9.2246" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><rect id="rect35415" x="8.561" y="57.933" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text35918" stroke-width=".26458px" aria-label="prot-node"><path id="path99" d="m12.118 63.274v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823 0.39067-0.29662 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path id="path101" d="m16.389 61.393q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762 0-0.57878 0.24598-0.20016 0.24357-0.20016 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072 0.05547 0.0048 0.12299 0.01688z"/><path id="path103" d="m17.793 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path105" d="m20.207 60.212v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path107" d="m21.48 62.129h1.2998v0.3955h-1.2998z"/><path id="path109" d="m25.732 62.049v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291-0.20739 0.2291-0.20739 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path111" d="m27.663 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path113" d="m31.416 61.389v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path115" d="m35.084 62.218v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect id="rect38770" x="8.561" y="29.267" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text38774" stroke-width=".26458px" aria-label="fmt-node"><path id="path75" d="m13.989 31.456v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164 0.34727v0.23874h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096 0.20981-0.65595 0.20981-0.20739 0.66559-0.20739z"/><path id="path77" d="m16.463 33.026q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34485 0-0.54501 0.2291t-0.20016 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003 0-0.54019 0.23151-0.20016 0.2291-0.20016 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.49919 0.14952 0.2074 0.14952 0.30627 0.43408z"/><path id="path79" d="m19.61 31.74v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path81" d="m20.883 33.657h1.2998v0.3955h-1.2998z"/><path id="path83" d="m25.135 33.578v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14952-0.19051-0.44855-0.19051-0.35932 0-0.56672 0.2291-0.2074 0.2291-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path85" d="m27.067 32.818q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path87" d="m30.819 32.917v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273 0.30868-0.39067 0.79823-0.39067 0.29904 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path89" d="m34.487 33.747v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><path id="path8203" d="m23.908 19.196c0-8.7692 8.1536-8.1536 8.1536-8.1536h10.854" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><g id="g9231" transform="translate(128.75 21.111)" fill="none" stroke="#0081cf" stroke-width=".52917"><path id="path9227" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path9229" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><path id="path9233" d="m74.123 14.397c8.7692 0 8.1536 8.1536 8.1536 8.1536v55.724" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><g id="text9935" stroke-width=".26458px" aria-label="$image_path"><path id="path118" d="m2.3853 105.12v1.4952q0.37896-0.0103 0.59256-0.21015 0.2136-0.19981 0.2136-0.54432 0-0.3204-0.19293-0.4961-0.19293-0.17914-0.61323-0.2446zm-0.34451-0.65457v-1.4228q-0.35829 0.0138-0.56155 0.2067-0.19982 0.19293-0.19982 0.51677 0 0.29628 0.18604 0.46853 0.18948 0.17226 0.57533 0.23082zm0.34451 3.6897h-0.34451l-0.00345-1.037q-0.3514-0.0172-0.69935-0.0965-0.34451-0.0792-0.68213-0.22049v-0.62012q0.34451 0.2136 0.69246 0.32729 0.3514 0.11368 0.69246 0.12057v-1.5778q-0.68902-0.1068-1.037-0.4203-0.34795-0.31351-0.34795-0.83027 0-0.54088 0.36174-0.86127 0.36518-0.32384 1.0232-0.37208v-0.80959h0.34451l0.00345 0.80959q0.27216 0.0172 0.55122 0.0689t0.56844 0.14125v0.596q-0.29283-0.14814-0.57189-0.22738-0.27561-0.0827-0.55122-0.0965v1.4848q0.70969 0.10679 1.0818 0.44097 0.37207 0.33417 0.37207 0.86472 0 0.53054-0.40308 0.88539-0.39963 0.35484-1.0473 0.38585z"/><path id="path120" d="m5.1311 103.26h1.6226v3.3659h1.2575v0.49265h-3.1488v-0.49265h1.2575v-2.8732h-0.98874zm0.98874-1.5021h0.6339v0.8027h-0.6339z"/><path id="path122" d="m10.826 103.66q0.11713-0.24805 0.29628-0.36518 0.18259-0.12058 0.43753-0.12058 0.46509 0 0.65457 0.36174 0.19292 0.35829 0.19292 1.3539v2.2359h-0.57878v-2.2083q0-0.81649-0.09302-1.0129-0.08957-0.19981-0.33073-0.19981-0.27561 0-0.37896 0.21359-0.09991 0.21015-0.09991 0.99908v2.2083h-0.57878v-2.2083q0-0.82682-0.09991-1.0198-0.09646-0.19292-0.3514-0.19292-0.25149 0-0.3514 0.21359-0.096463 0.21015-0.096463 0.99908v2.2083h-0.57532v-3.8585h0.57533v0.33073q0.11369-0.20671 0.2825-0.31351 0.17225-0.11024 0.3893-0.11024 0.26183 0 0.43408 0.12058 0.1757 0.12058 0.27216 0.36518z"/><path id="path124" d="m15.163 105.18h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36173 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33418-0.3514-0.89228 0-0.64424 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.0999q-0.0034-0.46165-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.093t-0.64423 0.27217v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17225 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path126" d="m19.948 105.16q0-0.71314-0.23427-1.0818-0.23082-0.37207-0.67524-0.37207-0.46509 0-0.70969 0.37207-0.2446 0.36862-0.2446 1.0818 0 0.71313 0.2446 1.0886 0.24805 0.37207 0.71658 0.37207 0.43753 0 0.66835-0.37552 0.23427-0.37551 0.23427-1.0852zm0.6339 1.7122q0 0.86817-0.40997 1.316-0.40997 0.44786-1.2058 0.44786-0.26183 0-0.54777-0.0482t-0.57189-0.14125v-0.62701q0.33762 0.15848 0.61323 0.23427 0.27561 0.0758 0.50643 0.0758 0.51332 0 0.74759-0.27905 0.23427-0.27905 0.23427-0.88539v-0.45824q-0.15158 0.32384-0.41341 0.48231-0.26183 0.15848-0.63734 0.15848-0.67524 0-1.0783-0.54088-0.40308-0.54088-0.40308-1.4469 0-0.90951 0.40308-1.4504 0.40308-0.54088 1.0783-0.54088 0.37207 0 0.63045 0.14814 0.25838 0.14814 0.4203 0.4582v-0.49954h0.6339z"/><path id="path128" d="m25.071 105.03v0.31006h-2.7457v0.0207q0 0.63045 0.32728 0.97496 0.33073 0.34451 0.93018 0.34451 0.30317 0 0.6339-0.0965 0.33073-0.0965 0.70624-0.29283v0.63045q-0.36174 0.14814-0.69936 0.22048-0.33417 0.0758-0.64768 0.0758-0.89917 0-1.4056-0.53744-0.50643-0.54088-0.50643-1.4883 0-0.92329 0.49609-1.4745 0.49609-0.55122 1.3229-0.55122 0.73725 0 1.161 0.49954 0.42719 0.49954 0.42719 1.3643zm-0.6339-0.18604q-0.01378-0.5581-0.26527-0.84749-0.24805-0.29283-0.71658-0.29283-0.4582 0-0.75448 0.30317-0.29628 0.30316-0.3514 0.8406z"/><path id="path130" d="m29.736 108.51v0.27561h-4.2478v-0.27561z"/><path id="path132" d="m31.028 106.64v1.9534h-0.63734v-5.3261h0.63734v0.49265q0.15847-0.28595 0.4203-0.43408 0.26527-0.15159 0.60978-0.15159 0.69936 0 1.0955 0.54088 0.39963 0.54088 0.39963 1.4986 0 0.94051-0.39963 1.478-0.39963 0.53399-1.0955 0.53399-0.3514 0-0.61667-0.14814-0.26183-0.15159-0.41341-0.43753zm1.8604-1.44q0-0.73725-0.23427-1.1128-0.23082-0.37551-0.68902-0.37551-0.46164 0-0.69935 0.37896-0.23771 0.37551-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69935 0.37896 0.4582 0 0.68902-0.37551 0.23427-0.37552 0.23427-1.1128z"/><path id="path134" d="m36.402 105.18h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36173 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33418-0.3514-0.89228 0-0.64424 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.0999q-0.0034-0.46165-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.093t-0.64423 0.27217v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17225 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path136" d="m40.347 102.17v1.0955h1.4401v0.49265h-1.4401v2.0946q0 0.42719 0.16192 0.596 0.16192 0.16881 0.565 0.16881h0.71314v0.50643h-0.77515q-0.71314 0-1.006-0.28594-0.29283-0.28595-0.29283-0.9853v-2.0946h-1.0301v-0.49265h1.0301v-1.0955z"/><path id="path138" d="m46.1 104.73v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481t-0.57189-0.2446q-0.44442 0-0.68557 0.31695-0.23771 0.3135-0.23771 0.90261v2.1808h-0.6339v-5.3606h0.6339v2.0808q0.16881-0.33073 0.4582-0.49954 0.28939-0.17226 0.68557-0.17226 0.58911 0 0.8785 0.3893 0.29283 0.38585 0.29283 1.1713z"/></g><g id="text14411" fill="#0081cf" stroke-width=".26458px" aria-label="mount-point"><path id="path141" d="m61.294 103.66q0.11713-0.24805 0.29628-0.36518 0.18259-0.12058 0.43753-0.12058 0.46509 0 0.65457 0.36174 0.19292 0.35829 0.19292 1.3539v2.2359h-0.57878v-2.2083q0-0.81649-0.09302-1.0129-0.08957-0.19981-0.33073-0.19981-0.27561 0-0.37896 0.21359-0.09991 0.21015-0.09991 0.99908v2.2083h-0.57878v-2.2083q0-0.82682-0.09991-1.0198-0.09646-0.19292-0.3514-0.19292-0.25149 0-0.3514 0.21359-0.09646 0.21015-0.09646 0.99908v2.2083h-0.57533v-3.8585h0.57533v0.33073q0.11369-0.20671 0.2825-0.31351 0.17226-0.11024 0.3893-0.11024 0.26183 0 0.43408 0.12058 0.1757 0.12058 0.27216 0.36518z"/><path id="path143" d="m65.335 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055t1.2265-0.52021z"/><path id="path145" d="m68.133 105.66v-2.3909h0.6339v2.3909q0 0.52021 0.18259 0.76481 0.18604 0.2446 0.57189 0.2446 0.44786 0 0.68557-0.3135 0.23771-0.31695 0.23771-0.90606v-2.1808h0.63734v3.8516h-0.63734v-0.57878q-0.16881 0.33418-0.46164 0.50643-0.28939 0.17226-0.67868 0.17226-0.59256 0-0.88194-0.38585-0.28939-0.3893-0.28939-1.1748z"/><path id="path147" d="m75.33 104.73v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442 0-0.68557 0.31695-0.23771 0.3135-0.23771 0.90261v2.1808h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073 0.4582-0.49954 0.28939-0.17226 0.68558-0.17226 0.58911 0 0.8785 0.3893 0.29283 0.38585 0.29283 1.1713z"/><path id="path149" d="m78.072 102.17v1.0955h1.4401v0.49265h-1.4401v2.0946q0 0.42719 0.16192 0.596 0.16192 0.16881 0.565 0.16881h0.71314v0.50643h-0.77515q-0.71314 0-1.006-0.28594-0.29283-0.28595-0.29283-0.9853v-2.0946h-1.0301v-0.49265h1.0301v-1.0955z"/><path id="path151" d="m81.431 104.91h1.7949v0.565h-1.7949z"/><path id="path153" d="m85.744 106.64v1.9534h-0.63734v-5.3261h0.63734v0.49265q0.15847-0.28595 0.4203-0.43408 0.26527-0.15159 0.60978-0.15159 0.69936 0 1.0955 0.54088 0.39963 0.54088 0.39963 1.4986 0 0.94051-0.39963 1.478-0.39963 0.53399-1.0955 0.53399-0.3514 0-0.61667-0.14814-0.26183-0.15159-0.41341-0.43753zm1.8604-1.44q0-0.73725-0.23427-1.1128-0.23082-0.37551-0.68902-0.37551-0.46164 0-0.69936 0.37896-0.23771 0.37551-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.68902-0.37551 0.23427-0.37552 0.23427-1.1128z"/><path id="path155" d="m90.822 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055t1.2265-0.52021z"/><path id="path157" d="m93.83 103.26h1.6226v3.3659h1.2575v0.49265h-3.1488v-0.49265h1.2575v-2.8732h-0.98874zm0.98874-1.5021h0.6339v0.8027h-0.6339z"/><path id="path159" d="m100.82 104.73v2.3909h-0.63735v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442 0-0.68558 0.31695-0.23771 0.3135-0.23771 0.90261v2.1808h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073 0.4582-0.49954 0.28939-0.17226 0.68557-0.17226 0.58911 0 0.8785 0.3893 0.29284 0.38585 0.29284 1.1713z"/><path id="path161" d="m103.56 102.17v1.0955h1.4401v0.49265h-1.4401v2.0946q0 0.42719 0.16192 0.596t0.565 0.16881h0.71314v0.50643h-0.77515q-0.71314 0-1.006-0.28594-0.29283-0.28595-0.29283-0.9853v-2.0946h-1.0301v-0.49265h1.0301v-1.0955z"/></g></svg>
diff --git a/screenshots/2021-08-18-block-graph-e.svg b/screenshots/2021-08-18-block-graph-e.svg
new file mode 100644
index 0000000..4bcc615
--- /dev/null
+++ b/screenshots/2021-08-18-block-graph-e.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="195.9mm" height="108.74mm" version="1.1" viewBox="0 0 195.9 108.74" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><rect id="rect23797" x="114.19" y=".26458" width="58.32" height="70.624" rx="5.2917" ry="5.2917" fill="none" stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666" stroke-linecap="round" stroke-width=".52917"/><rect id="rect991" x="120.42" y="20.157" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313" stroke-width=".26458px" aria-label="qcow2"><path id="path89" d="m127.04 25.178q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50299 0 0.79237-0.39619 0.28939-0.39963 0.28939-1.099t-0.28939-1.0955q-0.28938-0.39963-0.79237-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19981 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69935 0-1.1403-0.55811-0.43752-0.55811-0.43752-1.4676t0.43752-1.4676q0.44098-0.5581 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30662 0.16536 0.50643 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path91" d="m133.91 23.393v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54432-0.07579-0.61668 0-0.95774 0.39274-0.34107 0.3893-0.34107 1.0955t0.34107 1.099q0.34106 0.3893 0.95774 0.3893 0.2756 0 0.54432-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55121 0.18604-0.2825 0.06201-0.6029 0.06201-0.87161 0-1.3849-0.54777t-0.51332-1.4779q0-0.94396 0.51677-1.4848 0.52021-0.54088 1.4228-0.54088 0.29284 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path93" d="m136.51 23.69q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29284 1.0921q0.29628 0.39619 0.80959 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path95" d="m138.97 23.245h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74758l-0.83027-3.1626-0.83372 3.1626h-0.74758z"/><path id="path97" d="m145.79 26.518h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28595-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43063 0.66835-0.0861 0.09991-0.54778 0.57878-0.46164 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="120.42" y="48.868" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383" stroke-width=".26458px" aria-label="file"><path id="path117" d="m135.82 52.17v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30317 0.91639-0.30317h0.63735v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13092 0.1378-0.13092 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path id="path119" d="m137.15 50.668h0.6339v5.3606h-0.6339z"/><path id="path121" d="m142.41 53.941v0.31006h-2.9146q0.0413 0.65457 0.39275 0.99908 0.35484 0.34106 0.98529 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34107 0.14469-0.69936 0.22049-0.35829 0.07579-0.72691 0.07579-0.92329 0-1.4642-0.53744-0.53743-0.53744-0.53743-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.7786 0 1.2299 0.50298 0.45476 0.49954 0.45476 1.3608zm-0.6339-0.18604q-7e-3 -0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53055 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369" transform="translate(183.89 21.111)" fill="none" stroke="#aaa" stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><g id="g25195" transform="translate(224.36 35.205)"><rect id="rect22371" x="-66.56" y="-29.781" width="29.28" height="17.692" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080" stroke-width=".26458px" aria-label="FUSE server"><path id="path68" d="m-60.499-27.145h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path70" d="m-56.519-27.145h0.69936v3.1247q0 0.82682 0.29972 1.192 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609 0.51332-1.4676 0.51332-0.97496 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path72" d="m-48.193-26.976v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.09302-0.67868-0.09302-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17226 0.77859 0.27905l0.4203 0.08613q0.77859 0.14814 1.1472 0.52366 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.08268-0.40997-0.08268-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.3204l-0.42375-0.08268q-0.77859-0.15503-1.1265-0.48576-0.34796-0.33073-0.34796-0.91984 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.06546 0.37552 0.06546 0.76826 0.19637z"/><path id="path74" d="m-46.797-27.145h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path id="path76" d="m-60.154-18.691v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168t0.57189 0.15503z"/><path id="path78" d="m-55.638-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path80" d="m-52.361-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/><path id="path82" d="m-52.151-18.805h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469 3.8585h-0.86128z"/><path id="path84" d="m-44.22-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path86" d="m-40.944-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path24007" d="m137.3 67.339v10.837" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path25180" d="m137.3 38.694v9.2246" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><rect id="rect35415" x="122.49" y="57.933" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text35918" stroke-width=".26458px" aria-label="prot-node"><path id="path124" d="m126.04 63.274v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823 0.39067-0.29662 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path id="path126" d="m130.31 61.393q-0.0748-0.04341-0.16398-0.0627-0.0868-0.0217-0.19293-0.0217-0.3762 0-0.57877 0.24598-0.20016 0.24357-0.20016 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598 0.36414-0.36415 0.22428-0.12058 0.54502-0.12058 0.0458 0 0.10128 0.0072 0.0555 0.0048 0.12299 0.01688z"/><path id="path128" d="m131.72 61.29q-0.35692 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498 0.76447q0.20739 0.27733 0.56672 0.27733 0.3545 0 0.56189-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.20739-0.28215-0.56189-0.28215zm0-0.3762q0.57877 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33039 0.3762-0.90916 0.3762-0.58119 0-0.91158-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33039-0.3762 0.91158-0.3762z"/><path id="path130" d="m134.13 60.212v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.0892 0.42444 0.0916 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19533-0.19293-0.19533-0.69936v-1.4662h-0.32557v-0.34485h0.32557v-0.76688z"/><path id="path132" d="m135.4 62.129h1.2998v0.3955h-1.2998z"/><path id="path134" d="m139.66 62.049v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291-0.20739 0.2291-0.20739 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46544 0 0.70418 0.28939 0.23875 0.28698 0.23875 0.84646z"/><path id="path136" d="m141.59 61.29q-0.35691 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.20739-0.27974 0.20739-0.76206 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33039 0.3762 0.33039 1.0418 0 0.66318-0.33039 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path138" d="m145.34 61.389v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.512 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path140" d="m149.01 62.218v0.21704h-2.0402q0.0289 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25562 0 0.49437-0.0627 0.24115-0.0627 0.47749-0.1881v0.41961q-0.23875 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31832 0.34968 0.31832 0.95257zm-0.44372-0.13022q-5e-3 -0.36415-0.20499-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25562 0.59083z"/></g><rect id="rect38770" x="122.49" y="29.267" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text38774" stroke-width=".26458px" aria-label="fmt-node"><path id="path100" d="m127.91 31.456v0.36897h-0.42443q-0.23875 0-0.3328 0.09646-0.0916 0.09646-0.0916 0.34727v0.23874h0.73071v0.34485h-0.73071v2.3561h-0.44614v-2.3561h-0.42443v-0.34485h0.42443v-0.1881q0-0.45096 0.20981-0.65595 0.2098-0.20739 0.66559-0.20739z"/><path id="path102" d="m130.39 33.026q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228 0.54501-0.14228 0.42203 0 0.65113 0.29662 0.2291 0.29421 0.2291 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41962-0.1881-0.34485 0-0.54501 0.2291t-0.20016 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42443-0.1881-0.34004 0-0.5402 0.23151-0.20016 0.2291-0.20016 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.49919 0.14952 0.2074 0.14952 0.30627 0.43408z"/><path id="path104" d="m133.53 31.74v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.0892 0.42444 0.0916 0.09405 0.36897 0.09405h0.45578v0.37138h-0.45575q-0.51367 0-0.70901-0.19051-0.19533-0.19293-0.19533-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path106" d="m134.81 33.657h1.2998v0.3955h-1.2998z"/><path id="path108" d="m139.06 33.578v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14951-0.19051-0.44855-0.19051-0.35932 0-0.56672 0.2291-0.20739 0.2291-0.20739 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70417 0.28939 0.23875 0.28698 0.23875 0.84646z"/><path id="path110" d="m140.99 32.818q-0.35691 0-0.5643 0.27974-0.2074 0.27733-0.2074 0.76206t0.20499 0.76447q0.20739 0.27733 0.56671 0.27733 0.3545 0 0.5619-0.27974 0.20739-0.27974 0.20739-0.76206 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33039 0.3762 0.33039 1.0418 0 0.66318-0.33039 1.0418-0.33038 0.3762-0.90916 0.3762-0.58118 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33039-0.3762 0.91157-0.3762z"/><path id="path112" d="m144.74 32.917v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273 0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.512 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path114" d="m148.41 33.747v0.21704h-2.0402q0.0289 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25562 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.37621-0.3762-0.37621-1.0177 0-0.66318 0.35691-1.0514 0.35933-0.39067 0.96704-0.39067 0.54502 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-5e-3 -0.36415-0.20498-0.58119-0.19775-0.21704-0.52573-0.21704-0.37138 0-0.59565 0.20981-0.22187 0.20981-0.25563 0.59083z"/></g><path id="path8203" d="m137.83 19.196c0-8.7692 8.1536-8.1536 8.1536-8.1536h10.854" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><g id="g9231" transform="translate(186.33 23.805)" fill="#fff" fill-rule="evenodd" stroke="#0081cf"><path id="path9227" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000" stroke-width=".52917"/><path id="path9229" d="m-42.779 58.06v3.41l3.1067 1e-6z" stroke-linecap="round" stroke-linejoin="round" stroke-width=".529" style="paint-order:normal"/></g><g id="text9935" fill="#0081cf" stroke-width=".26458px" aria-label="foo.qcow2"><path id="path143" d="m121.81 101.76v0.5271h-0.72002q-0.34107 0-0.47543 0.14125-0.13091 0.1378-0.13091 0.49264v0.34107h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path145" d="m124.52 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.7338-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24804-0.37551-0.7338-0.37551zm0-0.53744q0.80271 0 1.2264 0.52021 0.4272 0.52021 0.4272 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42374-0.52021-0.42374-1.509 0-0.9853 0.42374-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path147" d="m128.77 103.71q-0.48231 0-0.73036 0.37551-0.24804 0.37552-0.24804 1.1128 0 0.7338 0.24804 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42374 0.51677-1.2299 0.51677-0.8027 0-1.2264-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055t1.2264-0.52021z"/><path id="path149" d="m132.58 106.07h0.86817v1.0508h-0.86817z"/><path id="path151" d="m136.29 105.21q0 0.73725 0.23082 1.1128 0.23427 0.37551 0.69246 0.37551 0.4582 0 0.69247-0.37551 0.23771-0.37896 0.23771-1.1128t-0.23771-1.1093q-0.23427-0.37896-0.69247-0.37896-0.45819 0-0.69246 0.37551-0.23082 0.37552-0.23082 1.1128zm1.8535 1.4332q-0.15503 0.28594-0.4203 0.44097-0.26183 0.15159-0.60978 0.15159-0.69247 0-1.0955-0.53399-0.39964-0.53744-0.39964-1.478 0-0.95774 0.39964-1.4986 0.39963-0.54088 1.0955-0.54088 0.34451 0 0.60633 0.15159 0.26528 0.14814 0.42375 0.43408v-0.49265h0.63734v5.3261h-0.63734z"/><path id="path153" d="m143.05 106.93q-0.25494 0.14814-0.5271 0.22048-0.26872 0.0758-0.55121 0.0758-0.89573 0-1.4022-0.53744-0.50298-0.53743-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744 1.4022-0.53744 0.27905 0 0.54432 0.0724t0.53399 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.0999-0.57188-0.0999-0.59601 0-0.9164 0.38585t-0.32039 1.1024q0 0.71313 0.32039 1.1024 0.32384 0.38585 0.9164 0.38585 0.33072 0 0.59255-0.0999 0.26183-0.10335 0.48576-0.31695z"/><path id="path155" d="m145.76 103.71q-0.48232 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24804 0.37551 0.73036 0.37551 0.48576 0 0.7338-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24804-0.37551-0.7338-0.37551zm0-0.53744q0.8027 0 1.2264 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42374 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42374-0.52021-0.42374-1.509 0-0.9853 0.42374-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path157" d="m147.89 103.26h0.62701l0.67179 3.1178 0.55122-1.9913h0.54088l0.55811 1.9913 0.67179-3.1178h0.62701l-0.90262 3.8585h-0.60634l-0.61667-2.1153-0.61323 2.1153h-0.60633z"/><path id="path159" d="m153.42 106.54h2.3633v0.58567h-3.1247v-0.58567q0.64424-0.67868 1.1266-1.1989t0.6649-0.73381q0.34451-0.4203 0.46509-0.67868 0.12058-0.26183 0.12058-0.53399 0-0.43064-0.25494-0.67524-0.25149-0.2446-0.69246-0.2446-0.31351 0-0.65802 0.11368-0.34451 0.11369-0.73036 0.34451v-0.7028q0.35485-0.16881 0.69591-0.25493 0.34451-0.0861 0.67869-0.0861 0.75447 0 1.2127 0.40308 0.46165 0.39963 0.46165 1.0508 0 0.33073-0.15503 0.66146-0.15159 0.33073-0.4961 0.73036-0.19292 0.22393-0.56155 0.62012-0.36518 0.39618-1.1162 1.1851z"/></g><rect id="rect876" x=".26458" y="13.714" width="46.311" height="57.175" rx="5.2917" ry="5.2917" fill="none" stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666" stroke-linecap="round" stroke-width=".52917"/><rect id="rect878" x="6.5361" y="20.157" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text882" stroke-width=".26458px" aria-label="qcow2"><path id="path265" d="m13.155 25.178q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50298 0 0.79237-0.39619 0.28939-0.39963 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.5581 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path267" d="m20.032 23.393v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path269" d="m22.629 23.69q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path271" d="m25.082 23.245h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path273" d="m31.91 26.518h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68557-0.69246 0.86127-0.89228 0.33418-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/></g><rect id="rect884" x="6.5361" y="48.868" width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text888" stroke-width=".26458px" aria-label="file"><path id="path276" d="m21.937 52.17v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045 0.29628-0.93018 0.29972-0.30317 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path id="path278" d="m23.263 50.668h0.6339v5.3606h-0.6339z"/><path id="path280" d="m28.524 53.941v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69935 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g894" transform="translate(70.003 21.111)" fill="none" stroke="#000" stroke-width=".52917"><path id="path890" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path892" d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round" style="paint-order:normal"/></g><path id="path906" d="m23.415 67.339v10.837" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path908" d="m23.415 38.694v9.2246" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><rect id="rect910" x="8.603" y="57.933" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text914" stroke-width=".26458px" aria-label="prot-node"><path id="path283" d="m12.16 63.274v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823 0.39067-0.29662 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path id="path285" d="m16.431 61.393q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762 0-0.57878 0.24598-0.20016 0.24357-0.20016 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072 0.05547 0.0048 0.12299 0.01688z"/><path id="path287" d="m17.835 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path289" d="m20.249 60.212v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path291" d="m21.522 62.129h1.2998v0.3955h-1.2998z"/><path id="path293" d="m25.774 62.049v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932 0-0.56672 0.2291t-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path295" d="m27.705 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.20739-0.27974 0.20739-0.76206 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path297" d="m31.458 61.389v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path299" d="m35.126 62.218v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect id="rect916" x="8.603" y="29.267" width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000" stroke-linecap="round" stroke-width=".529"/><g id="text920" stroke-width=".26458px" aria-label="fmt-node"><path id="path248" d="m14.031 31.456v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164 0.34727v0.23874h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096 0.20981-0.65595 0.20981-0.20739 0.66559-0.20739z"/><path id="path250" d="m16.505 33.026q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34485 0-0.54501 0.2291t-0.20016 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003 0-0.54019 0.23151-0.20016 0.2291-0.20016 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.49919 0.14952 0.2074 0.14952 0.30627 0.43408z"/><path id="path252" d="m19.652 31.74v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path id="path254" d="m20.925 33.657h1.2998v0.3955h-1.2998z"/><path id="path256" d="m25.177 33.578v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14952-0.19051-0.44855-0.19051-0.35932 0-0.56672 0.2291-0.2074 0.2291-0.2074 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939 0.23874 0.28698 0.23874 0.84646z"/><path id="path258" d="m27.108 32.818q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974 0.2074-0.27974 0.2074-0.76206 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418 0.33038-0.3762 0.91157-0.3762z"/><path id="path260" d="m30.861 32.917v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273 0.30868-0.39067 0.79823-0.39067 0.29904 0 0.51125 0.11817 0.21463 0.11576 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path262" d="m34.529 33.747v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093 0.35209 0.31833 0.34968 0.31833 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><g id="text934" stroke-width=".26458px" aria-label="foo.qcow2"><path id="path162" d="m7.9308 101.76v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091 0.1378-0.13091 0.49264v0.34107h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path164" d="m10.639 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.7338-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.7338-0.37551zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055t1.2265-0.52021z"/><path id="path166" d="m14.886 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055t1.2265-0.52021z"/><path id="path168" d="m18.697 106.07h0.86816v1.0508h-0.86816z"/><path id="path170" d="m22.404 105.21q0 0.73725 0.23082 1.1128 0.23427 0.37551 0.69246 0.37551t0.69246-0.37551q0.23771-0.37896 0.23771-1.1128t-0.23771-1.1093q-0.23427-0.37896-0.69246-0.37896t-0.69246 0.37551q-0.23082 0.37552-0.23082 1.1128zm1.8535 1.4332q-0.15503 0.28594-0.4203 0.44097-0.26183 0.15159-0.60978 0.15159-0.69246 0-1.0955-0.53399-0.39963-0.53744-0.39963-1.478 0-0.95774 0.39963-1.4986 0.39963-0.54088 1.0955-0.54088 0.34451 0 0.60634 0.15159 0.26527 0.14814 0.42375 0.43408v-0.49265h0.63734v5.3261h-0.63734z"/><path id="path172" d="m29.163 106.93q-0.25494 0.14814-0.5271 0.22048-0.26872 0.0758-0.55122 0.0758-0.89573 0-1.4022-0.53744-0.50298-0.53743-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744 1.4022-0.53744 0.27905 0 0.54432 0.0724 0.26527 0.0724 0.53399 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.0999-0.57189-0.0999-0.596 0-0.9164 0.38585t-0.32039 1.1024q0 0.71313 0.32039 1.1024 0.32384 0.38585 0.9164 0.38585 0.33073 0 0.59256-0.0999 0.26183-0.10335 0.48576-0.31695z"/><path id="path174" d="m31.878 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51677-1.2299 0.51677-0.80271 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055t1.2265-0.52021z"/><path id="path176" d="m34.003 103.26h0.62701l0.67179 3.1178 0.55122-1.9913h0.54088l0.55811 1.9913 0.67179-3.1178h0.62701l-0.90262 3.8585h-0.60634l-0.61667-2.1153-0.61323 2.1153h-0.60634z"/><path id="path178" d="m39.536 106.54h2.3633v0.58567h-3.1247v-0.58567q0.64423-0.67868 1.1265-1.1989 0.48231-0.52021 0.6649-0.73381 0.34451-0.4203 0.46509-0.67868 0.12058-0.26183 0.12058-0.53399 0-0.43064-0.25494-0.67524-0.25149-0.2446-0.69246-0.2446-0.3135 0-0.65801 0.11368-0.34451 0.11369-0.73036 0.34451v-0.7028q0.35484-0.16881 0.69591-0.25493 0.34451-0.0861 0.67868-0.0861 0.75448 0 1.2127 0.40308 0.46164 0.39963 0.46164 1.0508 0 0.33073-0.15503 0.66146-0.15158 0.33073-0.49609 0.73036-0.19293 0.22393-0.56155 0.62012-0.36518 0.39618-1.1162 1.1851z"/></g><path id="path3010" d="m188.01 14.34c8.4834 0 7.5897 6.5118 7.5897 6.5118v64.293c0 7.1845-7.0725 6.5115-7.0725 6.5115h-40.896" fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917" style="paint-order:normal"/><path id="path5636" d="m52.435 42.311h54.899" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width="1.0583" style="paint-order:normal"/><g id="text10276" stroke-width=".26458px" aria-label="Exporting foo.qcow2  via FUSE on itself"><path id="path181" d="m64.283 22.613h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path id="path183" d="m71.92 23.898-1.3953 1.8776 1.4676 1.9809h-0.74759l-1.1231-1.5158-1.1231 1.5158h-0.74759l1.4986-2.0188-1.3711-1.8397h0.74759l1.0232 1.3746 1.0232-1.3746z"/><path id="path185" d="m73.502 27.178v2.0464h-0.63734v-5.3261h0.63734v0.58567q0.19982-0.34451 0.50298-0.50987 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811 0.44097 0.55811 0.44097 1.4676 0 0.9095-0.44097 1.4676-0.43753 0.55811-1.1403 0.55811-0.42375 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332zm2.1566-1.347q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963t-0.79237 0.39963q-0.28594 0.39619-0.28594 1.0955 0 0.69935 0.28594 1.099 0.28939 0.39619 0.79237 0.39619t0.78893-0.39619q0.28939-0.39963 0.28939-1.099z"/><path id="path187" d="m78.862 24.343q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0886 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path189" d="m83.92 24.491q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744 0-0.82682 0.3514-0.28594 0.34796-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01033 0.07924 0.0069 0.1757 0.02412z"/><path id="path191" d="m85.212 22.803v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.7338 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path193" d="m87.351 23.898h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path195" d="m92.519 25.428v2.3289h-0.6339v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34796 0.53399-0.52021 0.31006-0.17226 0.71314-0.17226 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path197" d="m96.322 25.783q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50987 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68558 0.2825 1.0645 0.28594 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753 0.48231-1.3401 0.48231-0.33418 0-0.63045-0.05168-0.29628-0.04823-0.57533-0.15158v-0.61667q0.27905 0.15158 0.55122 0.22393 0.27216 0.07235 0.55466 0.07235 0.62356 0 0.93362-0.32728 0.31006-0.32384 0.31006-0.98185v-0.3135q-0.19637 0.34106-0.50298 0.50987-0.30661 0.16881-0.73381 0.16881-0.70969 0-1.1438-0.54088-0.43408-0.54088-0.43408-1.4332 0-0.89572 0.43408-1.4366 0.43408-0.54088 1.1438-0.54088 0.42719 0 0.73381 0.16881 0.30661 0.16881 0.50298 0.50987v-0.58567h0.6339z"/><path id="path199" d="m65.127 30.863v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.64423 0.29972-0.93707 0.29972-0.29628 0.95085-0.29628z"/><path id="path201" d="m67.152 32.809q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path203" d="m71.469 32.809q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path205" d="m74.256 35.349h0.72692v0.87506h-0.72692z"/><path id="path207" d="m76.788 34.298q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50298 0 0.79237-0.39619 0.28939-0.39963 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963-0.50298 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936 0-1.1403-0.5581-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.55811 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path209" d="m83.665 32.513v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825 0.06201-0.60289 0.06201-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path211" d="m86.262 32.809q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path213" d="m88.715 32.365h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371 3.1626h-0.74759z"/><path id="path215" d="m95.543 35.638h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099 0.68557-0.69246 0.86127-0.89228 0.33418-0.37552 0.46509-0.6339 0.13436-0.26183 0.13436-0.51332 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022 1.3333z"/><path id="path217" d="m65.373 49.298h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469 3.8585h-0.86128z"/><path id="path219" d="m70.003 49.298h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path221" d="m73.717 51.217q-0.76826 0-1.0645 0.1757-0.29628 0.1757-0.29628 0.59945 0 0.33762 0.22049 0.53744 0.22393 0.19637 0.60634 0.19637 0.5271 0 0.84405-0.37207 0.32039-0.37552 0.32039-0.99563v-0.14125zm1.2644-0.26183v2.2014h-0.6339v-0.58567q-0.21704 0.3514-0.54088 0.52021-0.32384 0.16536-0.79237 0.16536-0.59256 0-0.94396-0.33073-0.34796-0.33418-0.34796-0.89228 0-0.65112 0.43408-0.98185 0.43753-0.33073 1.3022-0.33073h0.88884v-0.06201q0-0.43753-0.28939-0.67524-0.28594-0.24116-0.80615-0.24116-0.33073 0-0.64423 0.07924-0.3135 0.07924-0.60289 0.23771v-0.58567q0.34796-0.13436 0.67524-0.19982 0.32728-0.0689 0.63734-0.0689 0.83716 0 1.2506 0.43408 0.41341 0.43408 0.41341 1.316z"/><path id="path223" d="m78.557 48.013h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path225" d="m82.536 48.013h0.69936v3.1247q0 0.82682 0.29972 1.192 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609 0.51332-1.4676 0.51332-0.97496 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path227" d="m90.863 48.182v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.09302-0.67868-0.09302-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17226 0.77859 0.27905l0.4203 0.08613q0.77859 0.14814 1.1472 0.52366 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.08268-0.40997-0.08268-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.3204l-0.42375-0.08268q-0.77859-0.15503-1.1265-0.48576-0.34796-0.33073-0.34796-0.91984 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.06546t0.76826 0.19637z"/><path id="path229" d="m92.258 48.013h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path id="path231" d="m68.644 58.21q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path233" d="m74.673 59.295v2.3289h-0.6339v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728-0.29628 0.32728-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34796 0.53399-0.52021 0.31006-0.17226 0.71314-0.17226 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path235" d="m78.18 57.765h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path id="path237" d="m80.767 56.67v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.73381 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path239" d="m85.367 57.879v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198 0-0.70969 0.1447-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375 0.3135-1.1679 0.3135-0.31006 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17915v-0.65457q0.3514 0.18259 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158 0.24116-0.15503 0.24116-0.43408 0-0.25838-0.1757-0.39619-0.17225-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624 0-0.54433 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146 0.05168t0.57189 0.15503z"/><path id="path241" d="m89.883 59.536v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path243" d="m90.924 56.263h0.6339v5.3606h-0.6339z"/><path id="path245" d="m94.837 56.263v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.64423 0.29972-0.93707 0.29972-0.29628 0.95085-0.29628z"/></g></svg>
diff --git a/screenshots/2021-08-18-root-directory.svg b/screenshots/2021-08-18-root-directory.svg
new file mode 100644
index 0000000..f9449f1
--- /dev/null
+++ b/screenshots/2021-08-18-root-directory.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="149.08mm" height="64.908mm" version="1.1" viewBox="0 0 149.08 64.908" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker><marker id="ArrowRedMend" overflow="visible" orient="auto"><path id="path53977" transform="scale(.6) rotate(180) translate(0)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="#0081cf" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><g id="text10527" stroke-width=".26458px" aria-label="/  foo/    a    b  bar/    c    d"><path id="path79" d="m5.3131 16.476h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path81" d="m14.408 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091 0.1378-0.13091 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path83" d="m17.116 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51676-1.2299 0.51676-0.80271 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path85" d="m21.364 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51676-1.2299 0.51676-0.80271 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path87" d="m26.552 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path89" d="m21.66 34.032h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878 0 0.34796 0.21015 0.54088 0.21015 0.19293 0.58222 0.19293 0.52365 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50987-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33417 1.2712-0.33417h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path91" d="m22.404 41.222q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.34451 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path93" d="m13.909 48.398q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164 0-0.69935 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69935 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.34451 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path95" d="m17.412 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path97" d="m23.221 47.261q-0.20326-0.15848-0.41341-0.23082-0.21015-0.07235-0.46164-0.07235-0.59256 0-0.90606 0.37207-0.3135 0.37207-0.3135 1.0749v1.9189h-0.63734v-3.8585h0.63734v0.75448q0.15847-0.40997 0.48576-0.62701 0.33073-0.22049 0.78204-0.22049 0.23427 0 0.43753 0.05857t0.3893 0.18259z"/><path id="path99" d="m26.552 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path101" d="m22.897 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122 0.07579-0.89572 0-1.4022-0.53744-0.50298-0.53744-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744 1.4022-0.53744 0.27905 0 0.54433 0.07235 0.26527 0.07235 0.53399 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596 0-0.9164 0.38585t-0.32039 1.1024q0 0.71314 0.32039 1.1024 0.32384 0.38585 0.9164 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335 0.48576-0.31695z"/><path id="path103" d="m22.198 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15848 0.28594-0.42375 0.43753-0.26183 0.14814-0.60634 0.14814-0.69936 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40308-1.4745 0.40308-0.53744 1.099-0.53744 0.34796 0 0.61323 0.15158 0.26527 0.14814 0.41686 0.43408zm-1.8638 1.4401q0 0.73725 0.23427 1.1128 0.23427 0.37552 0.69246 0.37552t0.69591-0.37896q0.24116-0.37896 0.24116-1.1093 0-0.73381-0.24116-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69246 0.37552q-0.23427 0.37552-0.23427 1.1128z"/></g><path id="path25696" d="m4.5344 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path25958" d="m4.5344 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27085" d="m4.5344 46.199c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27490" d="m13.266 30.8-0.0056 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27629" d="m13.26 32.462c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27844" d="m13.26 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path28236" d="m13.266 52.334-0.0056 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path28238" d="m13.26 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path28240" d="m13.26 60.92c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><g id="text31368" stroke-width=".26458px" aria-label="VFS tree:"><path id="path62" d="m2.096 5.3688-1.9637-5.1435h0.72692l1.6295 4.3305 1.633-4.3305h0.72347l-1.9603 5.1435z"/><path id="path64" d="m5.5962 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path66" d="m12.614 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576t-0.34795-0.91984q0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.065457 0.37552 0.065457 0.76826 0.19637z"/><path id="path68" d="m16.851 0.41479v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.7338 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path70" d="m21.227 2.1029q-0.1068-0.062012-0.23427-0.089573-0.12402-0.031006-0.27561-0.031006-0.53744 0-0.82682 0.3514-0.28594 0.34795-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17225 0.77859-0.17225 0.06546 0 0.14469 0.010335 0.07924 0.00689 0.1757 0.024116z"/><path id="path72" d="m25.037 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.075792-0.72692 0.075792-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path74" d="m29.378 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.075792-0.72692 0.075792-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path76" d="m30.58 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g id="text36298" fill="#0081cf" stroke-width=".26458px" aria-label="/  x  y"><path id="path115" d="m58.664 16.476h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path117" d="m67.949 24.937-1.3815 1.8466 1.5158 2.0119h-0.73381l-1.13-1.5468-1.1265 1.5468h-0.73381l1.5158-2.0119-1.3815-1.8466h0.7028l1.0232 1.3953 1.0163-1.3953z"/><path id="path119" d="m67.053 34.731q-0.15848 0.40308-0.40308 1.0611-0.34106 0.90951-0.4582 1.1093-0.15847 0.26872-0.39619 0.40308t-0.55466 0.13436h-0.50987v-0.53055h0.37552q0.27905 0 0.43753-0.16192 0.15847-0.16192 0.40308-0.83716l-1.4917-3.7965h0.67179l1.1438 3.0179 1.1265-3.0179h0.67179z"/></g><path id="path36300" d="m57.886 23.535v9.5655" fill="none" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path36302" d="m57.886 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#ArrowRedMend)" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path36304" d="m57.886 33.101c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#ArrowRedMend)" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><g id="text36320" stroke-width=".26458px" aria-label="FS A:"><path id="path106" d="m53.733 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path108" d="m60.75 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576-0.34795-0.33073-0.34795-0.91984 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.065457 0.37552 0.065457 0.76826 0.19637z"/><path id="path110" d="m66.107 0.91088-0.94396 2.5597h1.8914zm-0.39274-0.68557h0.78893l1.9603 5.1435h-0.72347l-0.46853-1.3195h-2.3186l-0.46853 1.3195h-0.7338z"/><path id="path112" d="m69.225 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g id="text44877" stroke-width=".26458px" aria-label="Mounting FS Aon /foo:"><path id="path122" d="m98.949 0.34933h1.037l1.3126 3.5002 1.3195-3.5002h1.037v5.1435h-0.67869v-4.5165l-1.3264 3.5278h-0.69935l-1.3264-3.5278v4.5165h-0.67524z"/><path id="path124" d="m106.5 2.0788q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29284 1.0921 0.29627 0.39619 0.80959 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683 0 1.2988 0.53744 0.47197 0.53744 0.47197 1.4883 0 0.9474-0.47197 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path126" d="m109.26 3.9701v-2.3358h0.6339v2.3117q0 0.54777 0.2136 0.82338 0.21359 0.27216 0.64079 0.27216 0.51332 0 0.80959-0.32728 0.29973-0.32728 0.29973-0.89228v-2.1876h0.63389v3.8585h-0.63389v-0.59256q-0.23082 0.3514-0.53744 0.52365-0.30317 0.16881-0.70624 0.16881-0.66491 0-1.0094-0.41341-0.34451-0.41341-0.34451-1.2092z"/><path id="path128" d="m117 3.164v2.3289h-0.63389v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path130" d="m118.9 0.53881v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53055h-0.65112q-0.73381 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path132" d="m121.04 1.6344h0.63389v3.8585h-0.63389zm0-1.5021h0.63389v0.80271h-0.63389z"/><path id="path134" d="m126.2 3.164v2.3289h-0.63389v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path136" d="m130.01 3.5188q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50987 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68557 0.2825 1.0645 0.28595 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753 0.48231-1.3401 0.48231-0.33418 0-0.63045-0.051677-0.29628-0.048231-0.57534-0.15158v-0.61667q0.27906 0.15158 0.55122 0.22393 0.27216 0.072347 0.55466 0.072347 0.62356 0 0.93362-0.32728 0.31006-0.32384 0.31006-0.98185v-0.3135q-0.19637 0.34106-0.50298 0.50987-0.30662 0.16881-0.73381 0.16881-0.70969 0-1.1438-0.54088-0.43408-0.54088-0.43408-1.4332 0-0.89573 0.43408-1.4366 0.43408-0.54088 1.1438-0.54088 0.42719 0 0.73381 0.16881 0.30661 0.16881 0.50298 0.50987v-0.58567h0.6339z"/><path id="path138" d="m134.22 0.34933h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path140" d="m141.23 0.51814v0.67868q-0.39618-0.18948-0.74758-0.2825t-0.67869-0.093018q-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17225 0.77859 0.27905l0.42031 0.086127q0.77859 0.14814 1.1472 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42374 0.23771 0.83026 0.35829 0.40653 0.12058 0.79927 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42374-0.082682q-0.77859-0.15503-1.1266-0.48576-0.34795-0.33073-0.34795-0.91984 0-0.68213 0.47886-1.0749 0.48232-0.39274 1.3264-0.39274 0.36173 0 0.73725 0.065457 0.37551 0.065457 0.76825 0.19637z"/><path id="path142" d="m146.59 1.0349-0.94395 2.5597h1.8914zm-0.39274-0.68557h0.78893l1.9603 5.1435h-0.72347l-0.46854-1.3195h-2.3186l-0.46853 1.3195h-0.73381z"/><path id="path144" d="m112.34 9.2549q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path146" d="m118.37 10.34v2.3289h-0.6339v-2.3082q0-0.54777-0.21359-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path148" d="m123 7.5255h0.58566l-1.7914 5.7981h-0.58566z"/><path id="path150" d="m126.21 7.3084v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13092 0.1378-0.13092 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.64423 0.29972-0.93707 0.29973-0.29628 0.95085-0.29628z"/><path id="path152" d="m128.23 9.2549q-0.50988 0-0.80616 0.39963-0.29628 0.39619-0.29628 1.0887t0.29284 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.8027-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68557-0.29628-1.0852-0.29627-0.40308-0.8027-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path154" d="m132.55 9.2549q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29284 1.0921q0.29627 0.39619 0.80959 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683 0 1.2988 0.53744 0.47197 0.53744 0.47197 1.4883 0 0.9474-0.47197 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path156" d="m135.53 11.794h0.72691v0.87506h-0.72691zm0-2.7733h0.72691v0.87505h-0.72691z"/></g><g id="text45567" stroke-width=".26458px" aria-label="/          bar/    c    d"><path id="path172" d="m113.98 16.476h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path174" d="m122.57 48.398q0-0.73725-0.23427-1.1128-0.23426-0.37552-0.69246-0.37552-0.46165 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15159-0.2825 0.41686-0.43408 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.34451 0-0.60979-0.14814-0.26182-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path176" d="m126.08 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36174 0.29973-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-3e-3 -0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302t-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34107 0.14125 0.55122 0.42375 0.13091 0.17226 0.18603 0.42719 0.0551 0.25149 0.0551 0.75792z"/><path id="path178" d="m131.89 47.261q-0.20326-0.15848-0.41341-0.23082-0.21015-0.07235-0.46165-0.07235-0.59255 0-0.90606 0.37207-0.3135 0.37207-0.3135 1.0749v1.9189h-0.63734v-3.8585h0.63734v0.75448q0.15847-0.40997 0.48576-0.62701 0.33073-0.22049 0.78203-0.22049 0.23427 0 0.43753 0.05857t0.3893 0.18259z"/><path id="path180" d="m135.22 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path182" d="m131.56 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122 0.07579-0.89572 0-1.4022-0.53744-0.50299-0.53744-0.50299-1.4883t0.50299-1.4883q0.50643-0.53744 1.4022-0.53744 0.27906 0 0.54433 0.07235t0.53399 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596 0-0.91639 0.38585-0.3204 0.38585-0.3204 1.1024 0 0.71314 0.3204 1.1024 0.32384 0.38585 0.91639 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335 0.48576-0.31695z"/><path id="path184" d="m130.86 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15847 0.28594-0.42374 0.43753-0.26183 0.14814-0.60634 0.14814-0.69935 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40307-1.4745 0.40308-0.53744 1.099-0.53744 0.34795 0 0.61323 0.15158 0.26527 0.14814 0.41685 0.43408zm-1.8638 1.4401q0 0.73725 0.23426 1.1128 0.23427 0.37552 0.69247 0.37552t0.69591-0.37896q0.24115-0.37896 0.24115-1.1093 0-0.73381-0.24115-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69247 0.37552q-0.23426 0.37552-0.23426 1.1128z"/></g><path id="path45569" d="m113.2 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45571" d="m113.2 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45573" d="m113.2 46.199c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45575" d="m121.93 30.8-6e-3 8.5867" fill="none" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45577" d="m121.93 32.462c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#ArrowRedMend)" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45579" d="m121.93 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#ArrowRedMend)" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45581" d="m121.93 52.334-6e-3 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45583" d="m121.93 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path45585" d="m121.93 60.92c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><g id="text49419" fill="#0081cf" stroke-width=".26458px" aria-label="  foo/    x    y"><path id="path159" d="m123.07 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091 0.1378-0.13091 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339 0.28939-0.93362 0.29283-0.29972 0.9095-0.29972z"/><path id="path161" d="m125.78 25.381q-0.48232 0-0.73037 0.37552-0.24804 0.37552-0.24804 1.1128 0 0.73381 0.24804 1.1128 0.24805 0.37552 0.73037 0.37552 0.48575 0 0.7338-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.7338-0.37552zm0-0.53744q0.8027 0 1.2264 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42374 0.51676-1.2299 0.51676-0.80271 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path163" d="m130.03 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552 0.24804-0.37896 0.24804-1.1128 0-0.73725-0.24804-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51676-1.2299 0.51676-0.80271 0-1.2264-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42374-0.52021 1.2264-0.52021z"/><path id="path165" d="m135.22 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path167" d="m131.76 32.113-1.3815 1.8466 1.5158 2.0119h-0.73381l-1.13-1.5468-1.1266 1.5468h-0.7338l1.5158-2.0119-1.3815-1.8466h0.7028l1.0232 1.3953 1.0163-1.3953z"/><path id="path169" d="m130.86 41.907q-0.15847 0.40308-0.40307 1.0611-0.34107 0.9095-0.4582 1.1093-0.15847 0.26872-0.39619 0.40308-0.23771 0.13436-0.55466 0.13436h-0.50987v-0.53054h0.37551q0.27906 0 0.43753-0.16192 0.15848-0.16192 0.40308-0.83716l-1.4917-3.7965h0.67179l1.1438 3.0179 1.1265-3.0179h0.6718z"/></g></svg>
diff --git a/screenshots/2021-08-18-root-file.svg b/screenshots/2021-08-18-root-file.svg
new file mode 100644
index 0000000..b7b2797
--- /dev/null
+++ b/screenshots/2021-08-18-root-file.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg5" width="149.08mm" height="64.908mm" version="1.1" viewBox="0 0 149.08 64.908" xmlns="http://www.w3.org/2000/svg"><defs id="defs2"><marker id="Arrow1Mend" overflow="visible" orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round" stroke-width=".625"/></marker></defs><g id="text10527" stroke-width=".26458px" aria-label="/  foo/    a    b  bar/    c    d"><path id="path71" d="m5.3131 16.476h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path73" d="m14.408 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091 0.1378-0.13091 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path75" d="m17.116 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51676-1.2299 0.51676-0.80271 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path77" d="m21.364 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51676-1.2299 0.51676-0.80271 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path79" d="m26.552 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path81" d="m21.66 34.032h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878 0 0.34796 0.21015 0.54088 0.21015 0.19293 0.58222 0.19293 0.52365 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50987-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33417 1.2712-0.33417h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path83" d="m22.404 41.222q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.34451 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path85" d="m13.909 48.398q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164 0-0.69935 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69935 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.34451 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path87" d="m17.412 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path89" d="m23.221 47.261q-0.20326-0.15848-0.41341-0.23082-0.21015-0.07235-0.46164-0.07235-0.59256 0-0.90606 0.37207-0.3135 0.37207-0.3135 1.0749v1.9189h-0.63734v-3.8585h0.63734v0.75448q0.15847-0.40997 0.48576-0.62701 0.33073-0.22049 0.78204-0.22049 0.23427 0 0.43753 0.05857t0.3893 0.18259z"/><path id="path91" d="m26.552 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path93" d="m22.897 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122 0.07579-0.89572 0-1.4022-0.53744-0.50298-0.53744-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744 1.4022-0.53744 0.27905 0 0.54433 0.07235 0.26527 0.07235 0.53399 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596 0-0.9164 0.38585t-0.32039 1.1024q0 0.71314 0.32039 1.1024 0.32384 0.38585 0.9164 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335 0.48576-0.31695z"/><path id="path95" d="m22.198 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15848 0.28594-0.42375 0.43753-0.26183 0.14814-0.60634 0.14814-0.69936 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40308-1.4745 0.40308-0.53744 1.099-0.53744 0.34796 0 0.61323 0.15158 0.26527 0.14814 0.41686 0.43408zm-1.8638 1.4401q0 0.73725 0.23427 1.1128 0.23427 0.37552 0.69246 0.37552t0.69591-0.37896q0.24116-0.37896 0.24116-1.1093 0-0.73381-0.24116-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69246 0.37552q-0.23427 0.37552-0.23427 1.1128z"/></g><path id="path25696" d="m4.5344 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path25958" d="m4.5344 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27085" d="m4.5344 46.199c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27490" d="m13.266 30.8-0.0056 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27629" d="m13.26 32.462c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path27844" d="m13.26 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path28236" d="m13.266 52.334-0.0056 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path28238" d="m13.26 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path28240" d="m13.26 60.92c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><g id="text31368" stroke-width=".26458px" aria-label="VFS tree:"><path id="path54" d="m2.096 5.3688-1.9637-5.1435h0.72692l1.6295 4.3305 1.633-4.3305h0.72347l-1.9603 5.1435z"/><path id="path56" d="m5.5962 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path58" d="m12.614 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576t-0.34795-0.91984q0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.065457 0.37552 0.065457 0.76826 0.19637z"/><path id="path60" d="m16.851 0.41479v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.7338 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path62" d="m21.227 2.1029q-0.1068-0.062012-0.23427-0.089573-0.12402-0.031006-0.27561-0.031006-0.53744 0-0.82682 0.3514-0.28594 0.34795-0.28594 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514 0.52021-0.52021 0.32039-0.17225 0.77859-0.17225 0.06546 0 0.14469 0.010335 0.07924 0.00689 0.1757 0.024116z"/><path id="path64" d="m25.037 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.075792-0.72692 0.075792-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path66" d="m29.378 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829 0.075792-0.72692 0.075792-0.92329 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954 0.45475 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path68" d="m30.58 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g id="text36298" fill="#0081cf" stroke-width=".26458px" aria-label="(unnamed)"><path id="path107" d="m51.063 16.265q-0.4582 0.78548-0.68557 1.5675-0.22393 0.77859-0.22393 1.571 0 0.78893 0.22393 1.571 0.22738 0.78204 0.68557 1.5744h-0.55122q-0.52021-0.81993-0.77515-1.5951-0.25494-0.77859-0.25494-1.5503 0-0.76826 0.25494-1.5468 0.25494-0.77859 0.77515-1.5916z"/><path id="path109" d="m52.934 20.158v-2.3909h0.6339v2.3909q0 0.52021 0.18259 0.76481 0.18604 0.2446 0.57189 0.2446 0.44786 0 0.68557-0.3135 0.23771-0.31695 0.23771-0.90606v-2.1807h0.63734v3.8516h-0.63734v-0.57878q-0.16881 0.33417-0.46164 0.50643-0.28939 0.17226-0.67868 0.17226-0.59256 0-0.88194-0.38585-0.28939-0.3893-0.28939-1.1748z"/><path id="path111" d="m60.13 19.228v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442 0-0.68557 0.31695-0.23771 0.3135-0.23771 0.90262v2.1807h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073 0.4582-0.49954 0.28939-0.17226 0.68557-0.17226 0.58911 0 0.8785 0.3893 0.29283 0.38585 0.29283 1.1713z"/><path id="path113" d="m64.378 19.228v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442 0-0.68558 0.31695-0.23771 0.3135-0.23771 0.90262v2.1807h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073 0.4582-0.49954 0.28939-0.17226 0.68558-0.17226 0.58911 0 0.8785 0.3893 0.29283 0.38585 0.29283 1.1713z"/><path id="path115" d="m67.424 19.68h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878 0 0.34796 0.21015 0.54088 0.21015 0.19293 0.58222 0.19293 0.52366 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50987-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33417 1.2712-0.33417h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512 0.25149 0.05512 0.75792z"/><path id="path117" d="m71.582 18.153q0.11713-0.24805 0.29628-0.36518 0.18259-0.12058 0.43753-0.12058 0.46509 0 0.65457 0.36174 0.19292 0.35829 0.19292 1.3539v2.2359h-0.57878v-2.2083q0-0.81649-0.09302-1.0129-0.08957-0.19982-0.33073-0.19982-0.27561 0-0.37896 0.2136-0.09991 0.21015-0.09991 0.99908v2.2083h-0.57878v-2.2083q0-0.82682-0.09991-1.0197-0.09646-0.19292-0.3514-0.19292-0.25149 0-0.3514 0.2136-0.09646 0.21015-0.09646 0.99908v2.2083h-0.57533v-3.8585h0.57533v0.33073q0.11369-0.20671 0.2825-0.3135 0.17225-0.11024 0.3893-0.11024 0.26183 0 0.43408 0.12058 0.1757 0.12058 0.27216 0.36518z"/><path id="path119" d="m77.332 19.531v0.31006h-2.7457v0.02067q0 0.63045 0.32728 0.97496 0.33073 0.34451 0.93018 0.34451 0.30317 0 0.6339-0.09646 0.33073-0.09646 0.70624-0.29283v0.63045q-0.36174 0.14814-0.69936 0.22049-0.33418 0.07579-0.64768 0.07579-0.89917 0-1.4056-0.53744-0.50643-0.54088-0.50643-1.4883 0-0.92329 0.49609-1.4745 0.49609-0.55122 1.3229-0.55122 0.73725 0 1.161 0.49954 0.42719 0.49954 0.42719 1.3643zm-0.6339-0.18604q-0.01378-0.55811-0.26527-0.84749-0.24805-0.29283-0.71658-0.29283-0.4582 0-0.75448 0.30317-0.29628 0.30317-0.3514 0.8406z"/><path id="path121" d="m80.705 18.253v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15848 0.28594-0.42375 0.43753-0.26183 0.14814-0.60634 0.14814-0.69935 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40308-1.4745 0.40308-0.53744 1.099-0.53744 0.34796 0 0.61323 0.15158 0.26527 0.14814 0.41686 0.43408zm-1.8638 1.44q0 0.73725 0.23427 1.1128 0.23427 0.37552 0.69246 0.37552t0.69591-0.37896q0.24116-0.37896 0.24116-1.1093 0-0.7338-0.24116-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69246 0.37552q-0.23427 0.37552-0.23427 1.1128z"/><path id="path123" d="m83.195 16.265h0.55122q0.52021 0.81304 0.77515 1.5916t0.25494 1.5468q0 0.77515-0.25494 1.5537t-0.77515 1.5916h-0.55122q0.4582-0.79926 0.68213-1.5813 0.22738-0.78204 0.22738-1.5641 0-0.78548-0.22738-1.5675-0.22393-0.78204-0.68213-1.571z"/></g><g id="text36320" stroke-width=".26458px" aria-label="FS B:"><path id="path98" d="m58.036 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path100" d="m65.053 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576-0.34795-0.33073-0.34795-0.91984 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.065457 0.37552 0.065457 0.76826 0.19637z"/><path id="path102" d="m69.387 2.9125v1.8845h1.1162q0.56155 0 0.83027-0.23082 0.27216-0.23427 0.27216-0.71314 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50987 0 0.75792-0.18948 0.25149-0.19293 0.25149-0.58567 0-0.3893-0.25149-0.58222-0.24805-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582 0 1.2265 0.33073t0.43064 0.94051q0 0.47198-0.22049 0.75103t-0.64768 0.34795q0.51332 0.11024 0.79582 0.46164 0.28594 0.34795 0.28594 0.87161 0 0.68902-0.46853 1.0645-0.46853 0.37552-1.3333 0.37552h-1.8466z"/><path id="path104" d="m73.666 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g id="text44877" stroke-width=".26458px" aria-label="Mounting FS Bon /foo/a:"><path id="path126" d="m98.942 0.34933h1.037l1.3126 3.5002 1.3195-3.5002h1.037v5.1435h-0.67869v-4.5165l-1.3264 3.5278h-0.69935l-1.3264-3.5278v4.5165h-0.67524z"/><path id="path128" d="m106.5 2.0788q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29284 1.0921 0.29627 0.39619 0.80959 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683 0 1.2988 0.53744 0.47197 0.53744 0.47197 1.4883 0 0.9474-0.47197 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path130" d="m109.25 3.9701v-2.3358h0.6339v2.3117q0 0.54777 0.2136 0.82338 0.21359 0.27216 0.64079 0.27216 0.51331 0 0.80959-0.32728 0.29973-0.32728 0.29973-0.89228v-2.1876h0.63389v3.8585h-0.63389v-0.59256q-0.23082 0.3514-0.53744 0.52365-0.30317 0.16881-0.70624 0.16881-0.66491 0-1.0094-0.41341-0.34451-0.41341-0.34451-1.2092z"/><path id="path132" d="m117 3.164v2.3289h-0.6339v-2.3082q0-0.54777-0.21359-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path134" d="m118.89 0.53881v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53055h-0.65112q-0.73381 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path id="path136" d="m121.03 1.6344h0.63389v3.8585h-0.63389zm0-1.5021h0.63389v0.80271h-0.63389z"/><path id="path138" d="m126.2 3.164v2.3289h-0.6339v-2.3082q0-0.54777-0.21359-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path140" d="m130 3.5188q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50987 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68557 0.2825 1.0645 0.28595 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753 0.48231-1.3401 0.48231-0.33418 0-0.63045-0.051677-0.29628-0.048231-0.57534-0.15158v-0.61667q0.27906 0.15158 0.55122 0.22393 0.27216 0.072347 0.55466 0.072347 0.62356 0 0.93362-0.32728 0.31006-0.32384 0.31006-0.98185v-0.3135q-0.19637 0.34106-0.50298 0.50987-0.30662 0.16881-0.73381 0.16881-0.70969 0-1.1438-0.54088-0.43408-0.54088-0.43408-1.4332 0-0.89573 0.43408-1.4366 0.43408-0.54088 1.1438-0.54088 0.42719 0 0.73381 0.16881 0.30661 0.16881 0.50298 0.50987v-0.58567h0.6339z"/><path id="path142" d="m134.21 0.34933h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path id="path144" d="m141.23 0.51814v0.67868q-0.39618-0.18948-0.74758-0.2825t-0.67869-0.093018q-0.56844 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676 0.20671 0.17225 0.77859 0.27905l0.42031 0.086127q0.77859 0.14814 1.1472 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954 0.38585-1.4676 0.38585-0.36518 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42374 0.23771 0.83026 0.35829 0.40653 0.12058 0.79927 0.12058 0.596 0 0.91984-0.23427 0.32384-0.23427 0.32384-0.66835 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42374-0.082682q-0.77859-0.15503-1.1266-0.48576-0.34795-0.33073-0.34795-0.91984 0-0.68213 0.47886-1.0749 0.48232-0.39274 1.3264-0.39274 0.36173 0 0.73725 0.065457 0.37551 0.065457 0.76825 0.19637z"/><path id="path146" d="m145.56 3.0365v1.8845h1.1162q0.56155 0 0.83027-0.23082 0.27216-0.23427 0.27216-0.71314 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50988 0 0.75792-0.18948 0.2515-0.19293 0.2515-0.58567 0-0.3893-0.2515-0.58222-0.24804-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582 0 1.2264 0.33073 0.43064 0.33073 0.43064 0.94051 0 0.47198-0.22049 0.75103-0.22048 0.27905-0.64767 0.34795 0.51332 0.11024 0.79581 0.46164 0.28595 0.34795 0.28595 0.87161 0 0.68902-0.46854 1.0645-0.46853 0.37552-1.3332 0.37552h-1.8466z"/><path id="path148" d="m108.99 9.2549q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47197 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883 0.47197-0.53744 1.3022-0.53744z"/><path id="path150" d="m115.02 10.34v2.3289h-0.63389v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332 0-0.8096 0.32728t-0.29628 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795 0.534-0.52021 0.31005-0.17225 0.71313-0.17225 0.6649 0 1.006 0.41341 0.34106 0.40997 0.34106 1.2092z"/><path id="path152" d="m119.65 7.5255h0.58567l-1.7914 5.7981h-0.58567z"/><path id="path154" d="m122.86 7.3084v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63735v-3.3659h-0.60633v-0.49265h0.60633v-0.26872q0-0.64423 0.29973-0.93707 0.29972-0.29628 0.95084-0.29628z"/><path id="path156" d="m124.88 9.2549q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29627-0.39963 0.29627-1.0887 0-0.68557-0.29627-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path158" d="m129.2 9.2549q-0.50988 0-0.80616 0.39963-0.29627 0.39619-0.29627 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.8027-0.39963 0.29628-0.39963 0.29628-1.0887 0-0.68557-0.29628-1.0852-0.29627-0.40308-0.8027-0.40308zm0-0.53744q0.82682 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883 0.47198-0.53744 1.3022-0.53744z"/><path id="path160" d="m133.15 7.5255h0.58567l-1.7915 5.7981h-0.58566z"/><path id="path162" d="m136.15 10.729q-0.76825 0-1.0645 0.1757t-0.29628 0.59945q0 0.33762 0.22049 0.53744 0.22393 0.19637 0.60633 0.19637 0.5271 0 0.84405-0.37207 0.3204-0.37552 0.3204-0.99563v-0.14125zm1.2644-0.26183v2.2014h-0.63389v-0.58567q-0.21704 0.3514-0.54088 0.52021-0.32384 0.16536-0.79238 0.16536-0.59255 0-0.94395-0.33073-0.34796-0.33417-0.34796-0.89228 0-0.65112 0.43408-0.98185 0.43753-0.33073 1.3022-0.33073h0.88884v-0.06201q0-0.43753-0.28939-0.67524-0.28594-0.24116-0.80615-0.24116-0.33073 0-0.64424 0.079237-0.3135 0.079237-0.60289 0.23771v-0.58567q0.34796-0.13436 0.67524-0.19982 0.32728-0.068902 0.63734-0.068902 0.83716 0 1.2506 0.43408t0.41341 1.316z"/><path id="path164" d="m138.88 11.794h0.72691v0.87506h-0.72691zm0-2.7733h0.72691v0.87505h-0.72691z"/></g><g id="text18565" stroke-width=".26458px" aria-label="/  foo/    b  bar/    c    d"><path id="path167" d="m114.16 16.476h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path169" d="m123.25 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13092 0.1378-0.13092 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.63389v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339 0.28938-0.93362 0.29284-0.29972 0.90951-0.29972z"/><path id="path171" d="m125.96 25.381q-0.48231 0-0.73036 0.37552-0.24804 0.37552-0.24804 1.1128 0 0.73381 0.24804 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375 1.509-0.42374 0.51676-1.2299 0.51676-0.8027 0-1.2264-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055 0.42375-0.52021 1.2264-0.52021z"/><path id="path173" d="m130.21 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.7338-0.37552 0.24805-0.37896 0.24805-1.1128 0-0.73725-0.24805-1.1128-0.24804-0.37552-0.7338-0.37552zm0-0.53744q0.80271 0 1.2264 0.52021 0.4272 0.52021 0.4272 1.5055 0 0.98874-0.42375 1.509-0.42375 0.51676-1.2299 0.51676-0.80271 0-1.2265-0.51676-0.42374-0.52021-0.42374-1.509 0-0.9853 0.42374-1.5055 0.42375-0.52021 1.2265-0.52021z"/><path id="path175" d="m135.4 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path177" d="m131.25 41.222q0-0.73725-0.23427-1.1128-0.23426-0.37552-0.69246-0.37552-0.46165 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408 0.26872-0.15158 0.62012-0.15158 0.6959 0 1.0955 0.53744 0.39963 0.53399 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.3445 0-0.60978-0.14814-0.26182-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path179" d="m122.75 48.398q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46165 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093 0.23771 0.37896 0.69936 0.37896 0.45819 0 0.69246-0.37552 0.23427-0.37552 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408 0.26871-0.15158 0.62011-0.15158 0.69591 0 1.0955 0.53744 0.39964 0.53399 0.39964 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099 0.54088-0.34451 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path id="path181" d="m126.26 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-3e-3 -0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302t-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55121 0.42375 0.13092 0.17226 0.18604 0.42719 0.0551 0.25149 0.0551 0.75792z"/><path id="path183" d="m132.07 47.261q-0.20326-0.15848-0.41342-0.23082-0.21015-0.07235-0.46164-0.07235-0.59255 0-0.90606 0.37207-0.3135 0.37207-0.3135 1.0749v1.9189h-0.63735v-3.8585h0.63735v0.75448q0.15847-0.40997 0.48576-0.62701 0.33073-0.22049 0.78203-0.22049 0.23427 0 0.43753 0.05857t0.3893 0.18259z"/><path id="path185" d="m135.4 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path187" d="m131.74 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122 0.07579-0.89572 0-1.4022-0.53744-0.50299-0.53744-0.50299-1.4883t0.50299-1.4883q0.50643-0.53744 1.4022-0.53744 0.27905 0 0.54433 0.07235 0.26527 0.07235 0.53399 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596 0-0.91639 0.38585-0.3204 0.38585-0.3204 1.1024 0 0.71314 0.3204 1.1024 0.32384 0.38585 0.91639 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335 0.48576-0.31695z"/><path id="path189" d="m131.04 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15847 0.28594-0.42374 0.43753-0.26183 0.14814-0.60634 0.14814-0.69936 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40307-1.4745 0.40308-0.53744 1.099-0.53744 0.34795 0 0.61323 0.15158 0.26527 0.14814 0.41685 0.43408zm-1.8638 1.4401q0 0.73725 0.23427 1.1128t0.69247 0.37552q0.45819 0 0.69591-0.37896 0.24115-0.37896 0.24115-1.1093 0-0.73381-0.24115-1.1093-0.23772-0.37896-0.69591-0.37896-0.4582 0-0.69247 0.37552t-0.23427 1.1128z"/></g><path id="path18567" d="m113.38 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18569" d="m113.38 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18571" d="m113.38 46.199c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18573" d="m122.11 30.8-6e-3 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18575" d="m122.11 32.462c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18577" d="m122.11 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18579" d="m122.11 52.334-6e-3 8.5867" fill="none" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18581" d="m122.11 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><path id="path18583" d="m122.11 60.92c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none" marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><g id="text22069" fill="#0081cf" stroke-width=".26458px" aria-label="a"><path id="path192" d="m130.57 33.771h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878 0 0.34796 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52365 0 0.82338-0.36174 0.29972-0.36518 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326 0.34451-0.51332 0.50988-0.30662 0.16192-0.74759 0.16192-0.58911 0-0.94051-0.33073-0.3514-0.33418-0.3514-0.89228 0-0.64423 0.43064-0.97841 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-3e-3 -0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457 0.09302t-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125 0.55121 0.42375 0.13092 0.17226 0.18604 0.42719 0.0551 0.25149 0.0551 0.75792z"/></g></svg>
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 10:25 [qemu-web PATCH] Add a blog post about FUSE block exports Hanna Reitz
@ 2021-08-19 10:37 ` Philippe Mathieu-Daudé
  2021-08-19 11:00   ` Hanna Reitz
  2021-08-19 16:23 ` Stefan Hajnoczi
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-08-19 10:37 UTC (permalink / raw)
  To: Hanna Reitz, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, John Snow, Stefan Hajnoczi

On 8/19/21 12:25 PM, Hanna Reitz wrote:
> This post explains when FUSE block exports are useful, how they work,
> and that it is fun to export an image file on its own path so it looks
> like your image file (in whatever format it was) is a raw image now.
> 
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
> You can also find this patch here:
> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
> 
> My first patch to qemu-web, so I hope I am not doing anything overly
> stupid here (adding SVGs with extremely long lines comes to mind)...

GitLab allows Mermaid and PlantUML diagrams in all tiers products:

https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts
https://about.gitlab.com/handbook/markdown-guide/#diagrams

I find the mermaid live editor easy to use:
https://mermaid-js.github.io/mermaid-live-editor/

(I looked at that recently because I'd like the pages job to
 generate QOM dependencies tree).

> ---
>  _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
>  screenshots/2021-08-18-block-graph-a.svg  |   2 +
>  screenshots/2021-08-18-block-graph-b.svg  |   2 +
>  screenshots/2021-08-18-block-graph-c.svg  |   2 +
>  screenshots/2021-08-18-block-graph-d.svg  |   2 +
>  screenshots/2021-08-18-block-graph-e.svg  |   2 +
>  screenshots/2021-08-18-root-directory.svg |   2 +
>  screenshots/2021-08-18-root-file.svg      |   2 +
>  8 files changed, 502 insertions(+)
>  create mode 100644 _posts/2021-08-18-fuse-blkexport.md
>  create mode 100644 screenshots/2021-08-18-block-graph-a.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-b.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-c.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-d.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-e.svg
>  create mode 100644 screenshots/2021-08-18-root-directory.svg
>  create mode 100644 screenshots/2021-08-18-root-file.svg



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 10:37 ` Philippe Mathieu-Daudé
@ 2021-08-19 11:00   ` Hanna Reitz
  2021-08-19 11:09     ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 16+ messages in thread
From: Hanna Reitz @ 2021-08-19 11:00 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, John Snow, Stefan Hajnoczi

On 19.08.21 12:37, Philippe Mathieu-Daudé wrote:
> On 8/19/21 12:25 PM, Hanna Reitz wrote:
>> This post explains when FUSE block exports are useful, how they work,
>> and that it is fun to export an image file on its own path so it looks
>> like your image file (in whatever format it was) is a raw image now.
>>
>> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
>> ---
>> You can also find this patch here:
>> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
>>
>> My first patch to qemu-web, so I hope I am not doing anything overly
>> stupid here (adding SVGs with extremely long lines comes to mind)...
> GitLab allows Mermaid and PlantUML diagrams in all tiers products:
>
> https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts
> https://about.gitlab.com/handbook/markdown-guide/#diagrams
>
> I find the mermaid live editor easy to use:
> https://mermaid-js.github.io/mermaid-live-editor/
>
> (I looked at that recently because I'd like the pages job to
>   generate QOM dependencies tree).

Interesting, but it does seem limiting, so unless adding SVG graphs is 
unacceptable, I’d rather avoid it, to be honest...

Hanna



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 11:00   ` Hanna Reitz
@ 2021-08-19 11:09     ` Philippe Mathieu-Daudé
  2021-08-19 11:17       ` Hanna Reitz
  0 siblings, 1 reply; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-08-19 11:09 UTC (permalink / raw)
  To: Hanna Reitz, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, John Snow, Stefan Hajnoczi

On 8/19/21 1:00 PM, Hanna Reitz wrote:
> On 19.08.21 12:37, Philippe Mathieu-Daudé wrote:
>> On 8/19/21 12:25 PM, Hanna Reitz wrote:
>>> This post explains when FUSE block exports are useful, how they work,
>>> and that it is fun to export an image file on its own path so it looks
>>> like your image file (in whatever format it was) is a raw image now.
>>>
>>> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
>>> ---
>>> You can also find this patch here:
>>> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
>>>
>>> My first patch to qemu-web, so I hope I am not doing anything overly
>>> stupid here (adding SVGs with extremely long lines comes to mind)...
>> GitLab allows Mermaid and PlantUML diagrams in all tiers products:
>>
>> https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts
>> https://about.gitlab.com/handbook/markdown-guide/#diagrams
>>
>> I find the mermaid live editor easy to use:
>> https://mermaid-js.github.io/mermaid-live-editor/
>>
>> (I looked at that recently because I'd like the pages job to
>>   generate QOM dependencies tree).
> 
> Interesting, but it does seem limiting, so unless adding SVG graphs is
> unacceptable, I’d rather avoid it, to be honest...

Understandable ;) (I haven't said it is unacceptable).

However I expect long term text-based generated diagrams to be easier
to review. But I'm not sure, maybe the whole text is shuffled around
and this argument is pointless.



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 11:09     ` Philippe Mathieu-Daudé
@ 2021-08-19 11:17       ` Hanna Reitz
  0 siblings, 0 replies; 16+ messages in thread
From: Hanna Reitz @ 2021-08-19 11:17 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Kevin Wolf, Thomas Huth, John Snow, Stefan Hajnoczi

On 19.08.21 13:09, Philippe Mathieu-Daudé wrote:
> On 8/19/21 1:00 PM, Hanna Reitz wrote:
>> On 19.08.21 12:37, Philippe Mathieu-Daudé wrote:
>>> On 8/19/21 12:25 PM, Hanna Reitz wrote:
>>>> This post explains when FUSE block exports are useful, how they work,
>>>> and that it is fun to export an image file on its own path so it looks
>>>> like your image file (in whatever format it was) is a raw image now.
>>>>
>>>> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
>>>> ---
>>>> You can also find this patch here:
>>>> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
>>>>
>>>> My first patch to qemu-web, so I hope I am not doing anything overly
>>>> stupid here (adding SVGs with extremely long lines comes to mind)...
>>> GitLab allows Mermaid and PlantUML diagrams in all tiers products:
>>>
>>> https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts
>>> https://about.gitlab.com/handbook/markdown-guide/#diagrams
>>>
>>> I find the mermaid live editor easy to use:
>>> https://mermaid-js.github.io/mermaid-live-editor/
>>>
>>> (I looked at that recently because I'd like the pages job to
>>>    generate QOM dependencies tree).
>> Interesting, but it does seem limiting, so unless adding SVG graphs is
>> unacceptable, I’d rather avoid it, to be honest...
> Understandable ;) (I haven't said it is unacceptable).

Yes, but perhaps others think that, so... :)

> However I expect long term text-based generated diagrams to be easier
> to review. But I'm not sure, maybe the whole text is shuffled around
> and this argument is pointless.

Definitely thanks for the pointer!  At the very least, I now know for 
future posts.

Hanna



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 10:25 [qemu-web PATCH] Add a blog post about FUSE block exports Hanna Reitz
  2021-08-19 10:37 ` Philippe Mathieu-Daudé
@ 2021-08-19 16:23 ` Stefan Hajnoczi
  2021-08-20  7:56   ` Hanna Reitz
  2021-08-19 18:22 ` Klaus Kiwi
  2021-08-20 21:24 ` Eric Blake
  3 siblings, 1 reply; 16+ messages in thread
From: Stefan Hajnoczi @ 2021-08-19 16:23 UTC (permalink / raw)
  To: Hanna Reitz; +Cc: Kevin Wolf, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 2145 bytes --]

On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
> This post explains when FUSE block exports are useful, how they work,
> and that it is fun to export an image file on its own path so it looks
> like your image file (in whatever format it was) is a raw image now.
> 
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
> You can also find this patch here:
> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
> 
> My first patch to qemu-web, so I hope I am not doing anything overly
> stupid here (adding SVGs with extremely long lines comes to mind)...
> ---
>  _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
>  screenshots/2021-08-18-block-graph-a.svg  |   2 +
>  screenshots/2021-08-18-block-graph-b.svg  |   2 +
>  screenshots/2021-08-18-block-graph-c.svg  |   2 +
>  screenshots/2021-08-18-block-graph-d.svg  |   2 +
>  screenshots/2021-08-18-block-graph-e.svg  |   2 +
>  screenshots/2021-08-18-root-directory.svg |   2 +
>  screenshots/2021-08-18-root-file.svg      |   2 +
>  8 files changed, 502 insertions(+)
>  create mode 100644 _posts/2021-08-18-fuse-blkexport.md
>  create mode 100644 screenshots/2021-08-18-block-graph-a.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-b.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-c.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-d.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-e.svg
>  create mode 100644 screenshots/2021-08-18-root-directory.svg
>  create mode 100644 screenshots/2021-08-18-root-file.svg

Great! Two ideas:

It would be nice to include a shoutout to libguestfs and mention that
libguestfs avoids exposing the host kernel's file systems and partion
code to untrusted disk images. If you don't mount the image then the
FUSE export has similar security properties.

This is a long blog post. One idea is to show a quickstart
qemu-storage-daemon FUSE export command-line in the beginning before
explaining all the details. That way people who just want to see what
this is about can get an idea without learning all the background first.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 10:25 [qemu-web PATCH] Add a blog post about FUSE block exports Hanna Reitz
  2021-08-19 10:37 ` Philippe Mathieu-Daudé
  2021-08-19 16:23 ` Stefan Hajnoczi
@ 2021-08-19 18:22 ` Klaus Kiwi
  2021-08-20  9:03   ` Hanna Reitz
  2021-08-20 21:24 ` Eric Blake
  3 siblings, 1 reply; 16+ messages in thread
From: Klaus Kiwi @ 2021-08-19 18:22 UTC (permalink / raw)
  To: Hanna Reitz; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 229570 bytes --]

On Thu, Aug 19, 2021 at 7:27 AM Hanna Reitz <hreitz@redhat.com> wrote:

> This post explains when FUSE block exports are useful, how they work,
> and that it is fun to export an image file on its own path so it looks
> like your image file (in whatever format it was) is a raw image now.
>
>
Thanks Hanna, great work. Even if you explained this to me multiple times,
thanks to this I think I now finally understand *how* it works.


> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
> You can also find this patch here:
> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
>
> My first patch to qemu-web, so I hope I am not doing anything overly
> stupid here (adding SVGs with extremely long lines comes to mind)...
> ---
>  _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
>  screenshots/2021-08-18-block-graph-a.svg  |   2 +
>  screenshots/2021-08-18-block-graph-b.svg  |   2 +
>  screenshots/2021-08-18-block-graph-c.svg  |   2 +
>  screenshots/2021-08-18-block-graph-d.svg  |   2 +
>  screenshots/2021-08-18-block-graph-e.svg  |   2 +
>  screenshots/2021-08-18-root-directory.svg |   2 +
>  screenshots/2021-08-18-root-file.svg      |   2 +
>  8 files changed, 502 insertions(+)
>  create mode 100644 _posts/2021-08-18-fuse-blkexport.md
>  create mode 100644 screenshots/2021-08-18-block-graph-a.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-b.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-c.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-d.svg
>  create mode 100644 screenshots/2021-08-18-block-graph-e.svg
>  create mode 100644 screenshots/2021-08-18-root-directory.svg
>  create mode 100644 screenshots/2021-08-18-root-file.svg
>
> diff --git a/_posts/2021-08-18-fuse-blkexport.md
> b/_posts/2021-08-18-fuse-blkexport.md
> new file mode 100644
> index 0000000..e6a55d0
> --- /dev/null
> +++ b/_posts/2021-08-18-fuse-blkexport.md
> @@ -0,0 +1,488 @@
> +---
> +layout: post
> +title:  "Exporting block devices as raw image files with FUSE"
> +date:   2021-08-18 18:00:00 +0200
> +author: Hanna Reitz
> +categories: [storage, features, tutorials]
>

Non-fatal, but I feel that the title doesn't summarize all that this' blog
posts is about.
An alternate suggestion might be in the lines of "A look into QEMU's FUSE
export
feature, and how to use it to manipulate guest images".



> +---
> +Sometimes, there is a VM disk image whose contents you want to manipulate
> +without booting the VM.  For raw images, that process is usually fairly
> simple,
> +because most Linux systems bring tools for the job, e.g.:
> +* *dd* to just copy data to and from given offsets,
> +* *parted* to manipulate the partition table,
> +* *kpartx* to present all partitions as block devices,
> +* *mount* to access filesystems’ contents.
> +
> +Sadly, but naturally, such tools only work for raw images, and not for
> images
> +e.g. in QEMU’s qcow2 format.  To access such an image’s content, the
> format has
> +to be translated to create a raw image, for example by:
> +* Exporting the image file with `qemu-nbd -c` as an NBD block device file,
> +* Converting between image formats using `qemu-img convert`,
> +* Accessing the image from a guest, where it appears as a normal block
> device.
> +
>
Guessing that this would be the best place to mention
guestmount/libguestfs, as Stefan
mentioned in another reply to this thread?

Bonus points if you can identify (dis)advantages, similarly to that you did
below
with the other methods.


> +Unfortunately, none of these methods is perfect: `qemu-nbd -c` generally
> +requires root rights, converting to a temporary raw copy requires
> additional
> +disk space and the conversion process takes time, and accessing the image
> from a
> +guest is just quite cumbersome in general (and also specifically
> something that
> +we set out to avoid in the first sentence of this blog post).
> +
> +As of QEMU 6.0, there is another method, namely FUSE block exports.
> +Conceptually, these are rather similar to using `qemu-nbd -c`, but they
> do not
> +require root rights.
> +
> +**Note**: FUSE block exports are a feature that can be enabled or disabled
> +during the build process with `--enable-fuse` or `--disable-fuse`,
> respectively;
> +omitting either configure option will enable the feature if and only if
> libfuse3
> +is present.  It is possible that the QEMU build you are using does not
> have FUSE
> +block export support, because it was not compiled in.
> +
> +FUSE (*Filesystem in Userspace*) is a technology to let userspace
> processes
> +provide filesystem drivers.  For example, *sshfs* is a program that allows
> +mounting remote directories from a machine accessible via SSH.
> +
>

Nitpicking but maybe FUSE here could link to another tutorial/wikipedia page
with more info?


> +QEMU can use FUSE to make a virtual block device appear as a normal file
> on the
> +host, so that tools like *kpartx* can interact with it regardless of the
> image
> +format.
> +
> +## Background information
> +
> +### File mounts
>
> I must confess that, as I've gone through the document, this felt a bit
like breaking
the flow (probably due to my pre-conceptions of always mounting a resource
into
some directory to see it's content, which I guess was what I was expecting
this
would go before talking about mounting files).

I understand now, however, that this introduction is necessary, but perhaps
something like "Before we are able to use QEMU's FUSE exports, we need to
clarify
some fundamental concepts on the VFS and mountpoints: It is a little-known
fact
that <...>" would help me understand the flow better here.


> +A perhaps little-known fact is that, on Linux, filesystems do not need to
> have
> +a root directory, they only need to have a root node.  A filesystem that
> only
> +provides a single regular file is perfectly valid.
> +
> +Conceptually, every filesystem is a tree, and mounting works by replacing
> one
> +subtree of the global VFS tree by the mounted filesystem’s tree.
> Normally, a
> +filesystem’s root node is a directory, like in the following example:
> +
> +|![Regular filesystem: Root directory is mounted to a directory mount
> point](/screenshots/2021-08-18-root-directory.svg)|
> +|:--:|
> +|*Fig. 1: Mounting a regular filesystem with a directory as its root
> node*|
> +
> +Here, the directory `/foo` and its content (the files `/foo/a` and
> `/foo/b`) are
> +shadowed by the new filesystem (showing `/foo/x` and `/foo/y`).
> +
>

Must confess that I wish there were a better term for it than 'shadowed
directory'
or 'shadowed file', avoiding potential confusion with things like
/etc/shadow or
'shadow memory'.. But I couldn't think if any.


> +Note that a filesystem’s root node generally has no name.  After
> mounting, the
> +filesystem’s root directory’s name is determined by the original name of
> the
> +mount point.
> +
> +Because a tree does not need to have multiple nodes but may consist of
> just a
> +single leaf, a filesystem with a file for its root node works just as
> well,
> +though:
> +
> +|![Mounting a file root node to a regular file mount
> point](/screenshots/2021-08-18-root-file.svg)|
> +|:--:|
> +|*Fig. 2: Mounting a filesystem with a regular (unnamed) file as its root
> node*|
> +
> +Here, FS B only consists of a single node, a regular file with no name.
> (As
> +above, a filesystem’s root node is generally unnamed.) Consequently, the
> mount
> +point for it must also be a regular file (`/foo/a` in our example), and
> just
> +like before, the content of `/foo/a` is shadowed, and when opening it,
> one will
> +instead see the contents of FS B’s unnamed root node.
> +
> +### QEMU block exports
> +
> +QEMU allows exporting block nodes via various protocols (as of 6.0: NBD,
> +vhost-user, FUSE).  A block node is an element of QEMU’s block graph (see
> e.g.
> +[Managing the New Block Layer](
> http://events17.linuxfoundation.org/sites/events/files/slides/talk\_11.pdf
> ),
> +a talk given at KVM Forum 2017), which can for example be attached to
> guest
> +devices.  Here is a very simple example:
> +
> +|![Block graph: image file <-> file node (label: prot-node) <-> qcow2
> node (label: fmt-node) <-> virtio-blk guest
> device](/screenshots/2021-08-18-block-graph-a.svg)|
> +|:--:|
> +|*Fig. 3: A simple block graph for attaching a qcow2 image to a
> virtio-blk guest device*|
> +
> +This is the simplest example for a block graph that connects a
> *virtio-blk*
> +guest device to a qcow2 image file.  The *file* block driver, instanced
> in the
> +form of a block node named *prot-node*, accesses the actual file and
> provides
> +the node above it access to the raw content.  This node above, named
> *fmt-node*,
> +is handled by the *qcow2* block driver, which is capable of interpreting
> the
> +qcow2 format.  Parents of this node will therefore see the actual content
> of the
> +virtual disk that is represented by the qcow2 image.  There is only one
> parent
> +here, which is the *virtio-blk* guest device, which will thus see the
> virtual
> +disk.
> +
> +The command line to achieve the above could look something like this:
> +```
> +$ qemu-system-x86_64 \
> +    -blockdev node-name=prot-node,driver=file,filename=$image_path \
> +    -blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
> +    -device virtio-blk,drive=fmt-node
> +```
> +
> +Besides attaching guest devices to block nodes, you can also export them
> for
> +users outside of qemu, for example via NBD.  Say you have a QMP channel
> open for
> +the QEMU instance above, then you could do this:
>

As much as I hate to say it, wouldn't it be better to give the example
below using
(legacy?) qemu monitor commands, instead of JSON? Unless it cannot be done
that way
of course, they feel more intuitive/recognizable to me I think.

+```json
> +{
> +    "execute": "nbd-server-start",
> +    "arguments": {
> +        "addr": {
> +            "type": "inet",
> +            "data": {
> +                "host": "localhost",
> +                "port": "10809"
> +            }
> +        }
> +    }
> +}
> +{
> +    "execute": "block-export-add",
> +    "arguments": {
> +        "type": "nbd",
> +        "id": "fmt-node-export",
> +        "node-name": "fmt-node",
> +        "name": "guest-disk"
> +    }
> +}
> +```
> +
> +This opens an NBD server on `localhost:10809`, which exports *fmt-node*
> (under
> +the NBD export name *guest-disk*).  The block graph looks as follows:
> +
> +|![Same block graph as fig. 3, but with an NBD server attached to
> fmt-node](/screenshots/2021-08-18-block-graph-b.svg)|
> +|:--:|
> +|*Fig. 4: Block graph extended by an NBD server*|
> +
> +NBD clients connecting to this server will see the raw disk as seen by the
> +guest – we have *exported* the guest disk:
> +
> +```
> +$ qemu-img info nbd://localhost/guest-disk
> +image: nbd://localhost:10809/guest-disk
> +file format: raw
> +virtual size: 20 GiB (21474836480 bytes)
> +disk size: unavailable
> +```
> +
> +### QEMU storage daemon
> +
> +If you are not running a guest, and so do not need guest devices, but all
> you
> +want is to use the QEMU block layer (for example to interpret the qcow2
> format)
> +and export nodes from the block graph, then you can use the more
> lightweight
> +QEMU storage daemon instead of a full-blown QEMU process:
> +
> +```
> +$ qemu-storage-daemon \
> +    --blockdev node-name=prot-node,driver=file,filename=$image_path \
> +    --blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
> +    --nbd-server addr.type=inet,addr.host=localhost,addr.port=10809 \
> +    --export
> type=nbd,id=fmt-node-export,node-name=fmt-node,name=guest-disk
> +```
> +
> +Which creates the following block graph:
> +
> +|![Block graph: image file <-> file node (label: prot-node) <-> qcow2
> node (label: fmt-node) <-> NBD
> server](/screenshots/2021-08-18-block-graph-c.svg)|
> +|:--:|
> +|*Fig. 5: Exporting a qcow2 image over NBD*|
> +
> +## FUSE block exports
> +
> +Besides NBD exports, QEMU also supports vhost-user and FUSE exports.
> FUSE block
> +exports make QEMU become a FUSE driver that provides a filesystem that
> consists
> +of only a single node, namely a regular file that has the raw contents of
> the
> +exported block node.  QEMU will automatically mount this filesystem on a
> given
> +existing regular file (which acts as the mount point, as described in the
> +“File mounts” section).
> +
> +Thus, FUSE exports can be used like this:
> +
> +```
> +$ touch mount-point
> +
> +$ qemu-storage-daemon \
> +    --blockdev node-name=prot-node,driver=file,filename=$image_path \
> +    --blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
> +    --export
> type=fuse,id=fmt-node-export,node-name=fmt-node,mountpoint=mount-point
> +```
> +
> +The mount point now appears as the raw VM disk that is stored in the qcow2
> +image:
> +```
> +$ qemu-img info mount-point
> +image: mount-point
> +file format: raw
> +virtual size: 20 GiB (21474836480 bytes)
> +disk size: 196 KiB
> +```
> +
> +And *mount* tells us that this is indeed its own filesystem:
> +```
> +$ mount | grep mount-point
> +/dev/fuse on /tmp/mount-point type fuse
> (rw,nosuid,nodev,relatime,user_id=1000,group_id=100,default_permissions,allow_other,max_read=67108864)
> +```
> +
> +The block graph looks like this:
> +
> +|![Block graph: image file <-> file node (label: prot-node) <-> qcow2
> node (label: fmt-node) <-> FUSE server <-> exported
> file](/screenshots/2021-08-18-block-graph-d.svg)|
> +|:--:|
> +|*Fig. 6: Exporting a qcow2 image over FUSE*|
> +
> +Closing the storage daemon (e.g. with Ctrl-C) automatically unmounts the
> export,
> +turning the mount point back into an empty normal file:
> +
> +```
> +$ mount | grep -c mount-point
> +0
> +
> +$ qemu-img info mount-point
> +image: mount-point
> +file format: raw
> +virtual size: 0 B (0 bytes)
> +disk size: 0 B
> +```
> +
> +## Mounting an image on itself
> +
> +So far, we have seen what FUSE exports are, how they work, and how they
> can be
> +used.  Now let’s add an interesting twist.
> +
> +### What happens to the old tree under a mount point?
> +
> +Mounting a filesystem only shadows the mount point’s original content, it
> does
> +not remove it.  The original content can no longer be looked up via its
> +(absolute) path, but it is still there, much like a file that has been
> unlinked
> +but is still open in some process.  Here is an example:
> +
> +First, create some file in some directory, and have some process keep it
> open:
> +
> +```
> +$ mkdir foo
> +
> +$ echo 'Is anyone there?' > foo/bar
> +
> +$ irb
> +irb(main):001:0> f = File.open('foo/bar', 'r+')
> +=> #<File:foo/bar>
> +irb(main):002:0> ^Z
> +[1]  + 35494 suspended  irb
> +```
> +
> +Next, mount something on the directory:
> +
> +```
> +$ sudo mount -t tmpfs tmpfs foo
> +```
> +
> +The file cannot be found anymore (because *foo*’s content is shadowed by
> the
> +mounted filesystem), but the process who kept it open can still read from
> it,
> +and write to it:
> +```
> +$ ls foo
> +
> +$ cat foo/bar
> +cat: foo/bar: No such file or directory
> +
> +$ fg
> +f.read
> +irb(main):002:0> f.read
> +=> "Is anyone there?\n"
> +irb(main):003:0> f.puts('Hello from the shadows!')
> +=> nil
> +irb(main):004:0> exit
> +
> +$ ls foo
> +
> +$ cat foo/bar
> +cat: foo/bar: No such file or directory
> +```
> +
> +Unmounting the filesystem lets us see our file again, with its updated
> content:
> +```
> +$ sudo umount foo
> +
> +$ ls foo
> +bar
> +
> +$ cat foo/bar
> +Is anyone there?
> +Hello from the shadows!
> +```
> +
> +### Letting a FUSE export shadow its image file
> +
> +The same principle applies to file mounts: The original inode is shadowed
> (along
> +with its content), but it is still there for any process that opened it
> before
> +the mount occurred.  Because QEMU (or the storage daemon) opens the image
> file
> +before mounting the FUSE export, you can therefore specify an image’s
> path as
> +the mount point for its corresponding export:
> +
> +```
> +$ qemu-img create -f qcow2 foo.qcow2 20G
> +Formatting 'foo.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off
> compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
> +
> +$ qemu-img info foo.qcow2
> +image: foo.qcow2
> +file format: qcow2
> +virtual size: 20 GiB (21474836480 bytes)
> +disk size: 196 KiB
> +cluster_size: 65536
> +Format specific information:
> +    compat: 1.1
> +    compression type: zlib
> +    lazy refcounts: false
> +    refcount bits: 16
> +    corrupt: false
> +    extended l2: false
> +
> +$ qemu-storage-daemon \
> +    --blockdev
> node-name=node0,driver=qcow2,file.driver=file,file.filename=foo.qcow2 \
> +    --export
> type=fuse,id=node0-export,node-name=node0,mountpoint=foo.qcow2 &
> +[1] 40843
> +
> +$ qemu-img info foo.qcow2
> +image: foo.qcow2
> +file format: raw
> +virtual size: 20 GiB (21474836480 bytes)
> +disk size: 196 KiB
> +
> +$ kill %1
> +[1]  + 40843 done       qemu-storage-daemon --blockdev  --export
> +```
> +
> +In graph form, that looks like this:
> +
> +|![Two graphs: First, foo.qcow2 is opened by QEMU; second, a FUSE server
> exports the raw disk under foo.qcow2, thus shadowing the original
> foo.qcow2](/screenshots/2021-08-18-block-graph-e.svg)|
> +|:--:|
> +|*Fig. 6: Exporting a qcow2 image via FUSE on its own path*|
> +
> +QEMU (or the storage daemon in this case) keeps the original (qcow2) file
> open,
> +and so it keeps access to it, even after the mount.  However, any other
> process
> +that opens the image by name (i.e. `open("foo.qcow2")`) will open the raw
> disk
> +image exported by QEMU.  Therefore, it looks like the qcow2 image is in
> raw
> +format now.
> +
> +### `qemu-fuse-disk-export.py`
> +
> +Because the QEMU storage daemon command line tends to become kind of
> long, I’ve
> +written a script to facilitate the process:
> +[qemu-fuse-disk-export.py](
> https://gitlab.com/hreitz/qemu-scripts/-/blob/main/qemu-fuse-disk-export.py
> )
> +([direct download link](
> https://gitlab.com/hreitz/qemu-scripts/-/raw/main/qemu-fuse-disk-export.py?inline=false)
> ).
> +This script automatically detects the image format, and its `--daemonize`
> option
> +allows safe use in scripts, where it is important that the process blocks
> until
> +the export is fully set up.
> +
> +Using `qemu-fuse-disk-export.py`, the above example looks like this:
> +```
> +$ qemu-img info foo.qcow2 | grep 'file format'
> +file format: qcow2
> +
> +$ qemu-fuse-disk-export.py foo.qcow2 &
> +[1] 13339
> +All exports set up, ^C to revert
> +
> +$ qemu-img info foo.qcow2 | grep 'file format'
> +file format: raw
> +
> +$ kill -SIGINT %1
> +[1]  + 13339 done       qemu-fuse-disk-export.py foo.qcow2
> +
> +$ qemu-img info foo.qcow2 | grep 'file format'
> +file format: qcow2
> +```
> +
> +Or, with `--daemonize`/`-d`:
> +```
> +$ qemu-img info foo.qcow2 | grep 'file format'
> +file format: qcow2
> +
> +$ qemu-fuse-disk-export.py -dp qfde.pid foo.qcow2
> +
> +$ qemu-img info foo.qcow2 | grep 'file format'
> +file format: raw
> +
> +$ kill -SIGINT $(cat qfde.pid)
> +
> +$ qemu-img info foo.qcow2 | grep 'file format'
> +file format: qcow2
> +```
> +
> +## Bringing it all together
> +
> +Now we know how to make disk images in any format understood by QEMU
> appear as
> +raw images.  We can thus run any application on them that works with such
> raw
> +disk images:
> +
> +```
> +$ qemu-fuse-disk-export.py \
> +    -dp qfde.pid \
> +    Arch-Linux-x86_64-basic-20210711.28787.qcow2
> +
> +$ parted Arch-Linux-x86_64-basic-20210711.28787.qcow2 p
> +WARNING: You are not superuser.  Watch out for permissions.
> +Model:  (file)
> +Disk /tmp/Arch-Linux-x86_64-basic-20210711.28787.qcow2: 42.9GB
> +Sector size (logical/physical): 512B/512B
> +Partition Table: gpt
> +Disk Flags:
> +
> +Number  Start   End     Size    File system  Name  Flags
> + 1      1049kB  2097kB  1049kB                     bios_grub
> + 2      2097kB  42.9GB  42.9GB  btrfs
> +
> +$ sudo kpartx -av Arch-Linux-x86_64-basic-20210711.28787.qcow2
> +add map loop0p1 (254:0): 0 2048 linear 7:0 2048
> +add map loop0p2 (254:1): 0 83881951 linear 7:0 4096
> +
> +$ sudo mount /dev/mapper/loop0p2 /mnt/tmp
> +
> +$ ls /mnt/tmp
> +bin   boot  dev  etc  home  lib  lib64  mnt  opt  proc  root  run  sbin
> srv
> +swap  sys   tmp  usr  var
> +
> +$ echo 'Hello, qcow2 image!' > /mnt/tmp/home/arch/hello
> +
> +$ sudo umount /mnt/tmp
> +
> +$ sudo kpartx -d Arch-Linux-x86_64-basic-20210711.28787.qcow2
> +loop deleted : /dev/loop0
> +
> +$ kill -SIGINT $(cat qfde.pid)
> +```
> +
> +And launching the image, in the guest we see:
> +```
> +[arch@archlinux ~] cat hello
> +Hello, qcow2 image!
> +```
> +
> +## A note on `allow_other`
> +
> +In the example presented in the above section, we access the exported
> image with
> +a different user than the one who exported it (to be specific, we export
> it as a
> +normal user, and then access it as root).  This does not work prior to
> QEMU 6.1:
> +
> +```
> +$ qemu-fuse-disk-export.py -dp qfde.pid foo.qcow2
> +
> +$ sudo stat foo.qcow2
> +stat: cannot statx 'foo.qcow2': Permission denied
> +```
> +
> +QEMU 6.1 has introduced support for FUSE’s `allow_other` mount option.
> Without
> +that option, only the user who exported the image has access to it.  By
> default,
> +if the system allows for non-root users to add `allow_other` to FUSE mount
> +options, QEMU will add it, and otherwise omit it.  It does so by simply
> +attempting to mount the export with `allow_other` first, and if that
> fails, it
> +will try again without.  (You can also force the behavior with the
> +`allow_other=(on|off|auto)` export parameter.)
> +
> +Non-root users can pass `allow_other` if and only if `/etc/fuse.conf`
> contains
> +the `user_allow_other` option.
> +
> +## Conclusion
> +
> +As shown in this blog post, FUSE block exports are a relatively simple
> way to
> +access images in any format understood by QEMU as if they were raw images.
> +Any tool that can manipulate raw disk images can thus manipulate images
> in any
> +format, simply by having the QEMU storage daemon provide a translation
> layer.
> +By mounting the FUSE export on the original image path, this translation
> layer
> +will effectively be invisible, and the original image will look like it
> is in
> +raw format, so it can directly be accessed by those tools.
> +
> +The current main disadvantage of FUSE exports is that they offer
> relatively bad
> +performance.  That should be fine as long as your use case is just light
> +manipulation of some VM images, like manually modifying some files on
> them.
> +However, we did not yet really try to optimize performance, so if more
> serious
> +use cases appear that would require better performance, we can try.
> diff --git a/screenshots/2021-08-18-block-graph-a.svg
> b/screenshots/2021-08-18-block-graph-a.svg
> new file mode 100644
> index 0000000..bea1ba3
>

The rest of it is very didactic and educational - thanks!  And since none
of my comments are critical:

Reviewed-by: Klaus Heinrich Kiwi <kkiwi@redhat.com>

(Not that it matters much)

 -Klaus


> --- /dev/null
> +++ b/screenshots/2021-08-18-block-graph-a.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="93.084mm" height="112.19mm" version="1.1"
> viewBox="0 0 93.084 112.19" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path
> id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible"
> orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186
> 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7
> 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker></defs><g id="text31368" fill="#802400"
> stroke-width=".26458px" aria-label="QEMU process"><path id="path7252"
> d="m72.021 7.6476q-0.75792 0-1.2058 0.565-0.44442 0.565-0.44442 1.54 0
> 0.97152 0.44442 1.5365 0.44786 0.565 1.2058 0.565 0.75792 0 1.1989-0.565
> 0.44442-0.565 0.44442-1.5365
> 0-0.97496-0.44442-1.54-0.44097-0.565-1.1989-0.565zm0.97496 4.5785 0.9164
> 1.0025h-0.8406l-0.76137-0.82338q-0.11369 0.0069-0.1757 0.01034-0.05857
> 0.0034-0.11369 0.0034-1.0852 0-1.7363-0.72347-0.64768-0.72692-0.64768-1.943
> 0-1.2196 0.64768-1.943 0.65112-0.72692 1.7363-0.72692 1.0818 0 1.7294
> 0.72692 0.64768 0.72347 0.64768 1.943 0 0.89573-0.36174 1.5331-0.35829
> 0.63734-1.0404 0.94051z"/><path id="path7254" d="m75.487
> 7.1756h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path
> id="path7256" d="m79.945 7.1756h1.037l1.3126 3.5002
> 1.3195-3.5002h1.037v5.1435h-0.67868v-4.5165l-1.3264
> 3.5278h-0.69936l-1.3264-3.5278v4.5165h-0.67524z"/><path id="path7258"
> d="m85.953 7.1756h0.69936v3.1247q0 0.82682 0.29972 1.192 0.29972 0.36174
> 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518
> 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609
> 0.51332-1.4676 0.51332-0.97496
> 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path7260"
> d="m67.594 18.916v2.0464h-0.63734v-5.3261h0.63734v0.58567q0.19982-0.34451
> 0.50298-0.50988 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811
> 0.44097 0.55811 0.44097 1.4676t-0.44097 1.4676q-0.43753 0.5581-1.1403
> 0.5581-0.42375
> 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332zm2.1566-1.347q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963t-0.79237
> 0.39963q-0.28594 0.39619-0.28594 1.0955t0.28594 1.099q0.28939 0.39619
> 0.79237 0.39619t0.78893-0.39619q0.28939-0.39963 0.28939-1.099z"/><path
> id="path7262" d="m73.695
> 16.229q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/><path id="path7264" d="m75.701
> 16.081q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283
> 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198
> 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path7266" d="m81.299
> 15.785v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path7268" d="m85.702
> 17.408v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35485 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path7270"
> d="m89.202
> 15.75v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.7338 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33418-0.05857-0.70625-0.17914v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54433 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168t0.57189 0.15503z"/><path id="path7272" d="m92.878
> 15.75v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.7338 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54433 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168t0.57189 0.15503z"/></g><rect id="rect991" x="15.436" y="33.475"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313"
> stroke-width=".26458px" aria-label="qcow2"><path id="path7275" d="m22.055
> 38.496q0 0.69935 0.28594 1.099 0.28939 0.39619 0.79237
> 0.39619t0.79237-0.39619q0.28939-0.39963 0.28939-1.099
> 0-0.69936-0.28939-1.0955-0.28939-0.39963-0.79237-0.39963t-0.79237
> 0.39963q-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936
> 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676 0-0.90951 0.43753-1.4676
> 0.44097-0.55811 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536
> 0.50643 0.50987v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path7277"
> d="m28.932
> 36.711v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path7279" d="m31.529 37.008q-0.50987 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628
> 0.39619 0.8096 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0886q0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198
> 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path7281" d="m33.982
> 36.563h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path7283" d="m40.81
> 39.836h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494t0.66835-0.08613q0.79926 0 1.2747 0.39963 0.47542 0.39963
> 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064
> 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022
> 1.3333z"/></g><rect id="rect9379" x="15.436" y="62.186" width="33.768"
> height="13.398" rx="1.7964" ry="1.8948" fill="none" stop-color="#000000"
> stroke="#000" stroke-width=".52917"/><g id="text9383"
> stroke-width=".26458px" aria-label="file"><path id="path7303" d="m30.837
> 65.488v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30317
> 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091
> 0.1378-0.13091
> 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path
> id="path7305" d="m32.163 63.986h0.6339v5.3606h-0.6339z"/><path
> id="path7307" d="m37.424 67.259v0.31006h-2.9146q0.04134 0.65457 0.39274
> 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957
> 0.34451-0.08957 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936
> 0.22049-0.35829 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.5581 1.3815-0.5581 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369"
> transform="translate(78.903 34.429)" fill="none" stroke="#000"
> stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><g id="g25195" transform="translate(84.24
> 30.251)"><rect id="rect22371" x="-75.456" y="-25.487" width="47.071"
> height="13.398" fill="none" stop-color="#000000" stroke="#808080"
> stroke-width=".52917"/><g id="text22477" fill="#808080"
> stroke-width=".26458px" aria-label="virtio-blk"><path id="path7231"
> d="m-67.446-20.016h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469
> 3.8585h-0.86127z"/><path id="path7233"
> d="m-62.815-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path7235"
> d="m-58.619-19.424q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02411z"/><path id="path7237"
> d="m-57.327-21.112v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747
> 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.73381
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path7239"
> d="m-55.188-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path7241" d="m-51.733-19.572q-0.50987 0-0.80615 0.39963-0.29628
> 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096
> 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198
> 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path7243"
> d="m-49.1-18.373h1.8569v0.565h-1.8569z"/><path id="path7245"
> d="m-43.464-18.084q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963-0.50298
> 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955t0.28594 1.099q0.28939
> 0.39619 0.79237 0.39619t0.78893-0.39619q0.28939-0.39963
> 0.28939-1.099zm-2.1566-1.347q0.19982-0.34451 0.50298-0.50988
> 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811 0.44097 0.55811
> 0.44097 1.4676t-0.44097 1.4676q-0.43753 0.55811-1.1403 0.55811-0.42375
> 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332v0.57878h-0.63734v-5.3606h0.63734z"/><path
> id="path7247" d="m-41.756-21.518h0.6339v5.3606h-0.6339z"/><path
> id="path7249" d="m-39.819-21.518h0.63734v3.166l1.8914-1.664h0.8096l-2.0464
> 1.8052 2.1325
> 2.0533h-0.82682l-1.9603-1.8845v1.8845h-0.63734z"/></g></g><rect
> id="rect23797" x=".26458" y=".26458" width="64.111" height="83.942"
> rx="5.2917" ry="5.4057" fill="none" stop-color="#000000" stroke="#802400"
> stroke-dasharray="2.11666, 2.11666" stroke-linecap="round"
> stroke-width=".52917"/><path id="path24007" d="m32.315 80.657v10.837"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><path id="path25180" d="m32.315 52.012v9.2246"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><path id="path25334" d="m32.315 19.127v13.399"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><rect id="rect35415" x="17.503" y="71.251"
> width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#000" stroke-linecap="round"
> stroke-width=".529"/><g id="text35918" stroke-width=".26458px"
> aria-label="prot-node"><path id="path7310" d="m21.06
> 76.592v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116
> 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067
> 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823
> 0.39067-0.29662
> 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733
> 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path
> id="path7312" d="m25.331
> 74.711q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762
> 0-0.57878 0.24598-0.20016 0.24357-0.20016
> 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598
> 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072
> 0.05547 0.0048 0.12299 0.01688z"/><path id="path7314" d="m26.735
> 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0
> 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878
> 0 0.90916 0.3762t0.33038 1.0418q0 0.66318-0.33038 1.0418-0.33038
> 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path7316" d="m29.149
> 73.53v0.76688h0.91398v0.34486h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34486h0.32556v-0.76688z"/><path
> id="path7318" d="m30.422 75.447h1.2998v0.3955h-1.2998z"/><path
> id="path7320" d="m34.674
> 75.367v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291t-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path7322" d="m36.605
> 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.20739-0.27974 0.20739-0.76206
> 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762t0.33038 1.0418q0 0.66318-0.33038 1.0418-0.33038
> 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path7324" d="m40.358
> 74.707v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path7326" d="m44.026
> 75.536v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839 0.23874
> 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10128-0.48955 0.15434-0.2508
> 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect
> id="rect38770" x="17.503" y="42.585" width="29.634" height="8.4415"
> fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000"
> stroke-linecap="round" stroke-width=".529"/><g id="text38774"
> stroke-width=".26458px" aria-label="fmt-node"><path id="path7286" d="m22.93
> 44.774v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164
> 0.34726v0.23875h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096
> 0.20981-0.65595 0.20981-0.2074 0.66559-0.2074z"/><path id="path7288"
> d="m25.405 46.343q0.1664-0.29904 0.39791-0.44132t0.54501-0.14228q0.42202 0
> 0.65112 0.29662 0.2291 0.29421 0.2291
> 0.83922v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636t-0.41961-0.1881q-0.34485
> 0-0.54501 0.2291t-0.20016
> 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003
> 0-0.54019 0.23151-0.20016 0.2291-0.20016
> 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839
> 0.36415-0.36656t0.50402-0.11817q0.29421 0 0.49919 0.14952 0.2074 0.14952
> 0.30627 0.43408z"/><path id="path7290" d="m28.552
> 45.058v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path7292" d="m29.825 46.975h1.2998v0.3955h-1.2998z"/><path
> id="path7294" d="m34.077
> 46.896v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291t-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path7296" d="m36.008
> 46.136q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0
> 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878
> 0 0.90916 0.3762t0.33038 1.0418q0 0.66318-0.33038 1.0418-0.33038
> 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path7298" d="m39.761
> 46.235v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path7300" d="m43.429
> 47.065v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839 0.23874
> 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><g id="text877"
> stroke-width=".26458px" aria-label="qcow2 image file"><path id="path7204"
> d="m52.492 98.541q0 0.69936 0.28594 1.099 0.28939 0.39618 0.79237
> 0.39618t0.79237-0.39618q0.28939-0.39963
> 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963t-0.79237
> 0.39963q-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16537-0.73036 0.16537-0.69936
> 0-1.1403-0.55811-0.43753-0.5581-0.43753-1.4676t0.43753-1.4676q0.44097-0.55811
> 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643
> 0.50987v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path7206" d="m59.368
> 96.757v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18603-0.2825
> 0.062-0.60289 0.062-0.87161 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.478
> 0-0.94396 0.51676-1.4848 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189
> 0.06201 0.27905 0.05857 0.54088 0.17914z"/><path id="path7208" d="m61.966
> 97.053q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246
> 0.29283 1.0921 0.29628 0.39618 0.8096 0.39618 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198
> 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path7210" d="m64.419
> 96.609h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path7212" d="m71.247
> 99.882h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494t0.66835-0.08613q0.79926 0 1.2747 0.39963 0.47542 0.39963
> 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713 0.2825-0.43064
> 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164 0.47542-1.3022
> 1.3333z"/><path id="path7214" d="m46.098
> 103.78h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.8027h-0.6339z"/><path
> id="path7216" d="m51.062 104.53q0.23771-0.42719
> 0.56844-0.63045t0.77859-0.20326q0.60289 0 0.93018 0.42375 0.32728 0.4203
> 0.32728
> 1.1989v2.3289h-0.63734v-2.3082q0-0.55466-0.19637-0.82338-0.19637-0.26871-0.59945-0.26871-0.49265
> 0-0.77859 0.32728t-0.28594
> 0.89228v2.1808h-0.63734v-2.3082q0-0.5581-0.19637-0.82338-0.19637-0.26871-0.60634-0.26871-0.48576
> 0-0.7717 0.33073-0.28594 0.32728-0.28594
> 0.88883v2.1808h-0.63734v-3.8585h0.63734v0.59944q0.21704-0.35484
> 0.52021-0.52365t0.72003-0.16881q0.4203 0 0.71314 0.2136 0.29628 0.21359
> 0.43753 0.62011z"/><path id="path7218" d="m56.684 105.7q-0.76826 0-1.0645
> 0.1757t-0.29628 0.59944q0 0.33762 0.22049 0.53744 0.22393 0.19637 0.60634
> 0.19637 0.5271 0 0.84405-0.37207 0.32039-0.37552
> 0.32039-0.99563v-0.14125zm1.2644-0.26183v2.2014h-0.6339v-0.58567q-0.21704
> 0.3514-0.54088 0.52021-0.32384 0.16537-0.79237 0.16537-0.59256
> 0-0.94396-0.33073-0.34795-0.33418-0.34795-0.89228 0-0.65113 0.43408-0.98186
> 0.43753-0.33073
> 1.3022-0.33073h0.88884v-0.062q0-0.43753-0.28939-0.67524-0.28594-0.24115-0.80615-0.24115-0.33073
> 0-0.64423 0.0792t-0.60289 0.23771v-0.58566q0.34795-0.13436 0.67524-0.19982
> 0.32728-0.0689 0.63734-0.0689 0.83716 0 1.2506 0.43408 0.41341 0.43408
> 0.41341 1.316z"/><path id="path7220" d="m61.793
> 105.67q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50988
> 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68557 0.2825 1.0645
> 0.28594 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896
> 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753
> 0.48231-1.3401 0.48231-0.33418
> 0-0.63045-0.0517-0.29628-0.0482-0.57533-0.15158v-0.61667q0.27905 0.15158
> 0.55122 0.22393 0.27216 0.0723 0.55466 0.0723 0.62356 0 0.93362-0.32728
> 0.31006-0.32384 0.31006-0.98185v-0.31351q-0.19637 0.34107-0.50298
> 0.50988t-0.73381 0.16881q-0.70969
> 0-1.1438-0.54088t-0.43408-1.4332q0-0.89573
> 0.43408-1.4366t1.1438-0.54088q0.42719 0 0.73381 0.16881t0.50298
> 0.50987v-0.58566h0.6339z"/><path id="path7222" d="m67.033
> 105.56v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.0896 0.34451-0.0896
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22048-0.35829
> 0.0758-0.72692 0.0758-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31005-0.75103-0.31005-0.53055
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path7224"
> d="m73.434
> 103.78v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30316
> 0.9164-0.30316h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091
> 0.1378-0.13091
> 0.49609v0.34107zm-0.63734-1.4952h0.63734v0.8027h-0.63734z"/><path
> id="path7226" d="m74.761 102.28h0.6339v5.3606h-0.6339z"/><path
> id="path7228" d="m80.021 105.56v0.31006h-2.9146q0.04134 0.65457 0.39274
> 0.99908 0.35484 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.0896
> 0.34451-0.0896 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936
> 0.22048-0.35829 0.0758-0.72692 0.0758-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31005-0.75103-0.31005-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g></svg>
> diff --git a/screenshots/2021-08-18-block-graph-b.svg
> b/screenshots/2021-08-18-block-graph-b.svg
> new file mode 100644
> index 0000000..5bf98af
> --- /dev/null
> +++ b/screenshots/2021-08-18-block-graph-b.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="93.084mm" height="112.19mm" version="1.1"
> viewBox="0 0 93.084 112.19" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path
> id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible"
> orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186
> 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7
> 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker></defs><rect id="rect991" x="15.436"
> y="33.475" width="33.768" height="13.398" rx="1.7964" ry="1.8948"
> fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g
> id="text3313" stroke-width=".26458px" aria-label="qcow2"><path id="path96"
> d="m22.055 38.496q0 0.69935 0.28594 1.099 0.28939 0.39619 0.79237 0.39619
> 0.50298 0 0.79237-0.39619 0.28939-0.39963 0.28939-1.099
> 0-0.69936-0.28939-1.0955-0.28939-0.39963-0.79237-0.39963-0.50298 0-0.79237
> 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936
> 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676 0-0.90951 0.43753-1.4676
> 0.44097-0.55811 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536
> 0.50643 0.50987v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path98"
> d="m28.932
> 36.711v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path100" d="m31.529 37.008q-0.50987 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628
> 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963
> 0.29628-1.0886
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path102" d="m33.982
> 36.563h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path104" d="m40.81
> 39.836h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963
> 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713
> 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164
> 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="15.436" y="62.186"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383"
> stroke-width=".26458px" aria-label="file"><path id="path124" d="m30.837
> 65.488v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30317
> 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091
> 0.1378-0.13091
> 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path
> id="path126" d="m32.163 63.986h0.6339v5.3606h-0.6339z"/><path id="path128"
> d="m37.424 67.259v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.5581 1.3815-0.5581 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369"
> transform="translate(78.903 34.429)" fill="none" stroke="#000"
> stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><g id="g25195" transform="translate(84.24
> 30.251)"><rect id="rect22371" x="-75.456" y="-25.487" width="47.071"
> height="13.398" fill="none" stop-color="#000000" stroke="#808080"
> stroke-width=".52917"/><g id="text22477" fill="#808080"
> stroke-width=".26458px" aria-label="virtio-blk"><path id="path75"
> d="m-67.446-20.016h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469
> 3.8585h-0.86127z"/><path id="path77"
> d="m-62.815-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path79"
> d="m-58.619-19.424q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02411z"/><path id="path81"
> d="m-57.327-21.112v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747
> 0.60634 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.73381
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path83"
> d="m-55.188-20.016h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path85" d="m-51.733-19.572q-0.50987 0-0.80615 0.39963-0.29628
> 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096
> 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path87"
> d="m-49.1-18.373h1.8569v0.565h-1.8569z"/><path id="path89"
> d="m-43.464-18.084q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963-0.50298
> 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955t0.28594 1.099q0.28939
> 0.39619 0.79237 0.39619 0.50298 0 0.78893-0.39619 0.28939-0.39963
> 0.28939-1.099zm-2.1566-1.347q0.19982-0.34451 0.50298-0.50988
> 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811 0.44097 0.55811
> 0.44097 1.4676t-0.44097 1.4676q-0.43753 0.55811-1.1403 0.55811-0.42375
> 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332v0.57878h-0.63734v-5.3606h0.63734z"/><path
> id="path91" d="m-41.756-21.518h0.6339v5.3606h-0.6339z"/><path id="path93"
> d="m-39.819-21.518h0.63734v3.166l1.8914-1.664h0.8096l-2.0464 1.8052 2.1325
> 2.0533h-0.82682l-1.9603-1.8845v1.8845h-0.63734z"/></g></g><rect
> id="rect23797" x=".26458" y=".26458" width="76.401" height="83.942"
> rx="6.3061" ry="5.4057" fill="none" stop-color="#000000" stroke="#802400"
> stroke-dasharray="2.11666, 2.11666" stroke-linecap="round"
> stroke-width=".52917"/><path id="path24007" d="m32.315 80.657v10.837"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><path id="path25180" d="m32.315 52.012v9.2246"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><path id="path25334" d="m32.315 19.127v13.399"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><rect id="rect35415" x="17.503" y="71.251"
> width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#000" stroke-linecap="round"
> stroke-width=".529"/><g id="text35918" stroke-width=".26458px"
> aria-label="prot-node"><path id="path131" d="m21.06
> 76.592v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116
> 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067
> 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823
> 0.39067-0.29662
> 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733
> 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path
> id="path133" d="m25.331
> 74.711q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762
> 0-0.57878 0.24598-0.20016 0.24357-0.20016
> 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598
> 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072
> 0.05547 0.0048 0.12299 0.01688z"/><path id="path135" d="m26.735
> 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0
> 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878
> 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path137" d="m29.149
> 73.53v0.76688h0.91398v0.34486h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34486h0.32556v-0.76688z"/><path
> id="path139" d="m30.422 75.447h1.2998v0.3955h-1.2998z"/><path id="path141"
> d="m34.674
> 75.367v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291t-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path143" d="m36.605
> 74.608q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.20739-0.27974 0.20739-0.76206
> 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path145" d="m40.358
> 74.707v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209
> 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path147"
> d="m44.026 75.536v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839
> 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10128-0.48955 0.15434-0.2508
> 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect
> id="rect38770" x="17.503" y="42.585" width="29.634" height="8.4415"
> fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000"
> stroke-linecap="round" stroke-width=".529"/><g id="text38774"
> stroke-width=".26458px" aria-label="fmt-node"><path id="path107" d="m22.93
> 44.774v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164
> 0.34726v0.23875h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096
> 0.20981-0.65595 0.20981-0.2074 0.66559-0.2074z"/><path id="path109"
> d="m25.405 46.343q0.1664-0.29904 0.39791-0.44132 0.23151-0.14228
> 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291
> 0.83922v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34485
> 0-0.54501 0.2291t-0.20016
> 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003
> 0-0.54019 0.23151-0.20016 0.2291-0.20016
> 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839
> 0.36415-0.36656t0.50402-0.11817q0.29421 0 0.49919 0.14952 0.2074 0.14952
> 0.30627 0.43408z"/><path id="path111" d="m28.552
> 45.058v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path113" d="m29.825 46.975h1.2998v0.3955h-1.2998z"/><path id="path115"
> d="m34.077
> 46.896v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14952-0.19051-0.44855-0.19051-0.35932
> 0-0.56672 0.2291-0.2074 0.2291-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path117" d="m36.008
> 46.136q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0
> 0.5619-0.27974t0.2074-0.76206q0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878
> 0 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path119" d="m39.761
> 46.235v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209
> 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path121"
> d="m43.429 47.065v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69936 0.24839
> 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05305-0.50884 0.05305-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><g id="g4466"
> transform="translate(1.1863 -2.0666)"><rect id="rect951" x="61.379"
> y="16.76" width="28.304" height="19.996" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#808080" stroke-width=".52917"/><g
> id="text955" fill="#808080" stroke-width=".26458px" aria-label="NBD
> server"><path id="path56" d="m68.257 20.548h0.93707l2.2807
> 4.3029v-4.3029h0.67524v5.1435h-0.93707l-2.2807-4.3029v4.3029h-0.67524z"/><path
> id="path58" d="m74.231 23.235v1.8845h1.1162q0.56155 0 0.83027-0.23082
> 0.27216-0.23427 0.27216-0.71314
> 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50988
> 0 0.75792-0.18948 0.25149-0.19293 0.25149-0.58567
> 0-0.3893-0.25149-0.58222-0.24805-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582
> 0 1.2265 0.33073 0.43064 0.33073 0.43064 0.94051 0 0.47198-0.22049
> 0.75103-0.22049 0.27905-0.64768 0.34796 0.51332 0.11024 0.79582 0.46164
> 0.28594 0.34796 0.28594 0.87161 0 0.68902-0.46853 1.0645-0.46853
> 0.37552-1.3333 0.37552h-1.8466z"/><path id="path60" d="m79.071
> 21.12v3.9998h0.8406q1.0645 0 1.5572-0.48231 0.49609-0.48231 0.49609-1.5227
> 0-1.0335-0.49609-1.5124-0.49265-0.48231-1.5572-0.48231zm-0.69591-0.57189h1.4297q1.4952
> 0 2.1945 0.62356 0.69936 0.62012 0.69936 1.943 0 1.3298-0.7028
> 1.9534-0.7028 0.62356-2.1911 0.62356h-1.4297z"/><path id="path62"
> d="m67.297
> 29.002v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168 0.31006 0.05168 0.57189 0.15503z"/><path id="path64" d="m71.814
> 30.659v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35485 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.1447-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path66"
> d="m75.09
> 29.481q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01033
> 0.07924 0.0069 0.1757 0.02412z"/><path id="path68" d="m75.3
> 28.889h0.67179l1.2058 3.2384 1.2058-3.2384h0.6718l-1.4469
> 3.8585h-0.86127z"/><path id="path70" d="m83.231
> 30.659v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.1447-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path72"
> d="m86.507
> 29.481q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01033
> 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path4501" d="m42.542
> 32.486c0-7.5272 6.2582-7.9595 6.2582-7.9595h12.801" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/></svg>
> diff --git a/screenshots/2021-08-18-block-graph-c.svg
> b/screenshots/2021-08-18-block-graph-c.svg
> new file mode 100644
> index 0000000..bcdf868
> --- /dev/null
> +++ b/screenshots/2021-08-18-block-graph-c.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="46.756mm" height="107.74mm" version="1.1"
> viewBox="0 0 46.756 107.74" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path
> id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible"
> orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186
> 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7
> 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker></defs><rect id="rect23797" x=".26458"
> y="9.1324" width="46.227" height="70.624" rx="3.8155" ry="4.5481"
> fill="none" stop-color="#000000" stroke="#802400"
> stroke-dasharray="2.11666, 2.11666" stroke-linecap="round"
> stroke-width=".52917"/><rect id="rect991" x="6.494" y="29.025"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313"
> stroke-width=".26458px" aria-label="qcow2"><path id="path54" d="m13.113
> 34.046q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237
> 0.39619t0.79237-0.39619q0.28939-0.39963
> 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963t-0.79237
> 0.39963q-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69935
> 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.5581
> 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643
> 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path56" d="m19.99
> 32.261v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54432-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54432-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path58" d="m22.587 32.557q-0.50987 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619
> 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198
> 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path60" d="m25.04
> 32.113h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path62" d="m31.868
> 35.386h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68557-0.69246 0.86127-0.89228 0.33418-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963
> 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713
> 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164
> 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="6.494" y="57.736"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383"
> stroke-width=".26458px" aria-label="file"><path id="path82" d="m21.895
> 61.038v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30317
> 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091
> 0.1378-0.13091
> 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path
> id="path84" d="m23.221 59.536h0.6339v5.3606h-0.6339z"/><path id="path86"
> d="m28.482 62.809v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369"
> transform="translate(69.961 29.979)" fill="none" stroke="#000"
> stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><g id="g25195" transform="translate(75.298
> 30.046)"><rect id="rect22371" x="-66.56" y="-29.781" width="29.28"
> height="17.692" fill="#fff" fill-rule="evenodd" stop-color="#000000"
> stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080"
> stroke-width=".26458px" aria-label="NBD server"><path id="path35"
> d="m-59.195-27.145h0.93707l2.2807
> 4.3029v-4.3029h0.67524v5.1435h-0.93707l-2.2807-4.3029v4.3029h-0.67524z"/><path
> id="path37" d="m-53.221-24.458v1.8845h1.1162q0.56155 0 0.83027-0.23082
> 0.27216-0.23427 0.27216-0.71314
> 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50988
> 0 0.75792-0.18948 0.25149-0.19292 0.25149-0.58567
> 0-0.3893-0.25149-0.58222-0.24805-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582
> 0 1.2265 0.33073 0.43064 0.33073 0.43064 0.94051 0 0.47198-0.22049
> 0.75103-0.22049 0.27905-0.64768 0.34795 0.51332 0.11024 0.79582 0.46164
> 0.28594 0.34795 0.28594 0.87161 0 0.68902-0.46853 1.0645-0.46853
> 0.37552-1.3333 0.37552h-1.8466z"/><path id="path39"
> d="m-48.38-26.573v3.9998h0.8406q1.0645 0 1.5572-0.48231 0.49609-0.48231
> 0.49609-1.5227
> 0-1.0335-0.49609-1.5124-0.49265-0.48231-1.5572-0.48231zm-0.69591-0.57189h1.4297q1.4952
> 0 2.1945 0.62356 0.69936 0.62012 0.69936 1.943 0 1.3298-0.7028
> 1.9534-0.7028 0.62356-2.1911 0.62356h-1.4297z"/><path id="path41"
> d="m-60.154-18.691v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168t0.57189 0.15503z"/><path id="path43"
> d="m-55.638-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path45"
> d="m-52.361-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/><path id="path47"
> d="m-52.151-18.805h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469
> 3.8585h-0.86128z"/><path id="path49"
> d="m-44.22-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path51"
> d="m-40.944-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path24007" d="m23.373
> 76.207v10.837" fill="none" marker-end="url(#Arrow1Mend)"
> marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833,
> 1.05833" stroke-width=".52917" style="paint-order:normal"/><path
> id="path25180" d="m23.373 47.562v9.2246" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><path id="path25334" d="m23.373 18.929v9.1469"
> fill="none" marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><rect id="rect35415" x="8.5609" y="66.8"
> width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#000" stroke-linecap="round"
> stroke-width=".529"/><g id="text35918" stroke-width=".26458px"
> aria-label="prot-node"><path id="path89" d="m12.118
> 72.142v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116
> 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067
> 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823
> 0.39067-0.29662
> 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974-0.35209
> 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257
> 0.27733 0.55466 0.27733 0.35209 0 0.55225-0.27733 0.20257-0.27974
> 0.20257-0.76929z"/><path id="path91" d="m16.389
> 70.261q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19292-0.0217-0.3762
> 0-0.57878 0.24598-0.20016 0.24357-0.20016
> 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598
> 0.36415-0.36415 0.22428-0.12058 0.54502-0.12058 0.04582 0 0.10128 0.0072
> 0.05547 0.0048 0.12299 0.01688z"/><path id="path93" d="m17.793
> 70.157q-0.35691 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.20739-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path95" d="m20.207
> 69.08v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path97" d="m21.48 70.997h1.2998v0.3955h-1.2998z"/><path id="path99"
> d="m25.732
> 70.917v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291t-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path101" d="m27.663
> 70.157q-0.35691 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path103" d="m31.416
> 70.256v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29904 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path105" d="m35.084
> 71.086v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874
> 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23875 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect
> id="rect38770" x="8.5609" y="38.135" width="29.634" height="8.4415"
> fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000"
> stroke-linecap="round" stroke-width=".529"/><g id="text38774"
> stroke-width=".26458px" aria-label="fmt-node"><path id="path65" d="m13.988
> 40.323v0.36897h-0.42444q-0.23875 0-0.3328 0.09646-0.09164 0.09646-0.09164
> 0.34727v0.23874h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096
> 0.20981-0.65595 0.20981-0.20739 0.66559-0.20739z"/><path id="path67"
> d="m16.463 41.893q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228
> 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291
> 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34486
> 0-0.54502 0.2291t-0.20016
> 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003
> 0-0.54019 0.23151-0.20016 0.2291-0.20016
> 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839
> 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.4992 0.14952
> 0.20739 0.14952 0.30627 0.43408z"/><path id="path69" d="m19.61
> 40.608v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path71" d="m20.883 42.525h1.2998v0.3955h-1.2998z"/><path id="path73"
> d="m25.135
> 42.446v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291t-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939
> 0.23875 0.28698 0.23875 0.84646z"/><path id="path75" d="m27.066
> 41.686q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.20739-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path77" d="m30.819
> 41.785v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273
> 0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576
> 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733
> 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path79" d="m34.487
> 42.614v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874
> 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g></svg>
> diff --git a/screenshots/2021-08-18-block-graph-d.svg
> b/screenshots/2021-08-18-block-graph-d.svg
> new file mode 100644
> index 0000000..67c1e81
> --- /dev/null
> +++ b/screenshots/2021-08-18-block-graph-d.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="105.13mm" height="108.92mm" version="1.1"
> viewBox="0 0 105.13 108.92" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path
> id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible"
> orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186
> 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7
> 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker></defs><rect id="rect23797" x=".26458"
> y=".26458" width="58.32" height="70.624" rx="4.8137" ry="4.5481"
> fill="none" stop-color="#000000" stroke="#802400"
> stroke-dasharray="2.11666, 2.11666" stroke-linecap="round"
> stroke-width=".52917"/><rect id="rect991" x="6.4942" y="20.157"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313"
> stroke-width=".26458px" aria-label="qcow2"><path id="path64" d="m13.113
> 25.178q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50298 0
> 0.79237-0.39619 0.28939-0.39963
> 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963-0.50298
> 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936
> 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.5581
> 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643
> 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path66" d="m19.99
> 23.393v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path68" d="m22.587 23.69q-0.50988 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619
> 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path70" d="m25.04
> 23.245h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path72" d="m31.868
> 26.518h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963
> 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713
> 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164
> 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="6.4942" y="48.868"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383"
> stroke-width=".26458px" aria-label="file"><path id="path92" d="m21.895
> 52.17v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30317
> 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091
> 0.1378-0.13091
> 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path
> id="path94" d="m23.221 50.668h0.6339v5.3606h-0.6339z"/><path id="path96"
> d="m28.482 53.941v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369"
> transform="translate(69.961 21.111)" fill="none" stroke="#000"
> stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><g id="g25195" transform="translate(110.44
> 35.205)"><rect id="rect22371" x="-66.56" y="-29.781" width="29.28"
> height="17.692" fill="#fff" fill-rule="evenodd" stop-color="#000000"
> stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080"
> stroke-width=".26458px" aria-label="FUSE server"><path id="path43"
> d="m-60.499-27.145h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path45" d="m-56.519-27.145h0.69936v3.1247q0 0.82682 0.29972 1.192
> 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518
> 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609
> 0.51332-1.4676 0.51332-0.97496
> 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path47"
> d="m-48.193-26.976v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.09302-0.67868-0.09302-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17226 0.77859 0.27905l0.4203 0.08613q0.77859 0.14814 1.1472
> 0.52366 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.08268-0.40997-0.08268-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.3204l-0.42375-0.08268q-0.77859-0.15503-1.1265-0.48576-0.34796-0.33073-0.34796-0.91984
> 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725
> 0.06546 0.37552 0.06546 0.76826 0.19637z"/><path id="path49"
> d="m-46.797-27.145h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path
> id="path51"
> d="m-60.154-18.691v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168t0.57189 0.15503z"/><path id="path53"
> d="m-55.638-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path55"
> d="m-52.361-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/><path id="path57"
> d="m-52.151-18.805h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469
> 3.8585h-0.86128z"/><path id="path59"
> d="m-44.22-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path61"
> d="m-40.944-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path24007" d="m23.373
> 67.339v10.837" fill="none" marker-end="url(#Arrow1Mend)"
> marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833,
> 1.05833" stroke-width=".52917" style="paint-order:normal"/><path
> id="path25180" d="m23.373 38.694v9.2246" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><rect id="rect35415" x="8.561" y="57.933"
> width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#000" stroke-linecap="round"
> stroke-width=".529"/><g id="text35918" stroke-width=".26458px"
> aria-label="prot-node"><path id="path99" d="m12.118
> 63.274v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116
> 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067
> 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823
> 0.39067-0.29662
> 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733
> 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path
> id="path101" d="m16.389
> 61.393q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762
> 0-0.57878 0.24598-0.20016 0.24357-0.20016
> 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598
> 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072
> 0.05547 0.0048 0.12299 0.01688z"/><path id="path103" d="m17.793
> 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path105" d="m20.207
> 60.212v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19292-0.19534-0.69935v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path107" d="m21.48 62.129h1.2998v0.3955h-1.2998z"/><path id="path109"
> d="m25.732
> 62.049v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291-0.20739 0.2291-0.20739
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path111" d="m27.663
> 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path113" d="m31.416
> 61.389v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209
> 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path115"
> d="m35.084 62.218v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839
> 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect
> id="rect38770" x="8.561" y="29.267" width="29.634" height="8.4415"
> fill="#fff" fill-rule="evenodd" stop-color="#000000" stroke="#000"
> stroke-linecap="round" stroke-width=".529"/><g id="text38774"
> stroke-width=".26458px" aria-label="fmt-node"><path id="path75" d="m13.989
> 31.456v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164
> 0.34727v0.23874h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096
> 0.20981-0.65595 0.20981-0.20739 0.66559-0.20739z"/><path id="path77"
> d="m16.463 33.026q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228
> 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291
> 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34485
> 0-0.54501 0.2291t-0.20016
> 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003
> 0-0.54019 0.23151-0.20016 0.2291-0.20016
> 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839
> 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.49919 0.14952
> 0.2074 0.14952 0.30627 0.43408z"/><path id="path79" d="m19.61
> 31.74v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path81" d="m20.883 33.657h1.2998v0.3955h-1.2998z"/><path id="path83"
> d="m25.135
> 33.578v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14952-0.19051-0.44855-0.19051-0.35932
> 0-0.56672 0.2291-0.2074 0.2291-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path85" d="m27.067
> 32.818q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path87" d="m30.819
> 32.917v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273
> 0.30868-0.39067 0.79823-0.39067 0.29904 0 0.51125 0.11817 0.21463 0.11576
> 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733
> 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path89" d="m34.487
> 33.747v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874
> 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><path
> id="path8203" d="m23.908 19.196c0-8.7692 8.1536-8.1536
> 8.1536-8.1536h10.854" fill="none" marker-end="url(#Arrow1Mend)"
> marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833,
> 1.05833" stroke-width=".52917" style="paint-order:normal"/><g id="g9231"
> transform="translate(128.75 21.111)" fill="none" stroke="#0081cf"
> stroke-width=".52917"><path id="path9227" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path9229"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><path id="path9233" d="m74.123
> 14.397c8.7692 0 8.1536 8.1536 8.1536 8.1536v55.724" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><g id="text9935" stroke-width=".26458px"
> aria-label="$image_path"><path id="path118" d="m2.3853
> 105.12v1.4952q0.37896-0.0103 0.59256-0.21015 0.2136-0.19981 0.2136-0.54432
> 0-0.3204-0.19293-0.4961-0.19293-0.17914-0.61323-0.2446zm-0.34451-0.65457v-1.4228q-0.35829
> 0.0138-0.56155 0.2067-0.19982 0.19293-0.19982 0.51677 0 0.29628 0.18604
> 0.46853 0.18948 0.17226 0.57533 0.23082zm0.34451
> 3.6897h-0.34451l-0.00345-1.037q-0.3514-0.0172-0.69935-0.0965-0.34451-0.0792-0.68213-0.22049v-0.62012q0.34451
> 0.2136 0.69246 0.32729 0.3514 0.11368 0.69246
> 0.12057v-1.5778q-0.68902-0.1068-1.037-0.4203-0.34795-0.31351-0.34795-0.83027
> 0-0.54088 0.36174-0.86127 0.36518-0.32384
> 1.0232-0.37208v-0.80959h0.34451l0.00345 0.80959q0.27216 0.0172 0.55122
> 0.0689t0.56844
> 0.14125v0.596q-0.29283-0.14814-0.57189-0.22738-0.27561-0.0827-0.55122-0.0965v1.4848q0.70969
> 0.10679 1.0818 0.44097 0.37207 0.33417 0.37207 0.86472 0 0.53054-0.40308
> 0.88539-0.39963 0.35484-1.0473 0.38585z"/><path id="path120" d="m5.1311
> 103.26h1.6226v3.3659h1.2575v0.49265h-3.1488v-0.49265h1.2575v-2.8732h-0.98874zm0.98874-1.5021h0.6339v0.8027h-0.6339z"/><path
> id="path122" d="m10.826 103.66q0.11713-0.24805 0.29628-0.36518
> 0.18259-0.12058 0.43753-0.12058 0.46509 0 0.65457 0.36174 0.19292 0.35829
> 0.19292
> 1.3539v2.2359h-0.57878v-2.2083q0-0.81649-0.09302-1.0129-0.08957-0.19981-0.33073-0.19981-0.27561
> 0-0.37896 0.21359-0.09991 0.21015-0.09991
> 0.99908v2.2083h-0.57878v-2.2083q0-0.82682-0.09991-1.0198-0.09646-0.19292-0.3514-0.19292-0.25149
> 0-0.3514 0.21359-0.096463 0.21015-0.096463
> 0.99908v2.2083h-0.57532v-3.8585h0.57533v0.33073q0.11369-0.20671
> 0.2825-0.31351 0.17225-0.11024 0.3893-0.11024 0.26183 0 0.43408 0.12058
> 0.1757 0.12058 0.27216 0.36518z"/><path id="path124" d="m15.163
> 105.18h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878
> 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222 0.19292 0.52366 0
> 0.82338-0.36173 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33418-0.3514-0.89228 0-0.64424 0.43064-0.97841
> 0.43408-0.33418
> 1.2712-0.33418h0.85094v-0.0999q-0.0034-0.46165-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.093t-0.64423 0.27217v-0.6339q0.3514-0.13436 0.67179-0.19982
> 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125
> 0.55122 0.42375 0.13091 0.17225 0.18604 0.42719 0.05512 0.25149 0.05512
> 0.75792z"/><path id="path126" d="m19.948
> 105.16q0-0.71314-0.23427-1.0818-0.23082-0.37207-0.67524-0.37207-0.46509
> 0-0.70969 0.37207-0.2446 0.36862-0.2446 1.0818 0 0.71313 0.2446 1.0886
> 0.24805 0.37207 0.71658 0.37207 0.43753 0 0.66835-0.37552 0.23427-0.37551
> 0.23427-1.0852zm0.6339 1.7122q0 0.86817-0.40997 1.316-0.40997
> 0.44786-1.2058 0.44786-0.26183
> 0-0.54777-0.0482t-0.57189-0.14125v-0.62701q0.33762 0.15848 0.61323 0.23427
> 0.27561 0.0758 0.50643 0.0758 0.51332 0 0.74759-0.27905 0.23427-0.27905
> 0.23427-0.88539v-0.45824q-0.15158 0.32384-0.41341 0.48231-0.26183
> 0.15848-0.63734 0.15848-0.67524
> 0-1.0783-0.54088-0.40308-0.54088-0.40308-1.4469 0-0.90951 0.40308-1.4504
> 0.40308-0.54088 1.0783-0.54088 0.37207 0 0.63045 0.14814 0.25838 0.14814
> 0.4203 0.4582v-0.49954h0.6339z"/><path id="path128" d="m25.071
> 105.03v0.31006h-2.7457v0.0207q0 0.63045 0.32728 0.97496 0.33073 0.34451
> 0.93018 0.34451 0.30317 0 0.6339-0.0965 0.33073-0.0965
> 0.70624-0.29283v0.63045q-0.36174 0.14814-0.69936 0.22048-0.33417
> 0.0758-0.64768 0.0758-0.89917
> 0-1.4056-0.53744-0.50643-0.54088-0.50643-1.4883 0-0.92329 0.49609-1.4745
> 0.49609-0.55122 1.3229-0.55122 0.73725 0 1.161 0.49954 0.42719 0.49954
> 0.42719
> 1.3643zm-0.6339-0.18604q-0.01378-0.5581-0.26527-0.84749-0.24805-0.29283-0.71658-0.29283-0.4582
> 0-0.75448 0.30317-0.29628 0.30316-0.3514 0.8406z"/><path id="path130"
> d="m29.736 108.51v0.27561h-4.2478v-0.27561z"/><path id="path132" d="m31.028
> 106.64v1.9534h-0.63734v-5.3261h0.63734v0.49265q0.15847-0.28595
> 0.4203-0.43408 0.26527-0.15159 0.60978-0.15159 0.69936 0 1.0955 0.54088
> 0.39963 0.54088 0.39963 1.4986 0 0.94051-0.39963 1.478-0.39963
> 0.53399-1.0955 0.53399-0.3514
> 0-0.61667-0.14814-0.26183-0.15159-0.41341-0.43753zm1.8604-1.44q0-0.73725-0.23427-1.1128-0.23082-0.37551-0.68902-0.37551-0.46164
> 0-0.69935 0.37896-0.23771 0.37551-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69935 0.37896 0.4582 0 0.68902-0.37551 0.23427-0.37552
> 0.23427-1.1128z"/><path id="path134" d="m36.402 105.18h-0.21015q-0.55466
> 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878 0 0.34795 0.21015 0.54088
> 0.21015 0.19292 0.58222 0.19292 0.52366 0 0.82338-0.36173 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33418-0.3514-0.89228 0-0.64424 0.43064-0.97841
> 0.43408-0.33418
> 1.2712-0.33418h0.85094v-0.0999q-0.0034-0.46165-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.093t-0.64423 0.27217v-0.6339q0.3514-0.13436 0.67179-0.19982
> 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125
> 0.55122 0.42375 0.13091 0.17225 0.18604 0.42719 0.05512 0.25149 0.05512
> 0.75792z"/><path id="path136" d="m40.347
> 102.17v1.0955h1.4401v0.49265h-1.4401v2.0946q0 0.42719 0.16192 0.596 0.16192
> 0.16881 0.565 0.16881h0.71314v0.50643h-0.77515q-0.71314
> 0-1.006-0.28594-0.29283-0.28595-0.29283-0.9853v-2.0946h-1.0301v-0.49265h1.0301v-1.0955z"/><path
> id="path138" d="m46.1
> 104.73v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481t-0.57189-0.2446q-0.44442
> 0-0.68557 0.31695-0.23771 0.3135-0.23771
> 0.90261v2.1808h-0.6339v-5.3606h0.6339v2.0808q0.16881-0.33073 0.4582-0.49954
> 0.28939-0.17226 0.68557-0.17226 0.58911 0 0.8785 0.3893 0.29283 0.38585
> 0.29283 1.1713z"/></g><g id="text14411" fill="#0081cf"
> stroke-width=".26458px" aria-label="mount-point"><path id="path141"
> d="m61.294 103.66q0.11713-0.24805 0.29628-0.36518 0.18259-0.12058
> 0.43753-0.12058 0.46509 0 0.65457 0.36174 0.19292 0.35829 0.19292
> 1.3539v2.2359h-0.57878v-2.2083q0-0.81649-0.09302-1.0129-0.08957-0.19981-0.33073-0.19981-0.27561
> 0-0.37896 0.21359-0.09991 0.21015-0.09991
> 0.99908v2.2083h-0.57878v-2.2083q0-0.82682-0.09991-1.0198-0.09646-0.19292-0.3514-0.19292-0.25149
> 0-0.3514 0.21359-0.09646 0.21015-0.09646
> 0.99908v2.2083h-0.57533v-3.8585h0.57533v0.33073q0.11369-0.20671
> 0.2825-0.31351 0.17226-0.11024 0.3893-0.11024 0.26183 0 0.43408 0.12058
> 0.1757 0.12058 0.27216 0.36518z"/><path id="path143" d="m65.335
> 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338
> 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551
> 0.24805-0.37897 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853
> 0.42375-1.5055t1.2265-0.52021z"/><path id="path145" d="m68.133
> 105.66v-2.3909h0.6339v2.3909q0 0.52021 0.18259 0.76481 0.18604 0.2446
> 0.57189 0.2446 0.44786 0 0.68557-0.3135 0.23771-0.31695
> 0.23771-0.90606v-2.1808h0.63734v3.8516h-0.63734v-0.57878q-0.16881
> 0.33418-0.46164 0.50643-0.28939 0.17226-0.67868 0.17226-0.59256
> 0-0.88194-0.38585-0.28939-0.3893-0.28939-1.1748z"/><path id="path147"
> d="m75.33
> 104.73v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442
> 0-0.68557 0.31695-0.23771 0.3135-0.23771
> 0.90261v2.1808h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073
> 0.4582-0.49954 0.28939-0.17226 0.68558-0.17226 0.58911 0 0.8785 0.3893
> 0.29283 0.38585 0.29283 1.1713z"/><path id="path149" d="m78.072
> 102.17v1.0955h1.4401v0.49265h-1.4401v2.0946q0 0.42719 0.16192 0.596 0.16192
> 0.16881 0.565 0.16881h0.71314v0.50643h-0.77515q-0.71314
> 0-1.006-0.28594-0.29283-0.28595-0.29283-0.9853v-2.0946h-1.0301v-0.49265h1.0301v-1.0955z"/><path
> id="path151" d="m81.431 104.91h1.7949v0.565h-1.7949z"/><path id="path153"
> d="m85.744 106.64v1.9534h-0.63734v-5.3261h0.63734v0.49265q0.15847-0.28595
> 0.4203-0.43408 0.26527-0.15159 0.60978-0.15159 0.69936 0 1.0955 0.54088
> 0.39963 0.54088 0.39963 1.4986 0 0.94051-0.39963 1.478-0.39963
> 0.53399-1.0955 0.53399-0.3514
> 0-0.61667-0.14814-0.26183-0.15159-0.41341-0.43753zm1.8604-1.44q0-0.73725-0.23427-1.1128-0.23082-0.37551-0.68902-0.37551-0.46164
> 0-0.69936 0.37896-0.23771 0.37551-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.68902-0.37551 0.23427-0.37552
> 0.23427-1.1128z"/><path id="path155" d="m90.822 103.71q-0.48231 0-0.73036
> 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805
> 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897
> 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853
> 0.42375-1.5055t1.2265-0.52021z"/><path id="path157" d="m93.83
> 103.26h1.6226v3.3659h1.2575v0.49265h-3.1488v-0.49265h1.2575v-2.8732h-0.98874zm0.98874-1.5021h0.6339v0.8027h-0.6339z"/><path
> id="path159" d="m100.82
> 104.73v2.3909h-0.63735v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442
> 0-0.68558 0.31695-0.23771 0.3135-0.23771
> 0.90261v2.1808h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073
> 0.4582-0.49954 0.28939-0.17226 0.68557-0.17226 0.58911 0 0.8785 0.3893
> 0.29284 0.38585 0.29284 1.1713z"/><path id="path161" d="m103.56
> 102.17v1.0955h1.4401v0.49265h-1.4401v2.0946q0 0.42719 0.16192 0.596t0.565
> 0.16881h0.71314v0.50643h-0.77515q-0.71314
> 0-1.006-0.28594-0.29283-0.28595-0.29283-0.9853v-2.0946h-1.0301v-0.49265h1.0301v-1.0955z"/></g></svg>
> diff --git a/screenshots/2021-08-18-block-graph-e.svg
> b/screenshots/2021-08-18-block-graph-e.svg
> new file mode 100644
> index 0000000..4bcc615
> --- /dev/null
> +++ b/screenshots/2021-08-18-block-graph-e.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="195.9mm" height="108.74mm" version="1.1" viewBox="0
> 0 195.9 108.74" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow2Mstart" overflow="visible" orient="auto"><path
> id="path24651" transform="scale(.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker><marker id="Arrow1Mend" overflow="visible"
> orient="auto"><path id="path26121" transform="scale(-.6)" d="m8.7186
> 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7
> 8.0354z" fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker></defs><rect id="rect23797" x="114.19"
> y=".26458" width="58.32" height="70.624" rx="5.2917" ry="5.2917"
> fill="none" stop-color="#000000" stroke="#802400"
> stroke-dasharray="2.11666, 2.11666" stroke-linecap="round"
> stroke-width=".52917"/><rect id="rect991" x="120.42" y="20.157"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text3313"
> stroke-width=".26458px" aria-label="qcow2"><path id="path89" d="m127.04
> 25.178q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50299 0
> 0.79237-0.39619 0.28939-0.39963
> 0.28939-1.099t-0.28939-1.0955q-0.28938-0.39963-0.79237-0.39963-0.50298
> 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19981
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69935
> 0-1.1403-0.55811-0.43752-0.55811-0.43752-1.4676t0.43752-1.4676q0.44098-0.5581
> 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30662 0.16536 0.50643
> 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path91" d="m133.91
> 23.393v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54432-0.07579-0.61668
> 0-0.95774 0.39274-0.34107 0.3893-0.34107 1.0955t0.34107 1.099q0.34106
> 0.3893 0.95774 0.3893 0.2756 0 0.54432-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55121 0.18604-0.2825
> 0.06201-0.6029 0.06201-0.87161 0-1.3849-0.54777t-0.51332-1.4779q0-0.94396
> 0.51677-1.4848 0.52021-0.54088 1.4228-0.54088 0.29284 0 0.57189 0.06201
> 0.27905 0.05857 0.54088 0.17914z"/><path id="path93" d="m136.51
> 23.69q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29284
> 1.0921q0.29628 0.39619 0.80959 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683
> 0 1.2988 0.53744t0.47198 1.4883q0 0.9474-0.47198 1.4883-0.47198
> 0.53744-1.2988 0.53744-0.83026
> 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path95" d="m138.97
> 23.245h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74758l-0.83027-3.1626-0.83372
> 3.1626h-0.74758z"/><path id="path97" d="m145.79
> 26.518h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68558-0.69246 0.86128-0.89228 0.33417-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28595-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963
> 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713
> 0.2825-0.43063 0.66835-0.0861 0.09991-0.54778 0.57878-0.46164
> 0.47542-1.3022 1.3333z"/></g><rect id="rect9379" x="120.42" y="48.868"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text9383"
> stroke-width=".26458px" aria-label="file"><path id="path117" d="m135.82
> 52.17v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30317
> 0.91639-0.30317h0.63735v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13092
> 0.1378-0.13092
> 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path
> id="path119" d="m137.15 50.668h0.6339v5.3606h-0.6339z"/><path id="path121"
> d="m142.41 53.941v0.31006h-2.9146q0.0413 0.65457 0.39275 0.99908 0.35484
> 0.34106 0.98529 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34107 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72691 0.07579-0.92329
> 0-1.4642-0.53744-0.53743-0.53744-0.53743-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.7786 0 1.2299 0.50298 0.45476 0.49954
> 0.45476 1.3608zm-0.6339-0.18604q-7e-3
> -0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53055 0-0.85094
> 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g22369"
> transform="translate(183.89 21.111)" fill="none" stroke="#aaa"
> stroke-width=".52917"><path id="rect18531" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path21920"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><g id="g25195" transform="translate(224.36
> 35.205)"><rect id="rect22371" x="-66.56" y="-29.781" width="29.28"
> height="17.692" fill="#fff" fill-rule="evenodd" stop-color="#000000"
> stroke="#808080" stroke-width=".52917"/><g id="text22477" fill="#808080"
> stroke-width=".26458px" aria-label="FUSE server"><path id="path68"
> d="m-60.499-27.145h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path70" d="m-56.519-27.145h0.69936v3.1247q0 0.82682 0.29972 1.192
> 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518
> 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609
> 0.51332-1.4676 0.51332-0.97496
> 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path72"
> d="m-48.193-26.976v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.09302-0.67868-0.09302-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17226 0.77859 0.27905l0.4203 0.08613q0.77859 0.14814 1.1472
> 0.52366 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.08268-0.40997-0.08268-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.3204l-0.42375-0.08268q-0.77859-0.15503-1.1265-0.48576-0.34796-0.33073-0.34796-0.91984
> 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725
> 0.06546 0.37552 0.06546 0.76826 0.19637z"/><path id="path74"
> d="m-46.797-27.145h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path
> id="path76"
> d="m-60.154-18.691v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.14469-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17914v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17226-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54432 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168t0.57189 0.15503z"/><path id="path78"
> d="m-55.638-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70625-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path80"
> d="m-52.361-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/><path id="path82"
> d="m-52.151-18.805h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469
> 3.8585h-0.86128z"/><path id="path84"
> d="m-44.22-17.034v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path86"
> d="m-40.944-18.212q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01034
> 0.07924 0.0069 0.1757 0.02412z"/></g></g><path id="path24007" d="m137.3
> 67.339v10.837" fill="none" marker-end="url(#Arrow1Mend)"
> marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833,
> 1.05833" stroke-width=".52917" style="paint-order:normal"/><path
> id="path25180" d="m137.3 38.694v9.2246" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><rect id="rect35415" x="122.49" y="57.933"
> width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#000" stroke-linecap="round"
> stroke-width=".529"/><g id="text35918" stroke-width=".26458px"
> aria-label="prot-node"><path id="path124" d="m126.04
> 63.274v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116
> 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067
> 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823
> 0.39067-0.29662
> 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733
> 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path
> id="path126" d="m130.31
> 61.393q-0.0748-0.04341-0.16398-0.0627-0.0868-0.0217-0.19293-0.0217-0.3762
> 0-0.57877 0.24598-0.20016 0.24357-0.20016
> 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598
> 0.36414-0.36415 0.22428-0.12058 0.54502-0.12058 0.0458 0 0.10128 0.0072
> 0.0555 0.0048 0.12299 0.01688z"/><path id="path128" d="m131.72
> 61.29q-0.35692 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498
> 0.76447q0.20739 0.27733 0.56672 0.27733 0.3545 0 0.56189-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.20739-0.28215-0.56189-0.28215zm0-0.3762q0.57877 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33039 0.3762-0.90916 0.3762-0.58119
> 0-0.91158-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33039-0.3762 0.91158-0.3762z"/><path id="path130" d="m134.13
> 60.212v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.0892 0.42444
> 0.0916 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19533-0.19293-0.19533-0.69936v-1.4662h-0.32557v-0.34485h0.32557v-0.76688z"/><path
> id="path132" d="m135.4 62.129h1.2998v0.3955h-1.2998z"/><path id="path134"
> d="m139.66
> 62.049v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291-0.20739 0.2291-0.20739
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46544 0 0.70418 0.28939
> 0.23875 0.28698 0.23875 0.84646z"/><path id="path136" d="m141.59
> 61.29q-0.35691 0-0.56431 0.27974-0.20739 0.27733-0.20739 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.20739-0.27974 0.20739-0.76206
> 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33039 0.3762 0.33039 1.0418 0 0.66318-0.33039
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path138" d="m145.34
> 61.389v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.512 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path140" d="m149.01
> 62.218v0.21704h-2.0402q0.0289 0.4582 0.27492 0.69935 0.24839 0.23874
> 0.68971 0.23874 0.25562 0 0.49437-0.0627 0.24115-0.0627
> 0.47749-0.1881v0.41961q-0.23875 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31832 0.34968 0.31832 0.95257zm-0.44372-0.13022q-5e-3
> -0.36415-0.20499-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138 0-0.59566
> 0.20981-0.22186 0.20981-0.25562 0.59083z"/></g><rect id="rect38770"
> x="122.49" y="29.267" width="29.634" height="8.4415" fill="#fff"
> fill-rule="evenodd" stop-color="#000000" stroke="#000"
> stroke-linecap="round" stroke-width=".529"/><g id="text38774"
> stroke-width=".26458px" aria-label="fmt-node"><path id="path100" d="m127.91
> 31.456v0.36897h-0.42443q-0.23875 0-0.3328 0.09646-0.0916 0.09646-0.0916
> 0.34727v0.23874h0.73071v0.34485h-0.73071v2.3561h-0.44614v-2.3561h-0.42443v-0.34485h0.42443v-0.1881q0-0.45096
> 0.20981-0.65595 0.2098-0.20739 0.66559-0.20739z"/><path id="path102"
> d="m130.39 33.026q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228
> 0.54501-0.14228 0.42203 0 0.65113 0.29662 0.2291 0.29421 0.2291
> 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41962-0.1881-0.34485
> 0-0.54501 0.2291t-0.20016
> 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42443-0.1881-0.34004
> 0-0.5402 0.23151-0.20016 0.2291-0.20016
> 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839
> 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.49919 0.14952
> 0.2074 0.14952 0.30627 0.43408z"/><path id="path104" d="m133.53
> 31.74v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.0892 0.42444
> 0.0916 0.09405 0.36897 0.09405h0.45578v0.37138h-0.45575q-0.51367
> 0-0.70901-0.19051-0.19533-0.19293-0.19533-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path106" d="m134.81 33.657h1.2998v0.3955h-1.2998z"/><path id="path108"
> d="m139.06
> 33.578v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14951-0.19051-0.44855-0.19051-0.35932
> 0-0.56672 0.2291-0.20739 0.2291-0.20739
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70417 0.28939
> 0.23875 0.28698 0.23875 0.84646z"/><path id="path110" d="m140.99
> 32.818q-0.35691 0-0.5643 0.27974-0.2074 0.27733-0.2074 0.76206t0.20499
> 0.76447q0.20739 0.27733 0.56671 0.27733 0.3545 0 0.5619-0.27974
> 0.20739-0.27974 0.20739-0.76206
> 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33039 0.3762 0.33039 1.0418 0 0.66318-0.33039
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58118
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33039-0.3762 0.91157-0.3762z"/><path id="path112" d="m144.74
> 32.917v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273
> 0.30868-0.39067 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576
> 0.3545 0.35691zm-1.512 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733
> 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path114" d="m148.41
> 33.747v0.21704h-2.0402q0.0289 0.4582 0.27492 0.69935 0.24839 0.23874
> 0.68971 0.23874 0.25562 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463
> 0-1.0249-0.3762-0.37621-0.3762-0.37621-1.0177 0-0.66318 0.35691-1.0514
> 0.35933-0.39067 0.96704-0.39067 0.54502 0 0.86093 0.35209 0.31833 0.34968
> 0.31833 0.95257zm-0.44373-0.13022q-5e-3
> -0.36415-0.20498-0.58119-0.19775-0.21704-0.52573-0.21704-0.37138 0-0.59565
> 0.20981-0.22187 0.20981-0.25563 0.59083z"/></g><path id="path8203"
> d="m137.83 19.196c0-8.7692 8.1536-8.1536 8.1536-8.1536h10.854" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><g id="g9231" transform="translate(186.33
> 23.805)" fill="#fff" fill-rule="evenodd" stroke="#0081cf"><path
> id="path9227" d="m-53.494 58.06h10.715l3.1067 3.4104v16.022h-13.822z"
> stop-color="#000000" stroke-width=".52917"/><path id="path9229" d="m-42.779
> 58.06v3.41l3.1067 1e-6z" stroke-linecap="round" stroke-linejoin="round"
> stroke-width=".529" style="paint-order:normal"/></g><g id="text9935"
> fill="#0081cf" stroke-width=".26458px" aria-label="foo.qcow2"><path
> id="path143" d="m121.81 101.76v0.5271h-0.72002q-0.34107 0-0.47543
> 0.14125-0.13091 0.1378-0.13091
> 0.49264v0.34107h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339
> 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path145"
> d="m124.52 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128
> 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0
> 0.7338-0.37551 0.24805-0.37897 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24804-0.37551-0.7338-0.37551zm0-0.53744q0.80271
> 0 1.2264 0.52021 0.4272 0.52021 0.4272 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42374-0.52021-0.42374-1.509 0-0.9853 0.42374-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path147" d="m128.77
> 103.71q-0.48231 0-0.73036 0.37551-0.24804 0.37552-0.24804 1.1128 0 0.7338
> 0.24804 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551
> 0.24805-0.37897 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42374 0.51677-1.2299 0.51677-0.8027
> 0-1.2264-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853
> 0.42375-1.5055t1.2264-0.52021z"/><path id="path149" d="m132.58
> 106.07h0.86817v1.0508h-0.86817z"/><path id="path151" d="m136.29 105.21q0
> 0.73725 0.23082 1.1128 0.23427 0.37551 0.69246 0.37551 0.4582 0
> 0.69247-0.37551 0.23771-0.37896
> 0.23771-1.1128t-0.23771-1.1093q-0.23427-0.37896-0.69247-0.37896-0.45819
> 0-0.69246 0.37551-0.23082 0.37552-0.23082 1.1128zm1.8535 1.4332q-0.15503
> 0.28594-0.4203 0.44097-0.26183 0.15159-0.60978 0.15159-0.69247
> 0-1.0955-0.53399-0.39964-0.53744-0.39964-1.478 0-0.95774 0.39964-1.4986
> 0.39963-0.54088 1.0955-0.54088 0.34451 0 0.60633 0.15159 0.26528 0.14814
> 0.42375 0.43408v-0.49265h0.63734v5.3261h-0.63734z"/><path id="path153"
> d="m143.05 106.93q-0.25494 0.14814-0.5271 0.22048-0.26872 0.0758-0.55121
> 0.0758-0.89573
> 0-1.4022-0.53744-0.50298-0.53743-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744
> 1.4022-0.53744 0.27905 0 0.54432 0.0724t0.53399
> 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.0999-0.57188-0.0999-0.59601
> 0-0.9164 0.38585t-0.32039 1.1024q0 0.71313 0.32039 1.1024 0.32384 0.38585
> 0.9164 0.38585 0.33072 0 0.59255-0.0999 0.26183-0.10335
> 0.48576-0.31695z"/><path id="path155" d="m145.76 103.71q-0.48232 0-0.73036
> 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24804
> 0.37551 0.73036 0.37551 0.48576 0 0.7338-0.37551 0.24805-0.37897
> 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24804-0.37551-0.7338-0.37551zm0-0.53744q0.8027 0
> 1.2264 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42374
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42374-0.52021-0.42374-1.509 0-0.9853 0.42374-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path157" d="m147.89
> 103.26h0.62701l0.67179 3.1178 0.55122-1.9913h0.54088l0.55811 1.9913
> 0.67179-3.1178h0.62701l-0.90262 3.8585h-0.60634l-0.61667-2.1153-0.61323
> 2.1153h-0.60633z"/><path id="path159" d="m153.42
> 106.54h2.3633v0.58567h-3.1247v-0.58567q0.64424-0.67868
> 1.1266-1.1989t0.6649-0.73381q0.34451-0.4203 0.46509-0.67868 0.12058-0.26183
> 0.12058-0.53399
> 0-0.43064-0.25494-0.67524-0.25149-0.2446-0.69246-0.2446-0.31351 0-0.65802
> 0.11368-0.34451 0.11369-0.73036 0.34451v-0.7028q0.35485-0.16881
> 0.69591-0.25493 0.34451-0.0861 0.67869-0.0861 0.75447 0 1.2127 0.40308
> 0.46165 0.39963 0.46165 1.0508 0 0.33073-0.15503 0.66146-0.15159
> 0.33073-0.4961 0.73036-0.19292 0.22393-0.56155 0.62012-0.36518
> 0.39618-1.1162 1.1851z"/></g><rect id="rect876" x=".26458" y="13.714"
> width="46.311" height="57.175" rx="5.2917" ry="5.2917" fill="none"
> stop-color="#000000" stroke="#802400" stroke-dasharray="2.11666, 2.11666"
> stroke-linecap="round" stroke-width=".52917"/><rect id="rect878" x="6.5361"
> y="20.157" width="33.768" height="13.398" rx="1.7964" ry="1.8948"
> fill="none" stop-color="#000000" stroke="#000" stroke-width=".52917"/><g
> id="text882" stroke-width=".26458px" aria-label="qcow2"><path id="path265"
> d="m13.155 25.178q0 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619
> 0.50298 0 0.79237-0.39619 0.28939-0.39963
> 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963-0.50298
> 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936
> 0-1.1403-0.55811-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.5581
> 1.1403-0.5581 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643
> 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path267" d="m20.032
> 23.393v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path269" d="m22.629 23.69q-0.50988 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619
> 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path271" d="m25.082
> 23.245h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path273" d="m31.91
> 26.518h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68557-0.69246 0.86127-0.89228 0.33418-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963
> 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713
> 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164
> 0.47542-1.3022 1.3333z"/></g><rect id="rect884" x="6.5361" y="48.868"
> width="33.768" height="13.398" rx="1.7964" ry="1.8948" fill="none"
> stop-color="#000000" stroke="#000" stroke-width=".52917"/><g id="text888"
> stroke-width=".26458px" aria-label="file"><path id="path276" d="m21.937
> 52.17v3.8585h-0.63734v-3.3659h-1.7398v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.63045
> 0.29628-0.93018 0.29972-0.30317
> 0.9164-0.30317h0.63734v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091
> 0.1378-0.13091
> 0.49609v0.34106zm-0.63734-1.4952h0.63734v0.80271h-0.63734z"/><path
> id="path278" d="m23.263 50.668h0.6339v5.3606h-0.6339z"/><path id="path280"
> d="m28.524 53.941v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69935 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/></g><g id="g894"
> transform="translate(70.003 21.111)" fill="none" stroke="#000"
> stroke-width=".52917"><path id="path890" d="m-53.494 58.06h10.715l3.1067
> 3.4104v16.022h-13.822z" stop-color="#000000"/><path id="path892"
> d="m-42.779 58.06v3.41l3.1067 1e-6" stroke-linecap="round"
> style="paint-order:normal"/></g><path id="path906" d="m23.415
> 67.339v10.837" fill="none" marker-end="url(#Arrow1Mend)"
> marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833,
> 1.05833" stroke-width=".52917" style="paint-order:normal"/><path
> id="path908" d="m23.415 38.694v9.2246" fill="none"
> marker-end="url(#Arrow1Mend)" marker-start="url(#Arrow2Mstart)"
> stroke="#000" stroke-dasharray="1.05833, 1.05833" stroke-width=".52917"
> style="paint-order:normal"/><rect id="rect910" x="8.603" y="57.933"
> width="29.634" height="8.4415" fill="#fff" fill-rule="evenodd"
> stop-color="#000000" stroke="#000" stroke-linecap="round"
> stroke-width=".529"/><g id="text914" stroke-width=".26458px"
> aria-label="prot-node"><path id="path283" d="m12.16
> 63.274v1.4325h-0.44614v-3.7283h0.44614v0.40997q0.13987-0.24116
> 0.35209-0.35691 0.21463-0.11817 0.51125-0.11817 0.49196 0 0.79823 0.39067
> 0.30868 0.39067 0.30868 1.0273t-0.30868 1.0273q-0.30627 0.39067-0.79823
> 0.39067-0.29662
> 0-0.51125-0.11576-0.21222-0.11817-0.35209-0.35932zm1.5096-0.94292q0-0.48955-0.20257-0.76688-0.20016-0.27974-0.55225-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688t0.20016 0.76929q0.20257 0.27733
> 0.55466 0.27733t0.55225-0.27733q0.20257-0.27974 0.20257-0.76929z"/><path
> id="path285" d="m16.431
> 61.393q-0.07476-0.04341-0.16399-0.0627-0.08682-0.0217-0.19293-0.0217-0.3762
> 0-0.57878 0.24598-0.20016 0.24357-0.20016
> 0.70177v1.4228h-0.44614v-2.701h0.44614v0.41961q0.13987-0.24598
> 0.36415-0.36415 0.22428-0.12058 0.54501-0.12058 0.04582 0 0.10129 0.0072
> 0.05547 0.0048 0.12299 0.01688z"/><path id="path287" d="m17.835
> 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path289" d="m20.249
> 60.212v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path291" d="m21.522 62.129h1.2998v0.3955h-1.2998z"/><path id="path293"
> d="m25.774
> 62.049v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395t-0.44855-0.19051q-0.35932
> 0-0.56672 0.2291t-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.4992-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path295" d="m27.705
> 61.29q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.20739-0.27974 0.20739-0.76206
> 0-0.4799-0.20739-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path297" d="m31.458
> 61.389v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273t0.30627-1.0273q0.30868-0.39067
> 0.79823-0.39067 0.29903 0 0.51125 0.11817 0.21463 0.11576 0.3545
> 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733 0.55466
> 0.27733 0.35209 0 0.55466-0.27733 0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974-0.35209
> 0-0.55466 0.27974-0.20016 0.27733-0.20016 0.76688z"/><path id="path299"
> d="m35.126 62.218v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839
> 0.23874 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><rect id="rect916"
> x="8.603" y="29.267" width="29.634" height="8.4415" fill="#fff"
> fill-rule="evenodd" stop-color="#000000" stroke="#000"
> stroke-linecap="round" stroke-width=".529"/><g id="text920"
> stroke-width=".26458px" aria-label="fmt-node"><path id="path248" d="m14.031
> 31.456v0.36897h-0.42444q-0.23874 0-0.3328 0.09646-0.09164 0.09646-0.09164
> 0.34727v0.23874h0.7307v0.34485h-0.7307v2.3561h-0.44614v-2.3561h-0.42444v-0.34485h0.42444v-0.1881q0-0.45096
> 0.20981-0.65595 0.20981-0.20739 0.66559-0.20739z"/><path id="path250"
> d="m16.505 33.026q0.1664-0.29903 0.39791-0.44132 0.23151-0.14228
> 0.54501-0.14228 0.42202 0 0.65112 0.29662 0.2291 0.29421 0.2291
> 0.83923v1.6302h-0.44614v-1.6158q0-0.38826-0.13746-0.57636-0.13746-0.1881-0.41961-0.1881-0.34485
> 0-0.54501 0.2291t-0.20016
> 0.6246v1.5265h-0.44614v-1.6158q0-0.39067-0.13746-0.57636-0.13746-0.1881-0.42444-0.1881-0.34003
> 0-0.54019 0.23151-0.20016 0.2291-0.20016
> 0.62218v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15193-0.24839
> 0.36415-0.36656 0.21222-0.11817 0.50402-0.11817 0.29421 0 0.49919 0.14952
> 0.2074 0.14952 0.30627 0.43408z"/><path id="path252" d="m19.652
> 31.74v0.76688h0.91398v0.34485h-0.91398v1.4662q0 0.33038 0.08923 0.42444
> 0.09164 0.09405 0.36897 0.09405h0.45579v0.37138h-0.45579q-0.51366
> 0-0.709-0.19051-0.19534-0.19293-0.19534-0.69936v-1.4662h-0.32556v-0.34485h0.32556v-0.76688z"/><path
> id="path254" d="m20.925 33.657h1.2998v0.3955h-1.2998z"/><path id="path256"
> d="m25.177
> 33.578v1.6302h-0.44373v-1.6158q0-0.38344-0.14952-0.57395-0.14952-0.19051-0.44855-0.19051-0.35932
> 0-0.56672 0.2291-0.2074 0.2291-0.2074
> 0.6246v1.5265h-0.44614v-2.701h0.44614v0.41961q0.15916-0.24357
> 0.37379-0.36415 0.21704-0.12058 0.49919-0.12058 0.46543 0 0.70418 0.28939
> 0.23874 0.28698 0.23874 0.84646z"/><path id="path258" d="m27.108
> 32.818q-0.35691 0-0.56431 0.27974-0.2074 0.27733-0.2074 0.76206t0.20498
> 0.76447q0.2074 0.27733 0.56672 0.27733 0.3545 0 0.5619-0.27974
> 0.2074-0.27974 0.2074-0.76206
> 0-0.4799-0.2074-0.75964-0.2074-0.28215-0.5619-0.28215zm0-0.3762q0.57878 0
> 0.90916 0.3762 0.33038 0.3762 0.33038 1.0418 0 0.66318-0.33038
> 1.0418-0.33038 0.3762-0.90916 0.3762-0.58119
> 0-0.91157-0.3762-0.32797-0.37862-0.32797-1.0418 0-0.66559 0.32797-1.0418
> 0.33038-0.3762 0.91157-0.3762z"/><path id="path260" d="m30.861
> 32.917v-1.4614h0.44373v3.7524h-0.44373v-0.40514q-0.13987 0.24116-0.3545
> 0.35932-0.21222 0.11576-0.51125 0.11576-0.48955
> 0-0.79823-0.39067-0.30627-0.39067-0.30627-1.0273 0-0.63665 0.30627-1.0273
> 0.30868-0.39067 0.79823-0.39067 0.29904 0 0.51125 0.11817 0.21463 0.11576
> 0.3545 0.35691zm-1.5121 0.94292q0 0.48955 0.20016 0.76929 0.20257 0.27733
> 0.55466 0.27733t0.55466-0.27733q0.20257-0.27974
> 0.20257-0.76929t-0.20257-0.76688q-0.20257-0.27974-0.55466-0.27974t-0.55466
> 0.27974q-0.20016 0.27733-0.20016 0.76688z"/><path id="path262" d="m34.529
> 33.747v0.21704h-2.0402q0.02894 0.4582 0.27492 0.69935 0.24839 0.23874
> 0.68971 0.23874 0.25563 0 0.49437-0.0627 0.24116-0.0627
> 0.47749-0.1881v0.41961q-0.23874 0.10129-0.48955 0.15434-0.2508
> 0.05306-0.50884 0.05306-0.6463 0-1.0249-0.3762-0.3762-0.3762-0.3762-1.0177
> 0-0.66318 0.35691-1.0514 0.35932-0.39067 0.96704-0.39067 0.54501 0 0.86093
> 0.35209 0.31833 0.34968 0.31833
> 0.95257zm-0.44373-0.13022q-0.0048-0.36415-0.20498-0.58119-0.19775-0.21704-0.52572-0.21704-0.37138
> 0-0.59566 0.20981-0.22186 0.20981-0.25563 0.59083z"/></g><g id="text934"
> stroke-width=".26458px" aria-label="foo.qcow2"><path id="path162"
> d="m7.9308 101.76v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091
> 0.1378-0.13091
> 0.49264v0.34107h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339
> 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path164"
> d="m10.639 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128
> 0 0.7338 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0
> 0.7338-0.37551 0.24805-0.37897 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.7338-0.37551zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853
> 0.42375-1.5055t1.2265-0.52021z"/><path id="path166" d="m14.886
> 103.71q-0.48231 0-0.73036 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338
> 0.24805 1.1128 0.24805 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551
> 0.24805-0.37897 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853
> 0.42375-1.5055t1.2265-0.52021z"/><path id="path168" d="m18.697
> 106.07h0.86816v1.0508h-0.86816z"/><path id="path170" d="m22.404 105.21q0
> 0.73725 0.23082 1.1128 0.23427 0.37551 0.69246
> 0.37551t0.69246-0.37551q0.23771-0.37896
> 0.23771-1.1128t-0.23771-1.1093q-0.23427-0.37896-0.69246-0.37896t-0.69246
> 0.37551q-0.23082 0.37552-0.23082 1.1128zm1.8535 1.4332q-0.15503
> 0.28594-0.4203 0.44097-0.26183 0.15159-0.60978 0.15159-0.69246
> 0-1.0955-0.53399-0.39963-0.53744-0.39963-1.478 0-0.95774 0.39963-1.4986
> 0.39963-0.54088 1.0955-0.54088 0.34451 0 0.60634 0.15159 0.26527 0.14814
> 0.42375 0.43408v-0.49265h0.63734v5.3261h-0.63734z"/><path id="path172"
> d="m29.163 106.93q-0.25494 0.14814-0.5271 0.22048-0.26872 0.0758-0.55122
> 0.0758-0.89573
> 0-1.4022-0.53744-0.50298-0.53743-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744
> 1.4022-0.53744 0.27905 0 0.54432 0.0724 0.26527 0.0724 0.53399
> 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.0999-0.57189-0.0999-0.596
> 0-0.9164 0.38585t-0.32039 1.1024q0 0.71313 0.32039 1.1024 0.32384 0.38585
> 0.9164 0.38585 0.33073 0 0.59256-0.0999 0.26183-0.10335
> 0.48576-0.31695z"/><path id="path174" d="m31.878 103.71q-0.48231 0-0.73036
> 0.37551-0.24805 0.37552-0.24805 1.1128 0 0.7338 0.24805 1.1128 0.24805
> 0.37551 0.73036 0.37551 0.48576 0 0.73381-0.37551 0.24805-0.37897
> 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37551-0.73381-0.37551zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51677-1.2299 0.51677-0.80271
> 0-1.2265-0.51677-0.42375-0.52021-0.42375-1.509 0-0.9853
> 0.42375-1.5055t1.2265-0.52021z"/><path id="path176" d="m34.003
> 103.26h0.62701l0.67179 3.1178 0.55122-1.9913h0.54088l0.55811 1.9913
> 0.67179-3.1178h0.62701l-0.90262 3.8585h-0.60634l-0.61667-2.1153-0.61323
> 2.1153h-0.60634z"/><path id="path178" d="m39.536
> 106.54h2.3633v0.58567h-3.1247v-0.58567q0.64423-0.67868 1.1265-1.1989
> 0.48231-0.52021 0.6649-0.73381 0.34451-0.4203 0.46509-0.67868
> 0.12058-0.26183 0.12058-0.53399
> 0-0.43064-0.25494-0.67524-0.25149-0.2446-0.69246-0.2446-0.3135 0-0.65801
> 0.11368-0.34451 0.11369-0.73036 0.34451v-0.7028q0.35484-0.16881
> 0.69591-0.25493 0.34451-0.0861 0.67868-0.0861 0.75448 0 1.2127 0.40308
> 0.46164 0.39963 0.46164 1.0508 0 0.33073-0.15503 0.66146-0.15158
> 0.33073-0.49609 0.73036-0.19293 0.22393-0.56155 0.62012-0.36518
> 0.39618-1.1162 1.1851z"/></g><path id="path3010" d="m188.01 14.34c8.4834 0
> 7.5897 6.5118 7.5897 6.5118v64.293c0 7.1845-7.0725 6.5115-7.0725
> 6.5115h-40.896" fill="none" marker-end="url(#Arrow1Mend)"
> marker-start="url(#Arrow2Mstart)" stroke="#000" stroke-dasharray="1.05833,
> 1.05833" stroke-width=".52917" style="paint-order:normal"/><path
> id="path5636" d="m52.435 42.311h54.899" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width="1.0583" style="paint-order:normal"/><g id="text10276"
> stroke-width=".26458px" aria-label="Exporting foo.qcow2  via FUSE on
> itself"><path id="path181" d="m64.283
> 22.613h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path
> id="path183" d="m71.92 23.898-1.3953 1.8776 1.4676
> 1.9809h-0.74759l-1.1231-1.5158-1.1231
> 1.5158h-0.74759l1.4986-2.0188-1.3711-1.8397h0.74759l1.0232 1.3746
> 1.0232-1.3746z"/><path id="path185" d="m73.502
> 27.178v2.0464h-0.63734v-5.3261h0.63734v0.58567q0.19982-0.34451
> 0.50298-0.50987 0.30661-0.16881 0.73036-0.16881 0.7028 0 1.1403 0.55811
> 0.44097 0.55811 0.44097 1.4676 0 0.9095-0.44097 1.4676-0.43753
> 0.55811-1.1403 0.55811-0.42375
> 0-0.73036-0.16536-0.30317-0.16881-0.50298-0.51332zm2.1566-1.347q0-0.69936-0.28939-1.0955-0.28594-0.39963-0.78893-0.39963t-0.79237
> 0.39963q-0.28594 0.39619-0.28594 1.0955 0 0.69935 0.28594 1.099 0.28939
> 0.39619 0.79237 0.39619t0.78893-0.39619q0.28939-0.39963
> 0.28939-1.099z"/><path id="path187" d="m78.862 24.343q-0.50988 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628
> 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963
> 0.29628-1.0886
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path189" d="m83.92
> 24.491q-0.1068-0.06201-0.23427-0.08957-0.12402-0.03101-0.27561-0.03101-0.53744
> 0-0.82682 0.3514-0.28594 0.34796-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17226 0.77859-0.17226 0.06546 0 0.14469 0.01033
> 0.07924 0.0069 0.1757 0.02412z"/><path id="path191" d="m85.212
> 22.803v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634
> 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.7338
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path193" d="m87.351
> 23.898h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path195" d="m92.519
> 25.428v2.3289h-0.6339v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34796
> 0.53399-0.52021 0.31006-0.17226 0.71314-0.17226 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path197" d="m96.322
> 25.783q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50987
> 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68558 0.2825 1.0645
> 0.28594 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896
> 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753
> 0.48231-1.3401 0.48231-0.33418
> 0-0.63045-0.05168-0.29628-0.04823-0.57533-0.15158v-0.61667q0.27905 0.15158
> 0.55122 0.22393 0.27216 0.07235 0.55466 0.07235 0.62356 0 0.93362-0.32728
> 0.31006-0.32384 0.31006-0.98185v-0.3135q-0.19637 0.34106-0.50298
> 0.50987-0.30661 0.16881-0.73381 0.16881-0.70969
> 0-1.1438-0.54088-0.43408-0.54088-0.43408-1.4332 0-0.89572 0.43408-1.4366
> 0.43408-0.54088 1.1438-0.54088 0.42719 0 0.73381 0.16881 0.30661 0.16881
> 0.50298 0.50987v-0.58567h0.6339z"/><path id="path199" d="m65.127
> 30.863v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091
> 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.64423
> 0.29972-0.93707 0.29972-0.29628 0.95085-0.29628z"/><path id="path201"
> d="m67.152 32.809q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628
> 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0
> 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path203" d="m71.469
> 32.809q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283
> 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.80271-0.39963
> 0.29628-0.39963 0.29628-1.0887
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path205" d="m74.256
> 35.349h0.72692v0.87506h-0.72692z"/><path id="path207" d="m76.788 34.298q0
> 0.69936 0.28594 1.099 0.28939 0.39619 0.79237 0.39619 0.50298 0
> 0.79237-0.39619 0.28939-0.39963
> 0.28939-1.099t-0.28939-1.0955q-0.28939-0.39963-0.79237-0.39963-0.50298
> 0-0.79237 0.39963-0.28594 0.39619-0.28594 1.0955zm2.1601 1.347q-0.19982
> 0.34451-0.50643 0.51332-0.30317 0.16536-0.73036 0.16536-0.69936
> 0-1.1403-0.5581-0.43753-0.55811-0.43753-1.4676t0.43753-1.4676q0.44097-0.55811
> 1.1403-0.55811 0.42719 0 0.73036 0.16881 0.30661 0.16536 0.50643
> 0.50988v-0.58567h0.6339v5.3261h-0.6339z"/><path id="path209" d="m83.665
> 32.513v0.59256q-0.26872-0.14814-0.54088-0.22049-0.26872-0.07579-0.54433-0.07579-0.61667
> 0-0.95774 0.39274-0.34106 0.3893-0.34106 1.0955t0.34106 1.099q0.34106
> 0.3893 0.95774 0.3893 0.27561 0 0.54433-0.07235 0.27216-0.07579
> 0.54088-0.22393v0.58567q-0.26527 0.12402-0.55122 0.18604-0.2825
> 0.06201-0.60289 0.06201-0.87161
> 0-1.3849-0.54777-0.51332-0.54777-0.51332-1.4779 0-0.94396 0.51676-1.4848
> 0.52021-0.54088 1.4228-0.54088 0.29283 0 0.57189 0.06201 0.27905 0.05857
> 0.54088 0.17914z"/><path id="path211" d="m86.262 32.809q-0.50988 0-0.80615
> 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619
> 0.8096 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path213" d="m88.715
> 32.365h0.6339l0.79237 3.011 0.78893-3.011h0.74759l0.79237 3.011
> 0.78893-3.011h0.6339l-1.0094 3.8585h-0.74759l-0.83027-3.1626-0.83371
> 3.1626h-0.74759z"/><path id="path215" d="m95.543
> 35.638h2.4288v0.58567h-3.266v-0.58567q0.39619-0.40997 1.0783-1.099
> 0.68557-0.69246 0.86127-0.89228 0.33418-0.37552 0.46509-0.6339
> 0.13436-0.26183 0.13436-0.51332
> 0-0.40997-0.28939-0.66835-0.28594-0.25838-0.74759-0.25838-0.32728 0-0.69246
> 0.11369-0.36174 0.11369-0.77515 0.34451v-0.7028q0.4203-0.16881
> 0.78548-0.25494 0.36518-0.08613 0.66835-0.08613 0.79926 0 1.2747 0.39963
> 0.47542 0.39963 0.47542 1.068 0 0.31695-0.12058 0.60289-0.11713
> 0.2825-0.43064 0.66835-0.08613 0.09991-0.54777 0.57878-0.46164
> 0.47542-1.3022 1.3333z"/><path id="path217" d="m65.373
> 49.298h0.67179l1.2058 3.2384 1.2058-3.2384h0.67179l-1.4469
> 3.8585h-0.86128z"/><path id="path219" d="m70.003
> 49.298h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path221" d="m73.717 51.217q-0.76826 0-1.0645 0.1757-0.29628
> 0.1757-0.29628 0.59945 0 0.33762 0.22049 0.53744 0.22393 0.19637 0.60634
> 0.19637 0.5271 0 0.84405-0.37207 0.32039-0.37552
> 0.32039-0.99563v-0.14125zm1.2644-0.26183v2.2014h-0.6339v-0.58567q-0.21704
> 0.3514-0.54088 0.52021-0.32384 0.16536-0.79237 0.16536-0.59256
> 0-0.94396-0.33073-0.34796-0.33418-0.34796-0.89228 0-0.65112 0.43408-0.98185
> 0.43753-0.33073
> 1.3022-0.33073h0.88884v-0.06201q0-0.43753-0.28939-0.67524-0.28594-0.24116-0.80615-0.24116-0.33073
> 0-0.64423 0.07924-0.3135 0.07924-0.60289 0.23771v-0.58567q0.34796-0.13436
> 0.67524-0.19982 0.32728-0.0689 0.63734-0.0689 0.83716 0 1.2506 0.43408
> 0.41341 0.43408 0.41341 1.316z"/><path id="path223" d="m78.557
> 48.013h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path225" d="m82.536 48.013h0.69936v3.1247q0 0.82682 0.29972 1.192
> 0.29972 0.36174 0.97152 0.36174 0.66835 0 0.96807-0.36174 0.29972-0.36518
> 0.29972-1.192v-3.1247h0.69936v3.2108q0 1.006-0.49954 1.5193-0.49609
> 0.51332-1.4676 0.51332-0.97496
> 0-1.4745-0.51332-0.49609-0.51332-0.49609-1.5193z"/><path id="path227"
> d="m90.863
> 48.182v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.09302-0.67868-0.09302-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17226 0.77859 0.27905l0.4203 0.08613q0.77859 0.14814 1.1472
> 0.52366 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.08268-0.40997-0.08268-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.3204l-0.42375-0.08268q-0.77859-0.15503-1.1265-0.48576-0.34796-0.33073-0.34796-0.91984
> 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725
> 0.06546t0.76826 0.19637z"/><path id="path229" d="m92.258
> 48.013h3.2522v0.58567h-2.5563v1.5227h2.4495v0.58567h-2.4495v1.8638h2.6183v0.58567h-3.3142z"/><path
> id="path231" d="m68.644 58.21q-0.50987 0-0.80615 0.39963-0.29628
> 0.39619-0.29628 1.0887 0 0.69246 0.29283 1.0921 0.29628 0.39619 0.8096
> 0.39619 0.50643 0 0.80271-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68558-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path233" d="m74.673
> 59.295v2.3289h-0.6339v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728-0.29628 0.32728-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34796
> 0.53399-0.52021 0.31006-0.17226 0.71314-0.17226 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path235" d="m78.18
> 57.765h0.6339v3.8585h-0.6339zm0-1.5021h0.6339v0.80271h-0.6339z"/><path
> id="path237" d="m80.767 56.67v1.0955h1.3057v0.49265h-1.3057v2.0946q0
> 0.47198 0.12747 0.60634 0.13091 0.13436 0.5271
> 0.13436h0.65112v0.53054h-0.65112q-0.73381
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path239" d="m85.367
> 57.879v0.59945q-0.26872-0.1378-0.55811-0.20671-0.28939-0.0689-0.59945-0.0689-0.47198
> 0-0.70969 0.1447-0.23427 0.14469-0.23427 0.43408 0 0.22049 0.16881 0.34796
> 0.16881 0.12402 0.67868 0.23771l0.21704 0.04823q0.67524 0.14469 0.95774
> 0.40997 0.28594 0.26183 0.28594 0.73381 0 0.53744-0.42719 0.85094-0.42375
> 0.3135-1.1679 0.3135-0.31006
> 0-0.64768-0.06201-0.33417-0.05857-0.70624-0.17915v-0.65457q0.3514 0.18259
> 0.69246 0.27561 0.34106 0.08957 0.67524 0.08957 0.44786 0 0.68902-0.15158
> 0.24116-0.15503 0.24116-0.43408
> 0-0.25838-0.1757-0.39619-0.17225-0.1378-0.76137-0.26527l-0.22049-0.05168q-0.58911-0.12402-0.85094-0.37896-0.26183-0.25838-0.26183-0.70624
> 0-0.54433 0.38585-0.8406 0.38585-0.29628 1.0955-0.29628 0.3514 0 0.66146
> 0.05168t0.57189 0.15503z"/><path id="path241" d="m89.883
> 59.536v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.08957 0.34451-0.08957
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.07579-0.72692 0.07579-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50988-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.0069-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path243"
> d="m90.924 56.263h0.6339v5.3606h-0.6339z"/><path id="path245" d="m94.837
> 56.263v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091
> 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.64423
> 0.29972-0.93707 0.29972-0.29628 0.95085-0.29628z"/></g></svg>
> diff --git a/screenshots/2021-08-18-root-directory.svg
> b/screenshots/2021-08-18-root-directory.svg
> new file mode 100644
> index 0000000..f9449f1
> --- /dev/null
> +++ b/screenshots/2021-08-18-root-directory.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="149.08mm" height="64.908mm" version="1.1"
> viewBox="0 0 149.08 64.908" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow1Mend" overflow="visible" orient="auto"><path
> id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker><marker id="ArrowRedMend" overflow="visible"
> orient="auto"><path id="path53977" transform="scale(.6) rotate(180)
> translate(0)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455
> 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="#0081cf" fill-rule="evenodd"
> stroke-linejoin="round" stroke-width=".625"/></marker></defs><g
> id="text10527" stroke-width=".26458px" aria-label="/  foo/    a    b  bar/
>   c    d"><path id="path79" d="m5.3131 16.476h0.65457l-2.7078
> 5.7981h-0.65801z"/><path id="path81" d="m14.408
> 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091 0.1378-0.13091
> 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339
> 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path83"
> d="m17.116 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128
> 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0
> 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51676-1.2299 0.51676-0.80271
> 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path85" d="m21.364
> 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381
> 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552
> 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51676-1.2299 0.51676-0.80271
> 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path87" d="m26.552
> 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path89" d="m21.66
> 34.032h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878
> 0 0.34796 0.21015 0.54088 0.21015 0.19293 0.58222 0.19293 0.52365 0
> 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50987-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33417
> 1.2712-0.33417h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436
> 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125
> 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512
> 0.25149 0.05512 0.75792z"/><path id="path91" d="m22.404
> 41.222q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164
> 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408
> 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399
> 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.34451
> 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path93" d="m13.909
> 48.398q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164
> 0-0.69935 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69935 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408
> 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399
> 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.34451
> 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path95" d="m17.412 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905
> 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222
> 0.19292 0.52366 0 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33418
> 1.2712-0.33418h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436
> 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125
> 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512
> 0.25149 0.05512 0.75792z"/><path id="path97" d="m23.221
> 47.261q-0.20326-0.15848-0.41341-0.23082-0.21015-0.07235-0.46164-0.07235-0.59256
> 0-0.90606 0.37207-0.3135 0.37207-0.3135
> 1.0749v1.9189h-0.63734v-3.8585h0.63734v0.75448q0.15847-0.40997
> 0.48576-0.62701 0.33073-0.22049 0.78204-0.22049 0.23427 0 0.43753
> 0.05857t0.3893 0.18259z"/><path id="path99" d="m26.552
> 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path101" d="m22.897
> 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122
> 0.07579-0.89572
> 0-1.4022-0.53744-0.50298-0.53744-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744
> 1.4022-0.53744 0.27905 0 0.54433 0.07235 0.26527 0.07235 0.53399
> 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596
> 0-0.9164 0.38585t-0.32039 1.1024q0 0.71314 0.32039 1.1024 0.32384 0.38585
> 0.9164 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335
> 0.48576-0.31695z"/><path id="path103" d="m22.198
> 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15848 0.28594-0.42375
> 0.43753-0.26183 0.14814-0.60634 0.14814-0.69936
> 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40308-1.4745
> 0.40308-0.53744 1.099-0.53744 0.34796 0 0.61323 0.15158 0.26527 0.14814
> 0.41686 0.43408zm-1.8638 1.4401q0 0.73725 0.23427 1.1128 0.23427 0.37552
> 0.69246 0.37552t0.69591-0.37896q0.24116-0.37896 0.24116-1.1093
> 0-0.73381-0.24116-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69246
> 0.37552q-0.23427 0.37552-0.23427 1.1128z"/></g><path id="path25696"
> d="m4.5344 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path25958"
> d="m4.5344 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path27085" d="m4.5344 46.199c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path27490"
> d="m13.266 30.8-0.0056 8.5867" fill="none" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path27629" d="m13.26 32.462c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path27844"
> d="m13.26 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path28236" d="m13.266 52.334-0.0056
> 8.5867" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path28238"
> d="m13.26 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path28240" d="m13.26 60.92c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><g id="text31368"
> stroke-width=".26458px" aria-label="VFS tree:"><path id="path62" d="m2.096
> 5.3688-1.9637-5.1435h0.72692l1.6295 4.3305 1.633-4.3305h0.72347l-1.9603
> 5.1435z"/><path id="path64" d="m5.5962
> 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path66" d="m12.614
> 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472
> 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576t-0.34795-0.91984q0-0.68213
> 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.065457
> 0.37552 0.065457 0.76826 0.19637z"/><path id="path68" d="m16.851
> 0.41479v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634
> 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.7338
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path70" d="m21.227
> 2.1029q-0.1068-0.062012-0.23427-0.089573-0.12402-0.031006-0.27561-0.031006-0.53744
> 0-0.82682 0.3514-0.28594 0.34795-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17225 0.77859-0.17225 0.06546 0 0.14469 0.010335
> 0.07924 0.00689 0.1757 0.024116z"/><path id="path72" d="m25.037
> 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.075792-0.72692 0.075792-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path74"
> d="m29.378 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.075792-0.72692 0.075792-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path76"
> d="m30.58
> 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g
> id="text36298" fill="#0081cf" stroke-width=".26458px" aria-label="/  x
> y"><path id="path115" d="m58.664 16.476h0.65457l-2.7078
> 5.7981h-0.65801z"/><path id="path117" d="m67.949 24.937-1.3815 1.8466
> 1.5158 2.0119h-0.73381l-1.13-1.5468-1.1265
> 1.5468h-0.73381l1.5158-2.0119-1.3815-1.8466h0.7028l1.0232 1.3953
> 1.0163-1.3953z"/><path id="path119" d="m67.053 34.731q-0.15848
> 0.40308-0.40308 1.0611-0.34106 0.90951-0.4582 1.1093-0.15847
> 0.26872-0.39619 0.40308t-0.55466 0.13436h-0.50987v-0.53055h0.37552q0.27905
> 0 0.43753-0.16192 0.15847-0.16192
> 0.40308-0.83716l-1.4917-3.7965h0.67179l1.1438 3.0179
> 1.1265-3.0179h0.67179z"/></g><path id="path36300" d="m57.886 23.535v9.5655"
> fill="none" stroke="#0081cf" stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path36302" d="m57.886 24.564c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#ArrowRedMend)" stroke="#0081cf" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path36304"
> d="m57.886 33.101c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#ArrowRedMend)" stroke="#0081cf"
> stroke-linecap="round" stroke-width=".52917" style="paint-order:normal"/><g
> id="text36320" stroke-width=".26458px" aria-label="FS A:"><path
> id="path106" d="m53.733
> 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path108" d="m60.75
> 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472
> 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576-0.34795-0.33073-0.34795-0.91984
> 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725
> 0.065457 0.37552 0.065457 0.76826 0.19637z"/><path id="path110" d="m66.107
> 0.91088-0.94396 2.5597h1.8914zm-0.39274-0.68557h0.78893l1.9603
> 5.1435h-0.72347l-0.46853-1.3195h-2.3186l-0.46853 1.3195h-0.7338z"/><path
> id="path112" d="m69.225
> 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g
> id="text44877" stroke-width=".26458px" aria-label="Mounting FS Aon
> /foo:"><path id="path122" d="m98.949 0.34933h1.037l1.3126 3.5002
> 1.3195-3.5002h1.037v5.1435h-0.67869v-4.5165l-1.3264
> 3.5278h-0.69935l-1.3264-3.5278v4.5165h-0.67524z"/><path id="path124"
> d="m106.5 2.0788q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887
> 0 0.69246 0.29284 1.0921 0.29627 0.39619 0.80959 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683
> 0 1.2988 0.53744 0.47197 0.53744 0.47197 1.4883 0 0.9474-0.47197
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026
> 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path126" d="m109.26
> 3.9701v-2.3358h0.6339v2.3117q0 0.54777 0.2136 0.82338 0.21359 0.27216
> 0.64079 0.27216 0.51332 0 0.80959-0.32728 0.29973-0.32728
> 0.29973-0.89228v-2.1876h0.63389v3.8585h-0.63389v-0.59256q-0.23082
> 0.3514-0.53744 0.52365-0.30317 0.16881-0.70624 0.16881-0.66491
> 0-1.0094-0.41341-0.34451-0.41341-0.34451-1.2092z"/><path id="path128"
> d="m117
> 3.164v2.3289h-0.63389v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795
> 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path130" d="m118.9
> 0.53881v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634
> 0.13091 0.13436 0.5271 0.13436h0.65112v0.53055h-0.65112q-0.73381
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path132" d="m121.04
> 1.6344h0.63389v3.8585h-0.63389zm0-1.5021h0.63389v0.80271h-0.63389z"/><path
> id="path134" d="m126.2
> 3.164v2.3289h-0.63389v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795
> 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path136" d="m130.01
> 3.5188q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50987
> 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68557 0.2825 1.0645
> 0.28595 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896
> 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753
> 0.48231-1.3401 0.48231-0.33418
> 0-0.63045-0.051677-0.29628-0.048231-0.57534-0.15158v-0.61667q0.27906
> 0.15158 0.55122 0.22393 0.27216 0.072347 0.55466 0.072347 0.62356 0
> 0.93362-0.32728 0.31006-0.32384 0.31006-0.98185v-0.3135q-0.19637
> 0.34106-0.50298 0.50987-0.30662 0.16881-0.73381 0.16881-0.70969
> 0-1.1438-0.54088-0.43408-0.54088-0.43408-1.4332 0-0.89573 0.43408-1.4366
> 0.43408-0.54088 1.1438-0.54088 0.42719 0 0.73381 0.16881 0.30661 0.16881
> 0.50298 0.50987v-0.58567h0.6339z"/><path id="path138" d="m134.22
> 0.34933h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path140" d="m141.23
> 0.51814v0.67868q-0.39618-0.18948-0.74758-0.2825t-0.67869-0.093018q-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17225 0.77859 0.27905l0.42031 0.086127q0.77859 0.14814 1.1472
> 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42374 0.23771
> 0.83026 0.35829 0.40653 0.12058 0.79927 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42374-0.082682q-0.77859-0.15503-1.1266-0.48576-0.34795-0.33073-0.34795-0.91984
> 0-0.68213 0.47886-1.0749 0.48232-0.39274 1.3264-0.39274 0.36173 0 0.73725
> 0.065457 0.37551 0.065457 0.76825 0.19637z"/><path id="path142" d="m146.59
> 1.0349-0.94395 2.5597h1.8914zm-0.39274-0.68557h0.78893l1.9603
> 5.1435h-0.72347l-0.46854-1.3195h-2.3186l-0.46853 1.3195h-0.73381z"/><path
> id="path144" d="m112.34 9.2549q-0.50987 0-0.80615 0.39963-0.29628
> 0.39619-0.29628 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619
> 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path146" d="m118.37
> 10.34v2.3289h-0.6339v-2.3082q0-0.54777-0.21359-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795
> 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path148" d="m123
> 7.5255h0.58566l-1.7914 5.7981h-0.58566z"/><path id="path150" d="m126.21
> 7.3084v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13092 0.1378-0.13092
> 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63734v-3.3659h-0.60634v-0.49265h0.60634v-0.26872q0-0.64423
> 0.29972-0.93707 0.29973-0.29628 0.95085-0.29628z"/><path id="path152"
> d="m128.23 9.2549q-0.50988 0-0.80616 0.39963-0.29628 0.39619-0.29628
> 1.0887t0.29284 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0
> 0.8027-0.39963 0.29628-0.39963 0.29628-1.0887
> 0-0.68557-0.29628-1.0852-0.29627-0.40308-0.8027-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path154" d="m132.55
> 9.2549q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29284
> 1.0921q0.29627 0.39619 0.80959 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683
> 0 1.2988 0.53744 0.47197 0.53744 0.47197 1.4883 0 0.9474-0.47197
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026
> 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path156" d="m135.53
> 11.794h0.72691v0.87506h-0.72691zm0-2.7733h0.72691v0.87505h-0.72691z"/></g><g
> id="text45567" stroke-width=".26458px" aria-label="/          bar/    c
> d"><path id="path172" d="m113.98 16.476h0.65457l-2.7078
> 5.7981h-0.65801z"/><path id="path174" d="m122.57
> 48.398q0-0.73725-0.23427-1.1128-0.23426-0.37552-0.69246-0.37552-0.46165
> 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15159-0.2825 0.41686-0.43408
> 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399
> 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.34451
> 0-0.60979-0.14814-0.26182-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path176" d="m126.08 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905
> 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222
> 0.19292 0.52366 0 0.82338-0.36174 0.29973-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-3e-3
> -0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457
> 0.09302t-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982
> 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34107 0.14125
> 0.55122 0.42375 0.13091 0.17226 0.18603 0.42719 0.0551 0.25149 0.0551
> 0.75792z"/><path id="path178" d="m131.89
> 47.261q-0.20326-0.15848-0.41341-0.23082-0.21015-0.07235-0.46165-0.07235-0.59255
> 0-0.90606 0.37207-0.3135 0.37207-0.3135
> 1.0749v1.9189h-0.63734v-3.8585h0.63734v0.75448q0.15847-0.40997
> 0.48576-0.62701 0.33073-0.22049 0.78203-0.22049 0.23427 0 0.43753
> 0.05857t0.3893 0.18259z"/><path id="path180" d="m135.22
> 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path182" d="m131.56
> 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122
> 0.07579-0.89572
> 0-1.4022-0.53744-0.50299-0.53744-0.50299-1.4883t0.50299-1.4883q0.50643-0.53744
> 1.4022-0.53744 0.27906 0 0.54433 0.07235t0.53399
> 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596
> 0-0.91639 0.38585-0.3204 0.38585-0.3204 1.1024 0 0.71314 0.3204 1.1024
> 0.32384 0.38585 0.91639 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335
> 0.48576-0.31695z"/><path id="path184" d="m130.86
> 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15847 0.28594-0.42374
> 0.43753-0.26183 0.14814-0.60634 0.14814-0.69935
> 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40307-1.4745
> 0.40308-0.53744 1.099-0.53744 0.34795 0 0.61323 0.15158 0.26527 0.14814
> 0.41685 0.43408zm-1.8638 1.4401q0 0.73725 0.23426 1.1128 0.23427 0.37552
> 0.69247 0.37552t0.69591-0.37896q0.24115-0.37896 0.24115-1.1093
> 0-0.73381-0.24115-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69247
> 0.37552q-0.23426 0.37552-0.23426 1.1128z"/></g><path id="path45569"
> d="m113.2 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path45571"
> d="m113.2 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path45573" d="m113.2 46.199c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path45575"
> d="m121.93 30.8-6e-3 8.5867" fill="none" stroke="#0081cf"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path45577" d="m121.93 32.462c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#ArrowRedMend)" stroke="#0081cf" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path45579"
> d="m121.93 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#ArrowRedMend)" stroke="#0081cf"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path45581" d="m121.93 52.334-6e-3
> 8.5867" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path45583"
> d="m121.93 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path45585" d="m121.93 60.92c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><g id="text49419"
> fill="#0081cf" stroke-width=".26458px" aria-label="  foo/    x    y"><path
> id="path159" d="m123.07 23.435v0.5271h-0.72003q-0.34106 0-0.47542
> 0.14125-0.13091 0.1378-0.13091
> 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339
> 0.28939-0.93362 0.29283-0.29972 0.9095-0.29972z"/><path id="path161"
> d="m125.78 25.381q-0.48232 0-0.73037 0.37552-0.24804 0.37552-0.24804 1.1128
> 0 0.73381 0.24804 1.1128 0.24805 0.37552 0.73037 0.37552 0.48575 0
> 0.7338-0.37552 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.7338-0.37552zm0-0.53744q0.8027 0
> 1.2264 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42374 0.51676-1.2299 0.51676-0.80271
> 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path163" d="m130.03
> 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381
> 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552
> 0.24804-0.37896 0.24804-1.1128
> 0-0.73725-0.24804-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51676-1.2299 0.51676-0.80271
> 0-1.2264-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42374-0.52021 1.2264-0.52021z"/><path id="path165" d="m135.22
> 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path167" d="m131.76
> 32.113-1.3815 1.8466 1.5158 2.0119h-0.73381l-1.13-1.5468-1.1266
> 1.5468h-0.7338l1.5158-2.0119-1.3815-1.8466h0.7028l1.0232 1.3953
> 1.0163-1.3953z"/><path id="path169" d="m130.86 41.907q-0.15847
> 0.40308-0.40307 1.0611-0.34107 0.9095-0.4582 1.1093-0.15847 0.26872-0.39619
> 0.40308-0.23771 0.13436-0.55466 0.13436h-0.50987v-0.53054h0.37551q0.27906 0
> 0.43753-0.16192 0.15848-0.16192
> 0.40308-0.83716l-1.4917-3.7965h0.67179l1.1438 3.0179
> 1.1265-3.0179h0.6718z"/></g></svg>
> diff --git a/screenshots/2021-08-18-root-file.svg
> b/screenshots/2021-08-18-root-file.svg
> new file mode 100644
> index 0000000..b7b2797
> --- /dev/null
> +++ b/screenshots/2021-08-18-root-file.svg
> @@ -0,0 +1,2 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<svg id="svg5" width="149.08mm" height="64.908mm" version="1.1"
> viewBox="0 0 149.08 64.908" xmlns="http://www.w3.org/2000/svg"><defs
> id="defs2"><marker id="Arrow1Mend" overflow="visible" orient="auto"><path
> id="path26121" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177
> 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z"
> fill="context-stroke" fill-rule="evenodd" stroke-linejoin="round"
> stroke-width=".625"/></marker></defs><g id="text10527"
> stroke-width=".26458px" aria-label="/  foo/    a    b  bar/    c
> d"><path id="path71" d="m5.3131 16.476h0.65457l-2.7078
> 5.7981h-0.65801z"/><path id="path73" d="m14.408
> 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13091 0.1378-0.13091
> 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.6339v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339
> 0.28939-0.93362 0.29283-0.29972 0.90951-0.29972z"/><path id="path75"
> d="m17.116 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128
> 0 0.73381 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0
> 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51676-1.2299 0.51676-0.80271
> 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path77" d="m21.364
> 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381
> 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.73381-0.37552
> 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51676-1.2299 0.51676-0.80271
> 0-1.2265-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path79" d="m26.552
> 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path81" d="m21.66
> 34.032h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19293-0.27905 0.57878
> 0 0.34796 0.21015 0.54088 0.21015 0.19293 0.58222 0.19293 0.52365 0
> 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50987-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33417
> 1.2712-0.33417h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436
> 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125
> 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512
> 0.25149 0.05512 0.75792z"/><path id="path83" d="m22.404
> 41.222q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164
> 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408
> 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399
> 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.34451
> 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path85" d="m13.909
> 48.398q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46164
> 0-0.69935 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69935 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408
> 0.26872-0.15158 0.62012-0.15158 0.69591 0 1.0955 0.53744 0.39963 0.53399
> 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.34451
> 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path87" d="m17.412 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905
> 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222
> 0.19292 0.52366 0 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33418
> 1.2712-0.33418h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436
> 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125
> 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512
> 0.25149 0.05512 0.75792z"/><path id="path89" d="m23.221
> 47.261q-0.20326-0.15848-0.41341-0.23082-0.21015-0.07235-0.46164-0.07235-0.59256
> 0-0.90606 0.37207-0.3135 0.37207-0.3135
> 1.0749v1.9189h-0.63734v-3.8585h0.63734v0.75448q0.15847-0.40997
> 0.48576-0.62701 0.33073-0.22049 0.78204-0.22049 0.23427 0 0.43753
> 0.05857t0.3893 0.18259z"/><path id="path91" d="m26.552
> 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path93" d="m22.897
> 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122
> 0.07579-0.89572
> 0-1.4022-0.53744-0.50298-0.53744-0.50298-1.4883t0.50298-1.4883q0.50643-0.53744
> 1.4022-0.53744 0.27905 0 0.54433 0.07235 0.26527 0.07235 0.53399
> 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596
> 0-0.9164 0.38585t-0.32039 1.1024q0 0.71314 0.32039 1.1024 0.32384 0.38585
> 0.9164 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335
> 0.48576-0.31695z"/><path id="path95" d="m22.198
> 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15848 0.28594-0.42375
> 0.43753-0.26183 0.14814-0.60634 0.14814-0.69936
> 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40308-1.4745
> 0.40308-0.53744 1.099-0.53744 0.34796 0 0.61323 0.15158 0.26527 0.14814
> 0.41686 0.43408zm-1.8638 1.4401q0 0.73725 0.23427 1.1128 0.23427 0.37552
> 0.69246 0.37552t0.69591-0.37896q0.24116-0.37896 0.24116-1.1093
> 0-0.73381-0.24116-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69246
> 0.37552q-0.23427 0.37552-0.23427 1.1128z"/></g><path id="path25696"
> d="m4.5344 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path25958"
> d="m4.5344 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path27085" d="m4.5344 46.199c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path27490"
> d="m13.266 30.8-0.0056 8.5867" fill="none" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path27629" d="m13.26 32.462c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path27844"
> d="m13.26 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path28236" d="m13.266 52.334-0.0056
> 8.5867" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path28238"
> d="m13.26 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path28240" d="m13.26 60.92c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><g id="text31368"
> stroke-width=".26458px" aria-label="VFS tree:"><path id="path54" d="m2.096
> 5.3688-1.9637-5.1435h0.72692l1.6295 4.3305 1.633-4.3305h0.72347l-1.9603
> 5.1435z"/><path id="path56" d="m5.5962
> 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path58" d="m12.614
> 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472
> 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576t-0.34795-0.91984q0-0.68213
> 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725 0.065457
> 0.37552 0.065457 0.76826 0.19637z"/><path id="path60" d="m16.851
> 0.41479v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634
> 0.13091 0.13436 0.5271 0.13436h0.65112v0.53054h-0.65112q-0.7338
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path62" d="m21.227
> 2.1029q-0.1068-0.062012-0.23427-0.089573-0.12402-0.031006-0.27561-0.031006-0.53744
> 0-0.82682 0.3514-0.28594 0.34795-0.28594
> 1.0025v2.0326h-0.63734v-3.8585h0.63734v0.59945q0.19982-0.3514
> 0.52021-0.52021 0.32039-0.17225 0.77859-0.17225 0.06546 0 0.14469 0.010335
> 0.07924 0.00689 0.1757 0.024116z"/><path id="path64" d="m25.037
> 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484 0.34106
> 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.075792-0.72692 0.075792-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path66"
> d="m29.378 3.2811v0.31006h-2.9146q0.04134 0.65457 0.39274 0.99908 0.35484
> 0.34106 0.9853 0.34106 0.36518 0 0.70624-0.089573 0.34451-0.089573
> 0.68213-0.26872v0.59945q-0.34106 0.14469-0.69936 0.22049-0.35829
> 0.075792-0.72692 0.075792-0.92329
> 0-1.4642-0.53744-0.53744-0.53744-0.53744-1.4538 0-0.9474 0.50987-1.5021
> 0.51332-0.55811 1.3815-0.55811 0.77859 0 1.2299 0.50298 0.45475 0.49954
> 0.45475
> 1.3608zm-0.6339-0.18604q-0.00689-0.52021-0.29283-0.83027-0.2825-0.31006-0.75103-0.31006-0.53054
> 0-0.85094 0.29972-0.31695 0.29972-0.36518 0.84405z"/><path id="path68"
> d="m30.58
> 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g
> id="text36298" fill="#0081cf" stroke-width=".26458px"
> aria-label="(unnamed)"><path id="path107" d="m51.063 16.265q-0.4582
> 0.78548-0.68557 1.5675-0.22393 0.77859-0.22393 1.571 0 0.78893 0.22393
> 1.571 0.22738 0.78204 0.68557
> 1.5744h-0.55122q-0.52021-0.81993-0.77515-1.5951-0.25494-0.77859-0.25494-1.5503
> 0-0.76826 0.25494-1.5468 0.25494-0.77859 0.77515-1.5916z"/><path
> id="path109" d="m52.934 20.158v-2.3909h0.6339v2.3909q0 0.52021 0.18259
> 0.76481 0.18604 0.2446 0.57189 0.2446 0.44786 0 0.68557-0.3135
> 0.23771-0.31695
> 0.23771-0.90606v-2.1807h0.63734v3.8516h-0.63734v-0.57878q-0.16881
> 0.33417-0.46164 0.50643-0.28939 0.17226-0.67868 0.17226-0.59256
> 0-0.88194-0.38585-0.28939-0.3893-0.28939-1.1748z"/><path id="path111"
> d="m60.13
> 19.228v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442
> 0-0.68557 0.31695-0.23771 0.3135-0.23771
> 0.90262v2.1807h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073
> 0.4582-0.49954 0.28939-0.17226 0.68557-0.17226 0.58911 0 0.8785 0.3893
> 0.29283 0.38585 0.29283 1.1713z"/><path id="path113" d="m64.378
> 19.228v2.3909h-0.63734v-2.3909q0-0.52021-0.18259-0.76481-0.18259-0.2446-0.57189-0.2446-0.44442
> 0-0.68558 0.31695-0.23771 0.3135-0.23771
> 0.90262v2.1807h-0.6339v-3.8585h0.6339v0.57878q0.16881-0.33073
> 0.4582-0.49954 0.28939-0.17226 0.68558-0.17226 0.58911 0 0.8785 0.3893
> 0.29283 0.38585 0.29283 1.1713z"/><path id="path115" d="m67.424
> 19.68h-0.21015q-0.55466 0-0.83716 0.19637-0.27905 0.19292-0.27905 0.57878 0
> 0.34796 0.21015 0.54088 0.21015 0.19293 0.58222 0.19293 0.52366 0
> 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50987-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33417
> 1.2712-0.33417h0.85094v-0.09991q-0.0034-0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384
> 0-0.65457 0.09302-0.33073 0.09302-0.64423 0.27216v-0.6339q0.3514-0.13436
> 0.67179-0.19982 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125
> 0.34106 0.14125 0.55122 0.42375 0.13091 0.17226 0.18604 0.42719 0.05512
> 0.25149 0.05512 0.75792z"/><path id="path117" d="m71.582
> 18.153q0.11713-0.24805 0.29628-0.36518 0.18259-0.12058 0.43753-0.12058
> 0.46509 0 0.65457 0.36174 0.19292 0.35829 0.19292
> 1.3539v2.2359h-0.57878v-2.2083q0-0.81649-0.09302-1.0129-0.08957-0.19982-0.33073-0.19982-0.27561
> 0-0.37896 0.2136-0.09991 0.21015-0.09991
> 0.99908v2.2083h-0.57878v-2.2083q0-0.82682-0.09991-1.0197-0.09646-0.19292-0.3514-0.19292-0.25149
> 0-0.3514 0.2136-0.09646 0.21015-0.09646
> 0.99908v2.2083h-0.57533v-3.8585h0.57533v0.33073q0.11369-0.20671
> 0.2825-0.3135 0.17225-0.11024 0.3893-0.11024 0.26183 0 0.43408 0.12058
> 0.1757 0.12058 0.27216 0.36518z"/><path id="path119" d="m77.332
> 19.531v0.31006h-2.7457v0.02067q0 0.63045 0.32728 0.97496 0.33073 0.34451
> 0.93018 0.34451 0.30317 0 0.6339-0.09646 0.33073-0.09646
> 0.70624-0.29283v0.63045q-0.36174 0.14814-0.69936 0.22049-0.33418
> 0.07579-0.64768 0.07579-0.89917
> 0-1.4056-0.53744-0.50643-0.54088-0.50643-1.4883 0-0.92329 0.49609-1.4745
> 0.49609-0.55122 1.3229-0.55122 0.73725 0 1.161 0.49954 0.42719 0.49954
> 0.42719
> 1.3643zm-0.6339-0.18604q-0.01378-0.55811-0.26527-0.84749-0.24805-0.29283-0.71658-0.29283-0.4582
> 0-0.75448 0.30317-0.29628 0.30317-0.3514 0.8406z"/><path id="path121"
> d="m80.705 18.253v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15848
> 0.28594-0.42375 0.43753-0.26183 0.14814-0.60634 0.14814-0.69935
> 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40308-1.4745
> 0.40308-0.53744 1.099-0.53744 0.34796 0 0.61323 0.15158 0.26527 0.14814
> 0.41686 0.43408zm-1.8638 1.44q0 0.73725 0.23427 1.1128 0.23427 0.37552
> 0.69246 0.37552t0.69591-0.37896q0.24116-0.37896 0.24116-1.1093
> 0-0.7338-0.24116-1.1093-0.23771-0.37896-0.69591-0.37896t-0.69246
> 0.37552q-0.23427 0.37552-0.23427 1.1128z"/><path id="path123" d="m83.195
> 16.265h0.55122q0.52021 0.81304 0.77515 1.5916t0.25494 1.5468q0
> 0.77515-0.25494 1.5537t-0.77515 1.5916h-0.55122q0.4582-0.79926
> 0.68213-1.5813 0.22738-0.78204 0.22738-1.5641
> 0-0.78548-0.22738-1.5675-0.22393-0.78204-0.68213-1.571z"/></g><g
> id="text36320" stroke-width=".26458px" aria-label="FS B:"><path id="path98"
> d="m58.036
> 0.22531h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path100" d="m65.053
> 0.39412v0.67868q-0.39619-0.18948-0.74759-0.2825-0.3514-0.093018-0.67868-0.093018-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17225 0.77859 0.27905l0.4203 0.086127q0.77859 0.14814 1.1472
> 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42375 0.23771
> 0.83027 0.35829 0.40652 0.12058 0.79926 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42375-0.082682q-0.77859-0.15503-1.1265-0.48576-0.34795-0.33073-0.34795-0.91984
> 0-0.68213 0.47887-1.0749 0.48231-0.39274 1.3264-0.39274 0.36174 0 0.73725
> 0.065457 0.37552 0.065457 0.76826 0.19637z"/><path id="path102" d="m69.387
> 2.9125v1.8845h1.1162q0.56155 0 0.83027-0.23082 0.27216-0.23427
> 0.27216-0.71314
> 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50987
> 0 0.75792-0.18948 0.25149-0.19293 0.25149-0.58567
> 0-0.3893-0.25149-0.58222-0.24805-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582
> 0 1.2265 0.33073t0.43064 0.94051q0 0.47198-0.22049 0.75103t-0.64768
> 0.34795q0.51332 0.11024 0.79582 0.46164 0.28594 0.34795 0.28594 0.87161 0
> 0.68902-0.46853 1.0645-0.46853 0.37552-1.3333 0.37552h-1.8466z"/><path
> id="path104" d="m73.666
> 4.4938h0.72692v0.87505h-0.72692zm0-2.7733h0.72692v0.87505h-0.72692z"/></g><g
> id="text44877" stroke-width=".26458px" aria-label="Mounting FS Bon
> /foo/a:"><path id="path126" d="m98.942 0.34933h1.037l1.3126 3.5002
> 1.3195-3.5002h1.037v5.1435h-0.67869v-4.5165l-1.3264
> 3.5278h-0.69935l-1.3264-3.5278v4.5165h-0.67524z"/><path id="path128"
> d="m106.5 2.0788q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887
> 0 0.69246 0.29284 1.0921 0.29627 0.39619 0.80959 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683
> 0 1.2988 0.53744 0.47197 0.53744 0.47197 1.4883 0 0.9474-0.47197
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83026
> 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path130" d="m109.25
> 3.9701v-2.3358h0.6339v2.3117q0 0.54777 0.2136 0.82338 0.21359 0.27216
> 0.64079 0.27216 0.51331 0 0.80959-0.32728 0.29973-0.32728
> 0.29973-0.89228v-2.1876h0.63389v3.8585h-0.63389v-0.59256q-0.23082
> 0.3514-0.53744 0.52365-0.30317 0.16881-0.70624 0.16881-0.66491
> 0-1.0094-0.41341-0.34451-0.41341-0.34451-1.2092z"/><path id="path132"
> d="m117
> 3.164v2.3289h-0.6339v-2.3082q0-0.54777-0.21359-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795
> 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path134" d="m118.89
> 0.53881v1.0955h1.3057v0.49265h-1.3057v2.0946q0 0.47198 0.12747 0.60634
> 0.13091 0.13436 0.5271 0.13436h0.65112v0.53055h-0.65112q-0.73381
> 0-1.0129-0.27216-0.27905-0.27561-0.27905-0.99908v-2.0946h-0.46509v-0.49265h0.46509v-1.0955z"/><path
> id="path136" d="m121.03
> 1.6344h0.63389v3.8585h-0.63389zm0-1.5021h0.63389v0.80271h-0.63389z"/><path
> id="path138" d="m126.2
> 3.164v2.3289h-0.6339v-2.3082q0-0.54777-0.21359-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795
> 0.53399-0.52021 0.31006-0.17225 0.71314-0.17225 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path140" d="m130
> 3.5188q0-0.68902-0.28594-1.068-0.2825-0.37896-0.79582-0.37896-0.50987
> 0-0.79582 0.37896-0.2825 0.37896-0.2825 1.068 0 0.68557 0.2825 1.0645
> 0.28595 0.37896 0.79582 0.37896 0.51332 0 0.79582-0.37896 0.28594-0.37896
> 0.28594-1.0645zm0.6339 1.4952q0 0.9853-0.43753 1.4642-0.43753
> 0.48231-1.3401 0.48231-0.33418
> 0-0.63045-0.051677-0.29628-0.048231-0.57534-0.15158v-0.61667q0.27906
> 0.15158 0.55122 0.22393 0.27216 0.072347 0.55466 0.072347 0.62356 0
> 0.93362-0.32728 0.31006-0.32384 0.31006-0.98185v-0.3135q-0.19637
> 0.34106-0.50298 0.50987-0.30662 0.16881-0.73381 0.16881-0.70969
> 0-1.1438-0.54088-0.43408-0.54088-0.43408-1.4332 0-0.89573 0.43408-1.4366
> 0.43408-0.54088 1.1438-0.54088 0.42719 0 0.73381 0.16881 0.30661 0.16881
> 0.50298 0.50987v-0.58567h0.6339z"/><path id="path142" d="m134.21
> 0.34933h2.9559v0.58567h-2.26v1.5158h2.0395v0.58567h-2.0395v2.4564h-0.69591z"/><path
> id="path144" d="m141.23
> 0.51814v0.67868q-0.39618-0.18948-0.74758-0.2825t-0.67869-0.093018q-0.56844
> 0-0.8785 0.22049-0.30661 0.22049-0.30661 0.62701 0 0.34106 0.20326 0.51676
> 0.20671 0.17225 0.77859 0.27905l0.42031 0.086127q0.77859 0.14814 1.1472
> 0.52365 0.37207 0.37207 0.37207 0.99908 0 0.74759-0.50298 1.1334-0.49954
> 0.38585-1.4676 0.38585-0.36518
> 0-0.77859-0.082682-0.40997-0.082682-0.85094-0.2446v-0.71658q0.42374 0.23771
> 0.83026 0.35829 0.40653 0.12058 0.79927 0.12058 0.596 0 0.91984-0.23427
> 0.32384-0.23427 0.32384-0.66835
> 0-0.37896-0.23427-0.59256-0.23082-0.2136-0.76137-0.32039l-0.42374-0.082682q-0.77859-0.15503-1.1266-0.48576-0.34795-0.33073-0.34795-0.91984
> 0-0.68213 0.47886-1.0749 0.48232-0.39274 1.3264-0.39274 0.36173 0 0.73725
> 0.065457 0.37551 0.065457 0.76825 0.19637z"/><path id="path146" d="m145.56
> 3.0365v1.8845h1.1162q0.56155 0 0.83027-0.23082 0.27216-0.23427
> 0.27216-0.71314
> 0-0.48231-0.27216-0.70969-0.26872-0.23082-0.83027-0.23082zm0-2.1153v1.5503h1.0301q0.50988
> 0 0.75792-0.18948 0.2515-0.19293 0.2515-0.58567
> 0-0.3893-0.2515-0.58222-0.24804-0.19293-0.75792-0.19293zm-0.69591-0.57189h1.7777q0.79582
> 0 1.2264 0.33073 0.43064 0.33073 0.43064 0.94051 0 0.47198-0.22049
> 0.75103-0.22048 0.27905-0.64767 0.34795 0.51332 0.11024 0.79581 0.46164
> 0.28595 0.34795 0.28595 0.87161 0 0.68902-0.46854 1.0645-0.46853
> 0.37552-1.3332 0.37552h-1.8466z"/><path id="path148" d="m108.99
> 9.2549q-0.50987 0-0.80615 0.39963-0.29628 0.39619-0.29628 1.0887t0.29283
> 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0
> 0.80271-0.39963t0.29628-1.0887q0-0.68557-0.29628-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82683
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47197 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46854-0.54088-0.46854-1.4883 0-0.95085 0.46854-1.4883
> 0.47197-0.53744 1.3022-0.53744z"/><path id="path150" d="m115.02
> 10.34v2.3289h-0.63389v-2.3082q0-0.54777-0.2136-0.81993-0.2136-0.27216-0.64079-0.27216-0.51332
> 0-0.8096 0.32728t-0.29628
> 0.89228v2.1807h-0.63734v-3.8585h0.63734v0.59945q0.22738-0.34795
> 0.534-0.52021 0.31005-0.17225 0.71313-0.17225 0.6649 0 1.006 0.41341
> 0.34106 0.40997 0.34106 1.2092z"/><path id="path152" d="m119.65
> 7.5255h0.58567l-1.7914 5.7981h-0.58567z"/><path id="path154" d="m122.86
> 7.3084v0.5271h-0.60634q-0.34106 0-0.47542 0.1378-0.13091 0.1378-0.13091
> 0.49609v0.34106h1.0439v0.49265h-1.0439v3.3659h-0.63735v-3.3659h-0.60633v-0.49265h0.60633v-0.26872q0-0.64423
> 0.29973-0.93707 0.29972-0.29628 0.95084-0.29628z"/><path id="path156"
> d="m124.88 9.2549q-0.50988 0-0.80615 0.39963-0.29628 0.39619-0.29628
> 1.0887t0.29283 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0
> 0.80271-0.39963 0.29627-0.39963 0.29627-1.0887
> 0-0.68557-0.29627-1.0852-0.29628-0.40308-0.80271-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path158" d="m129.2
> 9.2549q-0.50988 0-0.80616 0.39963-0.29627 0.39619-0.29627 1.0887t0.29283
> 1.0921q0.29628 0.39619 0.8096 0.39619 0.50643 0 0.8027-0.39963
> 0.29628-0.39963 0.29628-1.0887
> 0-0.68557-0.29628-1.0852-0.29627-0.40308-0.8027-0.40308zm0-0.53744q0.82682
> 0 1.2988 0.53744 0.47198 0.53744 0.47198 1.4883 0 0.9474-0.47198
> 1.4883-0.47198 0.53744-1.2988 0.53744-0.83027
> 0-1.3022-0.53744-0.46853-0.54088-0.46853-1.4883 0-0.95085 0.46853-1.4883
> 0.47198-0.53744 1.3022-0.53744z"/><path id="path160" d="m133.15
> 7.5255h0.58567l-1.7915 5.7981h-0.58566z"/><path id="path162" d="m136.15
> 10.729q-0.76825 0-1.0645 0.1757t-0.29628 0.59945q0 0.33762 0.22049 0.53744
> 0.22393 0.19637 0.60633 0.19637 0.5271 0 0.84405-0.37207 0.3204-0.37552
> 0.3204-0.99563v-0.14125zm1.2644-0.26183v2.2014h-0.63389v-0.58567q-0.21704
> 0.3514-0.54088 0.52021-0.32384 0.16536-0.79238 0.16536-0.59255
> 0-0.94395-0.33073-0.34796-0.33417-0.34796-0.89228 0-0.65112 0.43408-0.98185
> 0.43753-0.33073
> 1.3022-0.33073h0.88884v-0.06201q0-0.43753-0.28939-0.67524-0.28594-0.24116-0.80615-0.24116-0.33073
> 0-0.64424 0.079237-0.3135 0.079237-0.60289 0.23771v-0.58567q0.34796-0.13436
> 0.67524-0.19982 0.32728-0.068902 0.63734-0.068902 0.83716 0 1.2506
> 0.43408t0.41341 1.316z"/><path id="path164" d="m138.88
> 11.794h0.72691v0.87506h-0.72691zm0-2.7733h0.72691v0.87505h-0.72691z"/></g><g
> id="text18565" stroke-width=".26458px" aria-label="/  foo/    b  bar/    c
>   d"><path id="path167" d="m114.16 16.476h0.65457l-2.7078
> 5.7981h-0.65801z"/><path id="path169" d="m123.25
> 23.435v0.5271h-0.72003q-0.34106 0-0.47542 0.14125-0.13092 0.1378-0.13092
> 0.49265v0.34106h1.3264v0.49265h-1.3264v3.3659h-0.63389v-3.3659h-1.0301v-0.49265h1.0301v-0.26872q0-0.6339
> 0.28938-0.93362 0.29284-0.29972 0.90951-0.29972z"/><path id="path171"
> d="m125.96 25.381q-0.48231 0-0.73036 0.37552-0.24804 0.37552-0.24804 1.1128
> 0 0.73381 0.24804 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0
> 0.73381-0.37552 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24805-0.37552-0.73381-0.37552zm0-0.53744q0.80271
> 0 1.2265 0.52021 0.42719 0.52021 0.42719 1.5055 0 0.98874-0.42375
> 1.509-0.42374 0.51676-1.2299 0.51676-0.8027
> 0-1.2264-0.51676-0.42375-0.52021-0.42375-1.509 0-0.9853 0.42375-1.5055
> 0.42375-0.52021 1.2264-0.52021z"/><path id="path173" d="m130.21
> 25.381q-0.48231 0-0.73036 0.37552-0.24805 0.37552-0.24805 1.1128 0 0.73381
> 0.24805 1.1128 0.24805 0.37552 0.73036 0.37552 0.48576 0 0.7338-0.37552
> 0.24805-0.37896 0.24805-1.1128
> 0-0.73725-0.24805-1.1128-0.24804-0.37552-0.7338-0.37552zm0-0.53744q0.80271
> 0 1.2264 0.52021 0.4272 0.52021 0.4272 1.5055 0 0.98874-0.42375
> 1.509-0.42375 0.51676-1.2299 0.51676-0.80271
> 0-1.2265-0.51676-0.42374-0.52021-0.42374-1.509 0-0.9853 0.42374-1.5055
> 0.42375-0.52021 1.2265-0.52021z"/><path id="path175" d="m135.4
> 23.652h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path177" d="m131.25
> 41.222q0-0.73725-0.23427-1.1128-0.23426-0.37552-0.69246-0.37552-0.46165
> 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69936 0.37896 0.4582 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408
> 0.26872-0.15158 0.62012-0.15158 0.6959 0 1.0955 0.53744 0.39963 0.53399
> 0.39963 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.3445
> 0-0.60978-0.14814-0.26182-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path179" d="m122.75
> 48.398q0-0.73725-0.23427-1.1128-0.23427-0.37552-0.69246-0.37552-0.46165
> 0-0.69936 0.37896-0.23771 0.37552-0.23771 1.1093 0 0.73036 0.23771 1.1093
> 0.23771 0.37896 0.69936 0.37896 0.45819 0 0.69246-0.37552 0.23427-0.37552
> 0.23427-1.1128zm-1.8638-1.4401q0.15158-0.2825 0.41686-0.43408
> 0.26871-0.15158 0.62011-0.15158 0.69591 0 1.0955 0.53744 0.39964 0.53399
> 0.39964 1.4745 0 0.95429-0.40308 1.4986-0.39963 0.54088-1.099
> 0.54088-0.34451
> 0-0.60978-0.14814-0.26183-0.15158-0.4203-0.43753v0.48576h-0.6339v-5.3606h0.6339z"/><path
> id="path181" d="m126.26 48.384h-0.21015q-0.55466 0-0.83716 0.19637-0.27905
> 0.19293-0.27905 0.57878 0 0.34795 0.21015 0.54088 0.21015 0.19292 0.58222
> 0.19292 0.52366 0 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30661 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33417-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-3e-3
> -0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457
> 0.09302t-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982
> 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125
> 0.55121 0.42375 0.13092 0.17226 0.18604 0.42719 0.0551 0.25149 0.0551
> 0.75792z"/><path id="path183" d="m132.07
> 47.261q-0.20326-0.15848-0.41342-0.23082-0.21015-0.07235-0.46164-0.07235-0.59255
> 0-0.90606 0.37207-0.3135 0.37207-0.3135
> 1.0749v1.9189h-0.63735v-3.8585h0.63735v0.75448q0.15847-0.40997
> 0.48576-0.62701 0.33073-0.22049 0.78203-0.22049 0.23427 0 0.43753
> 0.05857t0.3893 0.18259z"/><path id="path185" d="m135.4
> 45.18h0.65457l-2.7078 5.7981h-0.65801z"/><path id="path187" d="m131.74
> 57.303q-0.25494 0.14814-0.5271 0.22049-0.26872 0.07579-0.55122
> 0.07579-0.89572
> 0-1.4022-0.53744-0.50299-0.53744-0.50299-1.4883t0.50299-1.4883q0.50643-0.53744
> 1.4022-0.53744 0.27905 0 0.54433 0.07235 0.26527 0.07235 0.53399
> 0.22393v0.6649q-0.25149-0.22393-0.50643-0.32384-0.25149-0.09991-0.57189-0.09991-0.596
> 0-0.91639 0.38585-0.3204 0.38585-0.3204 1.1024 0 0.71314 0.3204 1.1024
> 0.32384 0.38585 0.91639 0.38585 0.33073 0 0.59256-0.09991 0.26183-0.10335
> 0.48576-0.31695z"/><path id="path189" d="m131.04
> 61.31v-1.9947h0.6339v5.3606h-0.6339v-0.48576q-0.15847 0.28594-0.42374
> 0.43753-0.26183 0.14814-0.60634 0.14814-0.69936
> 0-1.1024-0.54088-0.39963-0.54433-0.39963-1.4986 0-0.94051 0.40307-1.4745
> 0.40308-0.53744 1.099-0.53744 0.34795 0 0.61323 0.15158 0.26527 0.14814
> 0.41685 0.43408zm-1.8638 1.4401q0 0.73725 0.23427 1.1128t0.69247
> 0.37552q0.45819 0 0.69591-0.37896 0.24115-0.37896 0.24115-1.1093
> 0-0.73381-0.24115-1.1093-0.23772-0.37896-0.69591-0.37896-0.4582 0-0.69247
> 0.37552t-0.23427 1.1128z"/></g><path id="path18567" d="m113.38
> 23.535v22.663" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path18569"
> d="m113.38 24.564c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path18571" d="m113.38 46.199c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path18573"
> d="m122.11 30.8-6e-3 8.5867" fill="none" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path18575" d="m122.11 32.462c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path18577"
> d="m122.11 39.387c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path18579" d="m122.11 52.334-6e-3
> 8.5867" fill="none" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><path id="path18581"
> d="m122.11 53.996c0 1.5071 1.5429 1.4354 1.5429 1.4354l3.846-0.0019"
> fill="none" marker-end="url(#Arrow1Mend)" stroke="#000"
> stroke-linecap="round" stroke-width=".52917"
> style="paint-order:normal"/><path id="path18583" d="m122.11 60.92c0 1.5071
> 1.5429 1.4354 1.5429 1.4354l3.846-0.0019" fill="none"
> marker-end="url(#Arrow1Mend)" stroke="#000" stroke-linecap="round"
> stroke-width=".52917" style="paint-order:normal"/><g id="text22069"
> fill="#0081cf" stroke-width=".26458px" aria-label="a"><path id="path192"
> d="m130.57 33.771h-0.21015q-0.55466 0-0.83716 0.19637-0.27905
> 0.19292-0.27905 0.57878 0 0.34796 0.21015 0.54088 0.21015 0.19292 0.58222
> 0.19292 0.52365 0 0.82338-0.36174 0.29972-0.36518
> 0.30317-1.006v-0.14125zm1.2299-0.26183v2.2014h-0.63734v-0.57189q-0.20326
> 0.34451-0.51332 0.50988-0.30662 0.16192-0.74759 0.16192-0.58911
> 0-0.94051-0.33073-0.3514-0.33418-0.3514-0.89228 0-0.64423 0.43064-0.97841
> 0.43408-0.33418 1.2712-0.33418h0.85094v-0.09991q-3e-3
> -0.46164-0.23427-0.66835-0.23082-0.21015-0.73725-0.21015-0.32384 0-0.65457
> 0.09302t-0.64423 0.27216v-0.6339q0.3514-0.13436 0.67179-0.19982
> 0.32384-0.0689 0.62701-0.0689 0.47887 0 0.81649 0.14125 0.34106 0.14125
> 0.55121 0.42375 0.13092 0.17226 0.18604 0.42719 0.0551 0.25149 0.0551
> 0.75792z"/></g></svg>
> --
> 2.31.1
>
>
>

-- 
Klaus Heinrich Kiwi <kkiwi@redhat.com>
Manager, Software Engineering - Red Hat Virtualization

[-- Attachment #2: Type: text/html, Size: 252002 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 16:23 ` Stefan Hajnoczi
@ 2021-08-20  7:56   ` Hanna Reitz
  2021-08-20  9:21     ` Daniel P. Berrangé
                       ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Hanna Reitz @ 2021-08-20  7:56 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: Kevin Wolf, qemu-devel

On 19.08.21 18:23, Stefan Hajnoczi wrote:
> On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
>> This post explains when FUSE block exports are useful, how they work,
>> and that it is fun to export an image file on its own path so it looks
>> like your image file (in whatever format it was) is a raw image now.
>>
>> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
>> ---
>> You can also find this patch here:
>> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
>>
>> My first patch to qemu-web, so I hope I am not doing anything overly
>> stupid here (adding SVGs with extremely long lines comes to mind)...
>> ---
>>   _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
>>   screenshots/2021-08-18-block-graph-a.svg  |   2 +
>>   screenshots/2021-08-18-block-graph-b.svg  |   2 +
>>   screenshots/2021-08-18-block-graph-c.svg  |   2 +
>>   screenshots/2021-08-18-block-graph-d.svg  |   2 +
>>   screenshots/2021-08-18-block-graph-e.svg  |   2 +
>>   screenshots/2021-08-18-root-directory.svg |   2 +
>>   screenshots/2021-08-18-root-file.svg      |   2 +
>>   8 files changed, 502 insertions(+)
>>   create mode 100644 _posts/2021-08-18-fuse-blkexport.md
>>   create mode 100644 screenshots/2021-08-18-block-graph-a.svg
>>   create mode 100644 screenshots/2021-08-18-block-graph-b.svg
>>   create mode 100644 screenshots/2021-08-18-block-graph-c.svg
>>   create mode 100644 screenshots/2021-08-18-block-graph-d.svg
>>   create mode 100644 screenshots/2021-08-18-block-graph-e.svg
>>   create mode 100644 screenshots/2021-08-18-root-directory.svg
>>   create mode 100644 screenshots/2021-08-18-root-file.svg
> Great! Two ideas:
>
> It would be nice to include a shoutout to libguestfs and mention that
> libguestfs avoids exposing the host kernel's file systems and partion
> code to untrusted disk images. If you don't mount the image then the
> FUSE export has similar security properties.

Oh, right!  Absolutely.

Though now I do wonder why one would actually want to use QEMU’s FUSE 
exports then...

Looks like the performance isn’t as bad as I claimed (for me around 
1.5G/s for reading/writing from/to a raw image on tmpfs), so perhaps 
that’s one point.  Another is probably that FUSE exports are better 
suited when you actually want access to the whole image.  I guess.

> This is a long blog post. One idea is to show a quickstart
> qemu-storage-daemon FUSE export command-line in the beginning before
> explaining all the details. That way people who just want to see what
> this is about can get an idea without learning all the background first.

Sounds good, will do.  Thanks!

Hanna



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 18:22 ` Klaus Kiwi
@ 2021-08-20  9:03   ` Hanna Reitz
  0 siblings, 0 replies; 16+ messages in thread
From: Hanna Reitz @ 2021-08-20  9:03 UTC (permalink / raw)
  To: Klaus Kiwi; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi

On 19.08.21 20:22, Klaus Kiwi wrote:
>
>
> On Thu, Aug 19, 2021 at 7:27 AM Hanna Reitz <hreitz@redhat.com 
> <mailto:hreitz@redhat.com>> wrote:
>
>     This post explains when FUSE block exports are useful, how they work,
>     and that it is fun to export an image file on its own path so it looks
>     like your image file (in whatever format it was) is a raw image now.
>
>
> Thanks Hanna, great work. Even if you explained this to me multiple times,
> thanks to this I think I now finally understand *how* it works.

Oops, sorry for forgetting to CC you...

>     Signed-off-by: Hanna Reitz <hreitz@redhat.com
>     <mailto:hreitz@redhat.com>>
>     ---
>     You can also find this patch here:
>     https://gitlab.com/hreitz/qemu-web
>     <https://gitlab.com/hreitz/qemu-web> fuse-blkexport-v1
>
>     My first patch to qemu-web, so I hope I am not doing anything overly
>     stupid here (adding SVGs with extremely long lines comes to mind)...
>     ---
>      _posts/2021-08-18-fuse-blkexport.md       | 488
>     ++++++++++++++++++++++
>      screenshots/2021-08-18-block-graph-a.svg  |   2 +
>      screenshots/2021-08-18-block-graph-b.svg  |   2 +
>      screenshots/2021-08-18-block-graph-c.svg  |   2 +
>      screenshots/2021-08-18-block-graph-d.svg  |   2 +
>      screenshots/2021-08-18-block-graph-e.svg  |   2 +
>      screenshots/2021-08-18-root-directory.svg |   2 +
>      screenshots/2021-08-18-root-file.svg      |   2 +
>      8 files changed, 502 insertions(+)
>      create mode 100644 _posts/2021-08-18-fuse-blkexport.md
>      create mode 100644 screenshots/2021-08-18-block-graph-a.svg
>      create mode 100644 screenshots/2021-08-18-block-graph-b.svg
>      create mode 100644 screenshots/2021-08-18-block-graph-c.svg
>      create mode 100644 screenshots/2021-08-18-block-graph-d.svg
>      create mode 100644 screenshots/2021-08-18-block-graph-e.svg
>      create mode 100644 screenshots/2021-08-18-root-directory.svg
>      create mode 100644 screenshots/2021-08-18-root-file.svg
>
>     diff --git a/_posts/2021-08-18-fuse-blkexport.md
>     b/_posts/2021-08-18-fuse-blkexport.md
>     new file mode 100644
>     index 0000000..e6a55d0
>     --- /dev/null
>     +++ b/_posts/2021-08-18-fuse-blkexport.md
>     @@ -0,0 +1,488 @@
>     +---
>     +layout: post
>     +title:  "Exporting block devices as raw image files with FUSE"
>     +date:   2021-08-18 18:00:00 +0200
>     +author: Hanna Reitz
>     +categories: [storage, features, tutorials]
>
>
> Non-fatal, but I feel that the title doesn't summarize all that this' 
> blog posts is about.
> An alternate suggestion might be in the lines of "A look into QEMU's 
> FUSE export
> feature, and how to use it to manipulate guest images".

Hmm, I don’t know.  The feature itself doesn’t really allow you to 
manipulate guest images, it only provides a translation layer so that 
other tools can do it.  I can definitely replace “Exporting block 
devices” by “Presenting guest images”, but I’m not sure I want to go 
much further, actually.

>     +---
>     +Sometimes, there is a VM disk image whose contents you want to
>     manipulate
>     +without booting the VM.  For raw images, that process is usually
>     fairly simple,
>     +because most Linux systems bring tools for the job, e.g.:
>     +* *dd* to just copy data to and from given offsets,
>     +* *parted* to manipulate the partition table,
>     +* *kpartx* to present all partitions as block devices,
>     +* *mount* to access filesystems’ contents.
>     +
>     +Sadly, but naturally, such tools only work for raw images, and
>     not for images
>     +e.g. in QEMU’s qcow2 format.  To access such an image’s content,
>     the format has
>     +to be translated to create a raw image, for example by:
>     +* Exporting the image file with `qemu-nbd -c` as an NBD block
>     device file,
>     +* Converting between image formats using `qemu-img convert`,
>     +* Accessing the image from a guest, where it appears as a normal
>     block device.
>     +
>
> Guessing that this would be the best place to mention 
> guestmount/libguestfs, as Stefan
> mentioned in another reply to this thread?

Yes, probably replacing the “Accessing the image from a guest” point.

> Bonus points if you can identify (dis)advantages, similarly to that 
> you did below
> with the other methods.
>
>     +Unfortunately, none of these methods is perfect: `qemu-nbd -c`
>     generally
>     +requires root rights, converting to a temporary raw copy requires
>     additional
>     +disk space and the conversion process takes time, and accessing
>     the image from a
>     +guest is just quite cumbersome in general (and also specifically
>     something that
>     +we set out to avoid in the first sentence of this blog post).
>     +
>     +As of QEMU 6.0, there is another method, namely FUSE block exports.
>     +Conceptually, these are rather similar to using `qemu-nbd -c`,
>     but they do not
>     +require root rights.
>     +
>     +**Note**: FUSE block exports are a feature that can be enabled or
>     disabled
>     +during the build process with `--enable-fuse` or
>     `--disable-fuse`, respectively;
>     +omitting either configure option will enable the feature if and
>     only if libfuse3
>     +is present.  It is possible that the QEMU build you are using
>     does not have FUSE
>     +block export support, because it was not compiled in.
>     +
>     +FUSE (*Filesystem in Userspace*) is a technology to let userspace
>     processes
>     +provide filesystem drivers.  For example, *sshfs* is a program
>     that allows
>     +mounting remote directories from a machine accessible via SSH.
>     +
>
>
> Nitpicking but maybe FUSE here could link to another 
> tutorial/wikipedia page
> with more info?

The best I could do is link to Wikipedia, I suppose, but would that 
really be helpful?  I think this post itself kind of provides an intro 
into what FUSE is.

>     +QEMU can use FUSE to make a virtual block device appear as a
>     normal file on the
>     +host, so that tools like *kpartx* can interact with it regardless
>     of the image
>     +format.
>     +
>     +## Background information
>     +
>     +### File mounts
>
> I must confess that, as I've gone through the document, this felt a 
> bit like breaking
> the flow (probably due to my pre-conceptions of always mounting a 
> resource into
> some directory to see it's content, which I guess was what I was 
> expecting this
> would go before talking about mounting files).
>
> I understand now, however, that this introduction is necessary, but 
> perhaps
> something like "Before we are able to use QEMU's FUSE exports, we need 
> to clarify
> some fundamental concepts on the VFS and mountpoints: It is a 
> little-known fact
> that <...>" would help me understand the flow better here.

Oh, sure!

>     +A perhaps little-known fact is that, on Linux, filesystems do not
>     need to have
>     +a root directory, they only need to have a root node.  A
>     filesystem that only
>     +provides a single regular file is perfectly valid.
>     +
>     +Conceptually, every filesystem is a tree, and mounting works by
>     replacing one
>     +subtree of the global VFS tree by the mounted filesystem’s tree. 
>     Normally, a
>     +filesystem’s root node is a directory, like in the following example:
>     +
>     +|![Regular filesystem: Root directory is mounted to a directory
>     mount point](/screenshots/2021-08-18-root-directory.svg)|
>     +|:--:|
>     +|*Fig. 1: Mounting a regular filesystem with a directory as its
>     root node*|
>     +
>     +Here, the directory `/foo` and its content (the files `/foo/a`
>     and `/foo/b`) are
>     +shadowed by the new filesystem (showing `/foo/x` and `/foo/y`).
>     +
>
>
> Must confess that I wish there were a better term for it than 
> 'shadowed directory'
> or 'shadowed file', avoiding potential confusion with things like 
> /etc/shadow or
> 'shadow memory'.. But I couldn't think if any.
>
>     +Note that a filesystem’s root node generally has no name. After
>     mounting, the
>     +filesystem’s root directory’s name is determined by the original
>     name of the
>     +mount point.
>     +
>     +Because a tree does not need to have multiple nodes but may
>     consist of just a
>     +single leaf, a filesystem with a file for its root node works
>     just as well,
>     +though:
>     +
>     +|![Mounting a file root node to a regular file mount
>     point](/screenshots/2021-08-18-root-file.svg)|
>     +|:--:|
>     +|*Fig. 2: Mounting a filesystem with a regular (unnamed) file as
>     its root node*|
>     +
>     +Here, FS B only consists of a single node, a regular file with no
>     name.  (As
>     +above, a filesystem’s root node is generally unnamed.)
>     Consequently, the mount
>     +point for it must also be a regular file (`/foo/a` in our
>     example), and just
>     +like before, the content of `/foo/a` is shadowed, and when
>     opening it, one will
>     +instead see the contents of FS B’s unnamed root node.
>     +
>     +### QEMU block exports
>     +
>     +QEMU allows exporting block nodes via various protocols (as of
>     6.0: NBD,
>     +vhost-user, FUSE).  A block node is an element of QEMU’s block
>     graph (see e.g.
>     +[Managing the New Block
>     Layer](http://events17.linuxfoundation.org/sites/events/files/slides/talk\_11.pdf
>     <http://events17.linuxfoundation.org/sites/events/files/slides/talk%5C_11.pdf>),
>     +a talk given at KVM Forum 2017), which can for example be
>     attached to guest
>     +devices.  Here is a very simple example:
>     +
>     +|![Block graph: image file <-> file node (label: prot-node) <->
>     qcow2 node (label: fmt-node) <-> virtio-blk guest
>     device](/screenshots/2021-08-18-block-graph-a.svg)|
>     +|:--:|
>     +|*Fig. 3: A simple block graph for attaching a qcow2 image to a
>     virtio-blk guest device*|
>     +
>     +This is the simplest example for a block graph that connects a
>     *virtio-blk*
>     +guest device to a qcow2 image file.  The *file* block driver,
>     instanced in the
>     +form of a block node named *prot-node*, accesses the actual file
>     and provides
>     +the node above it access to the raw content.  This node above,
>     named *fmt-node*,
>     +is handled by the *qcow2* block driver, which is capable of
>     interpreting the
>     +qcow2 format.  Parents of this node will therefore see the actual
>     content of the
>     +virtual disk that is represented by the qcow2 image.  There is
>     only one parent
>     +here, which is the *virtio-blk* guest device, which will thus see
>     the virtual
>     +disk.
>     +
>     +The command line to achieve the above could look something like this:
>     +```
>     +$ qemu-system-x86_64 \
>     +    -blockdev node-name=prot-node,driver=file,filename=$image_path \
>     +    -blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
>     +    -device virtio-blk,drive=fmt-node
>     +```
>     +
>     +Besides attaching guest devices to block nodes, you can also
>     export them for
>     +users outside of qemu, for example via NBD.  Say you have a QMP
>     channel open for
>     +the QEMU instance above, then you could do this:
>
>
> As much as I hate to say it, wouldn't it be better to give the example 
> below using
> (legacy?) qemu monitor commands, instead of JSON? Unless it cannot be 
> done that way
> of course, they feel more intuitive/recognizable to me I think.

nbd_server_start exists as an HMP command, but there’s no direct 
equivalent of block-export-add.  We do have nbd_server_add, but of note 
is that the nbd-server-add QMP command is deprecated.

In any case, I prefer using the JSON QMP commands here, because they map 
directly to the storage daemon’s command line (--nbd-server and --export).

If this is too confusing, then I’d rather jump directly to the storage 
daemon; but I feel like there’s value in showing that block exports work 
in the system emulator, too.

>
>     +```json
>     +{
>     +    "execute": "nbd-server-start",
>     +    "arguments": {
>     +        "addr": {
>     +            "type": "inet",
>     +            "data": {
>     +                "host": "localhost",
>     +                "port": "10809"
>     +            }
>     +        }
>     +    }
>     +}
>     +{
>     +    "execute": "block-export-add",
>     +    "arguments": {
>     +        "type": "nbd",
>     +        "id": "fmt-node-export",
>     +        "node-name": "fmt-node",
>     +        "name": "guest-disk"
>     +    }
>     +}
>     +```
>

[...]

> The rest of it is very didactic and educational - thanks!  And since 
> none of my comments are critical:
> Reviewed-by: Klaus Heinrich Kiwi <kkiwi@redhat.com 
> <mailto:kkiwi@redhat.com>>

Thanks!

Hanna



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-20  7:56   ` Hanna Reitz
@ 2021-08-20  9:21     ` Daniel P. Berrangé
  2021-08-20 14:27     ` Stefan Hajnoczi
  2021-08-22 13:18     ` Thomas Huth
  2 siblings, 0 replies; 16+ messages in thread
From: Daniel P. Berrangé @ 2021-08-20  9:21 UTC (permalink / raw)
  To: Hanna Reitz; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi

On Fri, Aug 20, 2021 at 09:56:54AM +0200, Hanna Reitz wrote:
> On 19.08.21 18:23, Stefan Hajnoczi wrote:
> > On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
> > > This post explains when FUSE block exports are useful, how they work,
> > > and that it is fun to export an image file on its own path so it looks
> > > like your image file (in whatever format it was) is a raw image now.
> > > 
> > > Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> > > ---
> > > You can also find this patch here:
> > > https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
> > > 
> > > My first patch to qemu-web, so I hope I am not doing anything overly
> > > stupid here (adding SVGs with extremely long lines comes to mind)...
> > > ---
> > >   _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
> > >   screenshots/2021-08-18-block-graph-a.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-b.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-c.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-d.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-e.svg  |   2 +
> > >   screenshots/2021-08-18-root-directory.svg |   2 +
> > >   screenshots/2021-08-18-root-file.svg      |   2 +
> > >   8 files changed, 502 insertions(+)
> > >   create mode 100644 _posts/2021-08-18-fuse-blkexport.md
> > >   create mode 100644 screenshots/2021-08-18-block-graph-a.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-b.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-c.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-d.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-e.svg
> > >   create mode 100644 screenshots/2021-08-18-root-directory.svg
> > >   create mode 100644 screenshots/2021-08-18-root-file.svg
> > Great! Two ideas:
> > 
> > It would be nice to include a shoutout to libguestfs and mention that
> > libguestfs avoids exposing the host kernel's file systems and partion
> > code to untrusted disk images. If you don't mount the image then the
> > FUSE export has similar security properties.
> 
> Oh, right!  Absolutely.
> 
> Though now I do wonder why one would actually want to use QEMU’s FUSE
> exports then...

If you can't use KVM for libguestfs, then performance likely to
suffer significantly. This could be either if your disk image
is non-native architecture, or if your running inside a VM and
don't have nested KVM avaialble. You do still need to bear in
mind the security implications of course, but QEMU FUSE might
be your only viable option to achieve the performance needed.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-20  7:56   ` Hanna Reitz
  2021-08-20  9:21     ` Daniel P. Berrangé
@ 2021-08-20 14:27     ` Stefan Hajnoczi
  2021-08-22 13:18     ` Thomas Huth
  2 siblings, 0 replies; 16+ messages in thread
From: Stefan Hajnoczi @ 2021-08-20 14:27 UTC (permalink / raw)
  To: Hanna Reitz; +Cc: Kevin Wolf, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 2975 bytes --]

On Fri, Aug 20, 2021 at 09:56:54AM +0200, Hanna Reitz wrote:
> On 19.08.21 18:23, Stefan Hajnoczi wrote:
> > On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
> > > This post explains when FUSE block exports are useful, how they work,
> > > and that it is fun to export an image file on its own path so it looks
> > > like your image file (in whatever format it was) is a raw image now.
> > > 
> > > Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> > > ---
> > > You can also find this patch here:
> > > https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
> > > 
> > > My first patch to qemu-web, so I hope I am not doing anything overly
> > > stupid here (adding SVGs with extremely long lines comes to mind)...
> > > ---
> > >   _posts/2021-08-18-fuse-blkexport.md       | 488 ++++++++++++++++++++++
> > >   screenshots/2021-08-18-block-graph-a.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-b.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-c.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-d.svg  |   2 +
> > >   screenshots/2021-08-18-block-graph-e.svg  |   2 +
> > >   screenshots/2021-08-18-root-directory.svg |   2 +
> > >   screenshots/2021-08-18-root-file.svg      |   2 +
> > >   8 files changed, 502 insertions(+)
> > >   create mode 100644 _posts/2021-08-18-fuse-blkexport.md
> > >   create mode 100644 screenshots/2021-08-18-block-graph-a.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-b.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-c.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-d.svg
> > >   create mode 100644 screenshots/2021-08-18-block-graph-e.svg
> > >   create mode 100644 screenshots/2021-08-18-root-directory.svg
> > >   create mode 100644 screenshots/2021-08-18-root-file.svg
> > Great! Two ideas:
> > 
> > It would be nice to include a shoutout to libguestfs and mention that
> > libguestfs avoids exposing the host kernel's file systems and partion
> > code to untrusted disk images. If you don't mount the image then the
> > FUSE export has similar security properties.
> 
> Oh, right!  Absolutely.
> 
> Though now I do wonder why one would actually want to use QEMU’s FUSE
> exports then...
> 
> Looks like the performance isn’t as bad as I claimed (for me around 1.5G/s
> for reading/writing from/to a raw image on tmpfs), so perhaps that’s one
> point.  Another is probably that FUSE exports are better suited when you
> actually want access to the whole image.  I guess.

I see a use case for applications that want to do something with the
disk image data themselves, e.g. backup, entropy, data recovery, etc.
They could use NBD but opening a regular file on a FUSE file system is
even easier.

The host kernel won't be exposed, so it's reason as long as the
application itself isn't doing anything risky (e.g. no parsing or parser
written in a memory-safe language).

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-19 10:25 [qemu-web PATCH] Add a blog post about FUSE block exports Hanna Reitz
                   ` (2 preceding siblings ...)
  2021-08-19 18:22 ` Klaus Kiwi
@ 2021-08-20 21:24 ` Eric Blake
  2021-08-23  8:23   ` Hanna Reitz
  3 siblings, 1 reply; 16+ messages in thread
From: Eric Blake @ 2021-08-20 21:24 UTC (permalink / raw)
  To: Hanna Reitz; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi

On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
> This post explains when FUSE block exports are useful, how they work,
> and that it is fun to export an image file on its own path so it looks
> like your image file (in whatever format it was) is a raw image now.
> 
> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
> ---
> You can also find this patch here:
> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
> 
> My first patch to qemu-web, so I hope I am not doing anything overly
> stupid here (adding SVGs with extremely long lines comes to mind)...
> ---
...
> +
> +Besides attaching guest devices to block nodes, you can also export them for
> +users outside of qemu, for example via NBD.  Say you have a QMP channel open for
> +the QEMU instance above, then you could do this:
> +```json
> +{
> +    "execute": "nbd-server-start",
> +    "arguments": {
> +        "addr": {
> +            "type": "inet",
> +            "data": {
> +                "host": "localhost",
> +                "port": "10809"
> +            }
> +        }
> +    }
> +}

Rather than using a TCP port, is it worth mentioning that you can use
a Unix socket?  If the point of this is local access to the disk
contents, that feels a bit lighter weight.

> +{
> +    "execute": "block-export-add",
> +    "arguments": {
> +        "type": "nbd",
> +        "id": "fmt-node-export",
> +        "node-name": "fmt-node",
> +        "name": "guest-disk"
> +    }

This defaults to a readonly image; you may want to include
"writable":true in the JSON, especially if the purpose is to show how
to modify guest-visible contents of an at-rest disk image.

> +}
> +```
> +
> +This opens an NBD server on `localhost:10809`, which exports *fmt-node* (under
> +the NBD export name *guest-disk*).  The block graph looks as follows:
> +
> +|![Same block graph as fig. 3, but with an NBD server attached to fmt-node](/screenshots/2021-08-18-block-graph-b.svg)|
> +|:--:|
> +|*Fig. 4: Block graph extended by an NBD server*|
> +
> +NBD clients connecting to this server will see the raw disk as seen by the
> +guest – we have *exported* the guest disk:
> +
> +```
> +$ qemu-img info nbd://localhost/guest-disk
> +image: nbd://localhost:10809/guest-disk
> +file format: raw
> +virtual size: 20 GiB (21474836480 bytes)
> +disk size: unavailable
> +```

If you do choose to rewrite to use a Unix socket, it would change this
to nbd+unix:///guest-disk?socket=/path/to/sock.

> +
> +### QEMU storage daemon
> +
> +If you are not running a guest, and so do not need guest devices, but all you
> +want is to use the QEMU block layer (for example to interpret the qcow2 format)
> +and export nodes from the block graph, then you can use the more lightweight
> +QEMU storage daemon instead of a full-blown QEMU process:
> +
> +```
> +$ qemu-storage-daemon \
> +    --blockdev node-name=prot-node,driver=file,filename=$image_path \
> +    --blockdev node-name=fmt-node,driver=qcow2,file=prot-node \
> +    --nbd-server addr.type=inet,addr.host=localhost,addr.port=10809 \
> +    --export type=nbd,id=fmt-node-export,node-name=fmt-node,name=guest-disk
> +```

And if you favor Unix sockets, you'd want to do it for q-s-d as well.
Okay, keeping it as TCP is easy enough (or maybe just a mention that
Unix sockets can be used, while giving a pointer to other
documentation for the interested reader).

> +
> +## Conclusion
> +
> +As shown in this blog post, FUSE block exports are a relatively simple way to
> +access images in any format understood by QEMU as if they were raw images.
> +Any tool that can manipulate raw disk images can thus manipulate images in any
> +format, simply by having the QEMU storage daemon provide a translation layer.
> +By mounting the FUSE export on the original image path, this translation layer
> +will effectively be invisible, and the original image will look like it is in
> +raw format, so it can directly be accessed by those tools.
> +
> +The current main disadvantage of FUSE exports is that they offer relatively bad
> +performance.  That should be fine as long as your use case is just light
> +manipulation of some VM images, like manually modifying some files on them.
> +However, we did not yet really try to optimize performance, so if more serious
> +use cases appear that would require better performance, we can try.

Overall a nice post!  I hope my comments help in addition to all the
other good reviews you got.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-20  7:56   ` Hanna Reitz
  2021-08-20  9:21     ` Daniel P. Berrangé
  2021-08-20 14:27     ` Stefan Hajnoczi
@ 2021-08-22 13:18     ` Thomas Huth
  2021-08-23  8:30       ` Hanna Reitz
  2 siblings, 1 reply; 16+ messages in thread
From: Thomas Huth @ 2021-08-22 13:18 UTC (permalink / raw)
  To: Hanna Reitz, Stefan Hajnoczi; +Cc: Kevin Wolf, Paolo Bonzini, qemu-devel

On 20/08/2021 09.56, Hanna Reitz wrote:
> On 19.08.21 18:23, Stefan Hajnoczi wrote:
>> On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
>>> This post explains when FUSE block exports are useful, how they work,
>>> and that it is fun to export an image file on its own path so it looks
>>> like your image file (in whatever format it was) is a raw image now.
[...]
>> This is a long blog post. One idea is to show a quickstart
>> qemu-storage-daemon FUSE export command-line in the beginning before
>> explaining all the details. That way people who just want to see what
>> this is about can get an idea without learning all the background first.
> 
> Sounds good, will do.  Thanks!

Oops, sorry, I just already pushed your patch to the repository since I did 
not notice this conversation in time. Next time, please make sure to put 
myself (and Paolo) on CC: when sending updates for qemu-web, otherwise I 
might not notice the updates :-/

  Thomas



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-20 21:24 ` Eric Blake
@ 2021-08-23  8:23   ` Hanna Reitz
  0 siblings, 0 replies; 16+ messages in thread
From: Hanna Reitz @ 2021-08-23  8:23 UTC (permalink / raw)
  To: Eric Blake; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi

On 20.08.21 23:24, Eric Blake wrote:
> On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
>> This post explains when FUSE block exports are useful, how they work,
>> and that it is fun to export an image file on its own path so it looks
>> like your image file (in whatever format it was) is a raw image now.
>>
>> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
>> ---
>> You can also find this patch here:
>> https://gitlab.com/hreitz/qemu-web fuse-blkexport-v1
>>
>> My first patch to qemu-web, so I hope I am not doing anything overly
>> stupid here (adding SVGs with extremely long lines comes to mind)...
>> ---
> ...
>> +
>> +Besides attaching guest devices to block nodes, you can also export them for
>> +users outside of qemu, for example via NBD.  Say you have a QMP channel open for
>> +the QEMU instance above, then you could do this:
>> +```json
>> +{
>> +    "execute": "nbd-server-start",
>> +    "arguments": {
>> +        "addr": {
>> +            "type": "inet",
>> +            "data": {
>> +                "host": "localhost",
>> +                "port": "10809"
>> +            }
>> +        }
>> +    }
>> +}
> Rather than using a TCP port, is it worth mentioning that you can use
> a Unix socket?  If the point of this is local access to the disk
> contents, that feels a bit lighter weight.

Well, the point of this is local access through FUSE; the NBD part here 
just serves to introduce the concept of block exports, so it shouldn’t 
really matter whether we use TCP or Unix sockets here.  I like TCP 
sockets a bit more in this case, because I feel like for people who 
don’t know much about NBD, that may seem more natural.

>> +{
>> +    "execute": "block-export-add",
>> +    "arguments": {
>> +        "type": "nbd",
>> +        "id": "fmt-node-export",
>> +        "node-name": "fmt-node",
>> +        "name": "guest-disk"
>> +    }
> This defaults to a readonly image; you may want to include
> "writable":true in the JSON, especially if the purpose is to show how
> to modify guest-visible contents of an at-rest disk image.

Oh, yes, good idea.  I should do this in every export command line.

> Overall a nice post!  I hope my comments help in addition to all the
> other good reviews you got.

Thanks!  I think I’ll keep TCP for exporting, but I will add writable=on 
to every export example.

Hanna



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-22 13:18     ` Thomas Huth
@ 2021-08-23  8:30       ` Hanna Reitz
  2021-08-23  8:49         ` Thomas Huth
  0 siblings, 1 reply; 16+ messages in thread
From: Hanna Reitz @ 2021-08-23  8:30 UTC (permalink / raw)
  To: Thomas Huth, Stefan Hajnoczi; +Cc: Kevin Wolf, Paolo Bonzini, qemu-devel

On 22.08.21 15:18, Thomas Huth wrote:
> On 20/08/2021 09.56, Hanna Reitz wrote:
>> On 19.08.21 18:23, Stefan Hajnoczi wrote:
>>> On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
>>>> This post explains when FUSE block exports are useful, how they work,
>>>> and that it is fun to export an image file on its own path so it looks
>>>> like your image file (in whatever format it was) is a raw image now.
> [...]
>>> This is a long blog post. One idea is to show a quickstart
>>> qemu-storage-daemon FUSE export command-line in the beginning before
>>> explaining all the details. That way people who just want to see what
>>> this is about can get an idea without learning all the background 
>>> first.
>>
>> Sounds good, will do.  Thanks!
>
> Oops, sorry, I just already pushed your patch to the repository since 
> I did not notice this conversation in time. Next time, please make 
> sure to put myself (and Paolo) on CC: when sending updates for 
> qemu-web, otherwise I might not notice the updates :-/

Oh, sorry... :/

Is it acceptable to send an update still?

(And would you accept a patch to CONTRIBUTING.md to make it say to CC 
you and Paolo?)

Hanna



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [qemu-web PATCH] Add a blog post about FUSE block exports
  2021-08-23  8:30       ` Hanna Reitz
@ 2021-08-23  8:49         ` Thomas Huth
  0 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2021-08-23  8:49 UTC (permalink / raw)
  To: Hanna Reitz, Stefan Hajnoczi; +Cc: Kevin Wolf, Paolo Bonzini, qemu-devel

On 23/08/2021 10.30, Hanna Reitz wrote:
> On 22.08.21 15:18, Thomas Huth wrote:
>> On 20/08/2021 09.56, Hanna Reitz wrote:
>>> On 19.08.21 18:23, Stefan Hajnoczi wrote:
>>>> On Thu, Aug 19, 2021 at 12:25:01PM +0200, Hanna Reitz wrote:
>>>>> This post explains when FUSE block exports are useful, how they work,
>>>>> and that it is fun to export an image file on its own path so it looks
>>>>> like your image file (in whatever format it was) is a raw image now.
>> [...]
>>>> This is a long blog post. One idea is to show a quickstart
>>>> qemu-storage-daemon FUSE export command-line in the beginning before
>>>> explaining all the details. That way people who just want to see what
>>>> this is about can get an idea without learning all the background first.
>>>
>>> Sounds good, will do.  Thanks!
>>
>> Oops, sorry, I just already pushed your patch to the repository since I 
>> did not notice this conversation in time. Next time, please make sure to 
>> put myself (and Paolo) on CC: when sending updates for qemu-web, otherwise 
>> I might not notice the updates :-/
> 
> Oh, sorry... :/
> 
> Is it acceptable to send an update still?

Sure!

> (And would you accept a patch to CONTRIBUTING.md to make it say to CC you 
> and Paolo?)

That would likely make sense, too, especially since you're not the only one 
who wasn't aware of this CC-rule yet...

  Thomas



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-08-23  8:50 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-19 10:25 [qemu-web PATCH] Add a blog post about FUSE block exports Hanna Reitz
2021-08-19 10:37 ` Philippe Mathieu-Daudé
2021-08-19 11:00   ` Hanna Reitz
2021-08-19 11:09     ` Philippe Mathieu-Daudé
2021-08-19 11:17       ` Hanna Reitz
2021-08-19 16:23 ` Stefan Hajnoczi
2021-08-20  7:56   ` Hanna Reitz
2021-08-20  9:21     ` Daniel P. Berrangé
2021-08-20 14:27     ` Stefan Hajnoczi
2021-08-22 13:18     ` Thomas Huth
2021-08-23  8:30       ` Hanna Reitz
2021-08-23  8:49         ` Thomas Huth
2021-08-19 18:22 ` Klaus Kiwi
2021-08-20  9:03   ` Hanna Reitz
2021-08-20 21:24 ` Eric Blake
2021-08-23  8:23   ` Hanna Reitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).