diff --git a/doc/charts/chart_protocols.svg b/doc/charts/chart_protocols.svg
index 1edce76a31e28ed526ec6bfe3586814fad58da53..72edaad3f9fc8edadf6522cf041c128550d98933 100644
--- a/doc/charts/chart_protocols.svg
+++ b/doc/charts/chart_protocols.svg
@@ -27,7 +27,7 @@ z
 " style="fill:#ffffff;"/>
    </g>
    <g id="patch_3">
-    <path clip-path="url(#pb853510f22)" d="M 73.832727 307.584 
+    <path clip-path="url(#p60aa827e55)" d="M 73.832727 307.584 
 L 118.612665 307.584 
 L 118.612665 239.654482 
 L 73.832727 239.654482 
@@ -35,7 +35,7 @@ z
 " style="fill:#1f77b4;"/>
    </g>
    <g id="patch_4">
-    <path clip-path="url(#pb853510f22)" d="M 129.807649 307.584 
+    <path clip-path="url(#p60aa827e55)" d="M 129.807649 307.584 
 L 174.587586 307.584 
 L 174.587586 239.619557 
 L 129.807649 239.619557 
@@ -43,7 +43,7 @@ z
 " style="fill:#1f77b4;"/>
    </g>
    <g id="patch_5">
-    <path clip-path="url(#pb853510f22)" d="M 185.782571 307.584 
+    <path clip-path="url(#p60aa827e55)" d="M 185.782571 307.584 
 L 230.562508 307.584 
 L 230.562508 239.460802 
 L 185.782571 239.460802 
@@ -51,7 +51,7 @@ z
 " style="fill:#1f77b4;"/>
    </g>
    <g id="patch_6">
-    <path clip-path="url(#pb853510f22)" d="M 241.757492 307.584 
+    <path clip-path="url(#p60aa827e55)" d="M 241.757492 307.584 
 L 286.537429 307.584 
 L 286.537429 239.309986 
 L 241.757492 239.309986 
@@ -59,7 +59,7 @@ z
 " style="fill:#1f77b4;"/>
    </g>
    <g id="patch_7">
-    <path clip-path="url(#pb853510f22)" d="M 297.732414 307.584 
+    <path clip-path="url(#p60aa827e55)" d="M 297.732414 307.584 
 L 342.512351 307.584 
 L 342.512351 238.092113 
 L 297.732414 238.092113 
@@ -67,7 +67,7 @@ z
 " style="fill:#1f77b4;"/>
    </g>
    <g id="patch_8">
-    <path clip-path="url(#pb853510f22)" d="M 353.707335 307.584 
+    <path clip-path="url(#p60aa827e55)" d="M 353.707335 307.584 
 L 398.487273 307.584 
 L 398.487273 54.144 
 L 353.707335 54.144 
@@ -80,10 +80,10 @@ z
       <defs>
        <path d="M 0 0 
 L 0 3.5 
-" id="m27ae76a889" style="stroke:#000000;stroke-width:0.8;"/>
+" id="maf3ac2b643" style="stroke:#000000;stroke-width:0.8;"/>
       </defs>
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="96.222696" xlink:href="#m27ae76a889" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="96.222696" xlink:href="#maf3ac2b643" y="307.584"/>
       </g>
      </g>
      <g id="text_1">
@@ -171,7 +171,7 @@ z
     <g id="xtick_2">
      <g id="line2d_2">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="152.197618" xlink:href="#m27ae76a889" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="152.197618" xlink:href="#maf3ac2b643" y="307.584"/>
       </g>
      </g>
      <g id="text_2">
@@ -213,7 +213,7 @@ z
     <g id="xtick_3">
      <g id="line2d_3">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="208.172539" xlink:href="#m27ae76a889" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="208.172539" xlink:href="#maf3ac2b643" y="307.584"/>
       </g>
      </g>
      <g id="text_3">
@@ -242,7 +242,7 @@ z
     <g id="xtick_4">
      <g id="line2d_4">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="264.147461" xlink:href="#m27ae76a889" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="264.147461" xlink:href="#maf3ac2b643" y="307.584"/>
       </g>
      </g>
      <g id="text_4">
@@ -271,7 +271,7 @@ z
     <g id="xtick_5">
      <g id="line2d_5">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="320.122382" xlink:href="#m27ae76a889" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="320.122382" xlink:href="#maf3ac2b643" y="307.584"/>
       </g>
      </g>
      <g id="text_5">
@@ -332,7 +332,7 @@ z
     <g id="xtick_6">
      <g id="line2d_6">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="376.097304" xlink:href="#m27ae76a889" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="376.097304" xlink:href="#maf3ac2b643" y="307.584"/>
       </g>
      </g>
      <g id="text_6">
@@ -484,10 +484,10 @@ z
       <defs>
        <path d="M 0 0 
 L -3.5 0 
-" id="m0d33e9a979" style="stroke:#000000;stroke-width:0.8;"/>
+" id="me710c41e18" style="stroke:#000000;stroke-width:0.8;"/>
       </defs>
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0d33e9a979" y="307.584"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#me710c41e18" y="307.584"/>
       </g>
      </g>
      <g id="text_8">
@@ -523,7 +523,7 @@ z
     <g id="ytick_2">
      <g id="line2d_8">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0d33e9a979" y="250.886013"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#me710c41e18" y="250.886013"/>
       </g>
      </g>
      <g id="text_9">
@@ -553,7 +553,7 @@ z
     <g id="ytick_3">
      <g id="line2d_9">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0d33e9a979" y="194.188027"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#me710c41e18" y="194.188027"/>
       </g>
      </g>
      <g id="text_10">
@@ -594,7 +594,7 @@ z
     <g id="ytick_4">
      <g id="line2d_10">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0d33e9a979" y="137.49004"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#me710c41e18" y="137.49004"/>
       </g>
      </g>
      <g id="text_11">
@@ -643,7 +643,7 @@ z
     <g id="ytick_5">
      <g id="line2d_11">
       <g>
-       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0d33e9a979" y="80.792054"/>
+       <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#me710c41e18" y="80.792054"/>
       </g>
      </g>
      <g id="text_12">
@@ -890,7 +890,7 @@ L 414.72 41.472
   </g>
  </g>
  <defs>
-  <clipPath id="pb853510f22">
+  <clipPath id="p60aa827e55">
    <rect height="266.112" width="357.12" x="57.6" y="41.472"/>
   </clipPath>
  </defs>
diff --git a/doc/csv2barchart.py b/doc/csv2barchart.py
index 0f63824fd34fa1fdcd6bf91498b3ffa2061cdf00..ea20bb7470a4feea4c28a808eae2e4e7724577d6 100755
--- a/doc/csv2barchart.py
+++ b/doc/csv2barchart.py
@@ -4,8 +4,11 @@ import re
 from sys import stdin, argv
 from typing import TextIO
 
+import matplotlib as mpl
 import matplotlib.pyplot as plt
 
+# this is a seed that makes the random id in svg always the same for the same input
+mpl.rcParams['svg.hashsalt'] = 'bootiful'
 
 def format_value(value):
     return re.sub(r'\.0$', '', str(value))