ahriman/docs/ahriman-architecture.svg
2021-10-18 03:48:24 +03:00

3870 lines
351 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="8034pt" height="3138pt"
viewBox="0.00 0.00 8034.44 3137.99" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3133.99)">
<title>G</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-3133.99 8030.44,-3133.99 8030.44,4 -4,4"/>
<!-- ahriman_application_ahriman -->
<g id="node1" class="node">
<title>ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#723131" stroke="black" cx="6035.04" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="6035.04" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6035.04" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6035.04" y="-15.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_application_application -->
<g id="node2" class="node">
<title>ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="6001.04" cy="-1049.95" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="6001.04" y="-1058.45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6001.04" y="-1047.45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6001.04" y="-1036.45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_handlers_add -->
<g id="node4" class="node">
<title>ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6442.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6442.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6442.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6442.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6442.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">add</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_add -->
<g id="edge1" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6331.04,-939.41C6351.26,-911.39 6379.24,-884.34 6402.04,-864.38"/>
<polygon fill="#950303" stroke="black" points="6404.59,-866.81 6409.87,-857.62 6400.01,-861.51 6404.59,-866.81"/>
</g>
<!-- ahriman_application_handlers_clean -->
<g id="node5" class="node">
<title>ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5998.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5998.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5998.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5998.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5998.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">clean</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge2" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6000.36,-1020.64C6000.01,-998.94 5999.86,-968.27 6001.04,-941.41"/>
</g>
<!-- ahriman_application_handlers_init -->
<g id="node8" class="node">
<title>ahriman_application_handlers_init</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6109.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6109.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6109.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6109.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6109.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">init</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_init -->
<g id="edge3" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_init</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6047.48,-1046.51C6112.42,-1040.3 6222.47,-1018.43 6222.04,-941.41"/>
<path fill="none" stroke="black" d="M6222.04,-939.41C6221.92,-919.28 6183.81,-886.25 6151.88,-862.1"/>
<polygon fill="#950303" stroke="black" points="6153.61,-859.02 6143.5,-855.85 6149.43,-864.63 6153.61,-859.02"/>
</g>
<!-- ahriman_application_handlers_key_import -->
<g id="node9" class="node">
<title>ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6553.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6553.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6553.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6553.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6553.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">key_import</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge4" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6047.34,-1045.25C6115.11,-1038.52 6244.22,-1020.73 6345.04,-977.18 6409.78,-949.22 6474.9,-899.39 6514.6,-865.99"/>
<polygon fill="#950303" stroke="black" points="6517.33,-868.27 6522.68,-859.13 6512.79,-862.94 6517.33,-868.27"/>
</g>
<!-- ahriman_application_handlers_patch -->
<g id="node10" class="node">
<title>ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="6814.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6814.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6814.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6814.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6814.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge5" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6047.89,-1049.56C6189.39,-1050.59 6609.64,-1047.52 6723.04,-977.18 6760.1,-954.19 6784.55,-909.91 6798.68,-876.25"/>
<polygon fill="#950303" stroke="black" points="6802.07,-877.2 6802.57,-866.62 6795.58,-874.58 6802.07,-877.2"/>
</g>
<!-- ahriman_application_handlers_rebuild -->
<g id="node11" class="node">
<title>ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5887.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5887.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5887.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5887.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5887.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rebuild</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge6" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5986.85,-1021.99C5976.85,-1000.76 5964.91,-970.06 5963.04,-941.41"/>
</g>
<!-- ahriman_application_handlers_remove -->
<g id="node12" class="node">
<title>ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6664.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6664.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6664.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6664.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6664.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge7" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6047.61,-1046.19C6125.97,-1040.39 6288.22,-1023.43 6417.04,-977.18 6494.78,-949.27 6575.58,-896.44 6622.77,-862.76"/>
<polygon fill="#950303" stroke="black" points="6624.82,-865.59 6630.89,-856.91 6620.73,-859.91 6624.82,-865.59"/>
</g>
<!-- ahriman_application_handlers_remove_unknown -->
<g id="node13" class="node">
<title>ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5385.04" cy="-830.87" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="5385.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5385.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5385.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5385.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove_unknown</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge8" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5963.08,-1033.03C5944.9,-1025.98 5922.64,-1018.17 5902.04,-1013.18 5780.08,-983.69 5740.37,-1018.9 5622.04,-977.18 5549.62,-951.65 5475.68,-901.73 5430.07,-867.6"/>
<polygon fill="#950303" stroke="black" points="5431.98,-864.65 5421.9,-861.42 5427.76,-870.24 5431.98,-864.65"/>
</g>
<!-- ahriman_application_handlers_report -->
<g id="node14" class="node">
<title>ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5015.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5015.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5015.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5015.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5015.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_report -->
<g id="edge9" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5954.45,-1047.7C5780.59,-1042.68 5175.86,-1022.13 5103.04,-977.18 5066.26,-954.48 5042.75,-910.16 5029.37,-876.41"/>
<polygon fill="#950303" stroke="black" points="5032.53,-874.86 5025.71,-866.75 5025.99,-877.34 5032.53,-874.86"/>
</g>
<!-- ahriman_application_handlers_setup -->
<g id="node16" class="node">
<title>ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="3576.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3576.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3576.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3576.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3576.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">setup</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge10" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5954.45,-1045.88C5815.32,-1036.63 5390.67,-1007.76 5039.04,-977.18 4490.07,-929.45 3826.56,-858.89 3632.1,-837.94"/>
<polygon fill="#950303" stroke="black" points="3632.44,-834.46 3622.12,-836.87 3631.69,-841.42 3632.44,-834.46"/>
</g>
<!-- ahriman_application_handlers_sign -->
<g id="node17" class="node">
<title>ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5737.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5737.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5737.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5737.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5737.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge11" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5982,-1023.47C5957.93,-992.45 5914.04,-939.75 5868.04,-903.64 5843.05,-884.04 5812,-866.77 5786.39,-854.08"/>
<polygon fill="#950303" stroke="black" points="5787.75,-850.85 5777.23,-849.62 5784.69,-857.14 5787.75,-850.85"/>
</g>
<!-- ahriman_application_handlers_status -->
<g id="node18" class="node">
<title>ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="6331.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6331.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6331.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6331.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6331.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_status -->
<g id="edge12" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6331.04,-939.41C6343.81,-921.72 6344.92,-897.77 6342.35,-876.96"/>
<polygon fill="#950303" stroke="black" points="6345.81,-876.39 6340.83,-867.04 6338.89,-877.45 6345.81,-876.39"/>
</g>
<!-- ahriman_application_handlers_status_update -->
<g id="node19" class="node">
<title>ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5135.04" cy="-830.87" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="5135.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5135.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5135.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5135.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_update</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge13" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5963.72,-1032.46C5945.49,-1025.19 5923.01,-1017.36 5902.04,-1013.18 5817.16,-996.29 5183.8,-1039.77 5124.04,-977.18 5098.94,-950.9 5105.47,-908.36 5116.04,-876.09"/>
<polygon fill="#950303" stroke="black" points="5119.42,-877.03 5119.42,-866.43 5112.81,-874.71 5119.42,-877.03"/>
</g>
<!-- ahriman_application_handlers_sync -->
<g id="node20" class="node">
<title>ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6220.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6220.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6220.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6220.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6220.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sync</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge14" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6047.75,-1049.59C6122.13,-1047.76 6265.71,-1031.93 6331.04,-941.41"/>
<path fill="none" stroke="black" d="M6331.04,-939.41C6343.21,-922.54 6299.91,-886.65 6263.87,-860.98"/>
<polygon fill="#950303" stroke="black" points="6265.57,-857.89 6255.38,-855.01 6261.55,-863.62 6265.57,-857.89"/>
</g>
<!-- ahriman_application_handlers_update -->
<g id="node21" class="node">
<title>ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5515.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5515.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5515.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5515.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5515.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_update -->
<g id="edge15" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5961.85,-1033.72C5943.79,-1026.98 5921.97,-1019.22 5902.04,-1013.18 5838.08,-993.8 5817.93,-1002.41 5756.04,-977.18 5667.19,-940.98 5651.6,-918.15 5570.04,-867.64 5566.44,-865.42 5562.73,-863.08 5559.02,-860.72"/>
<polygon fill="#950303" stroke="black" points="5560.7,-857.64 5550.39,-855.2 5556.92,-863.54 5560.7,-857.64"/>
</g>
<!-- ahriman_application_handlers_user -->
<g id="node22" class="node">
<title>ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="5255.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5255.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5255.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5255.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5255.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_user -->
<g id="edge16" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5963.72,-1032.47C5945.49,-1025.2 5923,-1017.37 5902.04,-1013.18 5819.13,-996.63 5200.38,-1038.36 5142.04,-977.18 5119.48,-953.53 5126.26,-932.27 5142.04,-903.64 5156.5,-877.4 5173.74,-883.71 5199.04,-867.64 5202.81,-865.25 5206.72,-862.76 5210.65,-860.26"/>
<polygon fill="#950303" stroke="black" points="5212.66,-863.13 5219.21,-854.8 5208.89,-857.23 5212.66,-863.13"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node3" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="6035.04" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="6035.04" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6035.04" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6035.04" y="-109.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers</text>
</g>
<!-- ahriman_application_handlers&#45;&gt;ahriman_application_ahriman -->
<g id="edge17" class="edge">
<title>ahriman_application_handlers&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6035.04,-93.88C6035.04,-85.84 6035.04,-76.94 6035.04,-68.39"/>
<polygon fill="#950303" stroke="black" points="6038.54,-68.23 6035.04,-58.23 6031.54,-68.23 6038.54,-68.23"/>
</g>
<!-- ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers -->
<g id="edge18" class="edge">
<title>ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6408.1,-805.35C6401.34,-801.18 6394.14,-797.2 6387.04,-794.1 6311.69,-761.21 6209.29,-796.06 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers -->
<g id="edge19" class="edge">
<title>ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6032.82,-806.27C6039.44,-802.06 6046.38,-797.83 6053.04,-794.1 6124.76,-753.93 6205.16,-795.41 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_dump -->
<g id="node6" class="node">
<title>ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="6925.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6925.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6925.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6925.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6925.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">dump</text>
</g>
<!-- ahriman_application_handlers_dump&#45;&gt;ahriman_application_handlers -->
<g id="edge20" class="edge">
<title>ahriman_application_handlers_dump&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6890.52,-805.76C6883.88,-801.6 6876.86,-797.52 6870.04,-794.1 6643.12,-680.46 6334.04,-851.02 6334.04,-597.24 6334.04,-597.24 6334.04,-597.24 6334.04,-493.48 6334.04,-400.47 6298.42,-382.29 6258.04,-298.5"/>
</g>
<!-- ahriman_application_handlers_handler -->
<g id="node7" class="node">
<title>ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b30404" stroke="black" cx="5812.04" cy="-940.41" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5812.04" y="-954.41" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5812.04" y="-943.41" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5812.04" y="-932.41" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5812.04" y="-921.41" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handler</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers -->
<g id="edge21" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5812.04,-829.87C5821.17,-814.36 5816.62,-804.89 5831.04,-794.1 5972.36,-688.42 6196.98,-889.51 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_add -->
<g id="edge22" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.57,-936.31C5977.45,-927.95 6289.83,-903.17 6387.04,-867.64 6391.3,-866.08 6395.58,-864.14 6399.75,-861.97"/>
<polygon fill="#b30404" stroke="black" points="6401.7,-864.89 6408.69,-856.93 6398.26,-858.8 6401.7,-864.89"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge23" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5850.59,-919.28C5876.91,-905.29 5912.43,-885.94 5943.04,-867.64 5946.67,-865.47 5950.4,-863.18 5954.13,-860.85"/>
<polygon fill="#b30404" stroke="black" points="5956.21,-863.67 5962.78,-855.36 5952.46,-857.76 5956.21,-863.67"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge24" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.68,-936.02C5947.75,-929.56 6148.23,-915.12 6317.04,-903.64 6439.9,-895.29 6753.17,-906.48 6870.04,-867.64 6874.53,-866.15 6879.01,-864.2 6883.37,-861.98"/>
<polygon fill="#b30404" stroke="black" points="6885.08,-865.03 6892.11,-857.1 6881.67,-858.92 6885.08,-865.03"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_init -->
<g id="edge25" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_init</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5857.15,-930.14C5906.83,-919 5988.39,-897.95 6054.04,-867.64 6058.1,-865.77 6062.22,-863.62 6066.27,-861.34"/>
<polygon fill="#b30404" stroke="black" points="6068.18,-864.27 6074.99,-856.16 6064.61,-858.25 6068.18,-864.27"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge26" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.56,-937.38C5992.91,-931.08 6379.38,-909.68 6498.04,-867.64 6502.5,-866.06 6506.96,-864.05 6511.31,-861.79"/>
<polygon fill="#b30404" stroke="black" points="6513.04,-864.83 6520.03,-856.87 6509.6,-858.74 6513.04,-864.83"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge27" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.64,-936.1C6038.25,-923.28 6677.63,-877.18 6720.04,-867.64 6734.85,-864.31 6750.44,-859.12 6764.57,-853.71"/>
<polygon fill="#b30404" stroke="black" points="6766.08,-856.88 6774.1,-849.95 6763.51,-850.37 6766.08,-856.88"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge28" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5834.13,-907.73C5841.99,-896.46 5850.94,-883.63 5859.22,-871.76"/>
<polygon fill="#b30404" stroke="black" points="5862.25,-873.54 5865.1,-863.33 5856.51,-869.53 5862.25,-873.54"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge29" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.58,-936.54C6018.29,-926.48 6538.06,-892.21 6609.04,-867.64 6613.51,-866.1 6617.98,-864.11 6622.33,-861.86"/>
<polygon fill="#b30404" stroke="black" points="6624.06,-864.91 6631.06,-856.95 6620.63,-858.81 6624.06,-864.91"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge30" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5765.95,-933.79C5697.61,-924.61 5565.99,-903.73 5459.04,-867.64 5453.09,-865.64 5447.01,-863.27 5441,-860.71"/>
<polygon fill="#b30404" stroke="black" points="5442.23,-857.43 5431.67,-856.58 5439.4,-863.83 5442.23,-857.43"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_report -->
<g id="edge31" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5765.37,-937.74C5623.72,-932.23 5200.54,-912.36 5071.04,-867.64 5066.44,-866.06 5061.84,-864.02 5057.36,-861.73"/>
<polygon fill="#b30404" stroke="black" points="5058.81,-858.53 5048.37,-856.73 5055.41,-864.65 5058.81,-858.53"/>
</g>
<!-- ahriman_application_handlers_search -->
<g id="node15" class="node">
<title>ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5626.04" cy="-830.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5626.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5626.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5626.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5626.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_search -->
<g id="edge32" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5773.49,-919.28C5747.16,-905.29 5711.64,-885.94 5681.04,-867.64 5677.41,-865.47 5673.67,-863.18 5669.94,-860.85"/>
<polygon fill="#b30404" stroke="black" points="5671.61,-857.76 5661.29,-855.36 5667.86,-863.67 5671.61,-857.76"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge33" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5765.33,-937.17C5477.76,-923.34 3949.29,-849.83 3633.25,-834.63"/>
<polygon fill="#b30404" stroke="black" points="3633.11,-831.12 3622.95,-834.13 3632.77,-838.11 3633.11,-831.12"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge34" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5789.94,-907.73C5782.08,-896.46 5773.13,-883.63 5764.86,-871.76"/>
<polygon fill="#b30404" stroke="black" points="5767.57,-869.53 5758.98,-863.33 5761.83,-873.54 5767.57,-869.53"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status -->
<g id="edge35" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.8,-938.62C5944.38,-935.79 6130.8,-923.15 6276.04,-867.64 6280.28,-866.02 6284.54,-864.04 6288.7,-861.84"/>
<polygon fill="#b30404" stroke="black" points="6290.67,-864.75 6297.62,-856.76 6287.2,-858.67 6290.67,-864.75"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge36" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5765.36,-940.09C5661.08,-940.29 5402.41,-933.49 5199.04,-867.64 5193.81,-865.95 5188.54,-863.82 5183.37,-861.43"/>
<polygon fill="#b30404" stroke="black" points="5184.74,-858.21 5174.22,-856.92 5181.64,-864.48 5184.74,-858.21"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge37" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5858.49,-935.56C5927.56,-928.6 6060.43,-910.47 6165.04,-867.64 6169.24,-865.92 6173.47,-863.87 6177.62,-861.63"/>
<polygon fill="#b30404" stroke="black" points="6179.61,-864.52 6186.51,-856.48 6176.1,-858.46 6179.61,-864.52"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_update -->
<g id="edge38" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5768.4,-927.21C5703.76,-909.02 5588.21,-876.03 5570.04,-867.64 5565.97,-865.77 5561.86,-863.62 5557.81,-861.34"/>
<polygon fill="#b30404" stroke="black" points="5559.46,-858.25 5549.08,-856.16 5555.89,-864.27 5559.46,-858.25"/>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_user -->
<g id="edge39" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5765.18,-939.24C5674.57,-937.5 5470.23,-926.72 5311.04,-867.64 5306.54,-865.98 5302.03,-863.91 5297.63,-861.61"/>
<polygon fill="#b30404" stroke="black" points="5299.21,-858.48 5288.78,-856.63 5295.78,-864.59 5299.21,-858.48"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node23" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5812.04" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5812.04" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5812.04" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5812.04" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="5812.04" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_web -->
<g id="edge40" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5803.5,-904.18C5800.1,-881.98 5799.51,-853.53 5812.04,-831.87"/>
<path fill="none" stroke="black" d="M5812.04,-829.87C5863.81,-740.38 5812.04,-700.63 5812.04,-597.24 5812.04,-597.24 5812.04,-597.24 5812.04,-334.5 5812.04,-314.02 5812.04,-291.36 5812.04,-272.05"/>
<polygon fill="#b30404" stroke="black" points="5815.54,-271.99 5812.04,-261.99 5808.54,-271.99 5815.54,-271.99"/>
</g>
<!-- ahriman_application_handlers_init&#45;&gt;ahriman_application_handlers -->
<g id="edge41" class="edge">
<title>ahriman_application_handlers_init&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6141.01,-803.85C6172.33,-777.24 6215.95,-736.76 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers -->
<g id="edge42" class="edge">
<title>ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6519.65,-804.92C6512.78,-800.73 6505.4,-796.86 6498.04,-794.1 6377.7,-748.99 6203.24,-841.97 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers -->
<g id="edge43" class="edge">
<title>ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6779.49,-806.05C6771.16,-801.33 6762.05,-796.96 6753.04,-794.1 6660.99,-764.96 6390.5,-824.12 6320.04,-758.1 6267.28,-708.68 6296.04,-669.53 6296.04,-597.24 6296.04,-597.24 6296.04,-597.24 6296.04,-493.48 6296.04,-454.52 6200.15,-369 6220.04,-335.5"/>
</g>
<!-- ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers -->
<g id="edge44" class="edge">
<title>ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5921.05,-805.53C5927.8,-801.35 5934.99,-797.32 5942.04,-794.1 6058.98,-740.8 6196.77,-840.95 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers -->
<g id="edge45" class="edge">
<title>ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6631.04,-804.85C6624.08,-800.62 6616.56,-796.74 6609.04,-794.1 6532.13,-767.12 6312.09,-802.96 6244.04,-758.1 6225.58,-745.94 6217.15,-736.47 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers -->
<g id="edge46" class="edge">
<title>ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5425.01,-801.78C5453.1,-780.43 5489.99,-748.94 5515.04,-714.56"/>
<path fill="none" stroke="black" d="M5515.04,-712.56C5724.26,-425.35 5927.46,-537.15 6220.04,-335.5"/>
<path fill="none" stroke="black" d="M6220.04,-334.5C6231.91,-314.5 6268.14,-319.46 6258.04,-298.5"/>
<path fill="none" stroke="black" d="M6258.04,-297.5C6235.52,-250.79 6159.4,-277.17 6166.04,-225.74"/>
</g>
<!-- ahriman_application_handlers_report&#45;&gt;ahriman_application_handlers -->
<g id="edge47" class="edge">
<title>ahriman_application_handlers_report&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5036.75,-798.32C5058.07,-770.37 5093.41,-731.46 5135.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge48" class="edge">
<title>ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5661.31,-806.41C5667.82,-802.23 5674.59,-797.98 5681.04,-794.1 5915.75,-653 6070.8,-725.11 6220.04,-495.48"/>
<path fill="none" stroke="black" d="M6220.04,-493.48C6236.47,-425.22 6162.51,-375.75 6220.04,-335.5"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge49" class="edge">
<title>ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3622.78,-830.24C3851.21,-831.47 4850.56,-830.03 5135.04,-714.56"/>
<path fill="none" stroke="black" d="M5135.04,-712.56C5193.73,-688.73 6157.93,-288.56 6166.04,-225.74"/>
<path fill="none" stroke="black" d="M6166.04,-223.74C6150.2,-187.4 6113.09,-161.16 6082.4,-144.74"/>
<polygon fill="#822b2b" stroke="black" points="6083.6,-141.42 6073.11,-139.95 6080.4,-147.64 6083.6,-141.42"/>
</g>
<!-- ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers -->
<g id="edge50" class="edge">
<title>ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5772.14,-806.54C5780.37,-801.86 5789.3,-797.38 5798.04,-794.1 5887.4,-760.64 6202.76,-808.41 6220.04,-714.56"/>
<path fill="none" stroke="black" d="M6220.04,-712.56C6237.5,-617.67 6167.86,-576.63 6220.04,-495.48"/>
</g>
<!-- ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers -->
<g id="edge51" class="edge">
<title>ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6296.16,-805.94C6279.09,-793.09 6259.04,-776.19 6244.04,-758.1 6229.93,-741.09 6216.04,-736.29 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers -->
<g id="edge52" class="edge">
<title>ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5121.43,-795.06C5112.27,-765.53 5106.47,-726.15 5135.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_sync&#45;&gt;ahriman_application_handlers -->
<g id="edge53" class="edge">
<title>ahriman_application_handlers_sync&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6216.71,-793.99C6215.41,-771.07 6215.2,-740.84 6220.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers -->
<g id="edge54" class="edge">
<title>ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5504.97,-794.78C5500.1,-770.04 5498.42,-737.37 5515.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_user&#45;&gt;ahriman_application_handlers -->
<g id="edge55" class="edge">
<title>ahriman_application_handlers_user&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5220.3,-805.93C5177.03,-775.04 5111.48,-724.12 5135.04,-714.56"/>
</g>
<!-- ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers -->
<g id="edge56" class="edge">
<title>ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5852.16,-205.78C5890.47,-188.65 5948.17,-162.83 5988.49,-144.8"/>
<polygon fill="#822b2b" stroke="black" points="5990.13,-147.9 5997.83,-140.62 5987.27,-141.51 5990.13,-147.9"/>
</g>
<!-- ahriman_application_lock -->
<g id="node24" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="5487.04" cy="-1525.11" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="5487.04" y="-1533.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5487.04" y="-1522.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="5487.04" y="-1511.61" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">lock</text>
</g>
<!-- ahriman_application_lock&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge57" class="edge">
<title>ahriman_application_lock&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5477.83,-1496.27C5471.79,-1472.18 5468.08,-1437.94 5487.04,-1416.57"/>
</g>
<!-- ahriman_core -->
<g id="node25" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="5167.04" cy="-2550.5" rx="42.94" ry="18"/>
<text text-anchor="middle" x="5167.04" y="-2548" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application -->
<g id="edge58" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5612.04,-2455.51C5625.73,-2453.07 5614.46,-2435.24 5626.04,-2427.52 5722.98,-2362.91 6034.89,-2414.81 6149.04,-2391.52 6273.95,-2366.04 6310.48,-2362.73 6420.04,-2297.54 6473.29,-2265.85 6497.78,-2260.15 6523.04,-2203.56 6532.38,-2182.64 6527.74,-1401.6 6530.04,-1378.8 6533.3,-1346.47 6546.18,-1339.46 6544.04,-1307.03"/>
<path fill="none" stroke="black" d="M6544.04,-1305.03C6538.85,-1272.56 6533.91,-1265.19 6526.04,-1233.26"/>
<path fill="none" stroke="black" d="M6526.04,-1232.26C6518.4,-1201.29 6551.68,-1179.47 6526.04,-1160.49"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge59" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7150.04,-2267.55C7185,-2173.96 7264.04,-2173.71 7264.04,-2073.8 7264.04,-2073.8 7264.04,-2073.8 7264.04,-1962.27 7264.04,-1853.1 7074.52,-1101.27 7010.04,-1013.18 6962.95,-948.87 6942.15,-932.98 6868.04,-903.64 6714,-842.67 6653.4,-922.37 6497.04,-867.64 6492.57,-866.08 6488.1,-864.08 6483.75,-861.83"/>
<polygon fill="#f91010" stroke="black" points="6485.46,-858.77 6475.03,-856.91 6482.02,-864.87 6485.46,-858.77"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge60" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5208.84,-2545.83C5312.04,-2536.67 5587.12,-2511.66 5816.04,-2485.5 6014.63,-2462.81 6062.91,-2444.96 6262.04,-2427.52 6305.97,-2423.68 7024.57,-2423.41 7055.04,-2391.52 7096.9,-2347.72 7047.42,-2283.97 6994.04,-2145.57 6917.19,-1946.37 6894.79,-1897.24 6797.04,-1707.42 6762.74,-1640.82 6744.68,-1629.3 6712.04,-1561.88 6689.2,-1514.71 6581.67,-1154.55 6540.04,-1122.72 6481.08,-1077.65 6277.49,-1112.87 6208.04,-1086.72 6155.44,-1066.92 5998.57,-997.56 6001.04,-941.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge61" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5209.06,-2546.69C5291.11,-2541.29 5478.39,-2529.27 5636.04,-2521.5 6047.85,-2501.22 6152.32,-2521.68 6563.04,-2485.5 6751.19,-2468.94 6796.7,-2451.62 6984.04,-2427.52 7117.67,-2410.33 7155.49,-2428.52 7285.04,-2391.52 7478.05,-2336.4 7606.04,-2274.54 7606.04,-2073.8 7606.04,-2073.8 7606.04,-2073.8 7606.04,-1962.27 7606.04,-1779.97 7674.31,-1742.99 7695.04,-1561.88 7700.57,-1513.51 7695.81,-1501.02 7696.04,-1452.34 7696.41,-1370.97 7711.63,-1349.12 7696.04,-1269.26 7662.3,-1096.54 7685.54,-1008.26 7544.04,-903.64 7455.76,-838.38 7118.37,-831.49 6982.37,-831.44"/>
<polygon fill="#f91010" stroke="black" points="6982.15,-827.94 6972.16,-831.44 6982.16,-834.94 6982.15,-827.94"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge62" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5270.04,-2071.8C5284.67,-1984.95 5323.41,-1974.45 5350.04,-1890.5 5405.16,-1716.7 5354.92,-1654.02 5431.04,-1488.34 5447.93,-1451.58 5460.19,-1446.84 5487.04,-1416.57"/>
<path fill="none" stroke="black" d="M5487.04,-1414.57C5560.07,-1330.14 5670.4,-1409.79 5714.04,-1307.03"/>
<path fill="none" stroke="black" d="M5714.04,-1305.03C5765.36,-1184.17 5709.91,-1134.55 5760.04,-1013.18 5764.95,-1001.29 5772.2,-989.5 5779.74,-979.03"/>
<polygon fill="#f91010" stroke="black" points="5782.62,-981.03 5785.81,-970.93 5777.01,-976.83 5782.62,-981.03"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_init -->
<g id="edge63" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_init</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5209.32,-2547.17C5362.31,-2538.63 5886.69,-2508.34 6053.04,-2485.5 6181.1,-2467.93 6209.78,-2443.6 6338.04,-2427.52 6419.5,-2417.31 7005.5,-2433.53 7076.04,-2391.52 7103.28,-2375.3 7141.91,-2300.19 7150.04,-2269.55"/>
<path fill="none" stroke="black" d="M7150.04,-2267.55C7166.7,-2217.2 7100.33,-2221.62 7074.04,-2175.57"/>
<path fill="none" stroke="black" d="M7074.04,-2173.57C7024.98,-2087.62 6998.04,-2063.23 6998.04,-1964.27 6998.04,-1964.27 6998.04,-1964.27 6998.04,-1852.73 6998.04,-1754.09 6921.99,-1755.27 6870.04,-1671.42 6833.55,-1612.53 6623.48,-1171.23 6574.04,-1122.72 6448.42,-999.48 6223.02,-1117.39 6222.04,-941.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge64" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5209.27,-2546.98C5402.86,-2535.44 6196.56,-2488.01 6209.04,-2485.5 6286.07,-2470.07 6298.9,-2442.48 6376.04,-2427.52 6456.42,-2411.94 7041.45,-2433.02 7112.04,-2391.52 7370.15,-2239.78 7302.04,-2044.6 7302.04,-1745.19 7302.04,-1745.19 7302.04,-1745.19 7302.04,-1524.11 7302.04,-1393.74 7264.04,-1363.63 7264.04,-1233.26 7264.04,-1233.26 7264.04,-1233.26 7264.04,-1048.95 7264.04,-746.47 6892.94,-969.27 6608.04,-867.64 6603.76,-866.12 6599.48,-864.2 6595.3,-862.05"/>
<polygon fill="#f91010" stroke="black" points="6596.79,-858.87 6586.35,-857.02 6593.36,-864.97 6596.79,-858.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge65" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5209.38,-2546.75C5291.61,-2541.47 5478.62,-2529.68 5636.04,-2521.5 5997.68,-2502.72 6092.76,-2544.58 6450.04,-2485.5 6540.93,-2470.48 6558.28,-2443.35 6649.04,-2427.52 6776.47,-2405.29 7110.01,-2439.77 7230.04,-2391.52 7290.01,-2367.41 7302.44,-2349.4 7341.04,-2297.54 7415.75,-2197.15 7492.04,-1966.57 7492.04,-1854.73 7492.04,-1854.73 7492.04,-1854.73 7492.04,-1743.19 7492.04,-1597.04 7454.04,-1562.71 7454.04,-1416.57 7454.04,-1416.57 7454.04,-1416.57 7454.04,-1158.49 7454.04,-1056.27 7591.57,-1023.04 7530.04,-941.41"/>
<path fill="none" stroke="black" d="M7530.04,-939.41C7516.79,-925.59 7522.67,-913.13 7506.04,-903.64 7382.87,-833.42 7003.77,-911.78 6869.04,-867.64 6864.54,-866.17 6860.05,-864.23 6855.69,-862.02"/>
<polygon fill="#f91010" stroke="black" points="6857.39,-858.96 6846.95,-857.15 6853.98,-865.08 6857.39,-858.96"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge66" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5205.33,-2542.32C5306.64,-2520.9 5574.04,-2447.5 5574.04,-2269.55 5574.04,-2269.55 5574.04,-2269.55 5574.04,-2071.8 5574.04,-1948.44 5632.15,-1928.88 5684.04,-1816.96 5721.88,-1735.34 5774.04,-1725.61 5774.04,-1635.65 5774.04,-1635.65 5774.04,-1635.65 5774.04,-1158.49 5774.04,-1093.03 5759.49,-1066.08 5798.04,-1013.18 5818.64,-984.91 5847.91,-1005.8 5868.04,-977.18 5888.22,-948.48 5892.17,-908.53 5891.52,-877.79"/>
<polygon fill="#f91010" stroke="black" points="5895.02,-877.6 5891.14,-867.74 5888.02,-877.87 5895.02,-877.6"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge67" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5209.39,-2546.88C5291.63,-2541.83 5478.66,-2530.43 5636.04,-2521.5 5933.77,-2504.62 6010.61,-2526.1 6306.04,-2485.5 6423.33,-2469.39 6448.8,-2444.01 6566.04,-2427.52 6698.09,-2408.95 7042.99,-2445.27 7165.04,-2391.52 7320.62,-2323.01 7378.04,-2243.81 7378.04,-2073.8 7378.04,-2073.8 7378.04,-2073.8 7378.04,-1633.65 7378.04,-1422.68 7340.04,-1371.46 7340.04,-1160.49 7340.04,-1160.49 7340.04,-1160.49 7340.04,-1048.95 7340.04,-970.3 7307.33,-942.66 7239.04,-903.64 7145.97,-850.47 6862.66,-890.95 6758.04,-867.64 6743.22,-864.34 6727.63,-859.16 6713.49,-853.75"/>
<polygon fill="#f91010" stroke="black" points="6714.55,-850.41 6703.97,-849.99 6711.98,-856.92 6714.55,-850.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge68" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5118.04,-2071.8C5124.46,-2041.05 5135.1,-964.84 5156.04,-941.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_report -->
<g id="edge69" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4181.04,-2455.51C4178.87,-2454.87 4220.76,-2299.79 4221.04,-2297.54 4224.22,-2271.97 4230.46,-2263.54 4221.04,-2239.56 4145.59,-2047.45 4058.84,-2026.04 3878.04,-1926.5 3841.02,-1906.11 3815.77,-1924.01 3790.04,-1890.5 3740.34,-1825.77 3774.55,-1789.01 3776.04,-1707.42 3777.81,-1610 3766.58,-1584.2 3784.04,-1488.34 3811.57,-1337.13 3894.04,-1314.18 3894.04,-1160.49 3894.04,-1160.49 3894.04,-1160.49 3894.04,-1048.95 3894.04,-834.55 4144.21,-947.72 4354.04,-903.64 4574.5,-857.33 4842.97,-839.92 4958.13,-834.26"/>
<polygon fill="#f91010" stroke="black" points="4958.64,-837.74 4968.46,-833.76 4958.31,-830.75 4958.64,-837.74"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge70" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5167.04,-2361.53C5161.98,-2262.98 5218.96,-2017.94 5256.04,-1926.5 5263.17,-1908.9 5273.07,-1908.52 5279.04,-1890.5 5330.17,-1736.11 5331.04,-1323.13 5331.04,-1160.49 5331.04,-1160.49 5331.04,-1160.49 5331.04,-1048.95 5331.04,-978.74 5338.6,-947.99 5393.04,-903.64 5455.62,-852.67 5496.33,-898.19 5571.04,-867.64 5575.24,-865.92 5579.47,-863.87 5583.62,-861.63"/>
<polygon fill="#f91010" stroke="black" points="5585.61,-864.52 5592.51,-856.49 5582.11,-858.46 5585.61,-864.52"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge71" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4181.04,-2455.51C4168.71,-2452.24 4003.58,-2044.51 3994.04,-2036.03 3953.67,-2000.19 3924.76,-2027.07 3878.04,-2000.03 3816.1,-1964.2 3796.7,-1951.95 3760.04,-1890.5 3700.08,-1790.02 3694.04,-1752.65 3694.04,-1635.65 3694.04,-1635.65 3694.04,-1635.65 3694.04,-1414.57 3694.04,-1197.84 3532.01,-1153.63 3576.04,-941.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge72" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5167.04,-2361.53C5165.2,-2314.33 5264.16,-2222.44 5270.04,-2175.57"/>
<path fill="none" stroke="black" d="M5270.04,-2173.57C5289.23,-2133.6 5265.55,-2117.92 5270.04,-2073.8"/>
<path fill="none" stroke="black" d="M5270.04,-2071.8C5276.64,-2006.89 5276.79,-1990.18 5291.04,-1926.5 5294.69,-1910.17 5297.98,-1906.73 5302.04,-1890.5 5342.13,-1730.13 5445.04,-1325.8 5445.04,-1160.49 5445.04,-1160.49 5445.04,-1160.49 5445.04,-1048.95 5445.04,-1029.81 5455.53,-1026.75 5469.04,-1013.18 5478.39,-1003.79 5619.75,-909.61 5693.29,-860.83"/>
<polygon fill="#f91010" stroke="black" points="5695.51,-863.56 5701.91,-855.12 5691.64,-857.73 5695.51,-863.56"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge73" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7150.04,-2267.55C7213,-2077.34 7158.1,-2016.1 7136.04,-1816.96 7121.5,-1685.68 7036.54,-1364.74 7024.04,-1233.26 7020.93,-1200.63 7034.03,-1193.21 7036.04,-1160.49"/>
<path fill="none" stroke="black" d="M7036.04,-1158.49C7015.39,-999.91 6926.8,-971.59 6782.04,-903.64 6622.06,-828.55 6553.02,-925.52 6386.04,-867.64 6381.56,-866.09 6377.09,-864.1 6372.74,-861.86"/>
<polygon fill="#f91010" stroke="black" points="6374.45,-858.8 6364.02,-856.95 6371.02,-864.9 6374.45,-858.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge74" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4946.04,-2455.51C4819.09,-2356.38 4875.16,-2266.31 4838.04,-2109.57 4807.66,-1981.33 4826.47,-1943.61 4790.04,-1816.96 4724.65,-1589.64 4365.44,-943.37 4368.04,-941.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge75" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7074.04,-2173.57C7031.94,-2090.62 7074.04,-2057.29 7074.04,-1964.27 7074.04,-1964.27 7074.04,-1964.27 7074.04,-1852.73 7074.04,-1756.74 6675.62,-1194.64 6612.04,-1122.72 6510.37,-1007.72 6473.34,-987.9 6345.04,-903.64 6315.79,-884.44 6305.3,-885.2 6275.04,-867.64 6271.22,-865.43 6267.3,-863.07 6263.39,-860.65"/>
<polygon fill="#f91010" stroke="black" points="6265.24,-857.68 6254.91,-855.31 6261.51,-863.6 6265.24,-857.68"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge76" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5024.04,-2267.55C4994.49,-2221.32 5014.11,-2192.19 5043.04,-2145.57 5057.66,-2122 5074.65,-2129.42 5094.04,-2109.57 5107.41,-2095.88 5113.97,-2092.51 5118.04,-2073.8"/>
<path fill="none" stroke="black" d="M5118.04,-2071.8C5171.21,-1813.9 5132.83,-1091.83 5317.04,-903.64 5362.58,-857.12 5399.28,-893.5 5459.04,-867.64 5463.37,-865.77 5467.76,-863.57 5472.06,-861.22"/>
<polygon fill="#f91010" stroke="black" points="5473.84,-864.23 5480.74,-856.19 5470.34,-858.17 5473.84,-864.23"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_user -->
<g id="edge77" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5163.69,-2532.3C5160.76,-2513.38 5158.21,-2482.34 5167.04,-2457.51"/>
<path fill="none" stroke="black" d="M5167.04,-2455.51C5180.73,-2416.99 5169.13,-2404.36 5167.04,-2363.53"/>
<path fill="none" stroke="black" d="M5167.04,-2361.53C5164.04,-2303.12 5098.72,-2332.77 5052.04,-2297.54 5037.99,-2286.94 5036.25,-2282.21 5024.04,-2269.55"/>
<path fill="none" stroke="black" d="M5024.04,-2267.55C5007.69,-2250.6 4928.04,-1878.27 4928.04,-1854.73 4928.04,-1854.73 4928.04,-1854.73 4928.04,-1633.65 4928.04,-1354.6 4939.07,-1278.97 5024.04,-1013.18 5040.63,-961.29 5037.32,-938.67 5079.04,-903.64 5121.68,-867.84 5148.42,-890.85 5199.04,-867.64 5203.33,-865.67 5207.69,-863.42 5211.97,-861.02"/>
<polygon fill="#f91010" stroke="black" points="5213.78,-864.02 5220.63,-855.94 5210.23,-857.98 5213.78,-864.02"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge78" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4181.04,-2455.51C4143.26,-2445.87 4142.67,-2423.96 4121.04,-2391.52 4044.78,-2277.18 4050.39,-2234.92 3994.04,-2109.57 3979.35,-2076.9 3989.06,-2058.36 3961.04,-2036.03 3896.88,-1984.93 3846.5,-2048.09 3780.04,-2000.03 3734.7,-1967.26 3743.07,-1940.52 3718.04,-1890.5 3670.46,-1795.43 3660.54,-1770.5 3622.04,-1671.42 3587.84,-1583.42 3551.64,-1336.18 3485.04,-1269.26 3450.04,-1234.09 3302.82,-1236.68 3274.04,-1196.26 3255.08,-1169.64 3267.41,-1154.73 3274.04,-1122.72 3288.33,-1053.7 3309.39,-1042.02 3337.04,-977.18 3357.75,-928.61 3366.23,-917.7 3383.04,-867.64 3399.03,-820.01 3404.77,-807.96 3411.04,-758.1 3422.61,-666.08 3413.56,-624.11 3347.04,-559.47 3284.56,-498.76 3257.68,-493.02 3175.04,-465.49 3127,-449.48 2243.02,-376.27 2273.04,-335.5"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge79" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5270.04,-2173.57C5283.85,-2059.43 5425.34,-2079.18 5422.04,-1964.27"/>
<path fill="none" stroke="black" d="M5422.04,-1962.27C5417.41,-1816.64 5440.54,-1781.03 5450.04,-1635.65"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node67" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="1307.04" cy="-2072.8" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="1307.04" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1307.04" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="1307.04" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_auth_settings -->
<g id="edge80" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5124.04,-2548.49C4887.51,-2542.85 3720.96,-2513.25 2769.04,-2457.51"/>
<path fill="none" stroke="black" d="M2769.04,-2455.51C2646.04,-2448.31 1781.6,-2421.26 1662.04,-2391.52 1572.8,-2369.32 1280.37,-2262.94 1309.04,-2175.57"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node68" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="5320.04" cy="-2362.53" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="5320.04" y="-2371.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5320.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5320.04" y="-2349.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_status</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_build_status -->
<g id="edge81" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5167.04,-2455.51C5181.81,-2413.96 5227.43,-2390.19 5265.03,-2377.26"/>
<polygon fill="#f91010" stroke="black" points="5266.47,-2380.47 5274.9,-2374.05 5264.31,-2373.82 5266.47,-2380.47"/>
</g>
<!-- ahriman_models_package -->
<g id="node71" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="4804.04" cy="-2362.53" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4804.04" y="-2371.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4804.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4804.04" y="-2349.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package -->
<g id="edge82" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5134.63,-2538.41C5081.02,-2519.69 4976.75,-2481.49 4946.04,-2457.51"/>
<path fill="none" stroke="black" d="M4946.04,-2455.51C4933.12,-2445.43 4934.78,-2437.82 4922.04,-2427.52 4898.99,-2408.91 4869.73,-2393 4846.12,-2381.7"/>
<polygon fill="#f91010" stroke="black" points="4847.58,-2378.52 4837.04,-2377.45 4844.61,-2384.86 4847.58,-2378.52"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node73" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="6984.04" cy="-2362.53" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="6984.04" y="-2371.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6984.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6984.04" y="-2349.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_source</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package_source -->
<g id="edge83" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5207.61,-2544.18C5287.7,-2533.62 5471.72,-2508.97 5626.04,-2485.5 5782.79,-2461.67 5820.43,-2444.79 5978.04,-2427.52 6267.41,-2395.82 6341.59,-2411.06 6632.04,-2391.52 6729.4,-2384.97 6841.77,-2375.75 6912.84,-2369.7"/>
<polygon fill="#f91010" stroke="black" points="6913.36,-2373.17 6923.02,-2368.84 6912.76,-2366.2 6913.36,-2373.17"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node74" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="3400.04" cy="-2362.53" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="3400.04" y="-2371.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3400.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3400.04" y="-2349.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_report_settings -->
<g id="edge84" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5124.09,-2548.86C4947.25,-2545.93 4280.97,-2531.87 4200.04,-2485.5 4186.99,-2478.03 4195.45,-2461.81 4181.04,-2457.51"/>
<path fill="none" stroke="black" d="M4181.04,-2455.51C3926.01,-2379.46 3606.56,-2365.9 3468.64,-2363.75"/>
<polygon fill="#f91010" stroke="black" points="3468.29,-2360.25 3458.24,-2363.61 3468.19,-2367.25 3468.29,-2360.25"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node76" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="2590.04" cy="-2362.53" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="2590.04" y="-2371.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2590.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="2590.04" y="-2349.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_sign_settings -->
<g id="edge85" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3888.04,-2455.51C3832.55,-2451.57 3821.2,-2434.71 3766.04,-2427.52 3293.32,-2365.94 3165.52,-2461.93 2694.04,-2391.52 2677.65,-2389.08 2660.15,-2384.97 2644.26,-2380.64"/>
<polygon fill="#f91010" stroke="black" points="2645.18,-2377.27 2634.61,-2377.94 2643.29,-2384.01 2645.18,-2377.27"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node78" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="6080.04" cy="-2362.53" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="6080.04" y="-2371.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6080.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6080.04" y="-2349.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_settings</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_upload_settings -->
<g id="edge86" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5209.38,-2546.8C5302.79,-2540.25 5523.39,-2521.37 5588.04,-2485.5 5602.37,-2477.56 5595.9,-2460.39 5612.04,-2457.51"/>
<path fill="none" stroke="black" d="M5612.04,-2455.51C5770.29,-2427.25 5810.86,-2425.25 5968.04,-2391.52 5984.35,-2388.02 6001.89,-2383.84 6018.14,-2379.79"/>
<polygon fill="#f91010" stroke="black" points="6019.22,-2383.12 6028.07,-2377.29 6017.52,-2376.34 6019.22,-2383.12"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node85" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="498.04" cy="-713.56" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="498.04" y="-727.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="498.04" y="-716.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="498.04" y="-705.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="498.04" y="-694.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_handler</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge87" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5123.95,-2548.19C4980.64,-2543.88 4506.85,-2529.89 4115.04,-2521.5 3128.02,-2500.38 2879.9,-2537.63 1894.04,-2485.5 1660.54,-2473.16 1075.29,-2437.51 846.04,-2391.52 710.29,-2364.29 657.22,-2383.94 549.04,-2297.54 444.15,-2213.77 376.04,-1961.96 376.04,-1854.73 376.04,-1854.73 376.04,-1854.73 376.04,-1743.19 376.04,-1589.44 490.04,-1570.32 490.04,-1416.57 490.04,-1416.57 490.04,-1416.57 490.04,-1305.03 490.04,-1253.37 521.78,-1247.09 531.04,-1196.26 536.9,-1164.11 543.88,-1152.78 531.04,-1122.72 512.91,-1080.29 463.58,-1096.47 456.04,-1050.95"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node89" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="1934.04" cy="-830.87" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1934.04" y="-844.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1934.04" y="-833.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1934.04" y="-822.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1934.04" y="-811.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">base</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_base -->
<g id="edge88" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5124.27,-2548.52C4961.36,-2544.55 4364.14,-2527.81 3874.04,-2485.5 3664.34,-2467.41 3613.84,-2444.35 3404.04,-2427.52 3297.08,-2418.95 2538.99,-2430.54 2439.04,-2391.52 2270.98,-2325.92 2221.64,-2273.83 2147.04,-2109.57 2102.91,-2012.41 1968.17,-1262.33 2000.04,-1160.49"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node90" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1708.04" cy="-713.56" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1708.04" y="-727.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1708.04" y="-716.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1708.04" y="-705.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1708.04" y="-694.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">index</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_index -->
<g id="edge89" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5124.38,-2548.24C4857.02,-2540.36 3422.72,-2497.52 3404.04,-2485.5 3392.34,-2477.98 3403.92,-2458.35 3390.04,-2457.51"/>
<path fill="none" stroke="black" d="M3390.04,-2455.51C3120.46,-2439.27 3052.87,-2438.78 2783.04,-2427.52 2568.85,-2418.58 2027.1,-2443.15 1819.04,-2391.52 1807.36,-2388.63 1632.98,-2305.58 1624.04,-2297.54 1526.97,-2210.36 1371.3,-1908.76 1345.04,-1780.96 1317.73,-1648.07 1312.21,-1447.57 1506.04,-903.64 1518.15,-869.65 1519.11,-857.97 1544.04,-831.87"/>
<path fill="none" stroke="black" d="M1544.04,-829.87C1557.61,-811.86 1561.42,-806.84 1580.04,-794.1 1612.55,-771.85 1628.14,-779.79 1661.04,-758.1 1665.68,-755.04 1670.3,-751.52 1674.74,-747.82"/>
<polygon fill="#f91010" stroke="black" points="1677.25,-750.28 1682.47,-741.06 1672.64,-745.01 1677.25,-750.28"/>
</g>
<!-- ahriman_web_views_service_reload_auth -->
<g id="node93" class="node">
<title>ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1812.04" cy="-713.56" rx="47.25" ry="44.6"/>
<text text-anchor="middle" x="1812.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1812.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1812.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1812.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1812.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">reload_auth</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge90" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3390.04,-2455.51C3330.26,-2451.95 2371.57,-2408.13 2314.04,-2391.52 2147.39,-2343.43 2087.47,-2333.01 1972.04,-2203.56 1947.03,-2175.51 1853.75,-1926.8 1844.04,-1890.5 1729.59,-1462.92 1782.22,-1340.34 1710.04,-903.64 1704.74,-871.58 1686.49,-862.94 1696.04,-831.87"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node99" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2620.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2620.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2620.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2620.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2620.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2620.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_status_package -->
<g id="edge91" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5123.97,-2549.36C4935.14,-2548.44 4179.66,-2541.29 3950.04,-2485.5 3920.66,-2478.37 3918.19,-2459.66 3888.04,-2457.51"/>
<path fill="none" stroke="black" d="M3888.04,-2455.51C3783.12,-2448.05 3757.92,-2435.43 3653.04,-2427.52 3528.44,-2418.12 2645.45,-2436.91 2529.04,-2391.52 2410.78,-2345.41 2391.74,-2303.92 2314.04,-2203.56 2237.34,-2104.49 2215.5,-2042.82 2262.04,-1926.5 2291.12,-1853.81 2462.49,-1737.13 2505.04,-1671.42 2551.94,-1598.98 2802.54,-1021.35 2770.04,-941.41"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node103" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="1614.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1614.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1614.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1614.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1614.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="1614.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">login</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_user_login -->
<g id="edge92" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2769.04,-2455.51C2709.1,-2451.87 1746.24,-2412.67 1690.04,-2391.52 1686.05,-2390.02 1571.94,-2300.65 1569.04,-2297.54 1464.11,-2185.01 1451.52,-2141.93 1392.04,-2000.03 1240.7,-1639.02 1324.15,-1514.05 1314.04,-1122.72 1312.78,-1074.04 1320.73,-1060.91 1311.04,-1013.18 1302.43,-970.78 1216.69,-868.31 1240.04,-831.87"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node104" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="948.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="948.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="948.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="948.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="948.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="948.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">logout</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge93" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5123.95,-2548.35C4980.62,-2544.53 4506.8,-2531.9 4115.04,-2521.5 3510.59,-2505.46 3358.92,-2516 2755.04,-2485.5 2194.2,-2457.18 2054.2,-2443.31 1495.04,-2391.52 1400.53,-2382.77 732.11,-2337.52 646.04,-2297.54 536.09,-2246.47 490.04,-2195.03 490.04,-2073.8 490.04,-2073.8 490.04,-2073.8 490.04,-1962.27 490.04,-1749.65 543.27,-1214.71 611.04,-1013.18 651.11,-894 687.09,-866.3 790.04,-794.1 825.62,-769.15 870.15,-747.47 902.86,-733.08"/>
<polygon fill="#f91010" stroke="black" points="904.4,-736.23 912.18,-729.03 901.61,-729.8 904.4,-736.23"/>
</g>
<!-- ahriman_web_web -->
<g id="node105" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2175.04" cy="-400.5" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2175.04" y="-409" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2175.04" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2175.04" y="-387" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_web -->
<g id="edge94" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5123.92,-2549.07C4984.69,-2547.18 4534.84,-2537.21 4167.04,-2485.5 4047.65,-2468.72 4021.64,-2442.7 3902.04,-2427.52 3472.74,-2373.06 3357.1,-2454.99 2929.04,-2391.52 2888.46,-2385.51 2601.22,-2326.36 2572.04,-2297.54 2454.62,-2181.58 2481.49,-2072.69 2558.04,-1926.5 2586,-1873.09 2586.48,-1848.2 2638.04,-1816.96 2729.91,-1761.29 2791.47,-1845.9 2877.04,-1780.96 2905.57,-1759.3 2894.59,-1739.74 2910.04,-1707.42 3012.05,-1493.95 3336.97,-988.2 3392.04,-758.1 3401.25,-719.59 3405.39,-706.29 3392.04,-669.01 3378.11,-630.14 3353.49,-633.11 3333.04,-597.24"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node26" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="4068.04" cy="-2550.5" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4068.04" y="-2559" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4068.04" y="-2548" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4068.04" y="-2537" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm</text>
</g>
<!-- ahriman_core_repository_properties -->
<g id="node47" class="node">
<title>ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="4070.04" cy="-1634.65" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4070.04" y="-1648.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4070.04" y="-1637.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4070.04" y="-1626.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4070.04" y="-1615.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">properties</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_core_repository_properties -->
<g id="edge95" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4081.36,-2523.12C4121.05,-2444.29 4241.52,-2203.33 4334.04,-2000.03 4363.12,-1936.13 4375.8,-1921.96 4396.04,-1854.73"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_package -->
<g id="edge96" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4102.4,-2537.83C4119.08,-2532.42 4139.47,-2526.17 4158.04,-2521.5 4239.7,-2500.97 4262.29,-2505.7 4344.04,-2485.5 4430.57,-2464.12 4449.98,-2450.77 4536.04,-2427.52 4613.26,-2406.66 4703.95,-2385.75 4757.56,-2373.75"/>
<polygon fill="#ce3b3b" stroke="black" points="4758.45,-2377.14 4767.45,-2371.55 4756.93,-2370.31 4758.45,-2377.14"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node27" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="4030.04" cy="-2652.26" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4030.04" y="-2666.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4030.04" y="-2655.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4030.04" y="-2644.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4030.04" y="-2633.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_properties -->
<g id="edge97" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3999.85,-2629.6C3976.82,-2612.77 3947.35,-2590.51 3937.04,-2579.49 3902.68,-2542.76 3888.67,-2533.62 3874.04,-2485.5 3866.54,-2460.85 3870.44,-2453.04 3874.04,-2427.52 3886.16,-2341.45 3889.4,-2317.42 3928.04,-2239.56 3978.22,-2138.43 3989.31,-2103.22 4080.04,-2036.03 4118,-2007.92 4144.58,-2031.25 4180.04,-2000.03 4258.79,-1930.7 4253.18,-1884.83 4268.04,-1780.96 4272.67,-1748.6 4288.11,-1733.21 4268.04,-1707.42 4228.05,-1656.03 4185.79,-1697.27 4126.04,-1671.42 4121.33,-1669.38 4116.56,-1666.97 4111.91,-1664.38"/>
<polygon fill="#b42d2d" stroke="black" points="4113.52,-1661.27 4103.12,-1659.22 4109.98,-1667.3 4113.52,-1661.27"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge98" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4058.63,-2627.35C4092.38,-2599.82 4147.09,-2557.59 4172.04,-2551.5"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node28" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3914.04" cy="-2072.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3914.04" y="-2086.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3914.04" y="-2075.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3914.04" y="-2064.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3914.04" y="-2053.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repo</text>
</g>
<!-- ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_properties -->
<g id="edge99" class="edge">
<title>ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3950.54,-2061.27C4013.53,-2042.99 4136.63,-2006.66 4144.04,-2000.03 4167.02,-1979.46 4268.04,-1772.66 4254.04,-1745.19"/>
</g>
<!-- ahriman_core_auth -->
<g id="node29" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="1250.04" cy="-1159.49" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1250.04" y="-1167.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1250.04" y="-1156.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1250.04" y="-1145.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge100" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1215.75,-1146.53C1191.32,-1138.51 1157.54,-1128.39 1127.04,-1122.72 941.1,-1088.15 877.2,-1160.44 703.04,-1086.72 657.73,-1067.55 530.96,-990.34 536.04,-941.41"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge101" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1285.4,-1148.13C1325.1,-1135.88 1390.89,-1113.72 1444.04,-1086.72 1575.28,-1020.06 1587.79,-968.28 1720.04,-903.64 1775.24,-876.66 1843.09,-855.81 1887.4,-843.7"/>
<polygon fill="#f91010" stroke="black" points="1888.56,-847.01 1897.3,-841.03 1886.74,-840.25 1888.56,-847.01"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge102" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1278.04,-1048.95C1279.91,-1001.19 1254.82,-983.19 1278.04,-941.41"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge103" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1272.78,-1135.78C1334.53,-1074.92 1512.08,-905.31 1682.04,-794.1 1712.31,-774.3 1724.3,-777.18 1755.04,-758.1 1759.42,-755.38 1763.88,-752.4 1768.27,-749.32"/>
<polygon fill="#f91010" stroke="black" points="1770.55,-751.99 1776.61,-743.3 1766.45,-746.32 1770.55,-751.99"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge104" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1260.49,-1131.58C1267.98,-1110.12 1276.93,-1079.1 1278.04,-1050.95"/>
<path fill="none" stroke="black" d="M1278.04,-1048.95C1280.03,-998.3 1252.08,-990.65 1240.04,-941.41"/>
<path fill="none" stroke="black" d="M1240.04,-939.41C1228.68,-892.99 1212.45,-870.91 1240.04,-831.87"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge105" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1216.86,-1144.79C1173.8,-1126.78 1103.07,-1096.29 1094.04,-1086.72 1007.73,-995.32 970.47,-846.97 956.05,-768"/>
<polygon fill="#f91010" stroke="black" points="959.43,-767.03 954.25,-757.79 952.54,-768.25 959.43,-767.03"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge106" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1222.36,-1139.36C1214.02,-1133.81 1204.75,-1127.86 1196.04,-1122.72 1166.24,-1105.15 1146.85,-1115.07 1127.04,-1086.72 1089.73,-1033.34 1108.04,-1006.54 1108.04,-941.41 1108.04,-941.41 1108.04,-941.41 1108.04,-829.87 1108.04,-757.88 1139.86,-720 1089.04,-669.01 995.64,-575.31 536.82,-723.73 498.04,-597.24"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node30" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#910707" stroke="black" cx="1392.04" cy="-1744.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1392.04" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1392.04" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1392.04" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1392.04" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node32" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b2222" stroke="black" cx="1108.04" cy="-1634.65" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1108.04" y="-1648.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1108.04" y="-1637.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1108.04" y="-1626.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1108.04" y="-1615.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">mapping</text>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge107" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1347.26,-1726.23C1294.14,-1706.12 1206.11,-1672.78 1152.94,-1652.65"/>
<polygon fill="#910707" stroke="black" points="1346.05,-1729.52 1356.64,-1729.78 1348.53,-1722.97 1346.05,-1729.52"/>
<polygon fill="#910707" stroke="black" points="1154.02,-1649.32 1143.43,-1649.05 1151.54,-1655.86 1154.02,-1649.32"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge108" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1401.37,-1708.29C1405.57,-1686.99 1408.33,-1659.39 1402.04,-1635.65"/>
<path fill="none" stroke="black" d="M1402.04,-1633.65C1373.03,-1524.3 1296.34,-1534.48 1193.04,-1488.34 1129.65,-1460.03 1100.14,-1488.77 1041.04,-1452.34 905.22,-1368.63 956.88,-1259.82 832.04,-1160.49"/>
<path fill="none" stroke="black" d="M832.04,-1158.49C757.21,-1114.28 471.51,-1136.47 456.04,-1050.95"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge109" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1410.98,-1711.88C1469.92,-1614.78 1650.24,-1320.02 1720.04,-1232.26 1776.29,-1161.53 1804.66,-1156.54 1862.04,-1086.72 1911.81,-1026.16 1984.61,-1016.49 1962.04,-941.41"/>
<path fill="none" stroke="black" d="M1962.04,-939.41C1956.75,-918.72 1950.8,-895.82 1945.75,-876.48"/>
<polygon fill="#910707" stroke="black" points="1949.11,-875.51 1943.19,-866.72 1942.34,-877.28 1949.11,-875.51"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge110" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1402.04,-1633.65C1356.19,-1459.74 1484.2,-1422.69 1578.04,-1269.26 1588.8,-1251.67 1593.48,-1248.62 1606.04,-1232.26 1618.38,-1216.18 1624.36,-1214.07 1634.04,-1196.26 1658.63,-1150.98 1659.35,-1136.67 1672.04,-1086.72 1688.16,-1023.28 1706.91,-1005.96 1696.04,-941.41"/>
<path fill="none" stroke="black" d="M1696.04,-939.41C1689.27,-892.1 1682,-877.56 1696.04,-831.87"/>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_web_web -->
<g id="edge111" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1428.18,-1732.01C1625.8,-1670.52 2575.92,-1369.85 2827.04,-1196.26 2944.71,-1114.92 3264.75,-857.2 3254.04,-714.56"/>
<path fill="none" stroke="black" d="M3254.04,-712.56C3247.88,-650.74 3333.04,-659.37 3333.04,-597.24"/>
<path fill="none" stroke="black" d="M3333.04,-595.24C3333.04,-440.95 3161.8,-498.3 3011.04,-465.49 2839.54,-428.16 2390.15,-479.91 2222.04,-429.49 2218.51,-428.43 2214.97,-427.05 2211.51,-425.47"/>
<polygon fill="#910707" stroke="black" points="2213.07,-422.34 2202.57,-420.9 2209.88,-428.57 2213.07,-422.34"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node31" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d92626" stroke="black" cx="1174.04" cy="-1049.95" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1174.04" y="-1063.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1174.04" y="-1052.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1174.04" y="-1041.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1174.04" y="-1030.95" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">helpers</text>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index -->
<g id="edge112" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1203.05,-1025.96C1219,-1012.59 1238.62,-994.93 1254.04,-977.18 1266.59,-962.73 1268.74,-958.15 1278.04,-941.41"/>
<path fill="none" stroke="black" d="M1278.04,-939.41C1306.47,-888.26 1312.37,-872.97 1354.04,-831.87"/>
<path fill="none" stroke="black" d="M1354.04,-829.87C1453.81,-731.48 1537.3,-823.86 1661.04,-758.1 1665.95,-755.49 1670.73,-752.24 1675.26,-748.7"/>
<polygon fill="#d92626" stroke="black" points="1677.7,-751.21 1683.08,-742.08 1673.18,-745.87 1677.7,-751.21"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge113" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1202.04,-939.41C1203.69,-888.75 1210.78,-873.27 1240.04,-831.87"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge114" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1183.89,-1014.27C1189.65,-993.29 1196.78,-965.94 1202.04,-941.41"/>
<path fill="none" stroke="black" d="M1202.04,-939.41C1227.65,-819.83 1090.06,-835.1 995.04,-758.1 991.59,-755.31 988.07,-752.33 984.6,-749.29"/>
<polygon fill="#d92626" stroke="black" points="986.88,-746.63 977.09,-742.58 982.22,-751.86 986.88,-746.63"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node33" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b2222" stroke="black" cx="1146.04" cy="-1525.11" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1146.04" y="-1539.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1146.04" y="-1528.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1146.04" y="-1517.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1146.04" y="-1506.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">oauth</text>
</g>
<!-- ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge116" class="edge">
<title>ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1120.06,-1599.62C1123.39,-1590.21 1127.05,-1579.85 1130.54,-1569.97"/>
<polygon fill="#8b2222" stroke="black" points="1133.93,-1570.88 1133.96,-1560.28 1127.33,-1568.55 1133.93,-1570.88"/>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth_auth -->
<g id="edge117" class="edge">
<title>ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1179.61,-1542.98C1204.25,-1556.18 1237.85,-1575.93 1264.04,-1597.88 1302.71,-1630.29 1340.03,-1674.64 1364.3,-1705.79"/>
<polygon fill="#8b2222" stroke="black" points="1361.6,-1708.03 1370.48,-1713.81 1367.14,-1703.76 1361.6,-1708.03"/>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge118" class="edge">
<title>ahriman_core_auth_oauth&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1144.11,-1488.14C1140.52,-1414.5 1134.48,-1251.81 1150.04,-1232.26 1191.92,-1179.63 1255.51,-1249.18 1297.04,-1196.26 1307.52,-1182.9 1299.51,-1033.44 1292.04,-1013.18 1278.41,-976.23 1249.4,-979.68 1240.04,-941.41"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node34" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6390.04" cy="-2550.5" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="6390.04" y="-2559" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6390.04" y="-2548" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6390.04" y="-2537" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application -->
<g id="edge119" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6426.94,-2534.11C6492.1,-2507.63 6632.38,-2453.79 6756.04,-2427.52 6836.84,-2410.35 7059.86,-2440.97 7126.04,-2391.52 7162.13,-2364.55 7155.43,-2341.77 7164.04,-2297.54 7203.36,-2095.36 6829.45,-1657.57 6712.04,-1488.34 6644.19,-1390.55 6631.91,-1362.57 6558.04,-1269.26 6544.75,-1252.48 6532.9,-1253.54 6526.04,-1233.26"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge120" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6430.87,-2538.78C6522.41,-2515.16 6751.29,-2458.25 6946.04,-2427.52 7027.64,-2414.65 7243.3,-2430.68 7316.04,-2391.52 7627.84,-2223.65 7568.04,-1989.77 7568.04,-1635.65 7568.04,-1635.65 7568.04,-1635.65 7568.04,-1524.11 7568.04,-1393.96 7574.22,-1361.18 7592.04,-1232.26 7596.49,-1200.07 7608.12,-1192.92 7606.04,-1160.49"/>
<path fill="none" stroke="black" d="M7606.04,-1158.49C7580.19,-1059.59 7582.81,-1028.96 7530.04,-941.41"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node46" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="4282.04" cy="-1415.57" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4282.04" y="-1429.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4282.04" y="-1418.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4282.04" y="-1407.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4282.04" y="-1396.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">executor</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_repository_executor -->
<g id="edge121" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6390.04,-2455.51C6399.53,-2405.48 6535.52,-2344.14 6556.04,-2297.54 6577.82,-2248.07 6518.9,-1839.3 6371.04,-1707.42 6096.05,-1462.15 5926.12,-1582.82 5562.04,-1526.11"/>
</g>
<!-- ahriman_core_tree -->
<g id="node57" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6476.04" cy="-2174.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6476.04" y="-2183.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6476.04" y="-2172.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6476.04" y="-2161.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">tree</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_tree -->
<g id="edge122" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6387.28,-2521.46C6386.15,-2503.1 6385.92,-2478.68 6390.04,-2457.51"/>
<path fill="none" stroke="black" d="M6390.04,-2455.51C6397.96,-2414.8 6371.59,-2292.65 6406.04,-2269.55"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge123" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6347.55,-2541.45C6232.06,-2519.86 5902.5,-2460.06 5626.04,-2427.52 5416.65,-2402.88 5363.23,-2407.95 5153.04,-2391.52 5045.61,-2383.13 4919.62,-2372.94 4852.28,-2367.46"/>
<polygon fill="#f91010" stroke="black" points="4852.24,-2363.95 4841.99,-2366.63 4851.67,-2370.92 4852.24,-2363.95"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node35" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#df0b0b" stroke="black" cx="6526.04" cy="-2652.26" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6526.04" y="-2666.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6526.04" y="-2655.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6526.04" y="-2644.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="6526.04" y="-2633.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sources</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application -->
<g id="edge124" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6565.88,-2632.82C6607.63,-2613.3 6674.96,-2581.26 6732.04,-2551.5"/>
<path fill="none" stroke="black" d="M6732.04,-2549.5C6829.11,-2498.88 6842.97,-2464.43 6946.04,-2427.52 7035.19,-2395.59 7086.77,-2456.09 7156.04,-2391.52 7206,-2344.95 7184.79,-2307.62 7179.04,-2239.56 7172.86,-2166.41 7132.68,-1799.61 7088.04,-1707.42 6936.14,-1393.73 6806.2,-1367.82 6526.04,-1160.49"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge125" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6732.04,-2549.5C7129.81,-2362.97 7399.76,-2558.96 7658.04,-2203.56 7702.92,-2141.8 7699.81,-2112.29 7696.04,-2036.03 7679.13,-1693.99 7658.79,-1609.52 7620.04,-1269.26 7614.52,-1220.83 7609.81,-1209.09 7606.04,-1160.49"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node36" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="4397.04" cy="-2072.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="4397.04" y="-2086.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4397.04" y="-2075.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4397.04" y="-2064.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="4397.04" y="-2053.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">task</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge126" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6479.45,-2647.56C6388.5,-2640.44 6180.89,-2624.73 6006.04,-2615.49 5702.64,-2599.45 4900.93,-2649.29 4645.04,-2485.5 4527.54,-2410.31 4545.87,-2340.93 4450.04,-2239.56 4420.63,-2208.45 4394.21,-2215.21 4378.04,-2175.57"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree -->
<g id="edge127" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6559.26,-2625.96C6572.77,-2613.6 6586.86,-2597.51 6594.04,-2579.49 6603.58,-2555.55 6598.25,-2546.93 6594.04,-2521.5 6574.57,-2404.15 6520.34,-2273.15 6492.69,-2211.43"/>
<polygon fill="#df0b0b" stroke="black" points="6495.8,-2209.81 6488.49,-2202.13 6489.42,-2212.69 6495.8,-2209.81"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_models_package -->
<g id="edge128" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6479.45,-2647.61C6388.5,-2640.58 6180.88,-2625.03 6006.04,-2615.49 5907.1,-2610.09 5208.55,-2612.23 5115.04,-2579.49 5073.93,-2565.1 5074.6,-2541.74 5036.04,-2521.5 4992.72,-2498.78 4973.81,-2510.96 4932.04,-2485.5 4892.19,-2461.23 4854.54,-2422.78 4830.52,-2395.55"/>
<polygon fill="#df0b0b" stroke="black" points="4833.02,-2393.09 4823.82,-2387.84 4827.74,-2397.68 4833.02,-2393.09"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge129" class="edge">
<title>ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4440.94,-2059.7C4470.12,-2049.12 4506.23,-2030.55 4524.04,-2000.03 4540.51,-1971.81 4528.8,-1958.83 4524.04,-1926.5 4509.21,-1825.89 4506.93,-1796.58 4458.04,-1707.42 4445.26,-1684.11 4295.2,-1551.79 4302.04,-1526.11"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node37" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="4033.04" cy="-2791.02" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="4033.04" y="-2799.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4033.04" y="-2788.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4033.04" y="-2777.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_application -->
<g id="edge130" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4084.16,-2790.38C4369.99,-2792 5772.16,-2794.37 6189.04,-2689.03 6233.69,-2677.74 6570.15,-2596.48 6580.04,-2551.5"/>
<path fill="none" stroke="black" d="M6580.04,-2549.5C6598.06,-2497.68 6575.26,-2476.97 6599.04,-2427.52 6608.44,-2407.96 6622.66,-2411.1 6632.04,-2391.52 6686.79,-2277.2 6665.45,-2235.97 6675.04,-2109.57 6677.51,-2076.98 6685.1,-2067.13 6675.04,-2036.03 6644.44,-1941.45 6544.04,-1954.14 6544.04,-1854.73 6544.04,-1854.73 6544.04,-1854.73 6544.04,-1524.11 6544.04,-1427.63 6559.26,-1402.3 6544.04,-1307.03"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge131" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6922.04,-2651.26C6935.34,-2637.49 6933.18,-2629.67 6946.04,-2615.49 6968.08,-2591.16 7030.61,-2536.07 7060.04,-2521.5 7123.03,-2490.33 7146.74,-2505.78 7214.04,-2485.5 7328.89,-2450.9 7358.3,-2442.16 7467.04,-2391.52 7566.63,-2345.14 7682.04,-2379.41 7682.04,-2269.55 7682.04,-2269.55 7682.04,-2269.55 7682.04,-2173.57 7682.04,-1904.68 7621.97,-1835.45 7496.04,-1597.88 7310.63,-1248.12 7294.28,-1076.27 6938.04,-903.64 6761.07,-817.89 6683.14,-931.19 6497.04,-867.64 6492.56,-866.11 6488.08,-864.14 6483.73,-861.9"/>
<polygon fill="#e50505" stroke="black" points="6485.43,-858.84 6475,-857 6482.01,-864.95 6485.43,-858.84"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge132" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5802.04,-2267.55C5809,-2182.36 5866.32,-1975.16 5878.04,-1890.5 5931.66,-1503.14 5792.24,-1373.15 5945.04,-1013.18 5960.85,-975.94 6000.48,-981.87 6001.04,-941.41"/>
<path fill="none" stroke="black" d="M6001.04,-939.41C5998.88,-919.36 5998.01,-897.08 5997.73,-878.03"/>
<polygon fill="#e50505" stroke="black" points="6001.22,-877.78 5997.62,-867.82 5994.22,-877.85 6001.22,-877.78"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge133" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7682.04,-2549.5C8260.51,-2186.57 8010.28,-1597.62 7657.04,-1013.18 7626.52,-962.69 7632.66,-933.96 7582.04,-903.64 7481.44,-843.4 7122.69,-833.6 6982.12,-832.1"/>
<polygon fill="#e50505" stroke="black" points="6982.02,-828.6 6971.99,-832.01 6981.95,-835.6 6982.02,-828.6"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge134" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5650.04,-2549.5C5650.04,-2460.21 5726.04,-2452.82 5726.04,-2363.53 5726.04,-2363.53 5726.04,-2363.53 5726.04,-2267.55 5726.04,-2098.93 5693.38,-2058.85 5684.04,-1890.5 5682.22,-1857.86 5683.08,-1849.63 5684.04,-1816.96 5684.45,-1802.77 5706.8,-1319.24 5714.04,-1307.03"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_init -->
<g id="edge135" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_init</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4084.03,-2788.86C4436.1,-2780.76 6495.64,-2731.68 6620.04,-2689.03 6821.66,-2619.9 6824.54,-2507.68 7022.04,-2427.52 7090.78,-2399.62 7116.13,-2419.03 7185.04,-2391.52 7260.21,-2361.51 7287.67,-2358.39 7341.04,-2297.54 7449.91,-2173.39 7388.9,-2077.48 7322.04,-1926.5 7133.95,-1501.78 7006.38,-1425.4 6654.04,-1122.72 6526.34,-1013.02 6499.66,-970.21 6345.04,-903.64 6269.7,-871.21 6240.01,-898.56 6164.04,-867.64 6159.83,-865.93 6155.6,-863.88 6151.45,-861.65"/>
<polygon fill="#e50505" stroke="black" points="6152.96,-858.48 6142.55,-856.51 6149.46,-864.54 6152.96,-858.48"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge136" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6808.04,-2725.03C7045.13,-2667.91 7758.04,-2419.44 7758.04,-2175.57 7758.04,-2175.57 7758.04,-2175.57 7758.04,-1962.27 7758.04,-1700.27 7462.59,-1040.28 7239.04,-903.64 7119.2,-830.4 6741.5,-911.4 6608.04,-867.64 6603.54,-866.17 6599.05,-864.23 6594.69,-862.02"/>
<polygon fill="#e50505" stroke="black" points="6596.39,-858.96 6585.95,-857.15 6592.98,-865.07 6596.39,-858.96"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge137" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6884.04,-2725.03C7048.63,-2710.69 7092.24,-2722.49 7254.04,-2689.03 7278.49,-2683.97 7662.79,-2567.42 7682.04,-2551.5"/>
<path fill="none" stroke="black" d="M7682.04,-2549.5C7751.94,-2501.17 7826.48,-2286.49 7845.04,-2203.56 7889.35,-2005.53 7716.97,-1186.46 7692.04,-1122.72 7691.7,-1121.87 7544.84,-904.1 7544.04,-903.64 7413.31,-829.66 7011.86,-914.18 6869.04,-867.64 6864.54,-866.18 6860.05,-864.24 6855.68,-862.03"/>
<polygon fill="#e50505" stroke="black" points="6857.38,-858.98 6846.94,-857.17 6853.98,-865.09 6857.38,-858.98"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge138" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4084.3,-2788.94C4389.25,-2782.22 5952.53,-2743.42 5992.04,-2653.26"/>
<path fill="none" stroke="black" d="M5992.04,-2651.26C6011.9,-2597.16 5917.59,-2626.34 5884.04,-2579.49 5801.08,-2463.64 5802.04,-2412.04 5802.04,-2269.55"/>
<path fill="none" stroke="black" d="M5802.04,-2267.55C5801.31,-2131.7 5783.84,-2098.66 5764.04,-1964.27"/>
<path fill="none" stroke="black" d="M5764.04,-1962.27C5755.43,-1925.12 5727.94,-1927.03 5717.04,-1890.5 5707.69,-1859.18 5706.43,-1847.87 5717.04,-1816.96 5723.62,-1797.78 5734.5,-1798.27 5745.04,-1780.96 5782,-1720.2 5812.04,-1706.76 5812.04,-1635.65 5812.04,-1635.65 5812.04,-1635.65 5812.04,-1158.49 5812.04,-1093.03 5798.54,-1066.83 5836.04,-1013.18 5873.18,-960.04 5967.26,-1006.11 5963.04,-941.41"/>
<path fill="none" stroke="black" d="M5963.04,-939.41C5960.68,-911.26 5942.88,-885.22 5925.11,-865.82"/>
<polygon fill="#e50505" stroke="black" points="5927.5,-863.27 5918.06,-858.46 5922.45,-868.1 5927.5,-863.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge139" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4083.92,-2789.03C4455.38,-2781.82 6738.95,-2737.14 6884.04,-2726.03"/>
<path fill="none" stroke="black" d="M6884.04,-2725.03C7252.23,-2696.83 7360.7,-2627.15 7645.04,-2391.52 7735.21,-2316.79 7796.04,-2292.68 7796.04,-2175.57 7796.04,-2175.57 7796.04,-2175.57 7796.04,-1962.27 7796.04,-1702 7530.34,-1014.86 7295.04,-903.64 7186.91,-852.53 6874.88,-893.19 6758.04,-867.64 6743.21,-864.4 6727.61,-859.24 6713.47,-853.83"/>
<polygon fill="#e50505" stroke="black" points="6714.54,-850.48 6703.95,-850.06 6711.96,-856.99 6714.54,-850.48"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge140" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4079.99,-2779.46C4147.52,-2764.73 4276.14,-2738.31 4387.04,-2725.03 4456.82,-2716.67 5641.35,-2723 5650.04,-2653.26"/>
<path fill="none" stroke="black" d="M5650.04,-2651.26C5664.32,-2532.16 5208.77,-2654.34 5115.04,-2579.49 4860.39,-2376.15 5004.04,-2180.6 5004.04,-1854.73 5004.04,-1854.73 5004.04,-1854.73 5004.04,-1743.19 5004.04,-1546.42 5080.04,-1503.8 5080.04,-1307.03 5080.04,-1307.03 5080.04,-1307.03 5080.04,-1158.49 5080.04,-1093.03 5078.83,-1073.59 5104.04,-1013.18 5107.83,-1004.09 5149.33,-948.62 5156.04,-941.41"/>
<path fill="none" stroke="black" d="M5156.04,-939.41C5168.68,-925.03 5164.5,-914.83 5180.04,-903.64 5229.04,-868.36 5254.51,-888.87 5311.04,-867.64 5316.82,-865.47 5322.77,-863.01 5328.66,-860.42"/>
<polygon fill="#e50505" stroke="black" points="5330.16,-863.58 5337.83,-856.27 5327.27,-857.2 5330.16,-863.58"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_report -->
<g id="edge141" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3574.04,-2651.26C3479.18,-2530.46 3563.19,-1417.32 3604.04,-1269.26 3623.03,-1200.4 3628.49,-1180.83 3670.04,-1122.72 3752.9,-1006.83 3773.29,-960.24 3904.04,-903.64 4001.17,-861.6 4745.43,-838.96 4958.32,-833.3"/>
<polygon fill="#e50505" stroke="black" points="4958.44,-836.8 4968.34,-833.04 4958.26,-829.8 4958.44,-836.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge142" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5574.04,-2455.51C5525.12,-2404.87 5582.62,-2367.87 5586.04,-2297.54 5588.06,-2255.81 5587.59,-2245.33 5588.04,-2203.56 5588.83,-2129.11 5592.61,-2110.35 5588.04,-2036.03 5584.03,-1970.98 5574.04,-1955.55 5570.04,-1890.5 5568.03,-1857.87 5568.44,-1849.6 5570.04,-1816.96 5575.6,-1703.18 5587.06,-1675.51 5595.04,-1561.88 5613.14,-1303.88 5622.07,-993.8 5624.96,-878.24"/>
<polygon fill="#e50505" stroke="black" points="5628.46,-878.08 5625.21,-867.99 5621.46,-877.9 5628.46,-878.08"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge143" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3982.52,-2786.42C3919.85,-2780.43 3810.92,-2764.93 3726.04,-2726.03"/>
<path fill="none" stroke="black" d="M3726.04,-2725.03C3669.2,-2698.97 3637.68,-2729.52 3590.04,-2689.03 3576.77,-2677.75 3585.77,-2666.12 3574.04,-2653.26"/>
<path fill="none" stroke="black" d="M3574.04,-2651.26C3386.74,-2445.92 3564.92,-2294.22 3462.04,-2036.03 3439.43,-1979.29 3420.64,-1971.22 3379.04,-1926.5 3362.52,-1908.74 3348.79,-1912.23 3338.04,-1890.5 3320.01,-1854.06 3265.25,-1194.15 3288.04,-1160.49"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge144" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5650.04,-2549.5C5619.58,-2095.53 5676.04,-1981.09 5676.04,-1526.11 5676.04,-1526.11 5676.04,-1526.11 5676.04,-1158.49 5676.04,-1056.31 5705.24,-939.15 5723.24,-876.67"/>
<polygon fill="#e50505" stroke="black" points="5726.69,-877.34 5726.13,-866.76 5719.97,-875.38 5726.69,-877.34"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge145" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4084.01,-2789.14C4455.92,-2782.71 6739.19,-2742.61 6808.04,-2726.03"/>
<path fill="none" stroke="black" d="M6808.04,-2725.03C6866.24,-2711.01 6884.46,-2699.87 6922.04,-2653.26"/>
<path fill="none" stroke="black" d="M6922.04,-2651.26C6962.15,-2601.5 6935.45,-2563.03 6984.04,-2521.5 7026.69,-2485.06 7051.55,-2502.46 7105.04,-2485.5 7206.58,-2453.31 7486.42,-2385.83 7546.04,-2297.54 7593.26,-2227.59 7567.02,-2193.76 7573.04,-2109.57 7575.37,-2076.97 7581.65,-2067.56 7573.04,-2036.03 7528.35,-1872.42 7466.88,-1852.5 7379.04,-1707.42 7349.36,-1658.4 7341.4,-1646.48 7311.04,-1597.88 7280.62,-1549.19 7043.91,-1217.36 7036.04,-1160.49"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge146" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3574.04,-2651.26C3537.32,-2603.11 3628.47,-2169.87 3634.04,-2109.57 3659.5,-1833.89 3565.02,-1740.18 3680.04,-1488.34 3842.32,-1133.02 4048.5,-1166.1 4368.04,-941.41"/>
<path fill="none" stroke="black" d="M4368.04,-939.41C4390.26,-924.14 4391.64,-912.71 4417.04,-903.64 4691.21,-805.8 4791.45,-948.74 5071.04,-867.64 5076.39,-866.09 5081.77,-864.03 5087.04,-861.67"/>
<polygon fill="#e50505" stroke="black" points="5088.86,-864.67 5096.33,-857.15 5085.8,-858.37 5088.86,-864.67"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge147" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4083.98,-2789C4442.57,-2781.72 6576.61,-2736.51 6704.04,-2689.03 6779.72,-2660.82 6787.88,-2632.25 6849.04,-2579.49 6876.87,-2555.47 6877.01,-2541.23 6908.04,-2521.5 6970.97,-2481.51 7530.04,-2344.11 7530.04,-2269.55 7530.04,-2269.55 7530.04,-2269.55 7530.04,-2173.57 7530.04,-1897.45 7085.56,-1291.51 6867.04,-1122.72 6694.15,-989.18 6632.45,-977.99 6427.04,-903.64 6361.76,-880.02 6338.86,-894.97 6275.04,-867.64 6270.92,-865.88 6266.77,-863.82 6262.7,-861.58"/>
<polygon fill="#e50505" stroke="black" points="6264.34,-858.49 6253.94,-856.48 6260.82,-864.54 6264.34,-858.49"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge148" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4068.04,-2725.03C4202.03,-2628.6 4678.29,-2788.51 4810.04,-2689.03 4940.87,-2590.24 4852.04,-1973.32 4852.04,-1964.27 4852.04,-1964.27 4852.04,-1964.27 4852.04,-1852.73 4852.04,-1622.8 5084.09,-1046.76 5264.04,-903.64 5333.01,-848.78 5377.05,-899.96 5459.04,-867.64 5463.5,-865.89 5467.99,-863.76 5472.38,-861.42"/>
<polygon fill="#e50505" stroke="black" points="5474.25,-864.38 5481.21,-856.39 5470.78,-858.3 5474.25,-864.38"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_user -->
<g id="edge149" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4041.81,-2762.13C4047.31,-2749.17 4055.74,-2734.73 4068.04,-2726.03"/>
<path fill="none" stroke="black" d="M4068.04,-2725.03C4200.61,-2631.2 4249.33,-2617.45 4344.04,-2485.5 4480.01,-2296.06 4480.43,-2224.66 4543.04,-2000.03 4626.73,-1699.76 4605.96,-1615.47 4651.04,-1307.03"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge150" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.79,-2783.3C3932.51,-2776.61 3849.81,-2766.69 3778.04,-2762.03 2993.75,-2711.1 2791.73,-2807.61 2010.04,-2726.03 1811.84,-2705.34 392.66,-2528.62 248.04,-2391.52 188.24,-2334.84 85.05,-1752.61 71.04,-1671.42 34.95,-1462.25 33.72,-1408.25 23.04,-1196.26 21.39,-1163.62 22.44,-1155.4 23.04,-1122.72 26.37,-941.22 38.04,-896.09 38.04,-714.56 38.04,-714.56 38.04,-714.56 38.04,-595.24 38.04,-323.01 448.53,-409.73 823.04,-371.5 1464.96,-305.99 1628.03,-316.64 2273.04,-298.5"/>
<path fill="none" stroke="black" d="M2273.04,-297.5C3686.52,-232.77 5420.25,-226.42 5754.72,-225.8"/>
<polygon fill="#e50505" stroke="black" points="5755.13,-229.3 5765.12,-225.78 5755.12,-222.3 5755.13,-229.3"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge151" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5574.04,-2455.51C5515.47,-2394.8 5536.04,-2353.91 5536.04,-2269.55 5536.04,-2269.55 5536.04,-2269.55 5536.04,-2173.57 5536.04,-2067.64 5425.88,-2070.12 5422.04,-1964.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge152" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4005.53,-2766.36C3994.78,-2755.33 3983.69,-2741.27 3978.04,-2726.03 3972.17,-2710.2 3980.66,-2694.7 3992.36,-2682.1"/>
<polygon fill="#e50505" stroke="black" points="3994.87,-2684.54 3999.55,-2675.03 3989.96,-2679.55 3994.87,-2684.54"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge153" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.78,-2783.41C3932.5,-2776.82 3849.79,-2766.97 3778.04,-2762.03 3611.35,-2750.54 2426.21,-2762.28 2276.04,-2689.03 2177.52,-2640.97 2185.91,-2582.8 2095.04,-2521.5 1902.87,-2391.88 1765.78,-2480.94 1624.04,-2297.54 1590.25,-2253.82 1609.86,-2229.94 1600.04,-2175.57"/>
<path fill="none" stroke="black" d="M1600.04,-2173.57C1585.4,-2128.43 1578.63,-2118.26 1562.04,-2073.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge154" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.78,-2783.41C3932.5,-2776.81 3849.79,-2766.96 3778.04,-2762.03 3206.72,-2722.75 3061.14,-2768.33 2490.04,-2726.03 2421.51,-2720.95 2243.13,-2722.35 2183.04,-2689.03 2180.42,-2687.58 2050.67,-2522.92 2048.04,-2521.5 1896.23,-2440 1814.37,-2566.01 1662.04,-2485.5 1632.46,-2469.87 1641.9,-2446.04 1614.04,-2427.52 1568.02,-2396.94 1545.69,-2413.6 1495.04,-2391.52 1419.08,-2358.41 1401.14,-2346.14 1334.04,-2297.54 1235.77,-2226.36 1181.87,-2221.92 1136.04,-2109.57 1123.69,-2079.31 1124.42,-2066.59 1136.04,-2036.03 1150.04,-1999.22 1195.35,-2002.97 1188.04,-1964.27"/>
<path fill="none" stroke="black" d="M1188.04,-1962.27C1165.77,-1861.28 1136.01,-1743.66 1119.79,-1680.79"/>
<polygon fill="#e50505" stroke="black" points="1123.11,-1679.61 1117.22,-1670.81 1116.33,-1681.36 1123.11,-1679.61"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge155" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.78,-2783.4C3932.5,-2776.8 3849.8,-2766.95 3778.04,-2762.03 3198.29,-2722.29 3050.87,-2764.52 2471.04,-2726.03 2314.52,-2715.64 2269.1,-2737.87 2120.04,-2689.03 2058.42,-2668.84 2052.12,-2644.3 1994.04,-2615.49 1896.21,-2566.97 1870.97,-2555 1767.04,-2521.5 1700.55,-2500.07 1681.95,-2501.85 1614.04,-2485.5 1529.04,-2465.05 1301.83,-2444.16 1232.04,-2391.52 1071.99,-2270.82 1059.54,-2193.77 1008.04,-2000.03 978.33,-1888.32 1056.73,-1860.74 1060.04,-1745.19"/>
<path fill="none" stroke="black" d="M1060.04,-1743.19C1056.32,-1694.87 1020.09,-1678.85 1042.04,-1635.65"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge156" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4017.19,-2763.19C4012.14,-2750.97 4009.39,-2736.67 4016.04,-2725.03 4031.65,-2697.69 4057.1,-2713.39 4077.04,-2689.03 4109.67,-2649.15 4098.25,-2628.21 4115.04,-2579.49 4138.29,-2512 4137.83,-2492.66 4167.04,-2427.52 4225.91,-2296.26 4239.35,-2260.38 4326.04,-2145.57 4335.83,-2132.61 4347.84,-2119.62 4359.17,-2108.33"/>
<polygon fill="#e50505" stroke="black" points="4361.79,-2110.67 4366.5,-2101.17 4356.9,-2105.66 4361.79,-2110.67"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node40" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="3076.04" cy="-1744.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3076.04" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3076.04" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3076.04" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="3076.04" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">email</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_email -->
<g id="edge157" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.21,-2784.46C3931.81,-2778.75 3849.34,-2769.64 3778.04,-2762.03 3661.74,-2749.6 2731.04,-2770.22 2731.04,-2653.26 2731.04,-2653.26 2731.04,-2653.26 2731.04,-2549.5 2731.04,-2424.9 2746.04,-2394.15 2746.04,-2269.55 2746.04,-2269.55 2746.04,-2269.55 2746.04,-2173.57 2746.04,-2110.27 2751.26,-2090.78 2783.04,-2036.03 2850.02,-1920.65 2974.5,-1819.29 3037.45,-1772.56"/>
<polygon fill="#e50505" stroke="black" points="3039.57,-1775.35 3045.55,-1766.6 3035.42,-1769.71 3039.57,-1775.35"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node41" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="2764.04" cy="-1525.11" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2764.04" y="-1539.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2764.04" y="-1528.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2764.04" y="-1517.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="2764.04" y="-1506.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">html</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_html -->
<g id="edge158" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2290.04,-2361.53C2236.97,-2171.72 2277.64,-2097.27 2376.04,-1926.5 2388.67,-1904.58 2639.49,-1651.37 2731,-1559.31"/>
<polygon fill="#e50505" stroke="black" points="2733.5,-1561.75 2738.07,-1552.19 2728.54,-1556.82 2733.5,-1561.75"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node42" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#832020" stroke="black" cx="2814.04" cy="-1853.73" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="2814.04" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2814.04" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2814.04" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="2814.04" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja_template</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge159" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2442.04,-2651.26C2269.03,-2455.03 2364.03,-2251.48 2556.04,-2073.8"/>
<path fill="none" stroke="black" d="M2556.04,-2071.8C2607.41,-2013.44 2641.96,-2022.01 2694.04,-1964.27"/>
<path fill="none" stroke="black" d="M2694.04,-1962.27C2706.86,-1948.05 2704.85,-1940.37 2718.04,-1926.5 2732.32,-1911.47 2750.02,-1897.26 2766.33,-1885.52"/>
<polygon fill="#e50505" stroke="black" points="2768.55,-1888.24 2774.7,-1879.62 2764.51,-1882.52 2768.55,-1888.24"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node43" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b1818" stroke="black" cx="3057.04" cy="-1634.65" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3057.04" y="-1648.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3057.04" y="-1637.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3057.04" y="-1626.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="3057.04" y="-1615.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_report -->
<g id="edge160" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2518.04,-2725.03C2445.68,-2699.87 2507.26,-2104.29 2542.04,-2036.03 2603.13,-1916.13 2632.61,-1880.86 2751.04,-1816.96 2856.16,-1760.23 2928.12,-1832.12 3010.04,-1745.19"/>
<path fill="none" stroke="black" d="M3010.04,-1743.19C3014.81,-1737.92 3028.34,-1706.44 3039.67,-1678.89"/>
<polygon fill="#e50505" stroke="black" points="3043.02,-1679.94 3043.57,-1669.36 3036.54,-1677.29 3043.02,-1679.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_properties -->
<g id="edge161" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3726.04,-2725.03C3588.04,-2651.66 3773.15,-2160.97 3867.04,-2036.03 3887.92,-2008.24 4118.17,-1913.73 4144.04,-1890.5 4158.28,-1877.7 4154.22,-1867.98 4168.04,-1854.73"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node51" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#932424" stroke="black" cx="3232.04" cy="-2072.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3232.04" y="-2086.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3232.04" y="-2075.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3232.04" y="-2064.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="3232.04" y="-2053.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gpg</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge162" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.33,-2784.68C3836.67,-2768.73 3407.43,-2720.58 3270.04,-2689.03 3220.76,-2677.71 3162.04,-2703.82 3162.04,-2653.26 3162.04,-2653.26 3162.04,-2653.26 3162.04,-2549.5 3162.04,-2506.94 3206.45,-2230.34 3224.52,-2119.57"/>
<polygon fill="#e50505" stroke="black" points="3228.03,-2119.81 3226.19,-2109.38 3221.12,-2118.69 3228.03,-2119.81"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node52" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b62020" stroke="black" cx="594.04" cy="-2174.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="594.04" y="-2183.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="594.04" y="-2172.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="594.04" y="-2161.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">spawn</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_spawn -->
<g id="edge163" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2024.04,-2725.03C1976.71,-2695.19 2006.69,-2649.18 1962.04,-2615.49 1841.96,-2524.88 760.86,-2394.73 646.04,-2297.54 620.95,-2276.31 607.67,-2240.82 600.83,-2213.59"/>
<polygon fill="#e50505" stroke="black" points="604.19,-2212.55 598.52,-2203.6 597.37,-2214.13 604.19,-2212.55"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node54" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#931a1a" stroke="black" cx="5232.04" cy="-1853.73" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5232.04" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5232.04" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5232.04" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="5232.04" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">client</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_client -->
<g id="edge164" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5650.04,-2651.26C5655.52,-2607.26 5650.04,-2595.83 5650.04,-2551.5"/>
<path fill="none" stroke="black" d="M5650.04,-2549.5C5650.04,-2546.18 5576.35,-2459.89 5574.04,-2457.51"/>
<path fill="none" stroke="black" d="M5574.04,-2455.51C5475.23,-2354.15 5354.54,-2498.67 5262.04,-2391.52 5199.35,-2318.91 5217.99,-2016.84 5227.77,-1900.6"/>
<polygon fill="#e50505" stroke="black" points="5231.26,-1900.85 5228.63,-1890.59 5224.29,-1900.26 5231.26,-1900.85"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node55" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b2222" stroke="black" cx="3032.04" cy="-1159.49" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3032.04" y="-1173.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3032.04" y="-1162.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3032.04" y="-1151.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="3032.04" y="-1140.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">watcher</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_watcher -->
<g id="edge165" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2518.04,-2725.03C2473.87,-2710.62 2475.67,-2685.31 2442.04,-2653.26"/>
<path fill="none" stroke="black" d="M2442.04,-2651.26C2407.46,-2618.3 2388.24,-2619.42 2362.04,-2579.49 2306.53,-2494.9 2320.53,-2460 2290.04,-2363.53"/>
<path fill="none" stroke="black" d="M2290.04,-2361.53C2256.64,-2287.95 2220.73,-2281.67 2200.04,-2203.56 2168.39,-2084.08 2166.84,-2036.06 2224.04,-1926.5 2316.11,-1750.12 2391.29,-1742.4 2528.04,-1597.88 2530.22,-1595.57 2843.36,-1270.97 2846.04,-1269.26 2887.28,-1242.97 2914.01,-1266.34 2950.04,-1233.26"/>
<path fill="none" stroke="black" d="M2950.04,-1232.26C2964.66,-1218.45 2981.27,-1203.73 2995.71,-1191.24"/>
<polygon fill="#e50505" stroke="black" points="2998.19,-1193.73 3003.48,-1184.55 2993.62,-1188.42 2998.19,-1193.73"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node56" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="6318.04" cy="-1744.19" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6318.04" y="-1758.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6318.04" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6318.04" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="6318.04" y="-1725.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web_client</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_web_client -->
<g id="edge166" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4083.96,-2788.77C4438.78,-2779.96 6529.15,-2726.54 6582.04,-2689.03 6641.44,-2646.89 6826.37,-2144.28 6808.04,-2073.8"/>
<path fill="none" stroke="black" d="M6808.04,-2071.8C6801,-2040.08 6799.8,-2032.02 6794.04,-2000.03 6788.24,-1967.82 6800.66,-1866.26 6770.04,-1854.73"/>
<path fill="none" stroke="black" d="M6770.04,-1852.73C6753.13,-1846.56 6765.65,-1827.47 6751.04,-1816.96 6720.58,-1795.06 6480.83,-1764.39 6371.75,-1751.4"/>
<polygon fill="#e50505" stroke="black" points="6371.95,-1747.9 6361.61,-1750.19 6371.13,-1754.85 6371.95,-1747.9"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node59" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="6628.04" cy="-2072.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6628.04" y="-2086.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6628.04" y="-2075.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6628.04" y="-2064.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="6628.04" y="-2053.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">github</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_github -->
<g id="edge167" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4084.12,-2789.83C4386.77,-2788.41 5937.99,-2776.88 6129.04,-2689.03 6274.29,-2622.23 6238.6,-2509.2 6376.04,-2427.52 6471.67,-2370.69 6565.94,-2461.83 6618.04,-2363.53"/>
<path fill="none" stroke="black" d="M6618.04,-2361.53C6638.53,-2320.48 6634.77,-2190.35 6631.01,-2120"/>
<polygon fill="#e50505" stroke="black" points="6634.48,-2119.45 6630.43,-2109.66 6627.49,-2119.84 6634.48,-2119.45"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node60" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6695.04" cy="-1853.73" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="6695.04" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6695.04" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6695.04" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="6695.04" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">http_upload</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge168" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6580.04,-2549.5C6592.62,-2490 6609.44,-2478.86 6642.04,-2427.52 6652.9,-2410.41 6660.62,-2409.47 6670.04,-2391.52 6738.79,-2260.42 6775.89,-2221.73 6770.04,-2073.8"/>
<path fill="none" stroke="black" d="M6770.04,-2071.8C6756.95,-2009.97 6731.31,-1941.48 6713.69,-1898.29"/>
<polygon fill="#e50505" stroke="black" points="6716.88,-1896.85 6709.83,-1888.94 6710.41,-1899.52 6716.88,-1896.85"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node61" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="5764.04" cy="-1853.73" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5764.04" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5764.04" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5764.04" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="5764.04" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rsync</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge169" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5764.04,-1962.27C5761.1,-1942.32 5760.64,-1920.06 5761.09,-1900.99"/>
<polygon fill="#e50505" stroke="black" points="5764.6,-1900.87 5761.42,-1890.76 5757.6,-1900.64 5764.6,-1900.87"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node62" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="6030.04" cy="-1853.73" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6030.04" y="-1867.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6030.04" y="-1856.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6030.04" y="-1845.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="6030.04" y="-1834.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">s3</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge170" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4083.94,-2788.87C4385.13,-2781.93 5923.62,-2743.84 6006.04,-2689.03 6128.19,-2607.78 6116.44,-2534.56 6149.04,-2391.52 6154.76,-2366.4 6161.89,-2355.87 6149.04,-2333.54 6133.14,-2305.92 6108.02,-2321.52 6087.04,-2297.54 6057.25,-2263.51 6056.87,-2247.91 6048.04,-2203.56 6036.77,-2147 6032.86,-2129.44 6048.04,-2073.8"/>
<path fill="none" stroke="black" d="M6048.04,-2071.8C6055.23,-2021.63 6099.47,-2013.14 6086.04,-1964.27"/>
<path fill="none" stroke="black" d="M6086.04,-1962.27C6079.46,-1938.33 6067.06,-1913.62 6055.59,-1893.94"/>
<polygon fill="#e50505" stroke="black" points="6058.55,-1892.06 6050.41,-1885.27 6052.54,-1895.65 6058.55,-1892.06"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node63" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a0f0f" stroke="black" cx="6020.04" cy="-1963.27" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6020.04" y="-1977.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6020.04" y="-1966.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6020.04" y="-1955.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="6020.04" y="-1944.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload -->
<g id="edge171" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5992.04,-2651.26C6008.51,-2612.18 6008.98,-2308.43 5992.04,-2269.55"/>
<path fill="none" stroke="black" d="M5992.04,-2267.55C5955.95,-2189.37 5963.2,-2154.94 5992.04,-2073.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge172" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.78,-2783.42C3932.5,-2776.83 3849.79,-2766.98 3778.04,-2762.03 3638.31,-2752.38 2651.19,-2769.47 2518.04,-2726.03"/>
<path fill="none" stroke="black" d="M2518.04,-2725.03C2019.33,-2562.3 2064.14,-2190.15 1986.04,-1671.42 1969.13,-1559.1 1951.37,-1263.12 2000.04,-1160.49"/>
<path fill="none" stroke="black" d="M2000.04,-1158.49C2021.99,-1104.24 2091.29,-1107.46 2076.04,-1050.95"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge173" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3983.79,-2783.3C3932.51,-2776.61 3849.81,-2766.69 3778.04,-2762.03 3680.78,-2755.7 2111.43,-2769.18 2024.04,-2726.03"/>
<path fill="none" stroke="black" d="M2024.04,-2725.03C1995.47,-2710.92 1987.45,-2708.25 1962.04,-2689.03 1924.55,-2660.68 1928.27,-2636.13 1886.04,-2615.49 1783.2,-2565.23 1743.97,-2598.13 1631.04,-2579.49 1225.28,-2512.52 1117.16,-2515.46 725.04,-2391.52 549.92,-2336.17 460.7,-2355.16 357.04,-2203.56 338.82,-2176.92 186.04,-1772.68 186.04,-1416.57 186.04,-1416.57 186.04,-1416.57 186.04,-1305.03 186.04,-1006.21 210.97,-897.09 404.04,-669.01 438,-628.89 513.3,-647.54 498.04,-597.24"/>
<path fill="none" stroke="black" d="M498.04,-595.24C490.63,-574.35 476.99,-502.45 498.04,-495.48"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node38" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="3691.04" cy="-2885" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="3691.04" y="-2893.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3691.04" y="-2882.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3691.04" y="-2871.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exceptions</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge174" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6922.04,-2790.02C6931.5,-2779.82 6929.71,-2774.42 6936.04,-2762.03 6952.66,-2729.45 6965.34,-2724.56 6974.04,-2689.03 6981.81,-2657.28 6978.37,-2647.88 6974.04,-2615.49 6960.36,-2513.23 6937.9,-2491.65 6913.04,-2391.52 6881.5,-2264.52 6837.77,-1936.27 6784.04,-1816.96 6775.93,-1798.96 6769.57,-1796.97 6758.04,-1780.96 6693.71,-1691.66 6551.18,-1452.03 6469.04,-1378.8 6270.02,-1201.38 6154.18,-1252.09 5945.04,-1086.72 5905.39,-1055.37 5867.19,-1011.79 5841.98,-980.55"/>
<polygon fill="#f91010" stroke="black" points="5844.52,-978.11 5835.55,-972.48 5839.05,-982.48 5844.52,-978.11"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge175" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3735.68,-2883.17C4122.52,-2875.88 6893.63,-2822.63 6922.04,-2792.02"/>
<path fill="none" stroke="black" d="M6922.04,-2790.02C6952.07,-2757.65 6885.48,-2745.87 6846.04,-2726.03"/>
<path fill="none" stroke="black" d="M6846.04,-2725.03C6696.07,-2649.57 6632.95,-2729.54 6470.04,-2689.03 6346.36,-2658.27 6312.78,-2647.55 6205.04,-2579.49 6045.8,-2478.9 5916.04,-2457.89 5916.04,-2269.55 5916.04,-2269.55 5916.04,-2269.55 5916.04,-2071.8 5916.04,-1953.98 5909.32,-1914.36 5843.04,-1816.96 5798.37,-1751.32 5608.1,-1612.03 5525.53,-1553.22"/>
<polygon fill="#f91010" stroke="black" points="5527.36,-1550.22 5517.18,-1547.28 5523.3,-1555.93 5527.36,-1550.22"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge176" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2286.22,-2757.18 2809.85,-2653.7 2926.04,-2615.49 3104.41,-2556.83 3172.64,-2590.91 3328.04,-2485.5 3355.72,-2466.73 3348.07,-2445.88 3376.04,-2427.52 3424.01,-2396.03 3448.84,-2417.44 3500.04,-2391.52 3656.88,-2312.14 3813.79,-2170.58 3880.57,-2106.7"/>
<polygon fill="#f91010" stroke="black" points="3883.1,-2109.12 3887.88,-2099.66 3878.25,-2104.07 3883.1,-2109.12"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_auth -->
<g id="edge177" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C1981.76,-2687.17 1524.04,-2798.15 1524.04,-2363.53 1524.04,-2363.53 1524.04,-2363.53 1524.04,-2267.55 1524.04,-2179.8 1592.72,-2156.01 1562.04,-2073.8"/>
<path fill="none" stroke="black" d="M1562.04,-2071.8C1543.51,-2030.94 1518.47,-2035.54 1491.04,-2000.03 1456.43,-1955.24 1447.18,-1943.01 1426.04,-1890.5 1413.05,-1858.25 1404.34,-1819.88 1398.99,-1790.68"/>
<polygon fill="#f91010" stroke="black" points="1402.42,-1789.99 1397.23,-1780.75 1395.53,-1791.21 1402.42,-1789.99"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge178" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3646.39,-2883.23C3447.97,-2879.41 2645.25,-2859.99 2404.04,-2792.02"/>
<path fill="none" stroke="black" d="M2404.04,-2790.02C1869.09,-2639.28 1637.74,-2938.99 1161.04,-2653.26"/>
<path fill="none" stroke="black" d="M1161.04,-2651.26C801.27,-2373.57 836.2,-2040.83 1042.04,-1635.65"/>
<path fill="none" stroke="black" d="M1042.04,-1633.65C1049.94,-1617.47 1049.73,-1611.89 1061.04,-1597.88 1074.26,-1581.49 1091.63,-1566.05 1107.22,-1553.72"/>
<polygon fill="#f91010" stroke="black" points="1109.41,-1556.45 1115.18,-1547.56 1105.13,-1550.91 1109.41,-1556.45"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge179" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2229.94,-2742.98 2623.02,-2736.37 2797.04,-2689.03 2911.26,-2657.95 2939.04,-2647.4 3053.04,-2615.49 3111.59,-2599.09 3127.22,-2598.34 3185.04,-2579.49 3519.66,-2470.4 3601.33,-2435.68 3925.04,-2297.54 4082.61,-2230.3 4264.66,-2140.46 4349.25,-2097.99"/>
<polygon fill="#f91010" stroke="black" points="4350.99,-2101.04 4358.35,-2093.42 4347.84,-2094.78 4350.99,-2101.04"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration -->
<g id="edge180" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3731.95,-2873C3793.21,-2856.52 3908.9,-2825.41 3977.66,-2806.91"/>
<polygon fill="#f91010" stroke="black" points="3978.71,-2810.25 3987.46,-2804.28 3976.89,-2803.49 3978.71,-2810.25"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge181" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2209.16,-2739.87 2252.04,-2564.76 2252.04,-2363.53 2252.04,-2363.53 2252.04,-2363.53 2252.04,-2267.55 2252.04,-2082.19 2520.47,-1875.5 2638.04,-1816.96 2747.19,-1762.6 2800.53,-1834.61 2910.04,-1780.96 2936.96,-1767.76 2991.38,-1709.87 3025.92,-1671.27"/>
<polygon fill="#f91010" stroke="black" points="3028.93,-1673.14 3032.97,-1663.34 3023.7,-1668.49 3028.93,-1673.14"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_properties -->
<g id="edge182" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2372.89,-2781.96 2605.85,-2629.01 2635.04,-2615.49 2650.02,-2608.55 3199.51,-2491.12 3215.04,-2485.5 3268.11,-2466.29 3275.28,-2447.61 3328.04,-2427.52 3387.68,-2404.82 3416.37,-2430.32 3467.04,-2391.52 3490.58,-2373.5 3481.83,-2356.95 3500.04,-2333.54 3660.21,-2127.59 3689.7,-2043.22 3923.04,-1926.5 4012.04,-1881.97 4060.29,-1944.25 4144.04,-1890.5 4160.15,-1880.15 4153.24,-1866.87 4168.04,-1854.73"/>
<path fill="none" stroke="black" d="M4168.04,-1852.73C4181.42,-1842.13 4171.11,-1830.08 4182.04,-1816.96 4201.45,-1793.64 4220.63,-1804.27 4240.04,-1780.96 4250.96,-1767.84 4258.59,-1761.64 4254.04,-1745.19"/>
<path fill="none" stroke="black" d="M4254.04,-1743.19C4236.65,-1680.33 4181.99,-1704.93 4126.04,-1671.42 4121.69,-1668.82 4117.2,-1666.06 4112.72,-1663.27"/>
<polygon fill="#f91010" stroke="black" points="4114.52,-1660.27 4104.2,-1657.91 4110.8,-1666.19 4114.52,-1660.27"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge183" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2328.04,-2725.03C2294.67,-2668.18 2375.24,-2654.96 2428.04,-2615.49 2504.45,-2558.36 2529.36,-2547.94 2621.04,-2521.5 2763.22,-2480.5 2813.92,-2538.62 2952.04,-2485.5 3018.58,-2459.91 3041.07,-2449.87 3082.04,-2391.52 3139.42,-2309.8 3091.96,-2260.77 3144.04,-2175.57"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge184" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1986.04,-2725.03C1837.48,-2618.1 2125.41,-2098.49 2188.04,-1926.5 2227.25,-1818.81 2248.16,-1793.31 2324.04,-1707.42 2508.85,-1498.21 2541.39,-1423.53 2774.04,-1269.26 2842.3,-1223.99 2932.49,-1191.19 2986.15,-1174.06"/>
<polygon fill="#f91010" stroke="black" points="2987.25,-1177.38 2995.74,-1171.04 2985.15,-1170.71 2987.25,-1177.38"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge185" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6922.04,-2790.02C6975.62,-2734.86 6835.92,-2659.17 6692.04,-2615.49 6539.87,-2569.29 6472.97,-2660.35 6336.04,-2579.49 6221.61,-2511.92 6267.94,-2418.82 6166.04,-2333.54 6136.45,-2308.78 6113.96,-2325.18 6087.04,-2297.54 6011.65,-2220.16 5957.82,-2176.27 5992.04,-2073.8"/>
</g>
<!-- ahriman_core_util -->
<g id="node64" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="5608.04" cy="-2791.02" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5608.04" y="-2799.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5608.04" y="-2788.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5608.04" y="-2777.52" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">util</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_util -->
<g id="edge186" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3735.6,-2881.86C3993.42,-2869.49 5291.73,-2807.2 5559.63,-2794.34"/>
<polygon fill="#f91010" stroke="black" points="5559.99,-2797.83 5569.82,-2793.85 5559.66,-2790.84 5559.99,-2797.83"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_auth_settings -->
<g id="edge187" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1161.04,-2651.26C1088.48,-2604.89 1161.04,-2543.62 1161.04,-2457.51 1161.04,-2457.51 1161.04,-2457.51 1161.04,-2361.53 1161.04,-2255.9 1289.65,-2279.4 1309.04,-2175.57"/>
<path fill="none" stroke="black" d="M1309.04,-2173.57C1309.32,-2153.34 1308.93,-2130.82 1308.42,-2112.3"/>
<polygon fill="#f91010" stroke="black" points="1311.92,-2112.08 1308.12,-2102.18 1304.92,-2112.28 1311.92,-2112.08"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge188" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2388.8,-2784.41 3543.89,-2617.23 3560.04,-2615.49 3805.8,-2589.01 3876.2,-2643.18 4115.04,-2579.49 4142.31,-2572.21 4144.62,-2558.19 4172.04,-2551.5"/>
<path fill="none" stroke="black" d="M4172.04,-2549.5C4297.41,-2521.23 4330.64,-2521.45 4454.04,-2485.5 4527.46,-2464.12 4543.84,-2452.73 4616.04,-2427.52 4665.04,-2410.41 4721.43,-2391.3 4759.56,-2378.45"/>
<polygon fill="#f91010" stroke="black" points="4760.97,-2381.67 4769.33,-2375.16 4758.74,-2375.04 4760.97,-2381.67"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_report_settings -->
<g id="edge189" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2307.61,-2754.21 2468.43,-2669.39 2556.04,-2615.49 2700.55,-2526.59 2760.17,-2557.23 2926.04,-2521.5 3015.61,-2502.21 3041.48,-2512.52 3129.04,-2485.5 3210.43,-2460.4 3299.54,-2416.95 3352.57,-2389.25"/>
<polygon fill="#f91010" stroke="black" points="3354.5,-2392.19 3361.73,-2384.44 3351.25,-2386 3354.5,-2392.19"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_sign_settings -->
<g id="edge190" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2362.6,-2774.76 2358.47,-2758.02 2328.04,-2726.03"/>
<path fill="none" stroke="black" d="M2328.04,-2725.03C2265.27,-2659.03 2294.45,-2592.07 2352.04,-2521.5 2403.66,-2458.26 2487.3,-2411.03 2540.44,-2385.37"/>
<polygon fill="#f91010" stroke="black" points="2542.14,-2388.44 2549.67,-2380.98 2539.13,-2382.12 2542.14,-2388.44"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_upload_settings -->
<g id="edge191" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6846.04,-2725.03C6733.11,-2666.84 6704.85,-2647.95 6582.04,-2615.49 6456.47,-2582.3 6408.47,-2637.04 6292.04,-2579.49 6207.62,-2537.76 6137.49,-2448.6 6103.02,-2398.88"/>
<polygon fill="#f91010" stroke="black" points="6105.73,-2396.65 6097.2,-2390.37 6099.95,-2400.6 6105.73,-2396.65"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge192" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.04,-2790.02C2222.01,-2743.23 2147.34,-2822.49 1986.04,-2726.03"/>
<path fill="none" stroke="black" d="M1986.04,-2725.03C1963.76,-2711.7 1953.84,-2711.01 1940.04,-2689.03 1906.76,-2636.05 1910.04,-2614.06 1910.04,-2551.5 1910.04,-2551.5 1910.04,-2551.5 1910.04,-2173.57 1910.04,-1974.83 2199.19,-1536.56 2320.04,-1378.8 2386,-1292.69 2419.18,-1284.66 2482.04,-1196.26 2589.59,-1045 2751.37,-1005.6 2686.04,-831.87"/>
<path fill="none" stroke="black" d="M2686.04,-829.87C2674.42,-805.9 2659.85,-780.08 2647.36,-758.97"/>
<polygon fill="#f91010" stroke="black" points="2650.27,-757.02 2642.15,-750.23 2644.26,-760.61 2650.27,-757.02"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge193" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3646.4,-2883.2C3239.39,-2875.77 186.04,-2816.99 186.04,-2726.03 186.04,-2726.03 186.04,-2726.03 186.04,-2651.26 186.04,-2493.37 163.27,-2455.1 153.04,-2297.54 109.68,-1630.01 -51.17,-1403.81 224.04,-794.1 298.14,-629.93 327.05,-552.13 498.04,-495.48"/>
<path fill="none" stroke="black" d="M498.04,-493.48C535.19,-474.2 1855.59,-415.47 2126.69,-403.6"/>
<polygon fill="#f91010" stroke="black" points="2127.15,-407.08 2136.98,-403.15 2126.84,-400.09 2127.15,-407.08"/>
</g>
<!-- ahriman_core_report -->
<g id="node39" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="4208.04" cy="-1634.65" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4208.04" y="-1643.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4208.04" y="-1632.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4208.04" y="-1621.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_report&#45;&gt;ahriman_core_repository_executor -->
<g id="edge194" class="edge">
<title>ahriman_core_report&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4235.3,-1614.35C4259.35,-1595.25 4292.08,-1563.49 4302.04,-1526.11"/>
</g>
<!-- ahriman_core_report_email&#45;&gt;ahriman_core_report_report -->
<g id="edge195" class="edge">
<title>ahriman_core_report_email&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3068.02,-1697.8C3067.06,-1692.37 3066.08,-1686.82 3065.12,-1681.38"/>
<polygon fill="#7a2828" stroke="black" points="3064.58,-1698.44 3069.76,-1707.68 3071.47,-1697.22 3064.58,-1698.44"/>
<polygon fill="#7a2828" stroke="black" points="3068.49,-1680.36 3063.3,-1671.12 3061.6,-1681.58 3068.49,-1680.36"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email -->
<g id="edge197" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2862.15,-1836.46C2922.97,-1815.88 3020.26,-1782.86 3024.04,-1780.96 3028.63,-1778.65 3033.29,-1775.98 3037.83,-1773.17"/>
<polygon fill="#832020" stroke="black" points="3039.88,-1776.01 3046.38,-1767.64 3036.08,-1770.13 3039.88,-1776.01"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html -->
<g id="edge198" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2793.76,-1819.22C2782.53,-1798.66 2769.72,-1771.34 2764.04,-1745.19"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report_html -->
<g id="edge200" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3009.95,-1624.22C2960.17,-1613.22 2880.15,-1592.53 2816.04,-1561.88 2811.4,-1559.66 2806.71,-1557.05 2802.15,-1554.28"/>
<polygon fill="#8b1818" stroke="black" points="3009.28,-1627.66 3019.79,-1626.36 3010.76,-1620.82 3009.28,-1627.66"/>
<polygon fill="#8b1818" stroke="black" points="2803.9,-1551.23 2793.59,-1548.78 2800.11,-1557.13 2803.9,-1551.23"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_repository_executor -->
<g id="edge201" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3095.29,-1633.71C3245.52,-1632.72 3807.56,-1617.56 4229.04,-1452.34 4233.22,-1450.7 4237.4,-1448.68 4241.49,-1446.45"/>
<polygon fill="#8b1818" stroke="black" points="4243.39,-1449.39 4250.22,-1441.29 4239.83,-1443.37 4243.39,-1449.39"/>
</g>
<!-- ahriman_core_repository -->
<g id="node44" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="3434.04" cy="-1306.03" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="3434.04" y="-1314.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3434.04" y="-1303.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3434.04" y="-1292.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_application_application -->
<g id="edge202" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3475.92,-1300.88C3776.33,-1271.15 5600.79,-1090.57 5945.03,-1056.5"/>
<polygon fill="#f91010" stroke="black" points="5945.41,-1059.98 5955.02,-1055.51 5944.72,-1053.01 5945.41,-1059.98"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge203" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3396.94,-1291.69C3323.03,-1265.12 3157.64,-1205.65 3077.41,-1176.81"/>
<polygon fill="#f91010" stroke="black" points="3078.2,-1173.37 3067.6,-1173.28 3075.83,-1179.96 3078.2,-1173.37"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node45" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="4214.04" cy="-1525.11" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4214.04" y="-1539.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4214.04" y="-1528.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4214.04" y="-1517.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4214.04" y="-1506.11" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">cleaner</text>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_executor -->
<g id="edge204" class="edge">
<title>ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4234.25,-1492.13C4241.18,-1481.18 4249.02,-1468.78 4256.33,-1457.23"/>
<polygon fill="#b42d2d" stroke="black" points="4259.39,-1458.93 4261.78,-1448.61 4253.48,-1455.19 4259.39,-1458.93"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node49" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="4161.04" cy="-1415.57" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="4161.04" y="-1429.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4161.04" y="-1418.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4161.04" y="-1407.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4161.04" y="-1396.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_handler</text>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge205" class="edge">
<title>ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4197.7,-1490.97C4192.91,-1481.23 4187.58,-1470.44 4182.52,-1460.16"/>
<polygon fill="#b42d2d" stroke="black" points="4185.52,-1458.33 4177.96,-1450.9 4179.24,-1461.42 4185.52,-1458.33"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node48" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#932424" stroke="black" cx="4221.04" cy="-1306.03" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4221.04" y="-1320.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4221.04" y="-1309.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4221.04" y="-1298.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4221.04" y="-1287.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository -->
<g id="edge206" class="edge">
<title>ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4263.57,-1382.01C4257.54,-1371.38 4250.76,-1359.43 4244.41,-1348.24"/>
<polygon fill="#732626" stroke="black" points="4247.42,-1346.45 4239.44,-1339.48 4241.33,-1349.9 4247.42,-1346.45"/>
</g>
<!-- ahriman_core_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge207" class="edge">
<title>ahriman_core_repository_properties&#45;&gt;ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4102.35,-1609.51C4123.47,-1593.74 4151.22,-1573.02 4173.78,-1556.18"/>
<polygon fill="#732626" stroke="black" points="4175.91,-1558.95 4181.83,-1550.16 4171.72,-1553.34 4175.91,-1558.95"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_application_application -->
<g id="edge208" class="edge">
<title>ahriman_core_repository_repository&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4264.97,-1305.12C4528.03,-1305.19 5887.22,-1298.84 6001.04,-1160.49"/>
<path fill="none" stroke="black" d="M6001.04,-1158.49C6012.43,-1137.47 6012.43,-1110.58 6009.58,-1088.94"/>
<polygon fill="#932424" stroke="black" points="6012.99,-1088.13 6007.99,-1078.79 6006.08,-1089.21 6012.99,-1088.13"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge209" class="edge">
<title>ahriman_core_repository_repository&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4177.56,-1300.54C4043.06,-1286.55 3621.89,-1241.93 3274.04,-1196.26 3206.42,-1187.38 3128.41,-1175.57 3079.66,-1168"/>
<polygon fill="#932424" stroke="black" points="3080.13,-1164.53 3069.71,-1166.45 3079.05,-1171.44 3080.13,-1164.53"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge210" class="edge">
<title>ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4180.02,-1380.54C4185.65,-1370.45 4191.88,-1359.29 4197.75,-1348.77"/>
<polygon fill="#993333" stroke="black" points="4200.97,-1350.17 4202.79,-1339.73 4194.86,-1346.76 4200.97,-1350.17"/>
</g>
<!-- ahriman_core_sign -->
<g id="node50" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="3326.04" cy="-2072.8" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3326.04" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3326.04" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3326.04" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge211" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3301.14,-2050.65C3294.26,-2045.43 3286.6,-2040.16 3279.04,-2036.03 3237.94,-2013.6 3223.54,-2017.34 3180.04,-2000.03 3103.54,-1969.61 3086.5,-1957 3010.04,-1926.5 2963.81,-1908.05 2910.76,-1888.74 2871.52,-1874.8"/>
<polygon fill="#ce3b3b" stroke="black" points="2872.45,-1871.41 2861.85,-1871.37 2870.11,-1878.01 2872.45,-1871.41"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_properties -->
<g id="edge212" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3356.19,-2054.81C3413.4,-2023.47 3542.51,-1956.97 3660.04,-1926.5 3740,-1905.76 3959.11,-1932.86 4030.04,-1890.5 4046.47,-1880.68 4041.84,-1869.49 4054.04,-1854.73"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge213" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3197.04,-2057.87C3154.41,-2040.78 3084.99,-2012.53 3060.04,-2000.03 2988.71,-1964.3 2909.9,-1916.11 2861.17,-1885.22"/>
<polygon fill="#932424" stroke="black" points="2863.04,-1882.26 2852.72,-1879.85 2859.28,-1888.17 2863.04,-1882.26"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_properties -->
<g id="edge214" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3259.83,-2047.37C3300.91,-2012.97 3381.79,-1951.64 3463.04,-1926.5 3583.64,-1889.16 3920.57,-1953.41 4030.04,-1890.5 4046.64,-1880.96 4041.9,-1869.53 4054.04,-1854.73"/>
<path fill="none" stroke="black" d="M4054.04,-1852.73C4093.62,-1804.88 4088.98,-1729.03 4080.58,-1680.83"/>
<polygon fill="#932424" stroke="black" points="4084.02,-1680.17 4078.75,-1670.98 4077.14,-1681.45 4084.02,-1680.17"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge215" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M587.26,-2145.74C582.09,-2125.57 574.45,-2097.73 566.04,-2073.8"/>
<path fill="none" stroke="black" d="M566.04,-2071.8C553.55,-2036.29 538.5,-2033.39 521.04,-2000.03 482.17,-1925.82 224.04,-1390.8 224.04,-1307.03 224.04,-1307.03 224.04,-1307.03 224.04,-1232.26 224.04,-1142.3 411.58,-518.81 484.04,-465.49 564.3,-406.42 2212.11,-414.36 2273.04,-335.5"/>
<path fill="none" stroke="black" d="M2273.04,-334.5C2282.52,-321.62 2257.04,-298.95 2273.04,-298.5"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge216" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M566.04,-2071.8C501.39,-1863.72 746.7,-1867.95 894.04,-1707.42 984.2,-1609.17 1000.78,-1578.49 1099.04,-1488.34 1247.91,-1351.74 1753.74,-967.99 1896.34,-860.3"/>
<polygon fill="#b62020" stroke="black" points="1898.55,-863.01 1904.42,-854.19 1894.33,-857.42 1898.55,-863.01"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge217" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M566.04,-2071.8C491.67,-1865.41 527.82,-1793.25 428.04,-1597.88 418.82,-1579.83 407.82,-1580.59 400.04,-1561.88 356.19,-1456.43 378.91,-1620.49 366.04,-867.64 365.48,-834.96 356.71,-825.43 366.04,-794.1 378.09,-753.62 399.44,-752.48 418.04,-714.56"/>
<path fill="none" stroke="black" d="M418.04,-712.56C426.5,-693.21 425.86,-686.92 437.04,-669.01 459.2,-633.5 510.19,-637.3 498.04,-597.24"/>
</g>
<!-- ahriman_core_status -->
<g id="node53" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="3950.04" cy="-1853.73" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3950.04" y="-1862.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3950.04" y="-1851.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3950.04" y="-1840.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge218" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3986.51,-1844.97C4190.43,-1801.64 5188.75,-1589.5 5433.02,-1537.59"/>
<polygon fill="#f91010" stroke="black" points="5434.02,-1540.95 5443.08,-1535.45 5432.57,-1534.11 5434.02,-1540.95"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_properties -->
<g id="edge219" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3998.04,-1743.19C4007.66,-1718.03 4024.06,-1692.85 4038.77,-1673.19"/>
<polygon fill="#f91010" stroke="black" points="4041.65,-1675.19 4044.95,-1665.12 4036.1,-1670.93 4041.65,-1675.19"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge220" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3915.41,-1840.79C3808.28,-1803.91 3472.61,-1688.8 3193.04,-1597.88 2882.62,-1496.93 2811.51,-1445.79 2492.04,-1378.8 2421.78,-1364.07 2230.24,-1383.39 2171.04,-1342.8 2152.2,-1329.88 2081.45,-1182.68 2076.04,-1160.49"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge221" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3962.89,-1826.11C3973.07,-1804.55 3987.3,-1773.26 3998.04,-1745.19"/>
<path fill="none" stroke="black" d="M3998.04,-1743.19C4078.78,-1532.05 3827.18,-908.19 3632.04,-794.1 3483.83,-707.46 3271.05,-885.39 3254.04,-714.56"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge222" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5265.24,-1835.27C5319.98,-1804.06 5425.53,-1732.75 5450.04,-1635.65"/>
<path fill="none" stroke="black" d="M5450.04,-1633.65C5451.65,-1608.99 5460.53,-1582.73 5469.19,-1562.34"/>
<polygon fill="#931a1a" stroke="black" points="5472.42,-1563.68 5473.25,-1553.12 5466.02,-1560.85 5472.42,-1563.68"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_properties -->
<g id="edge223" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5194.73,-1844.83C5083.27,-1821.43 4742.81,-1751.36 4458.04,-1707.42 4326.63,-1687.14 4289.95,-1704 4161.04,-1671.42 4146.6,-1667.77 4131.36,-1662.42 4117.58,-1656.96"/>
<polygon fill="#931a1a" stroke="black" points="4118.87,-1653.71 4108.29,-1653.19 4116.24,-1660.19 4118.87,-1653.71"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge224" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5280.07,-1847.97C5457.84,-1830.37 6077.7,-1768.99 6264.41,-1750.5"/>
<polygon fill="#931a1a" stroke="black" points="5279.66,-1844.49 5270.05,-1848.96 5280.35,-1851.46 5279.66,-1844.49"/>
<polygon fill="#931a1a" stroke="black" points="6264.93,-1753.96 6274.53,-1749.5 6264.24,-1747 6264.93,-1753.96"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge225" class="edge">
<title>ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2994.35,-1152.49C2880.36,-1133.77 2530.03,-1071.94 2252.04,-977.18 2149.78,-942.33 2036.01,-885.7 1976.15,-854.43"/>
<polygon fill="#8b2222" stroke="black" points="1977.5,-851.18 1967.02,-849.63 1974.25,-857.38 1977.5,-851.18"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge226" class="edge">
<title>ahriman_core_status_watcher&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3046.22,-1125.2C3061.22,-1093.19 3087.48,-1045.09 3122.04,-1013.18 3147.74,-989.45 3170.48,-1004.74 3192.04,-977.18 3265.93,-882.72 3262.83,-834.17 3254.04,-714.56"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application -->
<g id="edge228" class="edge">
<title>ahriman_core_tree&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6469.14,-2145.9C6440.48,-2029.93 6333.13,-1586.13 6354.04,-1526.11"/>
</g>
<!-- ahriman_core_upload -->
<g id="node58" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="4302.04" cy="-1634.65" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4302.04" y="-1643.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4302.04" y="-1632.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4302.04" y="-1621.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_upload&#45;&gt;ahriman_core_repository_executor -->
<g id="edge229" class="edge">
<title>ahriman_core_upload&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4298.15,-1605.74C4296.01,-1583.72 4295.02,-1552.45 4302.04,-1526.11"/>
</g>
<!-- ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload -->
<g id="edge230" class="edge">
<title>ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6589.88,-2069.22C6480.48,-2061.45 6167.48,-2036.56 6072.04,-2000.03 6067.17,-1998.17 6062.32,-1995.77 6057.65,-1993.09"/>
<polygon fill="#822b2b" stroke="black" points="6059.26,-1989.97 6048.92,-1987.67 6055.57,-1995.92 6059.26,-1989.97"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github -->
<g id="edge231" class="edge">
<title>ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6684.25,-1889.68C6672.66,-1927.23 6654.21,-1986.99 6641.64,-2027.74"/>
<polygon fill="#913030" stroke="black" points="6638.26,-2026.82 6638.65,-2037.41 6644.95,-2028.88 6638.26,-2026.82"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_repository_executor -->
<g id="edge234" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6003.54,-1929.91C5953.04,-1835.68 5790.04,-1565.65 5562.04,-1526.11"/>
<path fill="none" stroke="black" d="M5562.04,-1524.11C5544.25,-1521.34 5558.3,-1497.87 5543.04,-1488.34 5493.15,-1457.19 4543.53,-1458.46 4485.04,-1452.34 4433.36,-1446.93 4375,-1436.15 4334.16,-1427.83"/>
<polygon fill="#8a0f0f" stroke="black" points="4334.67,-1424.37 4324.17,-1425.78 4333.26,-1431.22 4334.67,-1424.37"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge235" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6057.77,-1956.25C6170.47,-1938.3 6505.03,-1885 6638.82,-1863.68"/>
<polygon fill="#8a0f0f" stroke="black" points="6639.54,-1867.11 6648.86,-1862.08 6638.44,-1860.2 6639.54,-1867.11"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge236" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5975.94,-1943.74C5928.95,-1924 5855.01,-1892.94 5808.05,-1873.22"/>
<polygon fill="#8a0f0f" stroke="black" points="5974.67,-1947 5985.25,-1947.65 5977.38,-1940.55 5974.67,-1947"/>
<polygon fill="#8a0f0f" stroke="black" points="5809.33,-1869.96 5798.75,-1869.31 5806.62,-1876.41 5809.33,-1869.96"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge237" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6024.3,-1916.42C6024.79,-1911.11 6025.3,-1905.7 6025.79,-1900.39"/>
<polygon fill="#8a0f0f" stroke="black" points="6020.81,-1916.18 6023.37,-1926.46 6027.78,-1916.82 6020.81,-1916.18"/>
<polygon fill="#8a0f0f" stroke="black" points="6029.28,-1900.66 6026.72,-1890.38 6022.31,-1900.01 6029.28,-1900.66"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application -->
<g id="edge238" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5646.38,-2789.07C5899.17,-2782.69 7321.89,-2744.5 7506.04,-2689.03 7684.03,-2635.41 7744.09,-2568.8 7800.04,-2391.52 7946.11,-1928.64 7574.67,-1779.15 7186.04,-1488.34 7011.77,-1357.93 6943.1,-1365.83 6748.04,-1269.26 6649.57,-1220.51 6616.38,-1223.03 6526.04,-1160.49"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge239" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5646.25,-2789.35C5818.92,-2786.09 6518.28,-2770.16 6526.04,-2726.03"/>
<path fill="none" stroke="black" d="M6526.04,-2725.03C6533.02,-2685.28 6387.32,-2698.26 6348.04,-2689.03 6302.34,-2678.28 5972.17,-2613.7 5940.04,-2579.49 5891.95,-2528.29 5878.04,-2339.79 5878.04,-2269.55 5878.04,-2269.55 5878.04,-2269.55 5878.04,-2071.8 5878.04,-2013.25 5854.1,-1856.64 5811.04,-1816.96 5743.66,-1754.86 5690.16,-1821.6 5608.04,-1780.96 5522.53,-1738.64 5442.28,-1730.74 5450.04,-1635.65"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge240" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.78,-2790.16C5354.24,-2790.74 4296.62,-2790.25 4168.04,-2726.03 4111.11,-2697.59 4128.33,-2653.14 4077.04,-2615.49 4042.64,-2590.24 4016.8,-2611 3988.04,-2579.49 3861.6,-2440.99 3867.79,-2363.09 3866.04,-2175.57"/>
<path fill="none" stroke="black" d="M3866.04,-2173.57C3865.74,-2151.64 3875.24,-2129.43 3885.87,-2111.56"/>
<polygon fill="#db0505" stroke="black" points="3889.12,-2112.96 3891.48,-2102.63 3883.2,-2109.24 3889.12,-2112.96"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge241" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6526.04,-2725.03C6527.48,-2716.83 6528.17,-2708.02 6528.4,-2699.47"/>
<polygon fill="#db0505" stroke="black" points="6531.9,-2699.27 6528.47,-2689.25 6524.9,-2699.22 6531.9,-2699.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge242" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.81,-2789.66C5368.34,-2787.25 4439.04,-2769.86 4439.04,-2653.26 4439.04,-2653.26 4439.04,-2653.26 4439.04,-2549.5 4439.04,-2381.11 4437.81,-2332.99 4378.04,-2175.57"/>
<path fill="none" stroke="black" d="M4378.04,-2173.57C4371.66,-2155.81 4373.93,-2135.47 4378.74,-2117.81"/>
<polygon fill="#db0505" stroke="black" points="4382.24,-2118.34 4381.82,-2107.76 4375.54,-2116.29 4382.24,-2118.34"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge243" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4030.04,-2725.03C3945.96,-2707.64 3378.8,-2464.16 3333.04,-2391.52 3248.28,-2257.01 3455.45,-2172 3373.04,-2036.03 3355.11,-2006.46 3331.75,-2020.73 3304.04,-2000.03 3249.75,-1959.5 3243.4,-1940.81 3198.04,-1890.5 3165.48,-1854.38 3129.9,-1811.6 3105.61,-1781.85"/>
<polygon fill="#db0505" stroke="black" points="3108.1,-1779.36 3099.07,-1773.82 3102.67,-1783.78 3108.1,-1779.36"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge244" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.87,-2789.04C5308.6,-2782.25 3788.52,-2740.72 3590.04,-2689.03 3372.6,-2632.4 2670.04,-2494.24 2670.04,-2269.55 2670.04,-2269.55 2670.04,-2269.55 2670.04,-2173.57 2670.04,-2079.93 2631.33,-2033.8 2694.04,-1964.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_properties -->
<g id="edge245" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.54,-2789.9C5434.61,-2789 4970.77,-2781.76 4593.04,-2726.03 4521.69,-2715.5 4505.02,-2706.47 4435.04,-2689.03 4411.95,-2683.27 4035.55,-2598.34 4021.04,-2579.49 3988.49,-2537.21 4064.02,-2322.55 4334.04,-1926.5 4357.78,-1891.67 4377.43,-1892.55 4396.04,-1854.73"/>
<path fill="none" stroke="black" d="M4396.04,-1852.73C4407.95,-1829.42 4458.22,-1767.18 4444.04,-1745.19"/>
<path fill="none" stroke="black" d="M4444.04,-1743.19C4405.49,-1683.4 4357.42,-1723.08 4288.04,-1707.42 4216.09,-1691.18 4194.15,-1699.7 4126.04,-1671.42 4121.23,-1669.42 4116.38,-1667.02 4111.65,-1664.42"/>
<polygon fill="#db0505" stroke="black" points="4113.15,-1661.24 4102.75,-1659.22 4109.62,-1667.28 4113.15,-1661.24"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge246" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.89,-2789.13C5393.04,-2784.62 4658.67,-2761.62 4590.04,-2689.03 4390.47,-2477.95 4582.96,-2325.77 4562.04,-2036.03 4542.1,-1760.02 4732.77,-1564.73 4499.04,-1416.57"/>
<path fill="none" stroke="black" d="M4499.04,-1414.57C4426.32,-1368.47 4330.7,-1336.87 4272.66,-1320.39"/>
<polygon fill="#db0505" stroke="black" points="4273.55,-1317.01 4262.98,-1317.69 4271.67,-1323.75 4273.55,-1317.01"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge247" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.72,-2789.97C5358.92,-2789.49 4338.73,-2784.13 4030.04,-2726.03"/>
<path fill="none" stroke="black" d="M4030.04,-2725.03C3725.83,-2667.77 3627.8,-2665.6 3376.04,-2485.5 3256.79,-2400.2 3235.55,-2208.41 3232.28,-2120.02"/>
<polygon fill="#db0505" stroke="black" points="3235.77,-2119.66 3231.96,-2109.77 3228.77,-2119.87 3235.77,-2119.66"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge248" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5646.42,-2789.72C5848.14,-2787.96 6780.79,-2777.1 6898.04,-2726.03 6936.99,-2709.06 6958.37,-2695.71 6960.04,-2653.26"/>
<path fill="none" stroke="black" d="M6960.04,-2651.26C6985.28,-2589.9 6835.23,-2134.32 6808.04,-2073.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge249" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5646.3,-2789.15C5799.16,-2785.41 6366.23,-2768.88 6540.04,-2726.03 6613.54,-2707.91 6694.04,-2728.96 6694.04,-2653.26 6694.04,-2653.26 6694.04,-2653.26 6694.04,-2549.5 6694.04,-2460.21 6579.95,-2444.29 6618.04,-2363.53"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge250" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6770.04,-2725.03C6827.76,-2691.52 6805.82,-2646.22 6807.04,-2579.49 6811.15,-2354.18 6827.81,-2291.62 6770.04,-2073.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge251" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5645.77,-2786.24C5736.27,-2776.33 5961.5,-2746.28 6006.04,-2689.03 6026.11,-2663.23 6024.99,-2642.11 6006.04,-2615.49 5977.67,-2575.64 5934.23,-2616.31 5902.04,-2579.49 5893.09,-2569.26 5853.47,-2323.52 5778.04,-1926.5 5776.42,-1917.98 5774.67,-1908.9 5772.97,-1900.17"/>
<polygon fill="#db0505" stroke="black" points="5776.36,-1899.27 5771.01,-1890.12 5769.49,-1900.61 5776.36,-1899.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge252" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5646.31,-2790.14C5836.43,-2790.45 6673.88,-2788.25 6770.04,-2726.03"/>
<path fill="none" stroke="black" d="M6770.04,-2725.03C6816.45,-2694.99 6801.11,-2179.49 6675.04,-2036.03 6594.59,-1944.49 6213.7,-1881.34 6078.11,-1861.43"/>
<polygon fill="#db0505" stroke="black" points="6078.42,-1857.94 6068.02,-1859.96 6077.41,-1864.86 6078.42,-1857.94"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge253" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5688.04,-2651.26C5659.88,-2643.08 5672.24,-2549.66 5664.04,-2521.5 5651.43,-2478.25 5660.6,-2456.42 5626.04,-2427.52 5589.08,-2396.62 5456.22,-2377.8 5378.25,-2369.17"/>
<polygon fill="#db0505" stroke="black" points="5378.41,-2365.67 5368.09,-2368.07 5377.65,-2372.63 5378.41,-2365.67"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge254" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5632.81,-2768.92C5671.66,-2734.2 5737.63,-2667.41 5688.04,-2653.26"/>
<path fill="none" stroke="black" d="M5688.04,-2651.26C5677.86,-2635.04 5680.66,-2624.98 5664.04,-2615.49 5542.63,-2546.21 5170.66,-2617.14 5036.04,-2579.49 4934.3,-2551.04 4886.48,-2548.04 4832.04,-2457.51"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge255" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6960.04,-2651.26C6965.81,-2619.28 6970.16,-2611.75 6974.04,-2579.49 6981.47,-2517.52 6983.47,-2444.94 6983.95,-2401.67"/>
<polygon fill="#db0505" stroke="black" points="6987.45,-2401.63 6984.04,-2391.59 6980.45,-2401.56 6987.45,-2401.63"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_web_views_index -->
<g id="edge256" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5569.72,-2788.79C5388.21,-2782.94 4596.59,-2756.81 3948.04,-2726.03 3656.35,-2712.18 3582.1,-2722.8 3292.04,-2689.03 3103.96,-2667.13 1783.08,-2476.84 1614.04,-2391.52 1559.88,-2364.18 1554.17,-2343.9 1515.04,-2297.54 1482.6,-2259.11 1477.52,-2246.91 1452.04,-2203.56 1428.27,-2163.12 1424.78,-2151.64 1404.04,-2109.57 1388.03,-2077.11 1385.42,-2068.31 1369.04,-2036.03 1302.56,-1905.04 1212.04,-1892.08 1212.04,-1745.19 1212.04,-1745.19 1212.04,-1745.19 1212.04,-1633.65 1212.04,-1434.04 1278.67,-1392.71 1314.04,-1196.26 1322.73,-1147.96 1322.43,-1135.48 1328.04,-1086.72 1334.53,-1030.17 1313.5,-871.85 1354.04,-831.87"/>
</g>
<!-- ahriman_models -->
<g id="node65" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="2989.04" cy="-2362.53" rx="50.75" ry="18"/>
<text text-anchor="middle" x="2989.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge257" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2940.97,-2356.57C2875.48,-2350.04 2754.54,-2338.77 2651.04,-2333.54 2542.05,-2328.03 787.08,-2341.13 687.04,-2297.54 671.19,-2290.64 675.37,-2277.53 660.04,-2269.55"/>
<path fill="none" stroke="black" d="M660.04,-2267.55C645.5,-2259.98 649.34,-2249.12 636.04,-2239.56 601.39,-2214.65 577.32,-2233.62 547.04,-2203.56 419.05,-2076.5 298.01,-1623.11 240.04,-1452.34 169.22,-1243.75 140.19,-1193.59 99.04,-977.18 77.15,-862.08 76.04,-831.73 76.04,-714.56 76.04,-714.56 76.04,-714.56 76.04,-595.24 76.04,-509.13 25.87,-471.48 76.04,-401.5"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application -->
<g id="edge258" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3037.11,-2356.57C3103.55,-2349.96 3227.25,-2338.51 3333.04,-2333.54 3411.46,-2329.85 6089.9,-2334.74 6159.04,-2297.54 6172.28,-2290.42 6169.58,-2281.98 6178.04,-2269.55"/>
<path fill="none" stroke="black" d="M6178.04,-2267.55C6207.23,-2224.62 6118.34,-2226 6106.04,-2175.57"/>
<path fill="none" stroke="black" d="M6106.04,-2173.57C6080,-2066.85 6108.42,-2036.02 6100.04,-1926.5 6073.83,-1584.22 5837.44,-1462.28 6001.04,-1160.49"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge259" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3182.04,-2267.55C3194.22,-2260.84 3185.46,-2248.59 3196.04,-2239.56 3236.45,-2205.07 3259.72,-2220.61 3310.04,-2203.56 3381.67,-2179.28 3396.98,-2165.17 3470.04,-2145.57 3558.12,-2121.95 3587.17,-2142.94 3672.04,-2109.57 3728.15,-2087.51 3730.32,-2059.07 3786.04,-2036.03 3856.61,-2006.86 3879.57,-2016.95 3954.04,-2000.03 4004.85,-1988.49 4364.13,-1915.14 4410.04,-1890.5 4452.3,-1867.81 4452.74,-1848.32 4489.04,-1816.96 4862.27,-1494.41 4946.07,-1398.56 5355.04,-1122.72 5409.11,-1086.25 5424.97,-1080.66 5483.04,-1050.95"/>
<path fill="none" stroke="black" d="M5483.04,-1048.95C5574.16,-1001.5 5690.32,-969.46 5757.42,-953.42"/>
<polygon fill="#f91010" stroke="black" points="5758.43,-956.78 5767.36,-951.07 5756.82,-949.96 5758.43,-956.78"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge260" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6182.04,-2173.57C6223.06,-2051.48 6222.89,-2017.54 6244.04,-1890.5 6257.48,-1809.71 6221.96,-1777.07 6265.04,-1707.42 6374.54,-1530.38 6950.82,-1379.26 7050.04,-1196.26 7120.61,-1066.09 6943.88,-921.11 6857.85,-860.72"/>
<polygon fill="#f91010" stroke="black" points="6859.78,-857.79 6849.57,-854.97 6855.79,-863.54 6859.78,-857.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge261" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3019.55,-2348.04C3057.96,-2330.82 3125.73,-2299.64 3182.04,-2269.55"/>
<path fill="none" stroke="black" d="M3182.04,-2267.55C3194.3,-2260.99 3187.18,-2250.28 3196.04,-2239.56 3212.8,-2219.27 3222.64,-2220.17 3243.04,-2203.56 3273.57,-2178.69 3273.95,-2161.34 3310.04,-2145.57 3442.8,-2087.55 3514.64,-2191.65 3634.04,-2109.57 3664.35,-2088.73 3642.71,-2058.25 3672.04,-2036.03 3735.33,-1988.08 3773.98,-2031.14 3847.04,-2000.03 3900.13,-1977.43 3900.11,-1947.03 3954.04,-1926.5 4073.35,-1881.05 4121.72,-1940.86 4239.04,-1890.5 4309.72,-1860.15 4317.45,-1834.12 4373.04,-1780.96 4734.73,-1435.03 4646.57,-1155.57 5079.04,-903.64 5169.2,-851.12 5211.42,-898.69 5311.04,-867.64 5317.03,-865.78 5323.14,-863.5 5329.16,-861"/>
<polygon fill="#f91010" stroke="black" points="5330.75,-864.13 5338.51,-856.92 5327.95,-857.71 5330.75,-864.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge262" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3030.04,-2173.57C3032.14,-2128.43 3080.31,-2144.45 3109.04,-2109.57 3120.48,-2095.68 3116.98,-2088.01 3128.04,-2073.8"/>
<path fill="none" stroke="black" d="M3128.04,-2071.8C3159.6,-2031.23 3253.86,-1198.89 3288.04,-1160.49"/>
<path fill="none" stroke="black" d="M3288.04,-1158.49C3324.11,-1100.44 3368.58,-1126.67 3424.04,-1086.72 3499.87,-1032.1 3551.92,-1031.71 3576.04,-941.41"/>
<path fill="none" stroke="black" d="M3576.04,-939.41C3580.18,-919.42 3580.79,-896.89 3580.12,-877.63"/>
<polygon fill="#f91010" stroke="black" points="3583.61,-877.43 3579.65,-867.6 3576.62,-877.76 3583.61,-877.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge263" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6106.04,-2173.57C6098.94,-2141.17 6241.17,-1621.9 6264.04,-1597.88 6297.77,-1562.45 6330.65,-1593.42 6368.04,-1561.88 6383.07,-1549.2 6719.5,-958.07 6709.04,-941.41"/>
<path fill="none" stroke="black" d="M6709.04,-939.41C6652.1,-856.39 6474.59,-900.66 6386.04,-867.64 6381.78,-866.06 6377.51,-864.1 6373.34,-861.92"/>
<polygon fill="#f91010" stroke="black" points="6374.84,-858.74 6364.42,-856.85 6371.39,-864.83 6374.84,-858.74"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge264" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3128.04,-2071.8C3138.61,-2058.4 3131.56,-2049.51 3142.04,-2036.03 3175.61,-1992.84 3212.91,-2010.57 3242.04,-1964.27"/>
<path fill="none" stroke="black" d="M3242.04,-1962.27C3251.13,-1947.81 3249.28,-1942.17 3256.04,-1926.5 3383.86,-1629.9 3337.2,-1497.17 3566.04,-1269.26 3603.45,-1232.01 4234.37,-933.13 4354.04,-903.64 4663.84,-827.32 4764.39,-955.79 5071.04,-867.64 5076.39,-866.11 5081.78,-864.05 5087.04,-861.69"/>
<polygon fill="#f91010" stroke="black" points="5088.87,-864.7 5096.34,-857.18 5085.81,-858.4 5088.87,-864.7"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_user -->
<g id="edge265" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3620.04,-2071.8C3637.15,-2063.23 3629.02,-2047.91 3644.04,-2036.03 3679.77,-2007.76 3697.51,-2016.41 3740.04,-2000.03 3822.99,-1968.09 3840.09,-1949.19 3926.04,-1926.5 4037.13,-1897.17 4077.29,-1937.72 4182.04,-1890.5 4227.88,-1869.82 4227.56,-1846.8 4268.04,-1816.96 4292.15,-1799.17 4302.07,-1800.2 4325.04,-1780.96 4358.92,-1752.55 4361.08,-1738.99 4392.04,-1707.42 4408.33,-1690.81 4415.34,-1689.45 4430.04,-1671.42 4524.94,-1555.02 4518.55,-1505.6 4599.04,-1378.8 4620.15,-1345.54 4644.49,-1345.87 4651.04,-1307.03"/>
<path fill="none" stroke="black" d="M4651.04,-1305.03C4668.89,-1193.53 4575.83,-1135.19 4651.04,-1050.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge266" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3026.51,-2350.22C3068.03,-2337.61 3136.94,-2316.52 3196.04,-2297.54 3399.43,-2232.22 3447.46,-2207.08 3652.04,-2145.57 3711.09,-2127.82 3731.91,-2139.13 3786.04,-2109.57 3828.71,-2086.27 3822.45,-2055.44 3867.04,-2036.03 4042.48,-1959.69 4114.92,-2061.73 4296.04,-2000.03 4353.11,-1980.59 4356.13,-1953.5 4410.04,-1926.5 4787.44,-1737.43 5276.78,-1587.36 5435.15,-1541"/>
<polygon fill="#f91010" stroke="black" points="5436.48,-1544.26 5445.1,-1538.1 5434.52,-1537.54 5436.48,-1544.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge267" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3038.45,-2358.22C3119.99,-2351.87 3287.33,-2335.16 3424.04,-2297.54 3529.71,-2268.46 3551.7,-2247.67 3652.04,-2203.56 3707.73,-2179.07 3720.41,-2170.21 3776.04,-2145.57 3813.92,-2128.79 3825.66,-2129.42 3862.04,-2109.57 3866.55,-2107.11 3871.16,-2104.35 3875.67,-2101.48"/>
<polygon fill="#f91010" stroke="black" points="3877.75,-2104.3 3884.18,-2095.89 3873.9,-2098.45 3877.75,-2104.3"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge268" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1638.04,-2267.55C1619.15,-2256.03 1603.97,-2197.33 1600.04,-2175.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge269" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2940.95,-2356.82C2875.45,-2350.58 2754.49,-2339.63 2651.04,-2333.54 2195.1,-2306.68 2075.17,-2368.79 1624.04,-2297.54 1473.83,-2273.82 1423.65,-2284.7 1295.04,-2203.56 1247.9,-2173.82 1235.95,-2159.91 1212.04,-2109.57 1183.95,-2050.45 1198.73,-2028.84 1188.04,-1964.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge270" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2940.65,-2357.12C2875.06,-2351.23 2754.27,-2340.71 2651.04,-2333.54 2538.53,-2325.72 1734.33,-2328.26 1638.04,-2269.55"/>
<path fill="none" stroke="black" d="M1638.04,-2267.55C1595.21,-2241.44 1661.83,-2368.31 1350.04,-1890.5 1276.44,-1777.71 1202.23,-1636.74 1167.06,-1567.88"/>
<polygon fill="#f91010" stroke="black" points="1170.02,-1565.97 1162.36,-1558.65 1163.78,-1569.15 1170.02,-1565.97"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge271" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3037.73,-2357.41C3104.37,-2351.8 3227.73,-2341.55 3333.04,-2333.54 3559.17,-2316.34 3622.91,-2355.99 3842.04,-2297.54 3991.84,-2257.58 4010.37,-2198.67 4156.04,-2145.57 4217.21,-2123.28 4235.79,-2128.66 4298.04,-2109.57 4313.66,-2104.78 4330.45,-2098.98 4345.68,-2093.45"/>
<polygon fill="#f91010" stroke="black" points="4347.25,-2096.6 4355.43,-2089.87 4344.84,-2090.03 4347.25,-2096.6"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge272" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2996.81,-2344.67C3005.23,-2326.3 3018.93,-2295.98 3030.04,-2269.55"/>
<path fill="none" stroke="black" d="M3030.04,-2267.55C3045.87,-2229.86 3029.64,-2216.44 3030.04,-2175.57"/>
<path fill="none" stroke="black" d="M3030.04,-2173.57C3030.47,-2129.75 2973.39,-2149.36 2955.04,-2109.57 2941.35,-2079.9 2947.36,-2067.81 2955.04,-2036.03 2976.3,-1948 3035.1,-1944.36 3048.04,-1854.73"/>
<path fill="none" stroke="black" d="M3048.04,-1852.73C3053.06,-1831.97 3058.97,-1809.05 3064.07,-1789.73"/>
<polygon fill="#f91010" stroke="black" points="3067.47,-1790.54 3066.65,-1779.98 3060.71,-1788.75 3067.47,-1790.54"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge273" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2784.04,-2173.57C2755.39,-2082.1 2704.91,-2056.2 2732.04,-1964.27"/>
<path fill="none" stroke="black" d="M2732.04,-1962.27C2740.71,-1897.71 2741.01,-1881.31 2751.04,-1816.96 2756.03,-1784.93 2770.92,-1776.86 2764.04,-1745.19"/>
<path fill="none" stroke="black" d="M2764.04,-1743.19C2750.39,-1685.29 2753.57,-1616.26 2758.02,-1571.84"/>
<polygon fill="#f91010" stroke="black" points="2761.53,-1571.96 2759.1,-1561.65 2754.56,-1571.22 2761.53,-1571.96"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge274" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2732.04,-1962.27C2739.96,-1935.43 2758.27,-1910.27 2775.59,-1891.05"/>
<polygon fill="#f91010" stroke="black" points="2778.16,-1893.42 2782.41,-1883.71 2773.04,-1888.66 2778.16,-1893.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge275" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2784.04,-2173.57C2754.46,-2070.08 2939.8,-1826.74 3010.04,-1745.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge276" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3106.04,-2173.57C3159.36,-2125.56 3335.65,-2126.47 3373.04,-2109.57 3706.19,-1959.07 3681.36,-1742.66 4017.04,-1597.88 4136.98,-1546.15 4270.31,-1652.82 4302.04,-1526.11"/>
<path fill="none" stroke="black" d="M4302.04,-1524.11C4307.36,-1503.34 4304.1,-1479.97 4298.78,-1460.33"/>
<polygon fill="#f91010" stroke="black" points="4302.14,-1459.33 4295.95,-1450.73 4295.42,-1461.31 4302.14,-1459.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_properties -->
<g id="edge277" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3004.68,-2345.29C3045.7,-2303.85 3161.56,-2194.03 3282.04,-2145.57 3396.81,-2099.41 3440.87,-2149.25 3558.04,-2109.57 3588.17,-2099.37 3591.59,-2088.05 3620.04,-2073.8"/>
<path fill="none" stroke="black" d="M3620.04,-2071.8C3637.04,-2063.01 3631.26,-2050.29 3644.04,-2036.03 3694.47,-1979.77 3704.78,-1956.68 3774.04,-1926.5 3894.72,-1873.9 3967.71,-1975.73 4068.04,-1890.5 4130.99,-1837.02 4116.28,-1788.41 4100.04,-1707.42 4098.09,-1697.69 4094.78,-1687.63 4091.07,-1678.24"/>
<polygon fill="#f91010" stroke="black" points="4094.17,-1676.6 4087.08,-1668.73 4087.72,-1679.3 4094.17,-1676.6"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge278" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3242.04,-1962.27C3253.66,-1949.77 3245.73,-1940.1 3256.04,-1926.5 3402.37,-1733.38 3490.29,-1733.57 3691.04,-1597.88 3769.25,-1545.01 3790.69,-1534.51 3873.04,-1488.34 3979.59,-1428.59 4107.61,-1363.59 4174.75,-1330.01"/>
<polygon fill="#f91010" stroke="black" points="4176.43,-1333.08 4183.81,-1325.48 4173.3,-1326.82 4176.43,-1333.08"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge279" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3030.04,-2267.55C3050.58,-2218.66 3066.61,-2211.03 3106.04,-2175.57"/>
<path fill="none" stroke="black" d="M3106.04,-2173.57C3158.45,-2126.43 3133.91,-2084.56 3185.04,-2036.03 3210.7,-2011.68 3225.91,-2018.58 3256.04,-2000.03 3303.02,-1971.12 3308.03,-1953.68 3356.04,-1926.5 3392.09,-1906.08 3407.13,-1912.82 3442.04,-1890.5 3543.57,-1825.58 3544.38,-1778.03 3642.04,-1707.42 3800.15,-1593.09 4007.52,-1489.12 4105.36,-1442.47"/>
<polygon fill="#f91010" stroke="black" points="4106.95,-1445.59 4114.48,-1438.14 4103.94,-1439.27 4106.95,-1445.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge280" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3106.04,-2173.57C3118.22,-2162.61 3117.91,-2156.59 3130.04,-2145.57 3135.73,-2140.4 3166.54,-2118.85 3192.82,-2100.7"/>
<polygon fill="#f91010" stroke="black" points="3194.91,-2103.51 3201.16,-2094.96 3190.94,-2097.75 3194.91,-2103.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge281" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M660.04,-2267.55C653.71,-2264.1 632.96,-2234.39 616.4,-2209.66"/>
<polygon fill="#f91010" stroke="black" points="619.2,-2207.55 610.74,-2201.17 613.37,-2211.43 619.2,-2207.55"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge282" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3039.33,-2359.75C3133.64,-2355.46 3342.87,-2341.42 3513.04,-2297.54 3687.97,-2252.43 3719.24,-2204.44 3890.04,-2145.57 4056.21,-2088.3 4099.73,-2079.5 4270.04,-2036.03 4487.1,-1980.64 4541.85,-1967.77 4762.04,-1926.5 4915.46,-1897.74 5098.69,-1872.3 5183.97,-1860.97"/>
<polygon fill="#f91010" stroke="black" points="5184.66,-1864.41 5194.12,-1859.63 5183.75,-1857.47 5184.66,-1864.41"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge283" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2632.04,-2071.8C2563.11,-1960.37 2660.93,-1606.74 2717.04,-1488.34 2719.38,-1483.39 2846.34,-1346.84 2850.04,-1342.8 2894.49,-1294.13 2901.72,-1278.11 2950.04,-1233.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge284" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6178.04,-2267.55C6201.04,-2233.71 6171.01,-2214.97 6182.04,-2175.57"/>
<path fill="none" stroke="black" d="M6182.04,-2173.57C6224.81,-2020.69 6314.84,-2010.95 6343.04,-1854.73"/>
<path fill="none" stroke="black" d="M6343.04,-1852.73C6342.71,-1831.51 6337.99,-1808.53 6332.74,-1789.29"/>
<polygon fill="#f91010" stroke="black" points="6336.08,-1788.24 6329.97,-1779.59 6329.35,-1790.17 6336.08,-1788.24"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge285" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3037.11,-2356.57C3103.55,-2349.95 3227.24,-2338.49 3333.04,-2333.54 3495.93,-2325.92 6108.83,-2332.83 6268.04,-2297.54 6297.55,-2291 6301.2,-2278.63 6330.04,-2269.55"/>
<path fill="none" stroke="black" d="M6330.04,-2267.55C6345.67,-2262.62 6341.22,-2249.77 6354.04,-2239.56 6378.07,-2220.42 6408.7,-2204.37 6433.26,-2193.14"/>
<polygon fill="#f91010" stroke="black" points="6434.98,-2196.2 6442.68,-2188.92 6432.13,-2189.81 6434.98,-2196.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge286" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3037.11,-2356.57C3103.55,-2349.96 3227.25,-2338.5 3333.04,-2333.54 3412.37,-2329.82 6118.65,-2327.91 6192.04,-2297.54 6281.47,-2260.52 6263.64,-2192.96 6348.04,-2145.57 6422.54,-2103.74 6521.81,-2085.81 6579.94,-2078.48"/>
<polygon fill="#f91010" stroke="black" points="6580.44,-2081.95 6589.95,-2077.28 6579.6,-2075 6580.44,-2081.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge287" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3038.22,-2357.91C3164.78,-2348.37 3499.39,-2321.59 3608.04,-2297.54 3805.53,-2253.82 3845.75,-2211.33 4037.04,-2145.57 4086.88,-2128.44 4100.31,-2127.05 4150.04,-2109.57 4235.85,-2079.41 4251.89,-2054.12 4341.04,-2036.03 4579.64,-1987.62 5198.71,-2054.34 5436.04,-2000.03 5443.5,-1998.33 5632.92,-1913.55 5720.44,-1874.3"/>
<polygon fill="#f91010" stroke="black" points="5721.9,-1877.48 5729.59,-1870.19 5719.03,-1871.09 5721.9,-1877.48"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge288" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3037.72,-2357.25C3104.35,-2351.47 3227.69,-2341.03 3333.04,-2333.54 3595.97,-2314.85 3662.73,-2323.54 3925.04,-2297.54 4112.99,-2278.91 4157.93,-2256.56 4346.04,-2239.56 4529.68,-2222.96 4994.9,-2242.97 5175.04,-2203.56 5185.83,-2201.2 5812.1,-1944.21 5985.79,-1872.9"/>
<polygon fill="#f91010" stroke="black" points="5987.23,-1876.09 5995.15,-1869.05 5984.57,-1869.61 5987.23,-1876.09"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge289" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3037.42,-2357.06C3103.97,-2351.03 3227.49,-2340.28 3333.04,-2333.54 3677.15,-2311.55 3764.47,-2326.85 4108.04,-2297.54 4315.99,-2279.8 4366.1,-2257.47 4574.04,-2239.56 4905.64,-2210.99 4995.15,-2266.15 5322.04,-2203.56 5578.21,-2154.51 5868.42,-2032.11 5976.48,-1984.07"/>
<polygon fill="#f91010" stroke="black" points="5978.06,-1987.2 5985.76,-1979.93 5975.2,-1980.81 5978.06,-1987.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge290" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M660.04,-2267.55C635.96,-2254.41 646.09,-2172.54 641.04,-2145.57 561.54,-1721.03 479.53,-1625.68 433.04,-1196.26 424.27,-1115.27 402.96,-1084.66 442.04,-1013.18 467.25,-967.06 530.44,-993.68 536.04,-941.41"/>
<path fill="none" stroke="black" d="M536.04,-939.41C539.19,-876.37 523.68,-804.63 511.52,-759.49"/>
<polygon fill="#f91010" stroke="black" points="514.86,-758.43 508.83,-749.71 508.11,-760.28 514.86,-758.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge291" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2586.04,-2267.55C2469.36,-2232.83 2436.59,-2230.66 2328.04,-2175.57"/>
<path fill="none" stroke="black" d="M2328.04,-2173.57C2284.27,-2151.35 2265.46,-2150.28 2238.04,-2109.57 2182.12,-2026.58 2205.06,-1988.74 2186.04,-1890.5 2123.65,-1568.37 2111.24,-1486.71 2076.04,-1160.49"/>
<path fill="none" stroke="black" d="M2076.04,-1158.49C2069.69,-1111.12 2088.5,-1097.1 2076.04,-1050.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge292" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2940.33,-2357.5C2773.79,-2343.73 2236.84,-2299.23 2228.04,-2297.54 2141.34,-2280.86 2124.56,-2257.1 2038.04,-2239.56 1962.49,-2224.24 1754.9,-2249.54 1693.04,-2203.56 1677.91,-2192.31 1566.75,-1908.75 1562.04,-1890.5 1476.72,-1560.1 1566.24,-1463.86 1558.04,-1122.72 1554.92,-993.34 1459.21,-929.61 1544.04,-831.87"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node92" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="2010.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2010.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2010.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2010.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2010.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="2010.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">add</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_add -->
<g id="edge293" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2328.04,-2173.57C2248.6,-2119.93 2270.5,-2059.96 2276.04,-1964.27"/>
<path fill="none" stroke="black" d="M2276.04,-1962.27C2266.24,-1654.07 2295.15,-1573.18 2243.04,-1269.26 2222.95,-1152.12 2201.24,-1126.7 2166.04,-1013.18 2135.51,-914.75 2145.93,-880.69 2090.04,-794.1 2078.82,-776.73 2063.25,-760.15 2048.82,-746.67"/>
<polygon fill="#f91010" stroke="black" points="2051.15,-744.07 2041.41,-739.92 2046.44,-749.24 2051.15,-744.07"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge294" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2945.35,-2353.38C2870.9,-2339.09 2714.97,-2307.4 2586.04,-2269.55"/>
<path fill="none" stroke="black" d="M2586.04,-2267.55C2408.18,-2215.33 2308.7,-2259.75 2200.04,-2109.57 2016.27,-1855.61 2020.95,-1756.24 1944.04,-1452.34 1915.9,-1341.15 1922.9,-1310.44 1912.04,-1196.26 1904.31,-1115.09 1914.32,-1093.47 1900.04,-1013.18 1884.21,-924.21 1851.52,-824.08 1830.75,-765.32"/>
<polygon fill="#f91010" stroke="black" points="1834.04,-764.14 1827.39,-755.89 1827.45,-766.49 1834.04,-764.14"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node94" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="1916.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1916.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1916.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1916.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1916.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1916.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge295" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2943.34,-2354.74C2866.58,-2343.29 2706.9,-2319.25 2572.04,-2297.54 2418.96,-2272.9 2381.97,-2258.09 2228.04,-2239.56 2173.29,-2232.97 1777.38,-2236.34 1733.04,-2203.56 1694.02,-2174.72 1662.97,-2047.72 1654.04,-2000.03 1624.2,-1840.74 1668.04,-1797.72 1668.04,-1635.65 1668.04,-1635.65 1668.04,-1635.65 1668.04,-1414.57 1668.04,-1152.78 1824.04,-865.91 1888.59,-758.42"/>
<polygon fill="#f91010" stroke="black" points="1891.63,-760.16 1893.81,-749.79 1885.64,-756.53 1891.63,-760.16"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node95" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="2142.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2142.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2142.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2142.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2142.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="2142.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">request</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_request -->
<g id="edge296" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2276.04,-1962.27C2311.27,-1636.81 2400.67,-1558.53 2374.04,-1232.26 2362.82,-1094.83 2337.85,-1059.12 2266.04,-941.41"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node96" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="1042.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1042.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1042.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1042.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1042.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1042.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge297" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M756.04,-2173.57C739.5,-2082.02 756.04,-2057.29 756.04,-1964.27 756.04,-1964.27 756.04,-1964.27 756.04,-1852.73 756.04,-1706.58 718.04,-1672.25 718.04,-1526.11 718.04,-1526.11 718.04,-1526.11 718.04,-1232.26 718.04,-1152.5 779.52,-1153.57 823.04,-1086.72 843.69,-1054.99 846.87,-1045.83 866.04,-1013.18 918.92,-923.09 981.01,-817.87 1015.5,-759.47"/>
<polygon fill="#f91010" stroke="black" points="1018.52,-761.24 1020.59,-750.85 1012.49,-757.68 1018.52,-761.24"/>
</g>
<!-- ahriman_web_views_status_ahriman -->
<g id="node98" class="node">
<title>ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="2432.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2432.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2432.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2432.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2432.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2432.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge298" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2954.22,-2349.26C2912.23,-2333.71 2840.28,-2304.67 2784.04,-2269.55"/>
<path fill="none" stroke="black" d="M2784.04,-2267.55C2675.09,-2199.51 2592.25,-2227.8 2542.04,-2109.57 2358.03,-1676.37 2570.04,-1521.62 2570.04,-1050.95 2570.04,-1050.95 2570.04,-1050.95 2570.04,-939.41 2570.04,-862.29 2510.33,-789.34 2469.46,-748.44"/>
<polygon fill="#f91010" stroke="black" points="2471.91,-745.93 2462.32,-741.42 2467,-750.93 2471.91,-745.93"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge299" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2784.04,-2267.55C2699.34,-2210.98 2670.66,-2196.77 2618.04,-2109.57 2575.4,-2038.92 2584.4,-2008.98 2587.04,-1926.5 2590.16,-1828.73 2593.05,-1804.08 2608.04,-1707.42 2623.33,-1608.82 2625.24,-1582.91 2657.04,-1488.34 2691.82,-1384.88 2705.42,-1358.67 2768.04,-1269.26 2791.97,-1235.09 2809.14,-1233.94 2827.04,-1196.26 2848.38,-1151.32 2844.9,-1136.2 2850.04,-1086.72 2853.41,-1054.21 2858.79,-1044.67 2850.04,-1013.18 2818.43,-899.49 2777.95,-882.73 2700.04,-794.1 2686.61,-778.84 2670.93,-762.88 2657.02,-749.29"/>
<polygon fill="#f91010" stroke="black" points="2659.12,-746.45 2649.5,-742.01 2654.25,-751.48 2659.12,-746.45"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node100" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="2240.04" cy="-713.56" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="2240.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2240.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2240.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2240.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2240.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">packages</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge300" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2586.04,-2267.55C2463.3,-2231.03 2504.66,-2125.5 2479.04,-2000.03 2391.18,-1569.82 2561.74,-1432.69 2432.04,-1013.18 2400.02,-909.63 2321.39,-807.43 2275.3,-753.59"/>
<polygon fill="#f91010" stroke="black" points="2277.93,-751.28 2268.74,-746 2272.63,-755.86 2277.93,-751.28"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node101" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2714.04" cy="-713.56" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2714.04" y="-733.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2714.04" y="-722.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2714.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2714.04" y="-700.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2714.04" y="-689.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_status -->
<g id="edge301" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2784.04,-2267.55C2750.04,-2244.84 2794.7,-2215.03 2784.04,-2175.57"/>
<path fill="none" stroke="black" d="M2784.04,-2173.57C2762.96,-2095.56 2681.15,-2137.97 2632.04,-2073.8"/>
<path fill="none" stroke="black" d="M2632.04,-2071.8C2562.89,-1981.46 2597.74,-1930.26 2608.04,-1816.96 2617.02,-1718.14 2625.26,-1693.7 2651.04,-1597.88 2664.25,-1548.78 2663.74,-1534.96 2684.04,-1488.34 2695.29,-1462.49 2733.32,-1402.84 2748.04,-1378.8 2798.35,-1296.62 2828.54,-1285.44 2865.04,-1196.26 2883.88,-1150.22 2882.9,-1136.2 2888.04,-1086.72 2896.49,-1005.35 2893.32,-981.76 2869.04,-903.64 2858.62,-870.12 2846.18,-865.48 2836.04,-831.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge302" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2940.65,-2357.16C2875.06,-2351.31 2754.26,-2340.84 2651.04,-2333.54 2429.7,-2317.88 1833.58,-2343.07 1661.04,-2203.56 1622.65,-2172.52 1587.6,-2046.88 1572.04,-2000.03 1540.65,-1905.53 1535.93,-1879.94 1525.04,-1780.96 1509,-1635.25 1530.35,-1261.12 1482.04,-1122.72 1442.97,-1010.84 1411,-990.19 1330.04,-903.64 1295.09,-866.28 1216.39,-877.24 1240.04,-831.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge303" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2940.96,-2356.59C2875.48,-2350.08 2754.53,-2338.83 2651.04,-2333.54 2600.09,-2330.93 857.98,-2325.06 815.04,-2297.54 764.34,-2265.05 767.37,-2234.71 756.04,-2175.57"/>
<path fill="none" stroke="black" d="M756.04,-2173.57C742.55,-2139.49 718.11,-2143.41 704.04,-2109.57 603.9,-1868.79 642.04,-1786.89 642.04,-1526.11 642.04,-1526.11 642.04,-1526.11 642.04,-1414.57 642.04,-1203.29 549.78,-1101.18 688.04,-941.41"/>
<path fill="none" stroke="black" d="M688.04,-939.41C724.09,-879.06 760.75,-887.27 804.04,-831.87"/>
<path fill="none" stroke="black" d="M804.04,-829.87C832.43,-793.54 874.43,-761.6 905.75,-740.61"/>
<polygon fill="#f91010" stroke="black" points="907.86,-743.41 914.28,-734.98 904.01,-737.57 907.86,-743.41"/>
</g>
<!-- ahriman_models_action -->
<g id="node66" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="6820.04" cy="-1159.49" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6820.04" y="-1167.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6820.04" y="-1156.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6820.04" y="-1145.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge304" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6814.32,-1130.72C6797.33,-1049.41 6746.67,-816.2 6720.04,-794.1 6645.22,-732.02 6355.4,-824.12 6284.04,-758.1 6230.87,-708.93 6258.04,-669.66 6258.04,-597.24 6258.04,-597.24 6258.04,-597.24 6258.04,-399.5 6258.04,-343.32 6312.19,-350.26 6334.04,-298.5"/>
<path fill="none" stroke="black" d="M6334.04,-297.5C6359.73,-165.74 6177.27,-80.75 6085.51,-46.79"/>
<polygon fill="#e72222" stroke="black" points="6086.45,-43.41 6075.86,-43.28 6084.06,-49.99 6086.45,-43.41"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge305" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6819.52,-1130.36C6818.48,-1073.99 6816.15,-946.73 6814.88,-877.99"/>
<polygon fill="#e72222" stroke="black" points="6818.38,-877.82 6814.7,-867.88 6811.38,-877.95 6818.38,-877.82"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge306" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6781.8,-1157.49C6538.96,-1150.72 5217.95,-1108.02 5103.04,-977.18 5078.21,-948.92 5091.99,-905.79 5108.48,-873.86"/>
<polygon fill="#e72222" stroke="black" points="5111.72,-875.21 5113.41,-864.75 5105.57,-871.88 5111.72,-875.21"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_user -->
<g id="edge307" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6783.66,-1150.64C6674.22,-1127.2 6338.21,-1056.72 6057.04,-1013.18 5923.89,-992.57 5888.59,-1001.33 5756.04,-977.18 5555.65,-940.68 5498.25,-947.88 5311.04,-867.64 5306.69,-865.78 5302.3,-863.6 5298,-861.25"/>
<polygon fill="#e72222" stroke="black" points="5299.72,-858.2 5289.31,-856.23 5296.22,-864.26 5299.72,-858.2"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge308" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1314.28,-2043.96C1329,-1987.39 1362.52,-1858.61 1380.36,-1790.06"/>
<polygon fill="#c82323" stroke="black" points="1383.85,-1790.56 1382.98,-1780 1377.07,-1788.79 1383.85,-1790.56"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge309" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1284.42,-2046.28C1273.29,-2033.02 1260.13,-2016.24 1250.04,-2000.03 1221.54,-1954.3 1214.14,-1941.92 1198.04,-1890.5 1178.48,-1828.03 1183.58,-1809.94 1174.04,-1745.19"/>
<path fill="none" stroke="black" d="M1174.04,-1743.19C1168.09,-1717.02 1152.73,-1691.27 1138.31,-1671.53"/>
<polygon fill="#c82323" stroke="black" points="1141.04,-1669.33 1132.23,-1663.46 1135.45,-1673.55 1141.04,-1669.33"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge310" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1174.04,-1743.19C1173.1,-1739.04 1159.78,-1634.52 1151.85,-1572.05"/>
<polygon fill="#c82323" stroke="black" points="1155.31,-1571.51 1150.58,-1562.03 1148.37,-1572.39 1155.31,-1571.51"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge311" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5368.65,-2359.79C5568.02,-2352.48 6317.28,-2323.53 6420.04,-2297.54 6611.25,-2249.18 6670.9,-2236.3 6822.04,-2109.57 6888.52,-2053.83 7764.07,-906.63 7720.04,-831.87"/>
<path fill="none" stroke="black" d="M7720.04,-829.87C7533.15,-558.06 6297.36,-626.32 6334.04,-298.5"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge312" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6368.04,-2267.55C6412.77,-2226.65 6401.11,-2199.37 6429.04,-2145.57 6505.48,-1998.35 6526.78,-1962.69 6606.04,-1816.96 6729.56,-1589.82 6886.04,-1565.58 6886.04,-1307.03 6886.04,-1307.03 6886.04,-1307.03 6886.04,-1232.26 6886.04,-1069.23 6862.21,-988.56 6723.04,-903.64 6594.45,-825.19 6527.97,-918.09 6386.04,-867.64 6381.76,-866.12 6377.47,-864.21 6373.29,-862.06"/>
<polygon fill="#e50505" stroke="black" points="6374.78,-858.88 6364.35,-857.04 6371.36,-864.98 6374.78,-858.88"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge313" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5333.71,-2334.61C5364.38,-2271.23 5435.05,-2107.16 5422.04,-1964.27"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge314" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5318.53,-2333.42C5315.15,-2276.73 5305.49,-2144.81 5284.04,-2036.03 5274.65,-1988.46 5258.73,-1935.26 5246.97,-1898.86"/>
<polygon fill="#e50505" stroke="black" points="5250.2,-1897.48 5243.77,-1889.06 5243.54,-1899.65 5250.2,-1897.48"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge315" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5274.86,-2351.19C5247.77,-2345.31 5212.57,-2338.2 5181.04,-2333.54 5013.65,-2308.8 4956.2,-2367.27 4802.04,-2297.54 4647.48,-2227.63 4677.63,-2108.03 4524.04,-2036.03 4404.84,-1980.16 4360.01,-2020.91 4230.04,-2000.03 4106.99,-1980.28 3795.62,-1937.09 3680.04,-1890.5 3512.61,-1823.01 3463.74,-1800.97 3338.04,-1671.42 3194.96,-1523.96 3089.63,-1297.57 3049.65,-1203.64"/>
<polygon fill="#e50505" stroke="black" points="3052.77,-1202.02 3045.65,-1194.17 3046.32,-1204.75 3052.77,-1202.02"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge316" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5353.69,-2341.24C5360.24,-2338.12 5367.2,-2335.34 5374.04,-2333.54 5478.33,-2306.06 6246.9,-2344.41 6344.04,-2297.54 6358.8,-2290.42 6356.72,-2281.4 6368.04,-2269.55"/>
<path fill="none" stroke="black" d="M6368.04,-2267.55C6428.39,-2204.3 6305.15,-2156.32 6334.04,-2073.8"/>
</g>
<!-- ahriman_models_counters -->
<g id="node69" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="5100.04" cy="-2268.55" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="5100.04" y="-2277.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5100.04" y="-2266.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5100.04" y="-2255.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters</text>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge317" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5280.71,-2345.09C5242,-2328.9 5183.05,-2304.26 5143.1,-2287.55"/>
<polygon fill="#e50505" stroke="black" points="5144.2,-2284.22 5133.63,-2283.59 5141.5,-2290.68 5144.2,-2284.22"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge318" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5274.41,-2351.93C5247.32,-2346.34 5212.27,-2339.27 5181.04,-2333.54 5084.88,-2315.89 5054.63,-2334.29 4964.04,-2297.54 4775.08,-2220.88 4778.05,-2107.43 4587.04,-2036.03 4449.25,-1984.53 4401.82,-2031.05 4258.04,-2000.03 4155.2,-1977.85 4135.77,-1949.15 4033.04,-1926.5 3900.61,-1897.29 3849.53,-1954.63 3730.04,-1890.5 3673.77,-1860.3 3676.76,-1830.97 3637.04,-1780.96 3435.76,-1527.54 3395.26,-1456.62 3203.04,-1196.26 3178.95,-1163.64 3179.55,-1149.43 3149.04,-1122.72 2919.94,-922.24 2816.56,-937.55 2548.04,-794.1 2517.53,-777.81 2507.31,-778.04 2479.04,-758.1 2475.41,-755.55 2471.77,-752.73 2468.22,-749.8"/>
<polygon fill="#e50505" stroke="black" points="2470.46,-747.11 2460.59,-743.24 2465.89,-752.41 2470.46,-747.11"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge319" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5274.46,-2351.89C5203.26,-2336.66 5071.73,-2307.68 5052.04,-2297.54 4894.79,-2216.54 4909.93,-2115.76 4752.04,-2036.03 4551.29,-1934.67 4480.32,-1960.63 4258.04,-1926.5 4166.54,-1912.45 3924.9,-1933.7 3843.04,-1890.5 3583.08,-1753.3 3628.27,-1590.19 3424.04,-1378.8 3407.19,-1361.36 3396.94,-1362.67 3383.04,-1342.8 3352.81,-1299.61 3378.01,-1268.83 3340.04,-1232.26 3304.8,-1198.33 3269.27,-1232.15 3236.04,-1196.26 3178.88,-1134.54 3228.85,-1086.73 3188.04,-1013.18 3177.36,-993.94 3166.77,-995.13 3154.04,-977.18 3132.75,-947.17 3145.01,-926.31 3116.04,-903.64 3061.7,-861.13 3026.74,-898.52 2965.04,-867.64 2942.81,-856.52 2943.78,-843.93 2922.04,-831.87"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node70" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="5109.04" cy="-2174.57" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="5109.04" y="-2183.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5109.04" y="-2172.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5109.04" y="-2161.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge320" class="edge">
<title>ahriman_models_counters&#45;&gt;ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5102.79,-2239.45C5103.57,-2231.41 5104.44,-2222.51 5105.28,-2213.97"/>
<polygon fill="#b42d2d" stroke="black" points="5108.78,-2214.1 5106.27,-2203.81 5101.82,-2213.42 5108.78,-2214.1"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge321" class="edge">
<title>ahriman_models_counters&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5078.72,-2244.02C5067.93,-2232 5054.68,-2217.09 5043.04,-2203.56 4934.32,-2077.11 4943.45,-1991.85 4790.04,-1926.5 4697.86,-1887.23 3968.09,-1952.04 3889.04,-1890.5 3835.89,-1849.12 3846.04,-1812.54 3846.04,-1745.19 3846.04,-1745.19 3846.04,-1745.19 3846.04,-1524.11 3846.04,-1420.84 3237.31,-964.72 3154.04,-903.64 3076.98,-847.13 3058.7,-827.14 2969.04,-794.1 2881,-761.67 2845.13,-799.7 2761.04,-758.1 2757.17,-756.19 2753.39,-753.86 2749.77,-751.27"/>
<polygon fill="#b42d2d" stroke="black" points="2751.65,-748.3 2741.62,-744.87 2747.32,-753.8 2751.65,-748.3"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge322" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5117.92,-2145.64C5125.64,-2124.38 5138.38,-2095.22 5156.04,-2073.8"/>
<path fill="none" stroke="black" d="M5156.04,-2071.8C5197.68,-2021.3 5154.83,-1986.9 5180.04,-1926.5 5185.33,-1913.82 5193.25,-1901.26 5201.32,-1890.28"/>
<polygon fill="#c82323" stroke="black" points="5204.2,-1892.28 5207.49,-1882.21 5198.64,-1888.03 5204.2,-1892.28"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge323" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5156.04,-2071.8C5186.61,-2035.84 5210.55,-2048.65 5256.04,-2036.03 5334.66,-2014.24 5360.5,-2030.86 5436.04,-2000.03 5574.05,-1943.72 5576.92,-1867.81 5717.04,-1816.96 5817.2,-1780.61 6135.83,-1756.81 6263.93,-1748.49"/>
<polygon fill="#c82323" stroke="black" points="6264.52,-1751.96 6274.28,-1747.82 6264.07,-1744.97 6264.52,-1751.96"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge324" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5096.07,-2145.92C5069.11,-2092.1 5001.32,-1974.34 4904.04,-1926.5 4804.17,-1877.38 3980.31,-1970.59 3903.04,-1890.5 3880.34,-1866.97 3901.33,-1849.6 3903.04,-1816.96 3907.26,-1736.04 3922.04,-1716.67 3922.04,-1635.65 3922.04,-1635.65 3922.04,-1635.65 3922.04,-1524.11 3922.04,-1288.64 3377.71,-867.68 3154.04,-794.1 2987.42,-739.3 2921.24,-829.52 2761.04,-758.1 2756.93,-756.27 2752.94,-753.93 2749.14,-751.29"/>
<polygon fill="#c82323" stroke="black" points="2751.2,-748.46 2741.15,-745.1 2746.91,-753.99 2751.2,-748.46"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application -->
<g id="edge325" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6216.04,-2267.55C6242.04,-2235.95 6204.26,-2213.32 6220.04,-2175.57"/>
<path fill="none" stroke="black" d="M6220.04,-2173.57C6299.96,-1982.35 6200.05,-1912.18 6232.04,-1707.42 6239.87,-1657.31 6235.78,-1640 6264.04,-1597.88 6292.54,-1555.39 6337.58,-1574.55 6354.04,-1526.11"/>
<path fill="none" stroke="black" d="M6354.04,-1524.11C6386.2,-1394.97 6341.3,-1338.81 6421.04,-1232.26 6454.9,-1187 6568.84,-1197.41 6526.04,-1160.49"/>
<path fill="none" stroke="black" d="M6526.04,-1158.49C6355.12,-1032.01 6250.77,-1164.91 6053.04,-1086.72 6047.81,-1084.66 6042.6,-1081.99 6037.6,-1079.03"/>
<polygon fill="#950303" stroke="black" points="6039.19,-1075.89 6028.87,-1073.48 6035.43,-1081.8 6039.19,-1075.89"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge326" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4841.95,-2357.9C4906,-2351.91 5039.7,-2339.96 5153.04,-2333.54 5273.69,-2326.71 6123.36,-2329.01 6240.04,-2297.54 6265.38,-2290.7 6269.92,-2283.68 6292.04,-2269.55"/>
<path fill="none" stroke="black" d="M6292.04,-2267.55C6317.17,-2251.49 6330.07,-2169.38 6348.04,-2145.57 6362.84,-2125.95 6372.18,-2126.47 6390.04,-2109.57 6488.02,-2016.89 6521.02,-1999.8 6600.04,-1890.5 6621.71,-1860.51 6617.2,-1846.82 6639.04,-1816.96 6907.09,-1450.27 7182.43,-1507.28 7354.04,-1086.72 7384.78,-1011.38 7409.4,-963.27 7354.04,-903.64 7317.27,-864.04 6920.24,-884.92 6869.04,-867.64 6864.55,-866.13 6860.07,-864.17 6855.72,-861.94"/>
<polygon fill="#950303" stroke="black" points="6857.42,-858.88 6846.98,-857.05 6854,-864.99 6857.42,-858.88"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge327" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4776.04,-1852.73C4735.26,-1460.07 4887.4,-1365.22 5066.04,-1013.18 5092.85,-960.34 5092.7,-936.47 5142.04,-903.64 5205.98,-861.11 5238.39,-892.53 5311.04,-867.64 5316.97,-865.61 5323.05,-863.22 5329.05,-860.66"/>
<polygon fill="#950303" stroke="black" points="5330.66,-863.77 5338.38,-856.51 5327.82,-857.37 5330.66,-863.77"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge328" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6220.04,-2173.57C6244.97,-2115.05 6303.18,-2154.66 6348.04,-2109.57 6430.88,-2026.32 6582.04,-1753.1 6582.04,-1635.65 6582.04,-1635.65 6582.04,-1635.65 6582.04,-1524.11 6582.04,-1259.05 6837.61,-1173.19 6709.04,-941.41"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge329" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4770.24,-2348.42C4727.3,-2331.48 4651.18,-2300.46 4588.04,-2269.55"/>
<path fill="none" stroke="black" d="M4588.04,-2267.55C4523.67,-2236.04 4505.75,-2232.14 4440.04,-2203.56 4412.31,-2191.5 4389.46,-2203.56 4378.04,-2175.57"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge330" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4588.04,-2267.55C4562.64,-2255.11 4493.91,-2226.96 4478.04,-2203.56 4435.78,-2141.26 4508.66,-2086.76 4453.04,-2036.03 4400.33,-1987.97 3882.74,-2009.53 3812.04,-2000.03 3581.4,-1969.08 3514.99,-1979.64 3300.04,-1890.5 3228.78,-1860.95 3155.52,-1808.42 3112.96,-1775.27"/>
<polygon fill="#950303" stroke="black" points="3114.89,-1772.33 3104.87,-1768.91 3110.57,-1777.84 3114.89,-1772.33"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge331" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4766.21,-2356.96C4506,-2325.47 2990.57,-2140.92 2955.04,-2109.57 2854.1,-2020.54 2967.07,-1917 2877.04,-1816.96 2847.11,-1783.7 2816.55,-1810.59 2783.04,-1780.96 2769.55,-1769.03 2768.88,-1762.52 2764.04,-1745.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge332" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4765.77,-2360.77C4545.96,-2355.97 3442.79,-2326.05 3130.04,-2203.56 3087.11,-2186.75 3086.73,-2162.95 3044.04,-2145.57 2961.19,-2111.86 2907.52,-2174.53 2846.04,-2109.57 2793.08,-2053.63 2797.02,-1957.14 2805.19,-1900.3"/>
<polygon fill="#950303" stroke="black" points="2808.69,-1900.59 2806.75,-1890.17 2801.77,-1899.52 2808.69,-1900.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge333" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4771.35,-2347.39C4746.99,-2335.96 4713.64,-2318.37 4688.04,-2297.54 4675.33,-2287.2 4676.38,-2280.33 4664.04,-2269.55"/>
<path fill="none" stroke="black" d="M4664.04,-2267.55C4621.45,-2230.33 4589.84,-2247.34 4554.04,-2203.56 4515.49,-2156.42 4544.86,-2123.76 4510.04,-2073.8"/>
<path fill="none" stroke="black" d="M4510.04,-2071.8C4493.97,-2057.78 4497.19,-2045.42 4478.04,-2036.03 4375.21,-1985.67 4077.42,-2015.98 3964.04,-2000.03 3808.36,-1978.15 3772.75,-1954.42 3618.04,-1926.5 3511.03,-1907.18 3474.88,-1935.83 3376.04,-1890.5 3262.88,-1838.6 3263.03,-1782.91 3164.04,-1707.42 3142.56,-1691.04 3117.54,-1674.14 3097.09,-1660.86"/>
<polygon fill="#950303" stroke="black" points="3098.94,-1657.89 3088.64,-1655.4 3095.14,-1663.77 3098.94,-1657.89"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge334" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4664.04,-2267.55C4561.25,-2167.14 4799.92,-2105.96 4776.04,-1964.27"/>
<path fill="none" stroke="black" d="M4776.04,-1962.27C4775.48,-1827.17 4438.9,-1543.01 4321.7,-1448.15"/>
<polygon fill="#950303" stroke="black" points="4323.63,-1445.21 4313.65,-1441.66 4319.23,-1450.66 4323.63,-1445.21"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge335" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4776.04,-1962.27C4778.87,-1914.55 4782,-1902.15 4776.04,-1854.73"/>
<path fill="none" stroke="black" d="M4776.04,-1852.73C4771.42,-1816.06 4750.61,-1813.99 4734.04,-1780.96 4670.68,-1654.72 4700.9,-1596.48 4610.04,-1488.34 4572.24,-1443.36 4549.77,-1446.19 4499.04,-1416.57"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge336" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4664.04,-2267.55C4641.25,-2246.47 4645.57,-2233.1 4636.04,-2203.56 4564.11,-1980.6 4645.69,-1847.65 4458.04,-1707.42 4404.78,-1667.62 4205.13,-1721.18 4161.04,-1671.42 4110.24,-1614.09 4128.14,-1517.77 4145.06,-1461.4"/>
<polygon fill="#950303" stroke="black" points="4148.45,-1462.28 4148.08,-1451.69 4141.77,-1460.2 4148.45,-1462.28"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge337" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4823.9,-2337.25C4878.28,-2270.9 5034.46,-2081.13 5168.04,-1926.5 5178.41,-1914.49 5189.91,-1901.5 5200.26,-1889.92"/>
<polygon fill="#950303" stroke="black" points="5203.15,-1891.94 5207.22,-1882.15 5197.94,-1887.26 5203.15,-1891.94"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge338" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4765.66,-2361.04C4634.15,-2358.93 4189.82,-2348.24 3827.04,-2297.54 3826.27,-2297.43 2955.52,-2110.18 2955.04,-2109.57 2924.34,-2071.78 2914.65,-1266.7 2950.04,-1233.26"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge339" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6220.04,-2173.57C6246,-2111.45 6315.08,-2138.41 6334.04,-2073.8"/>
<path fill="none" stroke="black" d="M6334.04,-2071.8C6361.23,-1979.15 6327.44,-1950.02 6343.04,-1854.73"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge340" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4841.95,-2357.88C4905.99,-2351.85 5039.7,-2339.85 5153.04,-2333.54 5217.02,-2329.98 6248.24,-2325.22 6306.04,-2297.54 6320.82,-2290.46 6314.41,-2274.47 6330.04,-2269.55"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge341" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6292.04,-2267.55C6305.5,-2258.2 6304.36,-2251.06 6316.04,-2239.56 6362.57,-2193.71 6371.91,-2177.26 6429.04,-2145.57 6473.65,-2120.83 6490.09,-2127 6538.04,-2109.57 6552.93,-2104.16 6569.06,-2097.88 6583.49,-2092.12"/>
<polygon fill="#950303" stroke="black" points="6585.2,-2095.2 6593.17,-2088.22 6582.59,-2088.7 6585.2,-2095.2"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge342" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4842.25,-2359.85C4907.44,-2355.81 5043.29,-2342.27 5148.04,-2297.54 5396.67,-2191.36 5642.62,-1970.76 5730.34,-1887.5"/>
<polygon fill="#950303" stroke="black" points="5732.78,-1890.01 5737.61,-1880.57 5727.95,-1884.94 5732.78,-1890.01"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge343" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4841.96,-2357.92C4906,-2351.95 5039.71,-2340.04 5153.04,-2333.54 5268.36,-2326.92 6087.94,-2347.61 6192.04,-2297.54 6206.8,-2290.44 6207.08,-2283.27 6216.04,-2269.55"/>
<path fill="none" stroke="black" d="M6216.04,-2267.55C6236.09,-2236.85 6094.62,-1999.91 6086.04,-1964.27"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge344" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4842.23,-2359.02C5031.15,-2345.68 5861.84,-2275.97 5992.04,-2073.8"/>
<path fill="none" stroke="black" d="M5992.04,-2071.8C5999.19,-2051.68 6005.39,-2028.85 6010.13,-2009.42"/>
<polygon fill="#950303" stroke="black" points="6013.55,-2010.14 6012.47,-1999.6 6006.75,-2008.52 6013.55,-2010.14"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge345" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4840.66,-2353.4C4887.2,-2342.65 4969.68,-2322.14 5038.04,-2297.54 5044.84,-2295.09 5051.93,-2292.22 5058.78,-2289.25"/>
<polygon fill="#950303" stroke="black" points="5060.21,-2292.45 5067.93,-2285.2 5057.37,-2286.05 5060.21,-2292.45"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge346" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4510.04,-2071.8C4493.93,-2057.81 4496.83,-2046.12 4478.04,-2036.03 4379.9,-1983.37 4339.8,-2018.92 4230.04,-2000.03 4168.63,-1989.47 3735.28,-1919.33 3680.04,-1890.5 3555.45,-1825.47 3540.86,-1780.32 3452.04,-1671.42 3434.6,-1650.05 2946.45,-844.71 2922.04,-831.87"/>
<path fill="none" stroke="black" d="M2922.04,-829.87C2819.07,-772.78 2769.74,-815.67 2667.04,-758.1 2663.17,-755.94 2659.36,-753.38 2655.69,-750.62"/>
<polygon fill="#950303" stroke="black" points="2657.89,-747.9 2647.92,-744.31 2653.48,-753.33 2657.89,-747.9"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node72" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c04040" stroke="black" cx="4729.04" cy="-2456.51" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="4729.04" y="-2465.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4729.04" y="-2454.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4729.04" y="-2443.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_description</text>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge347" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4751.13,-2428.41C4759.54,-2418.11 4769.19,-2406.27 4777.92,-2395.56"/>
<polygon fill="#c04040" stroke="black" points="4780.79,-2397.59 4784.39,-2387.62 4775.36,-2393.16 4780.79,-2397.59"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge348" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7003.86,-2334.83C7134.71,-2157.17 7864.49,-1143.75 7720.04,-831.87"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application -->
<g id="edge349" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6987.98,-2333.54C6992.8,-2291.32 6997.63,-2209.48 6974.04,-2145.57 6967.02,-2126.56 6957.81,-2126.08 6946.04,-2109.57 6923.37,-2077.8 6920.7,-2067.81 6898.04,-2036.03 6886.26,-2019.53 6879.01,-2018.21 6870.04,-2000.03 6832.79,-1924.61 6853.4,-1895.01 6822.04,-1816.96 6773.91,-1697.2 6559.54,-1435.16 6544.04,-1307.03"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge350" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6922.25,-2358.89C6783.84,-2353.11 6438.35,-2339.36 6149.04,-2333.54 6000.9,-2330.56 958.4,-2334.99 815.04,-2297.54 743.44,-2278.83 670.14,-2231.73 628.53,-2201.84"/>
<polygon fill="#c82323" stroke="black" points="630.54,-2198.97 620.4,-2195.92 626.42,-2204.63 630.54,-2198.97"/>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge351" class="edge">
<title>ahriman_models_report_settings&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3407.73,-2333.69C3426.12,-2264.89 3469.3,-2088.58 3444.04,-2036.03 3399.16,-1942.69 3334.35,-1964.65 3262.04,-1890.5 3190.71,-1817.35 3188.58,-1785.79 3123.04,-1707.42 3112.53,-1694.85 3100.53,-1681.52 3089.67,-1669.81"/>
<polygon fill="#b03a3a" stroke="black" points="3092.11,-1667.29 3082.73,-1662.37 3086.99,-1672.07 3092.11,-1667.29"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node75" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="4272.04" cy="-2456.51" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="4272.04" y="-2465.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4272.04" y="-2454.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4272.04" y="-2443.01" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_paths</text>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge352" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4313.79,-2434.58C4333.44,-2423.48 4356.38,-2408.6 4374.04,-2391.52 4595.56,-2177.33 4538.97,-2029.53 4762.04,-1816.96 4920.14,-1666.29 5028.65,-1717.34 5182.04,-1561.88 5274.59,-1468.08 5366.16,-1111.81 5483.04,-1050.95"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge353" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4303.47,-2431.09C4315.41,-2420.22 4328.05,-2406.5 4336.04,-2391.52 4362.03,-2342.77 4376.87,-2322.17 4360.04,-2269.55"/>
<path fill="none" stroke="black" d="M4360.04,-2267.55C4356.24,-2253.07 4232.73,-2046.52 4222.04,-2036.03 4151.91,-1967.23 4122.18,-1960.58 4030.04,-1926.5 3950.66,-1897.13 3901.54,-1951.66 3843.04,-1890.5 3718.17,-1759.95 3824.16,-1664.48 3784.04,-1488.34 3746.23,-1322.38 3721.54,-1284.95 3670.04,-1122.72 3642.32,-1035.41 3609.24,-933.59 3590.63,-876.54"/>
<polygon fill="#f91010" stroke="black" points="3593.87,-875.18 3587.44,-866.76 3587.21,-877.35 3593.87,-875.18"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge354" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4230.19,-2434.6C4132.62,-2384.72 3896.07,-2256.89 3866.04,-2175.57"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge355" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4340.04,-2173.57C4339.81,-2150.94 4350.97,-2128.78 4363.48,-2111.11"/>
<polygon fill="#f91010" stroke="black" points="4366.5,-2112.92 4369.68,-2102.82 4360.89,-2108.73 4366.5,-2112.92"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_repository_properties -->
<g id="edge356" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4360.04,-2267.55C4347.29,-2227.7 4340.46,-2217.4 4340.04,-2175.57"/>
<path fill="none" stroke="black" d="M4340.04,-2173.57C4339.41,-2112.44 4305.18,-2085.54 4341.04,-2036.03 4370.47,-1995.4 4418.76,-2040.78 4448.04,-2000.03 4460.44,-1982.77 4471.6,-1785.7 4444.04,-1745.19"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_tree -->
<g id="edge357" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4333.71,-2450.39C4407.65,-2444.37 4535.34,-2434.33 4645.04,-2427.52 4970.58,-2407.32 5052.69,-2414.73 5378.04,-2391.52 5385.02,-2391.02 6375.82,-2300.76 6382.04,-2297.54 6396.59,-2290.01 6393.05,-2279.55 6406.04,-2269.55"/>
<path fill="none" stroke="black" d="M6406.04,-2267.55C6427.43,-2253.2 6444.97,-2230.12 6457.14,-2210.67"/>
<polygon fill="#f91010" stroke="black" points="6460.18,-2212.4 6462.34,-2202.03 6454.18,-2208.79 6460.18,-2212.4"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge358" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4318.79,-2436.76C4328.66,-2433.3 4339.1,-2430 4349.04,-2427.52 4494.71,-2391.22 4672.11,-2373.71 4755.85,-2366.98"/>
<polygon fill="#f91010" stroke="black" points="4756.38,-2370.45 4766.07,-2366.18 4755.83,-2363.47 4756.38,-2370.45"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge359" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2539.24,-2355.38C2482.13,-2348.75 2386.58,-2338.47 2304.04,-2333.54 2120.1,-2322.56 822.33,-2351.16 646.04,-2297.54 476.06,-2245.84 458.85,-2158.76 379.04,-2000.03 111.44,-1467.89 0.04,-1310.19 0.04,-714.56 0.04,-714.56 0.04,-714.56 0.04,-595.24 0.04,-536.59 -0.55,-518.73 24.04,-465.49 39.4,-432.22 53.64,-430.51 76.04,-401.5"/>
<path fill="none" stroke="black" d="M76.04,-399.5C85.64,-386.22 87.87,-382.48 100.04,-371.5 120.91,-352.68 130.6,-353.68 152.04,-335.5"/>
<path fill="none" stroke="black" d="M152.04,-334.5C180.55,-310.33 212.75,-332.61 228.04,-298.5"/>
<path fill="none" stroke="black" d="M228.04,-297.5C352.32,-20.19 5384.55,-27.9 5978.05,-29.78"/>
<polygon fill="#c82323" stroke="black" points="5978.07,-33.28 5988.08,-29.81 5978.09,-26.28 5978.07,-33.28"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge360" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2575.04,-2334.6C2546.06,-2278.53 2490.7,-2148.31 2556.04,-2073.8"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge361" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2625.16,-2340.8C2696.7,-2299.25 2865.31,-2204.68 3016.04,-2145.57 3070.26,-2124.31 3086.91,-2128.35 3142.04,-2109.57 3157.04,-2104.46 3173.19,-2098.27 3187.62,-2092.48"/>
<polygon fill="#c82323" stroke="black" points="3189.34,-2095.56 3197.29,-2088.55 3186.71,-2089.07 3189.34,-2095.56"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node77" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="3032.04" cy="-2072.8" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="3032.04" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3032.04" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3032.04" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge362" class="edge">
<title>ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3040.76,-2043.81C3044.41,-2030.67 3048.23,-2014.7 3050.04,-2000.03 3057.95,-1935.93 3047.48,-1919.31 3048.04,-1854.73"/>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge363" class="edge">
<title>ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6047.63,-2337.64C6027.78,-2320.98 6003.96,-2296.9 5992.04,-2269.55"/>
</g>
<!-- ahriman_models_user -->
<g id="node79" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#af1313" stroke="black" cx="1844.04" cy="-2072.8" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1844.04" y="-2081.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1844.04" y="-2070.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="1844.04" y="-2059.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_application_handlers_user -->
<g id="edge364" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1882.01,-2069.43C2002.88,-2061.72 2389.43,-2035.77 2708.04,-2000.03 2939.99,-1974.02 2995.65,-1948.32 3228.04,-1926.5 3398.36,-1910.5 3834.23,-1943.03 3997.04,-1890.5 4014.77,-1884.77 4261.9,-1716.73 4278.04,-1707.42 4308.68,-1689.73 4325.24,-1697.6 4349.04,-1671.42 4395.69,-1620.08 4406.04,-1595.48 4406.04,-1526.11 4406.04,-1526.11 4406.04,-1526.11 4406.04,-1048.95 4406.04,-832.43 4659.1,-947.95 4871.04,-903.64 5014.59,-873.63 5060.72,-916.39 5199.04,-867.64 5203.62,-866.03 5208.22,-863.97 5212.69,-861.67"/>
<polygon fill="#af1313" stroke="black" points="5214.65,-864.58 5221.67,-856.65 5211.24,-858.47 5214.65,-864.58"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_auth -->
<g id="edge365" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1820.85,-2049.57C1790.01,-2020.33 1733.39,-1967.84 1682.04,-1926.5 1617.17,-1874.28 1600.94,-1860.62 1530.04,-1816.96 1499.15,-1797.94 1462.69,-1779.12 1435,-1765.53"/>
<polygon fill="#af1313" stroke="black" points="1436.49,-1762.36 1425.97,-1761.12 1433.42,-1768.65 1436.49,-1762.36"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge366" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1832.59,-2045.13C1818.35,-2014.11 1791.77,-1962.58 1758.04,-1926.5 1640.59,-1800.85 1596.94,-1775.61 1439.04,-1707.42 1343.6,-1666.2 1222.12,-1647.69 1156.08,-1640.17"/>
<polygon fill="#af1313" stroke="black" points="1156.29,-1636.67 1145.97,-1639.06 1155.53,-1643.63 1156.29,-1636.67"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge367" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1882.34,-2069.27C2016.65,-2060.33 2478.77,-2029.3 2860.04,-2000.03 3447.88,-1954.92 3595.68,-1951.93 4182.04,-1890.5 4440.46,-1863.42 4503.16,-1839.3 4762.04,-1816.96 5348.98,-1766.29 6063.78,-1749.88 6263.78,-1746.12"/>
<polygon fill="#af1313" stroke="black" points="6264.08,-1749.61 6274.02,-1745.93 6263.95,-1742.61 6264.08,-1749.61"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node80" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="1793.04" cy="-2174.57" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="1793.04" y="-2183.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1793.04" y="-2172.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="1793.04" y="-2161.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_access</text>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_ahriman -->
<g id="edge368" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1742.13,-2170.65C1619.42,-2163.19 1310.16,-2141.71 1212.04,-2109.57 1181.8,-2099.67 1180.36,-2083.41 1150.04,-2073.8"/>
<path fill="none" stroke="black" d="M1150.04,-2071.8C1007.81,-2026.75 955.78,-2047.61 832.04,-1964.27"/>
<path fill="none" stroke="black" d="M832.04,-1962.27C814.21,-1950.26 152.04,-1124.21 152.04,-941.41 152.04,-941.41 152.04,-941.41 152.04,-493.48 152.04,-423.27 100.62,-383.31 152.04,-335.5"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_handlers_user -->
<g id="edge369" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_application_handlers_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1843.68,-2170.51C1936.78,-2164.97 2141.42,-2153.14 2314.04,-2145.57 2549.28,-2135.26 3143.83,-2163.52 3373.04,-2109.57 3563.74,-2064.69 3585.48,-1979.71 3774.04,-1926.5 3900.73,-1890.74 3942.73,-1930.84 4068.04,-1890.5 4164.51,-1859.44 4185.58,-1839.88 4268.04,-1780.96 4297.41,-1759.96 4365.48,-1699.61 4388.04,-1671.42 4458.06,-1583.88 4475.54,-1557.98 4513.04,-1452.34 4534.93,-1390.65 4537.04,-1372.49 4537.04,-1307.03 4537.04,-1307.03 4537.04,-1307.03 4537.04,-1232.26 4537.04,-1137.07 4582.33,-1116.83 4651.04,-1050.95"/>
<path fill="none" stroke="black" d="M4651.04,-1048.95C4752.97,-943.65 4806.99,-946.83 4947.04,-903.64 5055.15,-870.3 5092.96,-906.99 5199.04,-867.64 5203.53,-865.98 5208.04,-863.91 5212.45,-861.61"/>
<polygon fill="#f91010" stroke="black" points="5214.3,-864.59 5221.3,-856.64 5210.87,-858.49 5214.3,-864.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge370" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1769.74,-2148.68C1701.58,-2075.87 1502.42,-1863.1 1424.15,-1779.49"/>
<polygon fill="#f91010" stroke="black" points="1426.57,-1776.96 1417.18,-1772.05 1421.46,-1781.74 1426.57,-1776.96"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge371" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1226.04,-2071.8C1203.79,-2059.67 1192.18,-1989.27 1188.04,-1964.27"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge372" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1806.84,-2146.57C1812.72,-2135.07 1819.65,-2121.51 1825.93,-2109.22"/>
<polygon fill="#f91010" stroke="black" points="1829.14,-2110.63 1830.58,-2100.13 1822.91,-2107.44 1829.14,-2110.63"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge373" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M832.04,-1962.27C785.57,-1927.09 786.5,-1763.33 770.04,-1707.42 716.71,-1526.26 630.41,-1207.88 564.04,-1122.72 528.61,-1077.27 466.3,-1107.66 456.04,-1050.95"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge374" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1778.04,-2071.8C1785,-2022.16 1736.41,-2013.81 1744.04,-1964.27"/>
<path fill="none" stroke="black" d="M1744.04,-1962.27C1751.31,-1915.03 1736.09,-1901.86 1744.04,-1854.73"/>
<path fill="none" stroke="black" d="M1744.04,-1852.73C1779.51,-1642.23 1745.57,-1578.1 1822.04,-1378.8 1870.45,-1252.62 1887.17,-1214.87 1986.04,-1122.72 2023.46,-1087.84 2087.98,-1100.7 2076.04,-1050.95"/>
<path fill="none" stroke="black" d="M2076.04,-1048.95C2057.88,-981.71 1979.29,-1008.9 1962.04,-941.41"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge375" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1784.49,-2145.64C1779.43,-2125.65 1774.63,-2098.09 1778.04,-2073.8"/>
<path fill="none" stroke="black" d="M1778.04,-2071.8C1785.44,-2019.05 1714.32,-2042.41 1682.04,-2000.03 1671.69,-1986.45 1677.92,-1978.19 1668.04,-1964.27"/>
<path fill="none" stroke="black" d="M1668.04,-1962.27C1604.97,-1873.4 1554.04,-1854.16 1554.04,-1745.19 1554.04,-1745.19 1554.04,-1745.19 1554.04,-1633.65 1554.04,-1520.16 1555.78,-1491.39 1570.04,-1378.8 1586.66,-1247.55 1648.98,-922.2 1682.04,-794.1 1685.04,-782.46 1688.82,-770.03 1692.56,-758.54"/>
<polygon fill="#f91010" stroke="black" points="1695.99,-759.33 1695.81,-748.73 1689.34,-757.12 1695.99,-759.33"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge376" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1744.04,-1852.73C1750.67,-1819.14 1761.7,-1813.6 1772.04,-1780.96 1812.46,-1653.27 1794.59,-1612.81 1844.04,-1488.34 1864.69,-1436.35 1872.08,-1423.26 1906.04,-1378.8 1975.95,-1287.25 2045.74,-1302.6 2090.04,-1196.26 2121.32,-1121.15 2100.66,-1093.86 2090.04,-1013.18 2078.28,-923.89 2047.57,-823.36 2027.8,-764.68"/>
<polygon fill="#f91010" stroke="black" points="2031.02,-763.27 2024.48,-754.93 2024.39,-765.52 2031.02,-763.27"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge377" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1668.04,-1962.27C1615.95,-1879.32 1722.31,-1841.77 1706.04,-1745.19"/>
<path fill="none" stroke="black" d="M1706.04,-1743.19C1704.82,-1710.71 1697.93,-1703.38 1692.04,-1671.42 1656.46,-1478.32 1596.83,-1422.84 1644.04,-1232.26 1648.39,-1214.7 1656.03,-1212.94 1663.04,-1196.26 1682.82,-1149.14 1690.17,-1137.22 1698.04,-1086.72 1707.98,-1022.9 1705.18,-1005.35 1696.04,-941.41"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge378" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1706.04,-1743.19C1715.31,-1629.8 1719.02,-1601.57 1730.04,-1488.34 1734.78,-1439.64 1729.1,-1426.25 1741.04,-1378.8 1787.87,-1192.62 1868.13,-1166.49 1900.04,-977.18 1905.47,-944.95 1905.67,-935.84 1900.04,-903.64 1897.1,-886.89 1889.97,-884.4 1887.04,-867.64 1881.4,-835.45 1881.35,-826.29 1887.04,-794.1 1888.86,-783.79 1891.91,-773.06 1895.37,-762.94"/>
<polygon fill="#f91010" stroke="black" points="1898.69,-764.05 1898.78,-753.46 1892.1,-761.68 1898.69,-764.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge379" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1744.04,-1962.27C1754.82,-1892.25 1944.72,-1421.77 2001.04,-1378.8 2087.48,-1312.84 2169.7,-1423.09 2243.04,-1342.8 2303.29,-1276.83 2292.72,-1026.68 2266.04,-941.41"/>
<path fill="none" stroke="black" d="M2266.04,-939.41C2242.88,-871.8 2200.1,-800.69 2171.35,-756.98"/>
<polygon fill="#f91010" stroke="black" points="2174.25,-755.01 2165.8,-748.61 2168.41,-758.88 2174.25,-755.01"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge380" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1022.04,-1962.27C958,-1868.35 894.73,-1037.13 956.04,-941.41"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge381" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1778.04,-2071.8C1788.92,-1994.21 2125.28,-1549.67 2174.04,-1488.34 2228.56,-1419.75 2262.62,-1418.33 2307.04,-1342.8 2424.82,-1142.49 2364.97,-1058.11 2418.04,-831.87"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge382" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1778.04,-2071.8C1784.69,-2027.75 1813.97,-2028.76 1848.04,-2000.03 2005.8,-1867.02 2039.48,-1826.12 2176.04,-1671.42 2285.14,-1547.81 2269.95,-1474.74 2404.04,-1378.8 2443.82,-1350.34 2469.48,-1372.9 2508.04,-1342.8 2538.8,-1318.78 2528.91,-1297.32 2556.04,-1269.26 2595.29,-1228.66 2624.27,-1239.96 2660.04,-1196.26 2669.8,-1184.33 2775.59,-955.8 2770.04,-941.41"/>
<path fill="none" stroke="black" d="M2770.04,-939.41C2747.19,-883.23 2707.38,-888.64 2686.04,-831.87"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge383" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1744.04,-1962.27C1746.31,-1941.37 1976.09,-1689.94 1986.04,-1671.42 2026.24,-1596.57 1995.66,-1560.17 2041.04,-1488.34 2079.78,-1427.01 2099.25,-1415.14 2162.04,-1378.8 2206.92,-1352.82 2234.99,-1378.05 2273.04,-1342.8 2311.64,-1307.03 2307.84,-1284.9 2318.04,-1233.26 2351.76,-1062.41 2291.58,-857.37 2258.96,-764.55"/>
<polygon fill="#f91010" stroke="black" points="2262.26,-763.38 2255.61,-755.13 2255.67,-765.72 2262.26,-763.38"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge384" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1778.04,-2071.8C1787.48,-2007.66 1849.26,-2033.09 1905.04,-2000.03 1966.6,-1963.55 1972.28,-1940.93 2023.04,-1890.5 2070.44,-1843.39 2081.43,-1830.72 2126.04,-1780.96 2240.21,-1653.59 2261.55,-1615.43 2376.04,-1488.34 2420.97,-1438.46 2426.81,-1419.71 2480.04,-1378.8 2506.53,-1358.44 2519.27,-1362.8 2546.04,-1342.8 2582.99,-1315.2 2666.56,-1234.03 2693.04,-1196.26 2792.89,-1053.8 2879.88,-1000.23 2836.04,-831.87"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge385" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1741.73,-2173.52C1621.39,-2172.48 1325.11,-2164.29 1245.04,-2109.57 1230.17,-2099.42 1241.84,-2082.42 1226.04,-2073.8"/>
<path fill="none" stroke="black" d="M1226.04,-2071.8C1198.11,-2056.57 1192.51,-2050.21 1164.04,-2036.03 1127.31,-2017.75 1104.26,-2032.39 1079.04,-2000.03 1033.61,-1941.75 1033.72,-1745.1 1028.04,-1671.42 1009.28,-1428.28 952.5,-1354.59 1028.04,-1122.72 1077.58,-970.63 1147.72,-962.51 1240.04,-831.87"/>
<path fill="none" stroke="black" d="M1240.04,-829.87C1270.68,-771.07 1472.01,-734.9 1565.93,-721.03"/>
<polygon fill="#f91010" stroke="black" points="1566.63,-724.47 1576.03,-719.57 1565.63,-717.54 1566.63,-724.47"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge386" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1150.04,-2071.8C1096.85,-2054.96 1086.52,-2039.46 1047.04,-2000.03 1033.31,-1986.33 1033.94,-1979.58 1022.04,-1964.27"/>
<path fill="none" stroke="black" d="M1022.04,-1962.27C920.43,-1831.48 758.03,-1336.37 703.04,-1086.72 689.07,-1023.32 645.11,-990.12 688.04,-941.41"/>
</g>
<!-- ahriman_models_user_identity -->
<g id="node81" class="node">
<title>ahriman_models_user_identity</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="763.04" cy="-1049.95" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="763.04" y="-1058.45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="763.04" y="-1047.45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="763.04" y="-1036.45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_identity</text>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge387" class="edge">
<title>ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M731.4,-1027.12C713.44,-1013.87 691.19,-995.92 674.04,-977.18 665.22,-967.55 572.29,-827.17 525.15,-755.71"/>
<polygon fill="#ce3b3b" stroke="black" points="528.06,-753.77 519.63,-747.35 522.22,-757.62 528.06,-753.77"/>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login -->
<g id="edge388" class="edge">
<title>ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M793.25,-1026.29C834.24,-996.12 910.38,-942.11 980.04,-903.64 1084.81,-845.79 1112.08,-830.68 1226.04,-794.1 1345.63,-755.72 1492.09,-731.61 1566.19,-720.95"/>
<polygon fill="#ce3b3b" stroke="black" points="1566.75,-724.41 1576.16,-719.54 1565.77,-717.48 1566.75,-724.41"/>
</g>
<!-- ahriman_version -->
<g id="node82" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="2830.04" cy="-1744.19" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="2830.04" y="-1747.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2830.04" y="-1736.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge389" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2793.58,-1737.79C2554.67,-1702.37 1217.2,-1502.98 1041.04,-1452.34 759.24,-1371.34 651.83,-1391.46 433.04,-1196.26 294.38,-1072.55 228.04,-1017.69 228.04,-831.87 228.04,-831.87 228.04,-831.87 228.04,-399.5 228.04,-354.61 210.58,-339.86 228.04,-298.5"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge390" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2865.04,-1735.24C2904.61,-1726.65 2971.07,-1713.38 3029.04,-1707.42 3612.84,-1647.33 3763.9,-1716.64 4349.04,-1671.42 4767.3,-1639.09 5267.65,-1561.59 5431.88,-1535.14"/>
<polygon fill="#e72222" stroke="black" points="5432.89,-1538.52 5442.2,-1533.47 5431.77,-1531.61 5432.89,-1538.52"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_index -->
<g id="edge391" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2835.05,-1723C2843.84,-1683.38 2858.54,-1593.44 2830.04,-1526.11"/>
<path fill="none" stroke="black" d="M2830.04,-1524.11C2821.84,-1508.08 2825.39,-1499.2 2811.04,-1488.34 2567,-1303.69 2392.02,-1513.51 2138.04,-1342.8 2108.35,-1322.85 1821.34,-887.33 1733.47,-753.39"/>
<polygon fill="#e72222" stroke="black" points="1736.39,-751.46 1727.98,-745.02 1730.54,-755.3 1736.39,-751.46"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge392" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2830.04,-1524.11C2770.7,-1382.18 2900.49,-1344.66 2941.04,-1196.26 2962.65,-1117.15 2969.25,-1095.02 2964.04,-1013.18 2957.8,-915.22 3002.77,-866.09 2936.04,-794.1 2882.05,-735.87 2831.65,-794.43 2761.04,-758.1 2757.2,-756.13 2753.44,-753.75 2749.83,-751.14"/>
<polygon fill="#e72222" stroke="black" points="2751.72,-748.17 2741.71,-744.7 2747.37,-753.65 2751.72,-748.17"/>
</g>
<!-- ahriman_web -->
<g id="node83" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="2273.04" cy="-400.5" rx="41.59" ry="18"/>
<text text-anchor="middle" x="2273.04" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.web</text>
</g>
<!-- ahriman_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge393" class="edge">
<title>ahriman_web&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2267.8,-382.45C2264.6,-368.4 2262.85,-348.69 2273.04,-335.5"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node84" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="2952.04" cy="-494.48" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="2952.04" y="-502.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2952.04" y="-491.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2952.04" y="-480.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares</text>
</g>
<!-- ahriman_web_middlewares&#45;&gt;ahriman_web_web -->
<g id="edge394" class="edge">
<title>ahriman_web_middlewares&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2915.25,-474.73C2906.53,-471.04 2897.12,-467.64 2888.04,-465.49 2599.63,-397 2505.61,-515.84 2222.04,-429.49 2218.51,-428.41 2214.98,-427.02 2211.52,-425.44"/>
<polygon fill="#c82323" stroke="black" points="2213.08,-422.31 2202.58,-420.86 2209.89,-428.54 2213.08,-422.31"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge395" class="edge">
<title>ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M503.35,-676.94C505.53,-653.74 505.96,-623.08 498.04,-597.24"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node86" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="2969.04" cy="-596.24" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="2969.04" y="-610.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2969.04" y="-599.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2969.04" y="-588.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="2969.04" y="-577.24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exception_handler</text>
</g>
<!-- ahriman_web_middlewares_exception_handler&#45;&gt;ahriman_web_web -->
<g id="edge396" class="edge">
<title>ahriman_web_middlewares_exception_handler&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2933.8,-564.93C2920.39,-552.66 2905.39,-537.98 2893.04,-523.47 2883.29,-512.02 2886.15,-504.38 2874.04,-495.48"/>
</g>
<!-- ahriman_web_routes -->
<g id="node87" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2175.04" cy="-494.48" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2175.04" y="-502.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2175.04" y="-491.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2175.04" y="-480.98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">routes</text>
</g>
<!-- ahriman_web_routes&#45;&gt;ahriman_web_web -->
<g id="edge397" class="edge">
<title>ahriman_web_routes&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2175.04,-465.38C2175.04,-457.34 2175.04,-448.44 2175.04,-439.9"/>
<polygon fill="#732626" stroke="black" points="2178.54,-439.74 2175.04,-429.74 2171.54,-439.74 2178.54,-439.74"/>
</g>
<!-- ahriman_web_views -->
<g id="node88" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="2208.04" cy="-596.24" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2208.04" y="-604.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2208.04" y="-593.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2208.04" y="-582.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge398" class="edge">
<title>ahriman_web_views&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2199.02,-567.98C2195.38,-556.98 2191.13,-544.12 2187.22,-532.31"/>
<polygon fill="#f91010" stroke="black" points="2190.51,-531.1 2184.04,-522.71 2183.86,-533.3 2190.51,-531.1"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge399" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1897.47,-819.33C1860.17,-807.64 1801.49,-786.6 1756.04,-758.1 1751.09,-755 1746.18,-751.37 1741.49,-747.55"/>
<polygon fill="#950303" stroke="black" points="1743.71,-744.84 1733.84,-741 1739.16,-750.16 1743.71,-744.84"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge400" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1954.2,-799.27C1962.58,-786.57 1972.45,-771.59 1981.55,-757.79"/>
<polygon fill="#950303" stroke="black" points="1984.51,-759.66 1987.09,-749.38 1978.66,-755.8 1984.51,-759.66"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge401" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1907.26,-804.57C1891.31,-789.48 1870.73,-770.03 1852.79,-753.08"/>
<polygon fill="#950303" stroke="black" points="1854.95,-750.31 1845.28,-745.98 1850.14,-755.39 1854.95,-750.31"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge402" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1928.49,-794.33C1927.17,-785.87 1925.73,-776.66 1924.32,-767.6"/>
<polygon fill="#950303" stroke="black" points="1927.74,-766.83 1922.74,-757.49 1920.82,-767.91 1927.74,-766.83"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge403" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1966.99,-811.6C2002.63,-791.85 2059.57,-760.28 2098.78,-738.54"/>
<polygon fill="#950303" stroke="black" points="2100.8,-741.42 2107.85,-733.51 2097.41,-735.3 2100.8,-741.42"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge404" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1896.28,-824.99C1753.83,-806.58 1249.09,-741.32 1090.26,-720.79"/>
<polygon fill="#950303" stroke="black" points="1090.67,-717.32 1080.3,-719.5 1089.77,-724.26 1090.67,-717.32"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge405" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1970.08,-818.12C1995.52,-810.24 2030.55,-800.22 2062.04,-794.1 2203.83,-766.58 2253.69,-818.21 2385.04,-758.1 2389.13,-756.23 2393.1,-753.86 2396.89,-751.2"/>
<polygon fill="#950303" stroke="black" points="2399.13,-753.89 2404.87,-744.99 2394.83,-748.37 2399.13,-753.89"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge406" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1969.73,-817.8C1995.16,-809.72 2030.32,-799.6 2062.04,-794.1 2174.21,-774.69 2468.58,-803.36 2573.04,-758.1 2577.17,-756.32 2581.17,-754 2584.97,-751.38"/>
<polygon fill="#950303" stroke="black" points="2587.19,-754.09 2592.97,-745.22 2582.91,-748.55 2587.19,-754.09"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge407" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1970.63,-819.63C2040.87,-799.96 2187.8,-758.76 2189.04,-758.1 2193.24,-755.86 2197.41,-753.21 2201.44,-750.36"/>
<polygon fill="#950303" stroke="black" points="2203.64,-753.09 2209.5,-744.26 2199.41,-747.51 2203.64,-753.09"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge408" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1969.71,-817.7C1995.14,-809.57 2030.29,-799.42 2062.04,-794.1 2194.87,-771.85 2543.16,-810.97 2667.04,-758.1 2671.18,-756.34 2675.18,-754.04 2678.99,-751.43"/>
<polygon fill="#950303" stroke="black" points="2681.2,-754.14 2687,-745.28 2676.94,-748.59 2681.2,-754.14"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge409" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1896.13,-825.82C1841.34,-818.7 1738.14,-800.45 1661.04,-758.1 1657.15,-755.97 1653.33,-753.44 1649.65,-750.7"/>
<polygon fill="#950303" stroke="black" points="1651.84,-747.97 1641.86,-744.41 1647.45,-753.41 1651.84,-747.97"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge410" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1895.69,-828.43C1729.82,-822 1078.61,-794.61 995.04,-758.1 990.91,-756.3 986.92,-753.98 983.11,-751.35"/>
<polygon fill="#950303" stroke="black" points="985.17,-748.52 975.12,-745.18 980.89,-754.06 985.17,-748.52"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge411" class="edge">
<title>ahriman_web_views_index&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1732.71,-685.46C1739.68,-679.19 1747.67,-673.16 1756.04,-669.01 1912.37,-591.49 2063.9,-753.26 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node91" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="2338.04" cy="-713.56" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2338.04" y="-727.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2338.04" y="-716.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2338.04" y="-705.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2338.04" y="-694.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge412" class="edge">
<title>ahriman_web_views_service&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2312.96,-685.26C2306.31,-679.22 2298.81,-673.34 2291.04,-669.01 2226.84,-633.21 2109.12,-662.96 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge413" class="edge">
<title>ahriman_web_views_service_add&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2040.75,-686.74C2078.81,-654.6 2139.06,-603.17 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_service_reload_auth&#45;&gt;ahriman_web_routes -->
<g id="edge414" class="edge">
<title>ahriman_web_views_service_reload_auth&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1846.49,-682.84C1853.62,-677.69 1861.32,-672.78 1869.04,-669.01 1981.74,-613.91 2085.86,-709.41 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge415" class="edge">
<title>ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1944.25,-683.37C1950.15,-678.17 1956.55,-673.11 1963.04,-669.01 2035.46,-623.17 2103.65,-673.88 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge416" class="edge">
<title>ahriman_web_views_service_request&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2133.2,-670.18C2130.57,-647.41 2130.88,-619.53 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge417" class="edge">
<title>ahriman_web_views_service_search&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1080.08,-709.44C1272.49,-693.59 2129.82,-621.63 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node97" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="2526.04" cy="-713.56" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2526.04" y="-727.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2526.04" y="-716.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2526.04" y="-705.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2526.04" y="-694.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge418" class="edge">
<title>ahriman_web_views_status&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2501.91,-684.82C2495.13,-678.65 2487.33,-672.81 2479.04,-669.01 2339.84,-605.17 2073.46,-734.16 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes -->
<g id="edge419" class="edge">
<title>ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2404.74,-682.4C2398.72,-677.22 2392.04,-672.42 2385.04,-669.01 2283.8,-619.69 2091.61,-697.93 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge420" class="edge">
<title>ahriman_web_views_status_package&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2592.93,-681.99C2586.9,-676.85 2580.16,-672.16 2573.04,-669.01 2484.27,-629.66 2098.56,-684.06 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge421" class="edge">
<title>ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2208.18,-684.61C2192.81,-670.15 2174.78,-651.65 2161.04,-633.01 2150.36,-618.52 2133.98,-613.34 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge422" class="edge">
<title>ahriman_web_views_status_status&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2686.97,-681.9C2680.93,-676.77 2674.18,-672.11 2667.04,-669.01 2559,-622.16 2089.31,-702.53 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node102" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="2808.04" cy="-713.56" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2808.04" y="-727.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2808.04" y="-716.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2808.04" y="-705.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2808.04" y="-694.56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge423" class="edge">
<title>ahriman_web_views_user&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2784.04,-684.52C2777.26,-678.35 2769.43,-672.59 2761.04,-669.01 2633.69,-614.62 2080.03,-721.06 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge424" class="edge">
<title>ahriman_web_views_user_login&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1641.3,-682.33C1647.32,-677.16 1654.02,-672.38 1661.04,-669.01 1758.46,-622.23 2093.64,-693.87 2142.04,-597.24"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge425" class="edge">
<title>ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M975.08,-681.85C981.12,-676.72 987.88,-672.08 995.04,-669.01 1112.41,-618.71 2084.86,-711.41 2142.04,-597.24"/>
<path fill="none" stroke="black" d="M2142.04,-595.24C2151.87,-575.61 2159.75,-552.38 2165.34,-533.28"/>
<polygon fill="#732626" stroke="black" points="2168.78,-534 2168.13,-523.43 2162.04,-532.1 2168.78,-534"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge426" class="edge">
<title>ahriman_web_web&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2204.46,-381.65C2231.49,-365.03 2268.1,-341.9 2273.04,-335.5"/>
</g>
<!-- aioauthclient -->
<g id="node106" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b67b53" stroke="black" points="1159.54,-1981.27 1156.54,-1985.27 1135.54,-1985.27 1132.54,-1981.27 1088.54,-1981.27 1088.54,-1945.27 1159.54,-1945.27 1159.54,-1981.27"/>
<text text-anchor="middle" x="1124.04" y="-1960.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aioauthclient</text>
</g>
<!-- aioauthclient&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge427" class="edge">
<title>aioauthclient&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1117.53,-1944.97C1101.21,-1901 1059.86,-1785.56 1060.04,-1745.19"/>
</g>
<!-- aiohttp -->
<g id="node107" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#f9c806" stroke="black" points="2234.04,-1324.03 2231.04,-1328.03 2210.04,-1328.03 2207.04,-1324.03 2180.04,-1324.03 2180.04,-1288.03 2234.04,-1288.03 2234.04,-1324.03"/>
<text text-anchor="middle" x="2207.04" y="-1303.53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttp</text>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares -->
<g id="edge428" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2234.36,-1298.73C2293.96,-1284.51 2439.51,-1247.13 2554.04,-1196.26 2617.69,-1167.99 3064.04,-901.52 3064.04,-831.87 3064.04,-831.87 3064.04,-831.87 3064.04,-712.56 3064.04,-644 3080.63,-618.07 3045.04,-559.47 3034.47,-542.07 3017.16,-528.25 3000.32,-517.98"/>
<polygon fill="#f9c806" stroke="black" points="3002.01,-514.91 2991.6,-512.92 2998.5,-520.96 3002.01,-514.91"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge429" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2179.9,-1303.71C2026.49,-1296.08 1266.87,-1255.79 1041.04,-1196.26 951.47,-1172.65 935.75,-1145.75 846.04,-1122.72 736.45,-1094.59 682.96,-1156.66 594.04,-1086.72 539.38,-1043.73 528.85,-1010.58 536.04,-941.41"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge430" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2304.04,-1232.26C2369.07,-1193.92 2400.84,-1226.45 2470.04,-1196.26 2586.18,-1145.59 2871.55,-976.72 2936.04,-867.64 2977.39,-797.7 2978.1,-699.85 2974.09,-643.05"/>
<polygon fill="#f9c806" stroke="black" points="2977.57,-642.63 2973.3,-632.94 2970.59,-643.18 2977.57,-642.63"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge431" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2076.04,-829.87C2043.79,-765.51 2070.44,-736.67 2095.04,-669.01 2108.06,-633.17 2124.96,-631.33 2142.04,-597.24"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge432" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2201.75,-1287.83C2197.61,-1273.42 2192.21,-1252.22 2190.04,-1233.26"/>
<path fill="none" stroke="black" d="M2190.04,-1232.26C2185.93,-1196.4 2166.3,-1193.65 2152.04,-1160.49"/>
<path fill="none" stroke="black" d="M2152.04,-1158.49C2128.91,-1104.73 2089.7,-1107.86 2076.04,-1050.95"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge433" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2076.04,-829.87C2068.39,-803.81 2053.81,-777.32 2040.29,-756.31"/>
<polygon fill="#f9c806" stroke="black" points="2043.21,-754.38 2034.79,-747.96 2037.37,-758.23 2043.21,-754.38"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge434" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2152.04,-1158.49C2133.15,-1114.59 2161.11,-1097.88 2152.04,-1050.95"/>
<path fill="none" stroke="black" d="M2152.04,-1048.95C2144.51,-1010.02 2121.57,-1009.81 2099.04,-977.18 2044.03,-897.52 2057.83,-853.05 1981.04,-794.1 1939.56,-762.27 1915.37,-782.33 1869.04,-758.1 1864.46,-755.71 1859.88,-752.96 1855.4,-750.01"/>
<polygon fill="#f9c806" stroke="black" points="1857.18,-746.99 1846.97,-744.17 1853.2,-752.74 1857.18,-746.99"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge435" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2152.04,-1048.95C2128.74,-949.42 2104.82,-929.96 2076.04,-831.87"/>
<path fill="none" stroke="black" d="M2076.04,-829.87C2049.38,-776.68 2010.16,-794.42 1963.04,-758.1 1959.52,-755.4 1955.96,-752.47 1952.45,-749.47"/>
<polygon fill="#f9c806" stroke="black" points="1954.72,-746.8 1944.9,-742.82 1950.09,-752.06 1954.72,-746.8"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge436" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2152.04,-1048.95C2130.62,-951.77 2133.39,-834.89 2137.57,-768.2"/>
<polygon fill="#f9c806" stroke="black" points="2141.08,-768.15 2138.25,-757.94 2134.09,-767.69 2141.08,-768.15"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge437" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2179.84,-1301.88C2090.72,-1291.56 1799.3,-1258.02 1558.04,-1232.26 1479.19,-1223.84 1269.74,-1239.14 1203.04,-1196.26 1171.19,-1175.79 1187.2,-1149.09 1160.04,-1122.72 1136.06,-1099.45 1112.42,-1114.62 1094.04,-1086.72 1031.44,-991.73 1056.11,-944.78 1070.04,-831.87"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge438" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2190.04,-1232.26C2171.19,-1067.66 2278.12,-1044.07 2366.04,-903.64 2386.94,-870.26 2406.42,-869.51 2418.04,-831.87"/>
<path fill="none" stroke="black" d="M2418.04,-829.87C2422.7,-809.98 2425.87,-787.76 2427.99,-768.18"/>
<polygon fill="#f9c806" stroke="black" points="2431.48,-768.52 2429.01,-758.21 2424.51,-767.81 2431.48,-768.52"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge439" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2227.73,-1287.73C2246.79,-1272.29 2276.25,-1249.65 2304.04,-1233.26"/>
<path fill="none" stroke="black" d="M2304.04,-1232.26C2335.13,-1213.93 2321.76,-1190.35 2342.04,-1160.49"/>
<path fill="none" stroke="black" d="M2342.04,-1158.49C2392.99,-1083.44 2533.39,-855.71 2592.85,-758.89"/>
<polygon fill="#f9c806" stroke="black" points="2595.93,-760.56 2598.18,-750.21 2589.97,-756.9 2595.93,-760.56"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge440" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2152.04,-1048.95C2149.66,-1034.85 2199.61,-856.37 2225.28,-766.11"/>
<polygon fill="#f9c806" stroke="black" points="2228.69,-766.92 2228.06,-756.34 2221.95,-765 2228.69,-766.92"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge441" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2342.04,-1158.49C2373.44,-1119.22 2673.66,-930.72 2716.04,-903.64 2768.4,-870.18 2854.34,-891.26 2836.04,-831.87"/>
<path fill="none" stroke="black" d="M2836.04,-829.87C2824.41,-785.23 2796.88,-787.15 2761.04,-758.1 2757.59,-755.31 2754.07,-752.33 2750.6,-749.29"/>
<polygon fill="#f9c806" stroke="black" points="2752.88,-746.63 2743.09,-742.58 2748.22,-751.86 2752.88,-746.63"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge442" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2179.7,-1297.97C2071.29,-1268.31 1670.65,-1142.29 1530.04,-867.64 1515.14,-838.55 1517.12,-824.13 1530.04,-794.1 1538.9,-773.49 1556.03,-755.72 1572.52,-742.24"/>
<polygon fill="#f9c806" stroke="black" points="1574.81,-744.89 1580.52,-735.97 1570.49,-739.38 1574.81,-744.89"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge443" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2180,-1302.99C2019.99,-1290.8 1202.77,-1227.17 1160.04,-1196.26 1131.01,-1175.26 1152.89,-1147.52 1127.04,-1122.72 1095.95,-1092.89 1072.46,-1111.24 1037.04,-1086.72 910.84,-999.39 725.94,-963.99 804.04,-831.87"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge444" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2304.04,-1232.26C2307.9,-1229.83 2847.76,-871.59 2850.04,-867.64 2870.74,-831.75 2907.42,-520.02 2874.04,-495.48"/>
<path fill="none" stroke="black" d="M2874.04,-493.48C2754.57,-410.28 2360.35,-474.94 2222.04,-429.49 2218.54,-428.34 2215.02,-426.89 2211.57,-425.27"/>
<polygon fill="#f9c806" stroke="black" points="2213.14,-422.14 2202.65,-420.64 2209.91,-428.36 2213.14,-422.14"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node109" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#69b03a" stroke="black" points="1118.04,-1177.49 1115.04,-1181.49 1094.04,-1181.49 1091.04,-1177.49 1050.04,-1177.49 1050.04,-1141.49 1118.04,-1141.49 1118.04,-1177.49"/>
<text text-anchor="middle" x="1084.04" y="-1156.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge445" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2179.89,-1304.24C2032.93,-1299.65 1332.02,-1273.97 1132.04,-1196.26 1124.41,-1193.3 1116.93,-1188.77 1110.23,-1183.93"/>
<polygon fill="#f9c806" stroke="black" points="1112.26,-1181.07 1102.21,-1177.71 1107.97,-1186.6 1112.26,-1181.07"/>
</g>
<!-- aiohttpsession -->
<g id="node111" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db86e" stroke="black" points="522.04,-1177.49 519.04,-1181.49 498.04,-1181.49 495.04,-1177.49 442.04,-1177.49 442.04,-1141.49 522.04,-1141.49 522.04,-1177.49"/>
<text text-anchor="middle" x="482.04" y="-1156.99" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge446" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2179.85,-1303.41C2061.77,-1296.31 1581.65,-1266.8 1188.04,-1233.26 1023.37,-1219.23 982.43,-1213.23 818.04,-1196.26 716.54,-1185.78 597.84,-1173.03 532.18,-1165.93"/>
<polygon fill="#f9c806" stroke="black" points="532.43,-1162.44 522.11,-1164.84 531.68,-1169.4 532.43,-1162.44"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node108" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#a2b653" stroke="black" points="3383.54,-731.56 3380.54,-735.56 3359.54,-735.56 3356.54,-731.56 3282.54,-731.56 3282.54,-695.56 3383.54,-695.56 3383.54,-731.56"/>
<text text-anchor="middle" x="3333.04" y="-711.06" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpdebugtoolbar</text>
</g>
<!-- aiohttpdebugtoolbar&#45;&gt;ahriman_web_web -->
<g id="edge447" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3333.04,-695.36C3333.04,-672.83 3333.04,-632.08 3333.04,-597.24"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge448" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1118.21,-1148.26C1148.89,-1137.48 1193.25,-1117.71 1221.04,-1086.72 1267.35,-1035.08 1244.34,-1002.05 1278.04,-941.41"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge449" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1049.86,-1147.42C1024.69,-1139.61 989.52,-1129.38 958.04,-1122.72 902.05,-1110.88 747.19,-1123.13 703.04,-1086.72 551.53,-961.79 656.31,-839.6 559.04,-669.01 538.3,-632.64 510.21,-637.29 498.04,-597.24"/>
</g>
<!-- aiohttpsecurity -->
<g id="node110" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3bce3b" stroke="black" points="1130.04,-1433.57 1127.04,-1437.57 1106.04,-1437.57 1103.04,-1433.57 1050.04,-1433.57 1050.04,-1397.57 1130.04,-1397.57 1130.04,-1433.57"/>
<text text-anchor="middle" x="1090.04" y="-1413.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsecurity</text>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers -->
<g id="edge450" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1087.24,-1397.54C1084.39,-1375.79 1081.81,-1337.33 1093.04,-1307.03"/>
<path fill="none" stroke="black" d="M1093.04,-1305.03C1111.65,-1254.78 1052.89,-1248.52 1041.04,-1196.26 1033.81,-1164.39 1024.29,-1150.79 1041.04,-1122.72 1059.66,-1091.51 1097.06,-1073.07 1127.48,-1062.71"/>
<polygon fill="#3bce3b" stroke="black" points="1128.62,-1066.02 1137.07,-1059.62 1126.48,-1059.35 1128.62,-1066.02"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge451" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1074.69,-1397.46C1036.12,-1354.91 931.12,-1241.92 832.04,-1160.49"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_views_service_reload_auth -->
<g id="edge452" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_web_views_service_reload_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1093.04,-1305.03C1127.92,-1208.38 1213.11,-1255.54 1297.04,-1196.26 1493.19,-1057.71 1617.69,-1058.89 1696.04,-831.87"/>
<path fill="none" stroke="black" d="M1696.04,-829.87C1702.05,-810.31 1738.05,-776.23 1768.38,-750.17"/>
<polygon fill="#3bce3b" stroke="black" points="1771,-752.54 1776.35,-743.4 1766.46,-747.21 1771,-752.54"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge453" class="edge">
<title>aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M477.28,-1141.49C471.52,-1120.4 461.89,-1083.27 456.04,-1050.95"/>
<path fill="none" stroke="black" d="M456.04,-1048.95C445.43,-990.33 529.88,-1000.66 536.04,-941.41"/>
</g>
<!-- aur -->
<g id="node112" class="node">
<title>aur</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#33ccae" stroke="black" points="4801.04,-2670.26 4798.04,-2674.26 4777.04,-2674.26 4774.04,-2670.26 4747.04,-2670.26 4747.04,-2634.26 4801.04,-2634.26 4801.04,-2670.26"/>
<text text-anchor="middle" x="4774.04" y="-2649.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aur</text>
</g>
<!-- aur&#45;&gt;ahriman_application_handlers_search -->
<g id="edge454" class="edge">
<title>aur&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4801.1,-2649.98C4932.53,-2643.05 5498.04,-2604.71 5498.04,-2457.51 5498.04,-2457.51 5498.04,-2457.51 5498.04,-2071.8 5498.04,-1860.26 5454.87,-1790.62 5542.04,-1597.88 5551.11,-1577.83 5567.91,-1582.33 5576.04,-1561.88 5588.11,-1531.51 5594.95,-1514.99 5576.04,-1488.34 5547.97,-1448.8 5505.32,-1488.52 5473.04,-1452.34 5384.5,-1353.11 5407.04,-1293.48 5407.04,-1160.49 5407.04,-1160.49 5407.04,-1160.49 5407.04,-1048.95 5407.04,-1021.9 5433.23,-984.87 5522.04,-903.64 5532.42,-894.15 5558.5,-876.16 5581.94,-860.56"/>
<polygon fill="#33ccae" stroke="black" points="5584.02,-863.38 5590.43,-854.94 5580.16,-857.55 5584.02,-863.38"/>
</g>
<!-- aur&#45;&gt;ahriman_models_package -->
<g id="edge455" class="edge">
<title>aur&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4787.93,-2634.04C4814.63,-2598.75 4867.43,-2516.53 4832.04,-2457.51"/>
<path fill="none" stroke="black" d="M4832.04,-2455.51C4822.11,-2439.01 4815.45,-2418.7 4811.12,-2401.37"/>
<polygon fill="#33ccae" stroke="black" points="4814.51,-2400.51 4808.83,-2391.56 4807.69,-2402.09 4814.51,-2400.51"/>
</g>
<!-- aur&#45;&gt;ahriman_web_views_service_search -->
<g id="edge456" class="edge">
<title>aur&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4746.92,-2640.46C4724.54,-2632.07 4691.74,-2620.97 4662.04,-2615.49 4381.44,-2563.67 4305.77,-2598.05 4021.04,-2579.49 2897.65,-2506.25 2574.87,-2709.83 1495.04,-2391.52 1083.48,-2270.2 928.46,-2093.62 852.04,-1671.42 822.85,-1510.18 862.28,-1075.8 956.04,-941.41"/>
<path fill="none" stroke="black" d="M956.04,-939.41C984.68,-892.81 1022.47,-910.84 1056.04,-867.64 1066.51,-854.16 1067.56,-848.77 1070.04,-831.87"/>
<path fill="none" stroke="black" d="M1070.04,-829.87C1073.28,-807.71 1068.73,-783.58 1062.4,-763.14"/>
<polygon fill="#33ccae" stroke="black" points="1065.65,-761.82 1059.18,-753.43 1059.01,-764.03 1065.65,-761.82"/>
</g>
<!-- boto3 -->
<g id="node113" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40a6c0" stroke="black" points="6150.04,-2286.55 6147.04,-2290.55 6126.04,-2290.55 6123.04,-2286.55 6096.04,-2286.55 6096.04,-2250.55 6150.04,-2250.55 6150.04,-2286.55"/>
<text text-anchor="middle" x="6123.04" y="-2266.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">boto3</text>
</g>
<!-- boto3&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge457" class="edge">
<title>boto3&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6108.46,-2250.36C6082.04,-2217.08 6030.51,-2141.17 6048.04,-2073.8"/>
</g>
<!-- cryptography -->
<g id="node114" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#196be6" stroke="black" points="1066.04,-3129.99 1063.04,-3133.99 1042.04,-3133.99 1039.04,-3129.99 992.04,-3129.99 992.04,-3093.99 1066.04,-3093.99 1066.04,-3129.99"/>
<text text-anchor="middle" x="1029.04" y="-3109.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">cryptography</text>
</g>
<!-- cryptography&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge458" class="edge">
<title>cryptography&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M991.82,-3107.74C844.02,-3093.83 304.41,-3033.19 262.04,-2886"/>
<path fill="none" stroke="black" d="M262.04,-2884C230.67,-2846.25 199.8,-2860.48 172.04,-2820.01 147.65,-2784.46 148.04,-2769.14 148.04,-2726.03 148.04,-2726.03 148.04,-2726.03 148.04,-2549.5 148.04,-1994.97 262.04,-1861.56 262.04,-1307.03 262.04,-1307.03 262.04,-1307.03 262.04,-1232.26 262.04,-1037.92 401.43,-836.52 465.96,-753.69"/>
<polygon fill="#196be6" stroke="black" points="468.9,-755.61 472.33,-745.58 463.4,-751.28 468.9,-755.61"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge459" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M262.04,-2884C243.13,-2816.38 262.04,-2796.24 262.04,-2726.03 262.04,-2726.03 262.04,-2726.03 262.04,-1962.27 262.04,-1646.88 422.3,-1285.8 469.26,-1186.77"/>
<polygon fill="#196be6" stroke="black" points="472.53,-1188.04 473.68,-1177.5 466.21,-1185.02 472.53,-1188.04"/>
</g>
<!-- requests -->
<g id="node118" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06c0" stroke="black" points="1823.04,-3057.99 1820.04,-3061.99 1799.04,-3061.99 1796.04,-3057.99 1769.04,-3057.99 1769.04,-3021.99 1823.04,-3021.99 1823.04,-3057.99"/>
<text text-anchor="middle" x="1796.04" y="-3037.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge460" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1066.29,-3107.59C1196.14,-3095.74 1627.97,-3056.33 1758.4,-3044.43"/>
<polygon fill="#196be6" stroke="black" points="1759.04,-3047.88 1768.68,-3043.49 1758.4,-3040.91 1759.04,-3047.88"/>
</g>
<!-- jinja2 -->
<g id="node115" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b3bce" stroke="black" points="878.04,-2286.55 875.04,-2290.55 854.04,-2290.55 851.04,-2286.55 824.04,-2286.55 824.04,-2250.55 878.04,-2250.55 878.04,-2286.55"/>
<text text-anchor="middle" x="851.04" y="-2266.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja2</text>
</g>
<!-- jinja2&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge461" class="edge">
<title>jinja2&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M878.31,-2266.85C1018.5,-2263.12 1658.95,-2244.11 1853.04,-2203.56 2212.24,-2128.5 2618.05,-1947.16 2760.9,-1880.16"/>
<polygon fill="#3b3bce" stroke="black" points="2762.77,-1883.15 2770.33,-1875.72 2759.79,-1876.81 2762.77,-1883.15"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge462" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M839.3,-2250.38C827.16,-2232.24 808.06,-2202.58 794.04,-2175.57"/>
<path fill="none" stroke="black" d="M794.04,-2173.57C748.45,-2085.73 718.04,-2063.23 718.04,-1964.27 718.04,-1964.27 718.04,-1964.27 718.04,-1852.73 718.04,-1552.69 581.27,-1503.04 452.04,-1232.26 444.24,-1215.93 437.66,-1213.75 433.04,-1196.26 405.67,-1092.72 375.12,-812.68 418.04,-714.56"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge463" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M794.04,-2173.57C753.47,-2089.86 794.04,-2057.29 794.04,-1964.27 794.04,-1964.27 794.04,-1964.27 794.04,-1524.11 794.04,-1363.94 968.14,-1233.68 1046.55,-1183.14"/>
<polygon fill="#3b3bce" stroke="black" points="1048.61,-1185.97 1055.17,-1177.65 1044.85,-1180.06 1048.61,-1185.97"/>
</g>
<!-- passlib -->
<g id="node116" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#763bce" stroke="black" points="1882.04,-2380.53 1879.04,-2384.53 1858.04,-2384.53 1855.04,-2380.53 1828.04,-2380.53 1828.04,-2344.53 1882.04,-2344.53 1882.04,-2380.53"/>
<text text-anchor="middle" x="1855.04" y="-2360.03" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge464" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1855.55,-2344.43C1856.49,-2307.88 1857.99,-2219.46 1853.04,-2145.57 1852.3,-2134.56 1851,-2122.65 1849.63,-2111.75"/>
<polygon fill="#763bce" stroke="black" points="1853.07,-2111.13 1848.29,-2101.68 1846.14,-2112.05 1853.07,-2111.13"/>
</g>
<!-- pyalpm -->
<g id="node117" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b13bce" stroke="black" points="3791.04,-2985.99 3788.04,-2989.99 3767.04,-2989.99 3764.04,-2985.99 3737.04,-2985.99 3737.04,-2949.99 3791.04,-2949.99 3791.04,-2985.99"/>
<text text-anchor="middle" x="3764.04" y="-2965.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pyalpm</text>
</g>
<!-- pyalpm&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge465" class="edge">
<title>pyalpm&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3764.04,-2949.61C3764.04,-2918.16 3764.04,-2849.74 3764.04,-2792.02"/>
<path fill="none" stroke="black" d="M3764.04,-2790.02C3764.04,-2753.03 3688.94,-2753.92 3712.04,-2725.03 3745.23,-2683.51 3900.88,-2664.28 3981.44,-2656.98"/>
<polygon fill="#b13bce" stroke="black" points="3982.17,-2660.43 3991.82,-2656.07 3981.55,-2653.46 3982.17,-2660.43"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge466" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3764.04,-2790.02C3771.59,-2756.71 3775.48,-2742.14 3805.04,-2725.03 3887.51,-2677.26 4596.07,-2757.82 4662.04,-2689.03 4684.66,-2665.44 4670.32,-2647.1 4662.04,-2615.49 4653.77,-2583.92 4629.13,-2583.98 4626.04,-2551.5"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge467" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3764.04,-2790.02C3770.93,-2676.71 3898.88,-2742.54 4011.04,-2725.03 4086.23,-2713.28 4638.77,-2740.28 4695.04,-2689.03 4748.28,-2640.53 4744.09,-2548.17 4736.47,-2495.96"/>
<polygon fill="#b13bce" stroke="black" points="4739.88,-2495.1 4734.87,-2485.77 4732.97,-2496.19 4739.88,-2495.1"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge468" class="edge">
<title>requests&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1796.04,-3021.55C1796.04,-2993.15 1796.04,-2935.14 1796.04,-2886 1796.04,-2886 1796.04,-2886 1796.04,-2725.03 1796.04,-2409.56 2170.92,-2601.67 2476.04,-2521.5 2539.18,-2504.91 2999.24,-2433.74 3049.04,-2391.52 3076.86,-2367.94 3095.77,-2272.68 3111.04,-2239.56 3124.43,-2210.49 3125.78,-2201.85 3144.04,-2175.57"/>
<path fill="none" stroke="black" d="M3144.04,-2173.57C3158.5,-2149.02 3179.46,-2124.96 3197.3,-2106.62"/>
<polygon fill="#ef06c0" stroke="black" points="3200.17,-2108.69 3204.72,-2099.13 3195.2,-2103.77 3200.17,-2108.69"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge469" class="edge">
<title>requests&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7454.04,-2725.03C7496.71,-2679.02 7665.15,-2634.11 7696.04,-2579.49 7708.72,-2557.06 7703.57,-2546.15 7696.04,-2521.5 7547.87,-2036.49 7246.46,-2028.56 6770.04,-1854.73"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge470" class="edge">
<title>requests&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5608.04,-2884C5633.1,-2814.52 6862.65,-2828.4 6936.04,-2820.01 7168.5,-2793.44 7321.69,-2918.98 7454.04,-2726.03"/>
<path fill="none" stroke="black" d="M7454.04,-2725.03C7470.28,-2698.56 7079.55,-2352.61 7055.04,-2333.54 6923.91,-2231.52 6750.07,-2136.82 6670.76,-2095.55"/>
<polygon fill="#ef06c0" stroke="black" points="6672.06,-2092.28 6661.57,-2090.79 6668.84,-2098.49 6672.06,-2092.28"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge471" class="edge">
<title>requests&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7454.04,-2725.03C7504.43,-2666.64 7454.04,-2628.62 7454.04,-2551.5 7454.04,-2551.5 7454.04,-2551.5 7454.04,-2455.51 7454.04,-2394.7 7432.12,-2379.28 7392.04,-2333.54 7289.55,-2216.59 6879.37,-1965.3 6740.94,-1882.1"/>
<polygon fill="#ef06c0" stroke="black" points="6742.59,-1879.02 6732.22,-1876.87 6738.99,-1885.02 6742.59,-1879.02"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge472" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5608.04,-2884C5600.76,-2867.26 5599.99,-2847.14 5601.35,-2829.99"/>
<polygon fill="#ef06c0" stroke="black" points="5604.86,-2830.06 5602.44,-2819.75 5597.9,-2829.32 5604.86,-2830.06"/>
</g>
<!-- requests&#45;&gt;aur -->
<g id="edge473" class="edge">
<title>requests&#45;&gt;aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1823.23,-3038.59C2166.71,-3033.39 5648.18,-2978.4 5608.04,-2886"/>
<path fill="none" stroke="black" d="M5608.04,-2884C5637.94,-2798.16 4036.05,-2885.53 3973.04,-2820.01 3940.92,-2786.61 3973.01,-2742.23 4016.04,-2725.03 4164.17,-2665.8 4585.11,-2748.76 4733.04,-2689.03 4739.75,-2686.32 4746.11,-2682.03 4751.74,-2677.35"/>
<polygon fill="#ef06c0" stroke="black" points="4754.38,-2679.67 4759.4,-2670.34 4749.66,-2674.5 4754.38,-2679.67"/>
</g>
<!-- srcinfo -->
<g id="node119" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b6537b" stroke="black" points="4653.04,-2670.26 4650.04,-2674.26 4629.04,-2674.26 4626.04,-2670.26 4599.04,-2670.26 4599.04,-2634.26 4653.04,-2634.26 4653.04,-2670.26"/>
<text text-anchor="middle" x="4626.04" y="-2649.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">srcinfo</text>
</g>
<!-- srcinfo&#45;&gt;ahriman_models_package -->
<g id="edge474" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4627.39,-2634.22C4628.67,-2614.29 4629.87,-2580.34 4626.04,-2551.5"/>
<path fill="none" stroke="black" d="M4626.04,-2549.5C4618.82,-2495.11 4610.91,-2470.48 4645.04,-2427.52 4672.11,-2393.45 4720.14,-2377.42 4756.35,-2369.94"/>
<polygon fill="#b6537b" stroke="black" points="4757.06,-2373.37 4766.22,-2368.05 4755.74,-2366.5 4757.06,-2373.37"/>
</g>
</g>
</svg>