~samwhited/mellium.im

f9590693de908dea79ee62f8c8a7225dccfd8816 — Sam Whited 5 months ago 9ff6e6c
static: optimize localdeps.svg

We probably don't want an Inkscape specific SVG, optimize this for
viewing on the web.

Signed-off-by: Sam Whited <sam@samwhited.com>
1 files changed, 364 insertions(+), 1192 deletions(-)

M static/localdeps.svg
M static/localdeps.svg => static/localdeps.svg +364 -1192
@@ 1,1194 1,366 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="2075.625pt"
   height="356.67593pt"
   viewBox="0 0 2076.0709 356.67593"
   version="1.1"
   id="svg406"
   sodipodi:docname="melliumlocaldeps.svg"
   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
  <metadata
     id="metadata412">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs
     id="defs410">
    <rect
       x="16.835098"
       y="281.87595"
       width="627.11121"
       height="42.791813"
       id="rect1353" />
    <rect
       x="1209.498"
       y="139.73827"
       width="523.39307"
       height="44.296021"
       id="rect1345" />
    <rect
       x="16.626905"
       y="-1.3332692"
       width="701.60272"
       height="50.304253"
       id="rect1243" />
  </defs>
  <sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="3832"
     inkscape:window-height="1497"
     id="namedview408"
     showgrid="false"
     fit-margin-top="0"
     fit-margin-left="0"
     fit-margin-right="0"
     fit-margin-bottom="0"
     inkscape:zoom="0.6595459"
     inkscape:cx="933.70888"
     inkscape:cy="13.457016"
     inkscape:window-x="0"
     inkscape:window-y="70"
     inkscape:window-maximized="0"
     inkscape:current-layer="svg406" />
  <g
     id="graph0"
     class="graph"
     transform="translate(12.139454,350.08122)">
    <title
       id="title2">G</title>
    <polygon
       fill="#ffffff"
       stroke="transparent"
       points="2044.44,4 -4,4 -4,-328 2044.44,-328 "
       id="polygon4" />
    <!-- mellium.im/xmpp -->
    <g
       id="node1"
       class="node">
      <title
         id="title6">mellium.im/xmpp</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1036.65"
         cy="-162"
         rx="91.779999"
         ry="18"
         id="ellipse8" />
      <text
         text-anchor="middle"
         x="1036.65"
         y="-158.3"
         font-family="Times, serif"
         font-size="14px"
         id="text10">mellium.im/xmpp</text>
    </g>
    <!-- mellium.im/xmpp/dial -->
    <g
       id="node2"
       class="node">
      <title
         id="title13">mellium.im/xmpp/dial</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1151.65"
         cy="-90"
         rx="111.58"
         ry="18"
         id="ellipse15" />
      <text
         text-anchor="middle"
         x="1151.65"
         y="-86.300003"
         font-family="Times, serif"
         font-size="14px"
         id="text17">mellium.im/xmpp/dial</text>
    </g>
    <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/dial -->
    <g
       id="edge1"
       class="edge">
      <title
         id="title20">mellium.im/xmpp-&gt;mellium.im/xmpp/dial</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1063.32,-144.76 c 15.59,9.49 35.48,21.59 52.44,31.92"
         id="path22" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1124.32,-107.63 1113.96,-109.84 1117.6,-115.82 "
         id="polygon24" />
    </g>
    <!-- mellium.im/xmpp/jid -->
    <g
       id="node3"
       class="node">
      <title
         id="title27">mellium.im/xmpp/jid</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1151.65"
         cy="-18"
         rx="106.68"
         ry="18"
         id="ellipse29" />
      <text
         text-anchor="middle"
         x="1151.65"
         y="-14.3"
         font-family="Times, serif"
         font-size="14px"
         id="text31">mellium.im/xmpp/jid</text>
    </g>
    <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge2"
       class="edge">
      <title
         id="title34">mellium.im/xmpp-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1029.73,-143.71 c -6.45,19.16 -13.15,50.19 0.92,71.71 10.89,16.67 28.32,28.13 46.59,35.99"
         id="path36" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1086.54,-32.32 1075.96,-32.75 1078.54,-39.26 "
         id="polygon38" />
    </g>
    <!-- mellium.im/xmpp/stanza -->
    <g
       id="node4"
       class="node">
      <title
         id="title41">mellium.im/xmpp/stanza</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1406.65"
         cy="-90"
         rx="124.58"
         ry="18"
         id="ellipse43" />
      <text
         text-anchor="middle"
         x="1406.65"
         y="-86.300003"
         font-family="Times, serif"
         font-size="14px"
         id="text45">mellium.im/xmpp/stanza</text>
    </g>
    <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge3"
       class="edge">
      <title
         id="title48">mellium.im/xmpp-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1100.25,-148.97 c 61.81,11.7 155.99,29.51 223.61,42.31"
         id="path50" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1334.05,-104.73 1323.58,-103.15 1324.88,-110.03 "
         id="polygon52" />
    </g>
    <!-- mellium.im/xmpp/stream -->
    <g
       id="node5"
       class="node">
      <title
         id="title55">mellium.im/xmpp/stream</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="856.65002"
         cy="-90"
         rx="127.28"
         ry="18"
         id="ellipse57" />
      <text
         text-anchor="middle"
         x="856.65002"
         y="-86.300003"
         font-family="Times, serif"
         font-size="14px"
         id="text59">mellium.im/xmpp/stream</text>
    </g>
    <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/stream -->
    <g
       id="edge4"
       class="edge">
      <title
         id="title62">mellium.im/xmpp-&gt;mellium.im/xmpp/stream</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 997.14,-145.64 c -26.4,10.27 -61.38,23.87 -89.83,34.94"
         id="path64" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="897.93,-107.06 905.98,-113.94 908.52,-107.42 "
         id="polygon66" />
    </g>
    <!-- mellium.im/xmpp/dial&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge10"
       class="edge">
      <title
         id="title69">mellium.im/xmpp/dial-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1151.65,-71.7 c 0,7.72 0,16.99 0,25.59"
         id="path71" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1151.65,-36.1 1148.15,-46.1 1155.15,-46.1 "
         id="polygon73" />
    </g>
    <!-- mellium.im/xmpp/stanza&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge31"
       class="edge">
      <title
         id="title76">mellium.im/xmpp/stanza-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1351.31,-73.81 c -40.14,11.02 -94.51,25.94 -136.37,37.44"
         id="path78" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1205.12,-33.68 1213.84,-39.7 1215.69,-32.95 "
         id="polygon80" />
    </g>
    <!-- mellium.im/xmpp/stream&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge32"
       class="edge">
      <title
         id="title83">mellium.im/xmpp/stream-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 918.85,-74.24 c 47.92,11.37 114.13,27.08 163.7,38.84"
         id="path85" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1092.55,-33.02 1082.01,-31.93 1083.62,-38.74 "
         id="polygon87" />
    </g>
    <!-- mellium.im/xmpp/component -->
    <g
       id="node6"
       class="node">
      <title
         id="title90">mellium.im/xmpp/component</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="162.64999"
         cy="-234"
         rx="145.67"
         ry="18"
         id="ellipse92" />
      <text
         text-anchor="middle"
         x="162.64999"
         y="-230.3"
         font-family="Times, serif"
         font-size="14px"
         id="text94">mellium.im/xmpp/component</text>
    </g>
    <!-- mellium.im/xmpp/component&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge5"
       class="edge">
      <title
         id="title97">mellium.im/xmpp/component-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 264.47,-221.12 c 17.4,1.84 35.29,3.63 52.18,5.12 240.92,21.27 301.92,16.44 543,36 28.5,2.31 59.54,5.18 87.56,7.89"
         id="path99" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="957.39,-171.12 947.1,-168.6 947.78,-175.57 "
         id="polygon101" />
    </g>
    <!-- mellium.im/xmpp/component&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge6"
       class="edge">
      <title
         id="title104">mellium.im/xmpp/component-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 182.61,-216.07 c 24.59,20.02 68.36,53.01 111.04,72.07 121.25,54.16 159.07,49.77 290,72 157.45,26.74 341.92,40.82 456.89,47.58"
         id="path106" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1050.76,-23.83 1040.57,-20.91 1040.98,-27.9 "
         id="polygon108" />
    </g>
    <!-- mellium.im/xmpp/component&#45;&gt;mellium.im/xmpp/stream -->
    <g
       id="edge7"
       class="edge">
      <title
         id="title111">mellium.im/xmpp/component-&gt;mellium.im/xmpp/stream</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 262.35,-220.83 c 108.68,13.52 268.88,34.31 281.3,40.83 19.21,10.09 14.03,25.44 33,36 45.8,25.5 101.65,38.97 151.38,46"
         id="path113" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="738.22,-96.64 727.84,-94.5 728.77,-101.43 "
         id="polygon115" />
    </g>
    <!-- mellium.im/xmpp/compress -->
    <g
       id="node7"
       class="node">
      <title
         id="title118">mellium.im/xmpp/compress</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="710.65002"
         cy="-234"
         rx="139.17999"
         ry="18"
         id="ellipse120" />
      <text
         text-anchor="middle"
         x="710.65002"
         y="-230.3"
         font-family="Times, serif"
         font-size="14px"
         id="text122">mellium.im/xmpp/compress</text>
    </g>
    <!-- mellium.im/xmpp/compress&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge8"
       class="edge">
      <title
         id="title125">mellium.im/xmpp/compress-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 779.38,-218.24 c 55.22,11.86 132.43,28.44 187.84,40.33"
         id="path127" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="977.3,-175.74 966.79,-174.42 968.26,-181.26 "
         id="polygon129" />
    </g>
    <!-- mellium.im/xmpp/compress&#45;&gt;mellium.im/xmpp/stream -->
    <g
       id="edge9"
       class="edge">
      <title
         id="title132">mellium.im/xmpp/compress-&gt;mellium.im/xmpp/stream</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 800.54,-220.12 c 22.97,7.81 45.1,20.27 59.11,40.12 12.56,17.8 10.38,42.97 5.89,62"
         id="path134" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="862.88,-108.14 862.1,-118.71 868.86,-116.89 "
         id="polygon136" />
    </g>
    <!-- mellium.im/xmpp/form -->
    <g
       id="node8"
       class="node">
      <title
         id="title139">mellium.im/xmpp/form</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="418.64999"
         cy="-162"
         rx="116.18"
         ry="18"
         id="ellipse141" />
      <text
         text-anchor="middle"
         x="418.64999"
         y="-158.3"
         font-family="Times, serif"
         font-size="14px"
         id="text143">mellium.im/xmpp/form</text>
    </g>
    <!-- mellium.im/xmpp/form&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge11"
       class="edge">
      <title
         id="title146">mellium.im/xmpp/form-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 463.34,-145.31 c 58.43,19.92 164.31,54.03 257.31,73.31 109.99,22.81 237.96,37.02 325.71,44.92"
         id="path148" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1056.32,-26.2 1046.05,-23.6 1046.67,-30.57 "
         id="polygon150" />
    </g>
    <!-- mellium.im/xmpp/ibr2 -->
    <g
       id="node9"
       class="node">
      <title
         id="title153">mellium.im/xmpp/ibr2</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="439.64999"
         cy="-234"
         rx="113.98"
         ry="18"
         id="ellipse155" />
      <text
         text-anchor="middle"
         x="439.64999"
         y="-230.3"
         font-family="Times, serif"
         font-size="14px"
         id="text157">mellium.im/xmpp/ibr2</text>
    </g>
    <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge12"
       class="edge">
      <title
         id="title160">mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 521.32,-221.41 c 13.78,1.87 27.96,3.74 41.33,5.41 133.97,16.75 289.58,33.66 384.91,43.74"
         id="path162" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="957.73,-171.19 947.42,-168.76 948.16,-175.72 "
         id="polygon164" />
    </g>
    <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp/stream -->
    <g
       id="edge15"
       class="edge">
      <title
         id="title167">mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp/stream</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 490.28,-217.86 c 26.67,9.06 59.35,21.92 86.37,37.86 21.46,12.67 20.65,24.97 43,36 40.51,20 88.63,32.54 130.9,40.37"
         id="path169" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="760.59,-101.84 750.13,-100.15 751.36,-107.04 "
         id="polygon171" />
    </g>
    <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp/form -->
    <g
       id="edge13"
       class="edge">
      <title
         id="title174">mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp/form</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 434.45,-215.7 c -2.34,7.8 -5.15,17.19 -7.76,25.87"
         id="path176" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="423.78,-180.1 423.3,-190.69 430,-188.68 "
         id="polygon178" />
    </g>
    <!-- mellium.im/xmpp/oob -->
    <g
       id="node10"
       class="node">
      <title
         id="title181">mellium.im/xmpp/oob</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="739.65002"
         cy="-162"
         rx="111.28"
         ry="18"
         id="ellipse183" />
      <text
         text-anchor="middle"
         x="739.65002"
         y="-158.3"
         font-family="Times, serif"
         font-size="14px"
         id="text185">mellium.im/xmpp/oob</text>
    </g>
    <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp/oob -->
    <g
       id="edge14"
       class="edge">
      <title
         id="title188">mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp/oob</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 500.72,-218.75 c 48.82,11.39 117.32,27.38 168.47,39.31"
         id="path190" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="679.17,-177.11 668.64,-175.97 670.23,-182.79 "
         id="polygon192" />
    </g>
    <!-- mellium.im/xmpp/oob&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge18"
       class="edge">
      <title
         id="title195">mellium.im/xmpp/oob-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 834.08,-152.39 c 106.6,9.9 285.18,27.04 438.57,44.39 11.26,1.27 23.05,2.67 34.76,4.11"
         id="path197" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1317.67,-102.63 1307.32,-100.38 1308.17,-107.33 "
         id="polygon199" />
    </g>
    <!-- mellium.im/xmpp/mux -->
    <g
       id="node11"
       class="node">
      <title
         id="title202">mellium.im/xmpp/mux</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1333.65"
         cy="-234"
         rx="114.28"
         ry="18"
         id="ellipse204" />
      <text
         text-anchor="middle"
         x="1333.65"
         y="-230.3"
         font-family="Times, serif"
         font-size="14px"
         id="text206">mellium.im/xmpp/mux</text>
    </g>
    <!-- mellium.im/xmpp/mux&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge16"
       class="edge">
      <title
         id="title209">mellium.im/xmpp/mux-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1272.83,-218.67 c -49.48,11.67 -119.2,28.1 -170.06,40.08"
         id="path211" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1092.86,-176.25 1101.79,-181.95 1103.4,-175.14 "
         id="polygon213" />
    </g>
    <!-- mellium.im/xmpp/mux&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge17"
       class="edge">
      <title
         id="title216">mellium.im/xmpp/mux-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1342.45,-215.87 c 12.61,24.52 35.9,69.84 50.7,98.61"
         id="path218" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1397.81,-108.19 1390.12,-115.48 1396.35,-118.68 "
         id="polygon220" />
    </g>
    <!-- mellium.im/xmpp/ping -->
    <g
       id="node12"
       class="node">
      <title
         id="title223">mellium.im/xmpp/ping</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="945.65002"
         cy="-306"
         rx="115.08"
         ry="18"
         id="ellipse225" />
      <text
         text-anchor="middle"
         x="945.65002"
         y="-302.29999"
         font-family="Times, serif"
         font-size="14px"
         id="text227">mellium.im/xmpp/ping</text>
    </g>
    <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge19"
       class="edge">
      <title
         id="title230">mellium.im/xmpp/ping-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 926.85,-288.17 c -18.32,18.49 -41.22,48.67 -25.2,72.17 12.97,19.03 33.9,31.23 55.46,39.04"
         id="path232" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="966.69,-173.77 956.1,-173.6 958.31,-180.24 "
         id="polygon234" />
    </g>
    <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge20"
       class="edge">
      <title
         id="title237">mellium.im/xmpp/ping-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 832.37,-302.7 c -243.44,5.48 -796.8,21.16 -824.72,50.7 -10.99,11.63 -9.08,22.83 0,36 115.37,167.42 759.6,193.31 1027.31,196.76"
         id="path239" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1045.1,-19.11 1035.06,-15.74 1035.14,-22.74 "
         id="polygon241" />
    </g>
    <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge22"
       class="edge">
      <title
         id="title244">mellium.im/xmpp/ping-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1036.87,-294.94 c 43.09,7.49 94.08,20.49 135.78,42.94 20.48,11.03 19.66,21.68 38,36 51.74,40.42 116.88,79.95 157.49,103.4"
         id="path246" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1376.91,-107.57 1366.5,-109.51 1369.98,-115.58 "
         id="polygon248" />
    </g>
    <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp/mux -->
    <g
       id="edge21"
       class="edge">
      <title
         id="title251">mellium.im/xmpp/ping-&gt;mellium.im/xmpp/mux</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1018.17,-291.92 c 66.27,11.96 164.19,29.63 233.32,42.1"
         id="path253" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1261.48,-248.02 1251.01,-246.35 1252.26,-253.24 "
         id="polygon255" />
    </g>
    <!-- mellium.im/xmpp/receipts -->
    <g
       id="node13"
       class="node">
      <title
         id="title258">mellium.im/xmpp/receipts</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1278.65"
         cy="-306"
         rx="131.88"
         ry="18"
         id="ellipse260" />
      <text
         text-anchor="middle"
         x="1278.65"
         y="-302.29999"
         font-family="Times, serif"
         font-size="14px"
         id="text262">mellium.im/xmpp/receipts</text>
    </g>
    <!-- mellium.im/xmpp/receipts&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge23"
       class="edge">
      <title
         id="title265">mellium.im/xmpp/receipts-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1171.48,-295.47 c -95.11,9.56 -221.37,25.44 -236.83,43.47 -10.42,12.14 -8.31,22.32 0,36 9.52,15.69 25.37,26.94 41.76,34.93"
         id="path267" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="985.54,-176.97 974.99,-177.88 977.86,-184.26 "
         id="polygon269" />
    </g>
    <!-- mellium.im/xmpp/receipts&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge25"
       class="edge">
      <title
         id="title272">mellium.im/xmpp/receipts-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1356.45,-291.33 c 41.96,9.12 87.67,22.53 100.2,39.33 30.8,41.31 -4.42,101.96 -29.42,135.8"
         id="path274" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1421.14,-108.2 1424.41,-118.28 1429.98,-114.04 "
         id="polygon276" />
    </g>
    <!-- mellium.im/xmpp/receipts&#45;&gt;mellium.im/xmpp/mux -->
    <g
       id="edge24"
       class="edge">
      <title
         id="title279">mellium.im/xmpp/receipts-&gt;mellium.im/xmpp/mux</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1291.96,-288.05 c 6.52,8.3 14.51,18.47 21.75,27.67"
         id="path281" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1320.07,-252.28 1311.14,-257.98 1316.65,-262.3 "
         id="polygon283" />
    </g>
    <!-- mellium.im/xmpp/roster -->
    <g
       id="node14"
       class="node">
      <title
         id="title286">mellium.im/xmpp/roster</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1551.65"
         cy="-306"
         rx="122.68"
         ry="18"
         id="ellipse288" />
      <text
         text-anchor="middle"
         x="1551.65"
         y="-302.29999"
         font-family="Times, serif"
         font-size="14px"
         id="text290">mellium.im/xmpp/roster</text>
    </g>
    <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge26"
       class="edge">
      <title
         id="title293">mellium.im/xmpp/roster-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1539.04,-287.88 c -16.42,20.86 -47.21,55.35 -82.39,71.88 -55.51,26.07 -217.1,40.67 -322.9,47.68"
         id="path295" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1123.69,-167.66 1133.44,-171.81 1133.9,-164.82 "
         id="polygon297" />
    </g>
    <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge27"
       class="edge">
      <title
         id="title300">mellium.im/xmpp/roster-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1656.64,-296.62 c 101.12,9.17 241.19,25.17 258.01,44.62 10.46,12.1 8.74,22.6 0,36 -86.76,133.01 -173.87,101.97 -327,144 -107.45,29.49 -234.28,42.58 -323.37,48.39"
         id="path302" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1254.15,-22.97 1263.91,-27.09 1264.36,-20.11 "
         id="polygon304" />
    </g>
    <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge29"
       class="edge">
      <title
         id="title307">mellium.im/xmpp/roster-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1545.17,-287.79 c -12.12,30.86 -40.41,96.77 -77.52,143.79 -8.51,10.77 -19.42,21.06 -29.66,29.65"
         id="path309" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1429.98,-107.85 1435.53,-116.87 1439.95,-111.44 "
         id="polygon311" />
    </g>
    <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp/mux -->
    <g
       id="edge28"
       class="edge">
      <title
         id="title314">mellium.im/xmpp/roster-&gt;mellium.im/xmpp/mux</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1502.99,-289.38 c -33.03,10.61 -76.86,24.68 -111.66,35.86"
         id="path316" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1381.77,-250.45 1390.22,-256.84 1392.36,-250.18 "
         id="polygon318" />
    </g>
    <!-- mellium.im/xmpp/s2s -->
    <g
       id="node15"
       class="node">
      <title
         id="title321">mellium.im/xmpp/s2s</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1053.65"
         cy="-234"
         rx="110.48"
         ry="18"
         id="ellipse323" />
      <text
         text-anchor="middle"
         x="1053.65"
         y="-230.3"
         font-family="Times, serif"
         font-size="14px"
         id="text325">mellium.im/xmpp/s2s</text>
    </g>
    <!-- mellium.im/xmpp/s2s&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge30"
       class="edge">
      <title
         id="title328">mellium.im/xmpp/s2s-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1049.44,-215.7 c -1.89,7.8 -4.17,17.19 -6.28,25.87"
         id="path330" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1040.8,-180.1 1039.76,-190.65 1046.56,-189 "
         id="polygon332" />
    </g>
    <!-- mellium.im/xmpp/uri -->
    <g
       id="node16"
       class="node">
      <title
         id="title335">mellium.im/xmpp/uri</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1904.65"
         cy="-90"
         rx="107.78"
         ry="18"
         id="ellipse337" />
      <text
         text-anchor="middle"
         x="1904.65"
         y="-86.300003"
         font-family="Times, serif"
         font-size="14px"
         id="text339">mellium.im/xmpp/uri</text>
    </g>
    <!-- mellium.im/xmpp/uri&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge33"
       class="edge">
      <title
         id="title342">mellium.im/xmpp/uri-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1826.63,-77.48 c -14.6,1.97 -29.74,3.89 -43.98,5.48 -183.64,20.49 -398.13,36.92 -523.81,45.79"
         id="path344" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1248.82,-25.51 1258.55,-29.7 1259.04,-22.72 "
         id="polygon346" />
    </g>
    <!-- mellium.im/xmpp/websocket -->
    <g
       id="node17"
       class="node">
      <title
         id="title349">mellium.im/xmpp/websocket</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1761.65"
         cy="-234"
         rx="143.77"
         ry="18"
         id="ellipse351" />
      <text
         text-anchor="middle"
         x="1761.65"
         y="-230.3"
         font-family="Times, serif"
         font-size="14px"
         id="text353">mellium.im/xmpp/websocket</text>
    </g>
    <!-- mellium.im/xmpp/websocket&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge34"
       class="edge">
      <title
         id="title356">mellium.im/xmpp/websocket-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1657.55,-221.59 c -17.97,1.91 -36.47,3.84 -53.9,5.59 -167.42,16.83 -362.83,34.71 -475.02,44.8"
         id="path358" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1118.37,-170.28 1128.02,-174.66 1128.64,-167.69 "
         id="polygon360" />
    </g>
    <!-- mellium.im/xmpp/websocket&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge35"
       class="edge">
      <title
         id="title363">mellium.im/xmpp/websocket-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1744.88,-216.08 c -34.65,33.81 -118.14,109.44 -204.23,144.08 -87.17,35.07 -193.26,47.74 -272.62,51.96"
         id="path365" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1258,-19.54 1267.81,-23.53 1268.16,-16.54 "
         id="polygon367" />
    </g>
    <!-- mellium.im/xmpp/xtime -->
    <g
       id="node18"
       class="node">
      <title
         id="title370">mellium.im/xmpp/xtime</title>
      <ellipse
         fill="none"
         stroke="#000000"
         cx="1892.65"
         cy="-306"
         rx="120.78"
         ry="18"
         id="ellipse372" />
      <text
         text-anchor="middle"
         x="1892.65"
         y="-302.29999"
         font-family="Times, serif"
         font-size="14px"
         id="text374">mellium.im/xmpp/xtime</text>
    </g>
    <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp -->
    <g
       id="edge36"
       class="edge">
      <title
         id="title377">mellium.im/xmpp/xtime-&gt;mellium.im/xmpp</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1811.59,-292.56 c -57.12,9.41 -135.19,23.61 -202.94,40.56 -51.55,12.9 -62.04,24.9 -114,36 -123.3,26.35 -268.26,40.34 -361.54,47.2"
         id="path379" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1123.12,-168.08 1132.84,-172.29 1133.34,-165.31 "
         id="polygon381" />
    </g>
    <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp/jid -->
    <g
       id="edge37"
       class="edge">
      <title
         id="title384">mellium.im/xmpp/xtime-&gt;mellium.im/xmpp/jid</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1914.83,-288.27 c 51.75,40.93 171.29,147.74 106.82,216.27 -25.49,27.08 -524.82,43.82 -755.26,50.14"
         id="path386" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1256.29,-21.59 1266.19,-25.36 1266.39,-18.36 "
         id="polygon388" />
    </g>
    <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp/stanza -->
    <g
       id="edge39"
       class="edge">
      <title
         id="title391">mellium.im/xmpp/xtime-&gt;mellium.im/xmpp/stanza</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1904.72,-287.79 c 11.96,19.37 26.32,50.87 9.93,71.79 -48.6,62.01 -264.62,97.38 -398.83,113.74"
         id="path393" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1505.5,-101.02 1515.01,-105.69 1515.85,-98.74 "
         id="polygon395" />
    </g>
    <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp/mux -->
    <g
       id="edge38"
       class="edge">
      <title
         id="title398">mellium.im/xmpp/xtime-&gt;mellium.im/xmpp/mux</title>
      <path
         fill="none"
         stroke="#000000"
         d="m 1803.45,-293.83 c -101.97,12.77 -268.31,33.6 -373.27,46.74"
         id="path400" />
      <polygon
         fill="#000000"
         stroke="#000000"
         points="1420.22,-245.84 1429.71,-250.56 1430.58,-243.61 "
         id="polygon402" />
    </g>
<?xml version="1.0" encoding="UTF-8"?>
<svg width="2075.6pt" height="356.68pt" version="1.1" viewBox="0 0 2076.1 356.68" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 <metadata>
  <rdf:RDF>
   <cc:Work rdf:about="">
    <dc:format>image/svg+xml</dc:format>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:title/>
   </cc:Work>
  </rdf:RDF>
 </metadata>
 <g class="graph" transform="translate(12.139 350.08)">
  <title>G</title>
  <polygon points="2044.4 4 -4 4 -4 -328 2044.4 -328" fill="#fff" stroke="transparent"/>
  <!-- mellium.im/xmpp -->
  <g class="node">
   <title>mellium.im/xmpp</title>
   <ellipse cx="1036.6" cy="-162" rx="91.78" ry="18" fill="none" stroke="#000"/>
   <text x="1036.65" y="-158.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp</text>
  </g>
  <rect
     style="fill:none;stroke:#ff0000;stroke-width:3.75081"
     id="rect1237"
     x="-92.494041"
     y="-25.872503"
     height="130.47861"
     width="0" />
  <text
     xml:space="preserve"
     id="text1241"
     style="font-style:normal;font-weight:normal;font-size:30.0064px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1243);fill:#000000;fill-opacity:1;stroke:none;"
     transform="translate(8.1394536,22.116883)"><tspan
       x="16.626953"
       y="25.214646"><tspan>High level (features and XEPs)</tspan></tspan></text>
  <path
     style="fill:none;stroke:#0000ff;stroke-width:3.75081;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     d="M 888.42043,215.61349 H 1758.1619"
     id="path1341" />
  <rect
     style="fill:#ffffff;stroke:none;stroke-width:3.7508056;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0.74901962"
     id="rect1357"
     width="431.88177"
     height="31.208258"
     x="1229.6995"
     y="177.45734" />
  <text
     xml:space="preserve"
     id="text1343"
     style="font-style:normal;font-weight:normal;font-size:30.0064px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1345);fill:#000000;fill-opacity:1;stroke:none;"
     transform="translate(16.348601,35.053309)"><tspan
       x="1209.498"
       y="166.28691"><tspan>Mid Level (core functionality)</tspan></tspan></text>
  <path
     style="fill:none;stroke:#00ff00;stroke-width:3.75081;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     d="M 1.8756083,215.61349 V 354.83884 H 2074.1955 v -53.5812"
     id="path1349"
     sodipodi:nodetypes="cccc" />
  <path
     style="fill:none;stroke:#ff0000;stroke-width:3.75081;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     d="M 1.8754035,1.8370827 H 2074.1955 V 301.54249 H 1757.8198 V 156.68905 H 1491.9257 V 82.053322 H 1198.3104 V 156.68905 H 888.42043 v 58.92444 H 1.8756048 C 1.8756011,144.35469 1.8754822,73.095886 1.8754035,1.8370827 Z"
     id="path1337"
     sodipodi:nodetypes="ccccccccccccc" />
  <text
     xml:space="preserve"
     id="text1351"
     style="font-style:normal;font-weight:normal;font-size:30.0064px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1353);fill:#000000;fill-opacity:1;stroke:none;"
     transform="translate(2.1381648,31.118816)"><tspan
       x="16.835938"
       y="308.42363"><tspan>Low level (primitives and building blocks)</tspan></tspan></text>
  <!-- mellium.im/xmpp/dial -->
  <g class="node">
   <title>mellium.im/xmpp/dial</title>
   <ellipse cx="1151.6" cy="-90" rx="111.58" ry="18" fill="none" stroke="#000"/>
   <text x="1151.65" y="-86.300003" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/dial</text>
  </g>
  <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/dial -->
  <g class="edge">
   <title>mellium.im/xmpp-&gt;mellium.im/xmpp/dial</title>
   <path d="m1063.3-144.76c15.59 9.49 35.48 21.59 52.44 31.92" fill="none" stroke="#000"/>
   <polygon points="1124.3 -107.63 1114 -109.84 1117.6 -115.82" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/jid -->
  <g class="node">
   <title>mellium.im/xmpp/jid</title>
   <ellipse cx="1151.6" cy="-18" rx="106.68" ry="18" fill="none" stroke="#000"/>
   <text x="1151.65" y="-14.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/jid</text>
  </g>
  <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp-&gt;mellium.im/xmpp/jid</title>
   <path d="m1029.7-143.71c-6.45 19.16-13.15 50.19 0.92 71.71 10.89 16.67 28.32 28.13 46.59 35.99" fill="none" stroke="#000"/>
   <polygon points="1086.5 -32.32 1076 -32.75 1078.5 -39.26" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/stanza -->
  <g class="node">
   <title>mellium.im/xmpp/stanza</title>
   <ellipse cx="1406.6" cy="-90" rx="124.58" ry="18" fill="none" stroke="#000"/>
   <text x="1406.65" y="-86.300003" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/stanza</text>
  </g>
  <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp-&gt;mellium.im/xmpp/stanza</title>
   <path d="m1100.2-148.97c61.81 11.7 155.99 29.51 223.61 42.31" fill="none" stroke="#000"/>
   <polygon points="1334 -104.73 1323.6 -103.15 1324.9 -110.03" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/stream -->
  <g class="node">
   <title>mellium.im/xmpp/stream</title>
   <ellipse cx="856.65" cy="-90" rx="127.28" ry="18" fill="none" stroke="#000"/>
   <text x="856.65002" y="-86.300003" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/stream</text>
  </g>
  <!-- mellium.im/xmpp&#45;&gt;mellium.im/xmpp/stream -->
  <g class="edge">
   <title>mellium.im/xmpp-&gt;mellium.im/xmpp/stream</title>
   <path d="m997.14-145.64c-26.4 10.27-61.38 23.87-89.83 34.94" fill="none" stroke="#000"/>
   <polygon points="897.93 -107.06 905.98 -113.94 908.52 -107.42" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/dial&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/dial-&gt;mellium.im/xmpp/jid</title>
   <path d="m1151.6-71.7v25.59" fill="none" stroke="#000"/>
   <polygon points="1151.6 -36.1 1148.2 -46.1 1155.2 -46.1" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/stanza&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/stanza-&gt;mellium.im/xmpp/jid</title>
   <path d="m1351.3-73.81c-40.14 11.02-94.51 25.94-136.37 37.44" fill="none" stroke="#000"/>
   <polygon points="1205.1 -33.68 1213.8 -39.7 1215.7 -32.95" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/stream&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/stream-&gt;mellium.im/xmpp/jid</title>
   <path d="m918.85-74.24c47.92 11.37 114.13 27.08 163.7 38.84" fill="none" stroke="#000"/>
   <polygon points="1092.6 -33.02 1082 -31.93 1083.6 -38.74" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/component -->
  <g class="node">
   <title>mellium.im/xmpp/component</title>
   <ellipse cx="162.65" cy="-234" rx="145.67" ry="18" fill="none" stroke="#000"/>
   <text x="162.64999" y="-230.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/component</text>
  </g>
  <!-- mellium.im/xmpp/component&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/component-&gt;mellium.im/xmpp</title>
   <path d="m264.47-221.12c17.4 1.84 35.29 3.63 52.18 5.12 240.92 21.27 301.92 16.44 543 36 28.5 2.31 59.54 5.18 87.56 7.89" fill="none" stroke="#000"/>
   <polygon points="957.39 -171.12 947.1 -168.6 947.78 -175.57" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/component&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/component-&gt;mellium.im/xmpp/jid</title>
   <path d="m182.61-216.07c24.59 20.02 68.36 53.01 111.04 72.07 121.25 54.16 159.07 49.77 290 72 157.45 26.74 341.92 40.82 456.89 47.58" fill="none" stroke="#000"/>
   <polygon points="1050.8 -23.83 1040.6 -20.91 1041 -27.9" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/component&#45;&gt;mellium.im/xmpp/stream -->
  <g class="edge">
   <title>mellium.im/xmpp/component-&gt;mellium.im/xmpp/stream</title>
   <path d="m262.35-220.83c108.68 13.52 268.88 34.31 281.3 40.83 19.21 10.09 14.03 25.44 33 36 45.8 25.5 101.65 38.97 151.38 46" fill="none" stroke="#000"/>
   <polygon points="738.22 -96.64 727.84 -94.5 728.77 -101.43" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/compress -->
  <g class="node">
   <title>mellium.im/xmpp/compress</title>
   <ellipse cx="710.65" cy="-234" rx="139.18" ry="18" fill="none" stroke="#000"/>
   <text x="710.65002" y="-230.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/compress</text>
  </g>
  <!-- mellium.im/xmpp/compress&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/compress-&gt;mellium.im/xmpp</title>
   <path d="m779.38-218.24c55.22 11.86 132.43 28.44 187.84 40.33" fill="none" stroke="#000"/>
   <polygon points="977.3 -175.74 966.79 -174.42 968.26 -181.26" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/compress&#45;&gt;mellium.im/xmpp/stream -->
  <g class="edge">
   <title>mellium.im/xmpp/compress-&gt;mellium.im/xmpp/stream</title>
   <path d="m800.54-220.12c22.97 7.81 45.1 20.27 59.11 40.12 12.56 17.8 10.38 42.97 5.89 62" fill="none" stroke="#000"/>
   <polygon points="862.88 -108.14 862.1 -118.71 868.86 -116.89" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/form -->
  <g class="node">
   <title>mellium.im/xmpp/form</title>
   <ellipse cx="418.65" cy="-162" rx="116.18" ry="18" fill="none" stroke="#000"/>
   <text x="418.64999" y="-158.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/form</text>
  </g>
  <!-- mellium.im/xmpp/form&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/form-&gt;mellium.im/xmpp/jid</title>
   <path d="m463.34-145.31c58.43 19.92 164.31 54.03 257.31 73.31 109.99 22.81 237.96 37.02 325.71 44.92" fill="none" stroke="#000"/>
   <polygon points="1056.3 -26.2 1046 -23.6 1046.7 -30.57" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ibr2 -->
  <g class="node">
   <title>mellium.im/xmpp/ibr2</title>
   <ellipse cx="439.65" cy="-234" rx="113.98" ry="18" fill="none" stroke="#000"/>
   <text x="439.64999" y="-230.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/ibr2</text>
  </g>
  <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp</title>
   <path d="m521.32-221.41c13.78 1.87 27.96 3.74 41.33 5.41 133.97 16.75 289.58 33.66 384.91 43.74" fill="none" stroke="#000"/>
   <polygon points="957.73 -171.19 947.42 -168.76 948.16 -175.72" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp/stream -->
  <g class="edge">
   <title>mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp/stream</title>
   <path d="m490.28-217.86c26.67 9.06 59.35 21.92 86.37 37.86 21.46 12.67 20.65 24.97 43 36 40.51 20 88.63 32.54 130.9 40.37" fill="none" stroke="#000"/>
   <polygon points="760.59 -101.84 750.13 -100.15 751.36 -107.04" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp/form -->
  <g class="edge">
   <title>mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp/form</title>
   <path d="m434.45-215.7c-2.34 7.8-5.15 17.19-7.76 25.87" fill="none" stroke="#000"/>
   <polygon points="423.78 -180.1 423.3 -190.69 430 -188.68" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/oob -->
  <g class="node">
   <title>mellium.im/xmpp/oob</title>
   <ellipse cx="739.65" cy="-162" rx="111.28" ry="18" fill="none" stroke="#000"/>
   <text x="739.65002" y="-158.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/oob</text>
  </g>
  <!-- mellium.im/xmpp/ibr2&#45;&gt;mellium.im/xmpp/oob -->
  <g class="edge">
   <title>mellium.im/xmpp/ibr2-&gt;mellium.im/xmpp/oob</title>
   <path d="m500.72-218.75c48.82 11.39 117.32 27.38 168.47 39.31" fill="none" stroke="#000"/>
   <polygon points="679.17 -177.11 668.64 -175.97 670.23 -182.79" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/oob&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp/oob-&gt;mellium.im/xmpp/stanza</title>
   <path d="m834.08-152.39c106.6 9.9 285.18 27.04 438.57 44.39 11.26 1.27 23.05 2.67 34.76 4.11" fill="none" stroke="#000"/>
   <polygon points="1317.7 -102.63 1307.3 -100.38 1308.2 -107.33" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/mux -->
  <g class="node">
   <title>mellium.im/xmpp/mux</title>
   <ellipse cx="1333.6" cy="-234" rx="114.28" ry="18" fill="none" stroke="#000"/>
   <text x="1333.65" y="-230.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/mux</text>
  </g>
  <!-- mellium.im/xmpp/mux&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/mux-&gt;mellium.im/xmpp</title>
   <path d="m1272.8-218.67c-49.48 11.67-119.2 28.1-170.06 40.08" fill="none" stroke="#000"/>
   <polygon points="1092.9 -176.25 1101.8 -181.95 1103.4 -175.14" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/mux&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp/mux-&gt;mellium.im/xmpp/stanza</title>
   <path d="m1342.4-215.87c12.61 24.52 35.9 69.84 50.7 98.61" fill="none" stroke="#000"/>
   <polygon points="1397.8 -108.19 1390.1 -115.48 1396.4 -118.68" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ping -->
  <g class="node">
   <title>mellium.im/xmpp/ping</title>
   <ellipse cx="945.65" cy="-306" rx="115.08" ry="18" fill="none" stroke="#000"/>
   <text x="945.65002" y="-302.29999" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/ping</text>
  </g>
  <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/ping-&gt;mellium.im/xmpp</title>
   <path d="m926.85-288.17c-18.32 18.49-41.22 48.67-25.2 72.17 12.97 19.03 33.9 31.23 55.46 39.04" fill="none" stroke="#000"/>
   <polygon points="966.69 -173.77 956.1 -173.6 958.31 -180.24" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/ping-&gt;mellium.im/xmpp/jid</title>
   <path d="m832.37-302.7c-243.44 5.48-796.8 21.16-824.72 50.7-10.99 11.63-9.08 22.83 0 36 115.37 167.42 759.6 193.31 1027.3 196.76" fill="none" stroke="#000"/>
   <polygon points="1045.1 -19.11 1035.1 -15.74 1035.1 -22.74" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp/ping-&gt;mellium.im/xmpp/stanza</title>
   <path d="m1036.9-294.94c43.09 7.49 94.08 20.49 135.78 42.94 20.48 11.03 19.66 21.68 38 36 51.74 40.42 116.88 79.95 157.49 103.4" fill="none" stroke="#000"/>
   <polygon points="1376.9 -107.57 1366.5 -109.51 1370 -115.58" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/ping&#45;&gt;mellium.im/xmpp/mux -->
  <g class="edge">
   <title>mellium.im/xmpp/ping-&gt;mellium.im/xmpp/mux</title>
   <path d="m1018.2-291.92c66.27 11.96 164.19 29.63 233.32 42.1" fill="none" stroke="#000"/>
   <polygon points="1261.5 -248.02 1251 -246.35 1252.3 -253.24" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/receipts -->
  <g class="node">
   <title>mellium.im/xmpp/receipts</title>
   <ellipse cx="1278.6" cy="-306" rx="131.88" ry="18" fill="none" stroke="#000"/>
   <text x="1278.65" y="-302.29999" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/receipts</text>
  </g>
  <!-- mellium.im/xmpp/receipts&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/receipts-&gt;mellium.im/xmpp</title>
   <path d="m1171.5-295.47c-95.11 9.56-221.37 25.44-236.83 43.47-10.42 12.14-8.31 22.32 0 36 9.52 15.69 25.37 26.94 41.76 34.93" fill="none" stroke="#000"/>
   <polygon points="985.54 -176.97 974.99 -177.88 977.86 -184.26" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/receipts&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp/receipts-&gt;mellium.im/xmpp/stanza</title>
   <path d="m1356.4-291.33c41.96 9.12 87.67 22.53 100.2 39.33 30.8 41.31-4.42 101.96-29.42 135.8" fill="none" stroke="#000"/>
   <polygon points="1421.1 -108.2 1424.4 -118.28 1430 -114.04" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/receipts&#45;&gt;mellium.im/xmpp/mux -->
  <g class="edge">
   <title>mellium.im/xmpp/receipts-&gt;mellium.im/xmpp/mux</title>
   <path d="m1292-288.05c6.52 8.3 14.51 18.47 21.75 27.67" fill="none" stroke="#000"/>
   <polygon points="1320.1 -252.28 1311.1 -257.98 1316.6 -262.3" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/roster -->
  <g class="node">
   <title>mellium.im/xmpp/roster</title>
   <ellipse cx="1551.6" cy="-306" rx="122.68" ry="18" fill="none" stroke="#000"/>
   <text x="1551.65" y="-302.29999" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/roster</text>
  </g>
  <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/roster-&gt;mellium.im/xmpp</title>
   <path d="m1539-287.88c-16.42 20.86-47.21 55.35-82.39 71.88-55.51 26.07-217.1 40.67-322.9 47.68" fill="none" stroke="#000"/>
   <polygon points="1123.7 -167.66 1133.4 -171.81 1133.9 -164.82" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/roster-&gt;mellium.im/xmpp/jid</title>
   <path d="m1656.6-296.62c101.12 9.17 241.19 25.17 258.01 44.62 10.46 12.1 8.74 22.6 0 36-86.76 133.01-173.87 101.97-327 144-107.45 29.49-234.28 42.58-323.37 48.39" fill="none" stroke="#000"/>
   <polygon points="1254.2 -22.97 1263.9 -27.09 1264.4 -20.11" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp/roster-&gt;mellium.im/xmpp/stanza</title>
   <path d="m1545.2-287.79c-12.12 30.86-40.41 96.77-77.52 143.79-8.51 10.77-19.42 21.06-29.66 29.65" fill="none" stroke="#000"/>
   <polygon points="1430 -107.85 1435.5 -116.87 1440 -111.44" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/roster&#45;&gt;mellium.im/xmpp/mux -->
  <g class="edge">
   <title>mellium.im/xmpp/roster-&gt;mellium.im/xmpp/mux</title>
   <path d="m1503-289.38c-33.03 10.61-76.86 24.68-111.66 35.86" fill="none" stroke="#000"/>
   <polygon points="1381.8 -250.45 1390.2 -256.84 1392.4 -250.18" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/s2s -->
  <g class="node">
   <title>mellium.im/xmpp/s2s</title>
   <ellipse cx="1053.6" cy="-234" rx="110.48" ry="18" fill="none" stroke="#000"/>
   <text x="1053.65" y="-230.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/s2s</text>
  </g>
  <!-- mellium.im/xmpp/s2s&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/s2s-&gt;mellium.im/xmpp</title>
   <path d="m1049.4-215.7c-1.89 7.8-4.17 17.19-6.28 25.87" fill="none" stroke="#000"/>
   <polygon points="1040.8 -180.1 1039.8 -190.65 1046.6 -189" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/uri -->
  <g class="node">
   <title>mellium.im/xmpp/uri</title>
   <ellipse cx="1904.6" cy="-90" rx="107.78" ry="18" fill="none" stroke="#000"/>
   <text x="1904.65" y="-86.300003" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/uri</text>
  </g>
  <!-- mellium.im/xmpp/uri&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/uri-&gt;mellium.im/xmpp/jid</title>
   <path d="m1826.6-77.48c-14.6 1.97-29.74 3.89-43.98 5.48-183.64 20.49-398.13 36.92-523.81 45.79" fill="none" stroke="#000"/>
   <polygon points="1248.8 -25.51 1258.6 -29.7 1259 -22.72" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/websocket -->
  <g class="node">
   <title>mellium.im/xmpp/websocket</title>
   <ellipse cx="1761.6" cy="-234" rx="143.77" ry="18" fill="none" stroke="#000"/>
   <text x="1761.65" y="-230.3" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/websocket</text>
  </g>
  <!-- mellium.im/xmpp/websocket&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/websocket-&gt;mellium.im/xmpp</title>
   <path d="m1657.6-221.59c-17.97 1.91-36.47 3.84-53.9 5.59-167.42 16.83-362.83 34.71-475.02 44.8" fill="none" stroke="#000"/>
   <polygon points="1118.4 -170.28 1128 -174.66 1128.6 -167.69" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/websocket&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/websocket-&gt;mellium.im/xmpp/jid</title>
   <path d="m1744.9-216.08c-34.65 33.81-118.14 109.44-204.23 144.08-87.17 35.07-193.26 47.74-272.62 51.96" fill="none" stroke="#000"/>
   <polygon points="1258 -19.54 1267.8 -23.53 1268.2 -16.54" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/xtime -->
  <g class="node">
   <title>mellium.im/xmpp/xtime</title>
   <ellipse cx="1892.6" cy="-306" rx="120.78" ry="18" fill="none" stroke="#000"/>
   <text x="1892.65" y="-302.29999" font-family="Times, serif" font-size="14px" text-anchor="middle">mellium.im/xmpp/xtime</text>
  </g>
  <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp -->
  <g class="edge">
   <title>mellium.im/xmpp/xtime-&gt;mellium.im/xmpp</title>
   <path d="m1811.6-292.56c-57.12 9.41-135.19 23.61-202.94 40.56-51.55 12.9-62.04 24.9-114 36-123.3 26.35-268.26 40.34-361.54 47.2" fill="none" stroke="#000"/>
   <polygon points="1123.1 -168.08 1132.8 -172.29 1133.3 -165.31" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp/jid -->
  <g class="edge">
   <title>mellium.im/xmpp/xtime-&gt;mellium.im/xmpp/jid</title>
   <path d="m1914.8-288.27c51.75 40.93 171.29 147.74 106.82 216.27-25.49 27.08-524.82 43.82-755.26 50.14" fill="none" stroke="#000"/>
   <polygon points="1256.3 -21.59 1266.2 -25.36 1266.4 -18.36" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp/stanza -->
  <g class="edge">
   <title>mellium.im/xmpp/xtime-&gt;mellium.im/xmpp/stanza</title>
   <path d="m1904.7-287.79c11.96 19.37 26.32 50.87 9.93 71.79-48.6 62.01-264.62 97.38-398.83 113.74" fill="none" stroke="#000"/>
   <polygon points="1505.5 -101.02 1515 -105.69 1515.8 -98.74" stroke="#000"/>
  </g>
  <!-- mellium.im/xmpp/xtime&#45;&gt;mellium.im/xmpp/mux -->
  <g class="edge">
   <title>mellium.im/xmpp/xtime-&gt;mellium.im/xmpp/mux</title>
   <path d="m1803.4-293.83c-101.97 12.77-268.31 33.6-373.27 46.74" fill="none" stroke="#000"/>
   <polygon points="1420.2 -245.84 1429.7 -250.56 1430.6 -243.61" stroke="#000"/>
  </g>
 </g>
 <rect x="-92.494" y="-25.873" width="0" height="130.48" fill="none" stroke="#f00" stroke-width="3.7508"/>
 <text transform="translate(8.1395 22.117)" fill="#000000" font-family="sans-serif" font-size="30.006px" style="line-height:1.25;shape-inside:url(#rect1243);white-space:pre" xml:space="preserve"><tspan x="16.626953" y="25.214646"><tspan>High level (features and XEPs)</tspan></tspan></text>
 <path d="m888.42 215.61h869.74" fill="none" stroke="#00f" stroke-width="3.7508"/>
 <rect x="1229.7" y="177.46" width="431.88" height="31.208" fill="#fff" fill-opacity=".74902"/>
 <text transform="translate(16.349 35.053)" fill="#000000" font-family="sans-serif" font-size="30.006px" style="line-height:1.25;shape-inside:url(#rect1345);white-space:pre" xml:space="preserve"><tspan x="1209.498" y="166.28691"><tspan>Mid Level (core functionality)</tspan></tspan></text>
 <path d="m1.8756 215.61v139.23h2072.3v-53.581" fill="none" stroke="#0f0" stroke-width="3.7508"/>
 <path d="m1.8754 1.8371h2072.3v299.71h-316.38v-144.85h-265.89v-74.636h-293.62v74.636h-309.89v58.924h-886.54c-3.7e-6 -71.259-1.226e-4 -142.52-2.013e-4 -213.78z" fill="none" stroke="#f00" stroke-width="3.7508"/>
 <text transform="translate(2.1382 31.119)" fill="#000000" font-family="sans-serif" font-size="30.006px" style="line-height:1.25;shape-inside:url(#rect1353);white-space:pre" xml:space="preserve"><tspan x="16.835938" y="308.42363"><tspan>Low level (primitives and building blocks)</tspan></tspan></text>
</svg>