ahriman/docs/ahriman-architecture.svg
2022-06-05 20:46:32 +03:00

5494 lines
522 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 4.0.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="12053pt" height="4201pt"
viewBox="0.00 0.00 12053.49 4201.35" 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 4197.35)">
<title>G</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-4197.35 12049.49,-4197.35 12049.49,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="#6b432e" stroke="black" cx="7634" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="7634" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7634" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7634" 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="#db5105" stroke="black" cx="10205" cy="-874.19" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="10205" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10205" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10205" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_handlers_add -->
<g id="node8" class="node">
<title>ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="11076" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="11076" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11076" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="11076" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="11076" y="-628.34" 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="M10251.42,-870.06C10346.05,-862.88 10567.46,-841.99 10747,-793.64 10873.64,-759.55 10904.58,-744.49 11021,-684.1 11024.92,-682.07 11028.91,-679.84 11032.86,-677.51"/>
<polygon fill="#db5105" stroke="black" points="11034.69,-680.49 11041.41,-672.29 11031.05,-674.51 11034.69,-680.49"/>
</g>
<!-- ahriman_application_handlers_clean -->
<g id="node10" class="node">
<title>ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="8027" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="8027" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8027" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="8027" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="8027" y="-628.34" 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="M10092,-755.87C9904.86,-670.58 8398.23,-651.82 8084.22,-648.82"/>
<polygon fill="#db5105" stroke="black" points="8084.02,-645.32 8073.98,-648.73 8083.95,-652.32 8084.02,-645.32"/>
</g>
<!-- ahriman_application_handlers_key_import -->
<g id="node14" class="node">
<title>ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="10854" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10854" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10854" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10854" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10854" y="-628.34" 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="edge3" 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="M10442,-755.87C10588.45,-686.99 10649.16,-745.26 10799,-684.1 10803.21,-682.39 10807.44,-680.34 10811.58,-678.1"/>
<polygon fill="#db5105" stroke="black" points="10813.58,-680.99 10820.48,-672.96 10810.07,-674.93 10813.58,-680.99"/>
</g>
<!-- ahriman_application_handlers_patch -->
<g id="node15" class="node">
<title>ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="7574" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7574" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7574" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7574" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7574" y="-628.34" 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="edge4" 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="M10158.34,-871.11C9912.13,-859.77 8739.28,-801.74 7787,-684.1 7733.08,-677.44 7671.97,-666.87 7629.08,-658.94"/>
<polygon fill="#db5105" stroke="black" points="7629.6,-655.47 7619.12,-657.08 7628.31,-662.36 7629.6,-655.47"/>
</g>
<!-- ahriman_application_handlers_rebuild -->
<g id="node16" class="node">
<title>ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="10410" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10410" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10410" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10410" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10410" y="-628.34" 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="edge5" 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="M10280,-755.87C10285.37,-737.5 10290.49,-733.67 10304,-720.1 10309.36,-714.72 10339.22,-694.62 10365.89,-677.06"/>
<polygon fill="#db5105" stroke="black" points="10367.96,-679.88 10374.4,-671.47 10364.12,-674.03 10367.96,-679.88"/>
</g>
<!-- ahriman_application_handlers_remove -->
<g id="node17" class="node">
<title>ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="10965" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10965" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10965" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10965" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10965" y="-628.34" 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="edge6" 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="M10251.44,-870.98C10333.74,-865.72 10509.37,-848.5 10646,-793.64 10700.92,-771.6 10702.68,-743.59 10757,-720.1 10821.12,-692.38 10845.76,-711.56 10910,-684.1 10914.12,-682.35 10918.27,-680.28 10922.34,-678.05"/>
<polygon fill="#db5105" stroke="black" points="10924.22,-681.01 10931.1,-672.95 10920.7,-674.96 10924.22,-681.01"/>
</g>
<!-- ahriman_application_handlers_remove_unknown -->
<g id="node18" class="node">
<title>ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="10280" cy="-647.34" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="10280" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10280" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10280" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10280" y="-628.34" 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="edge7" 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="M10280,-755.87C10285.73,-736.28 10286.56,-713.8 10285.64,-694.48"/>
<polygon fill="#db5105" stroke="black" points="10289.13,-694.16 10284.99,-684.41 10282.14,-694.61 10289.13,-694.16"/>
</g>
<!-- ahriman_application_handlers_search -->
<g id="node20" class="node">
<title>ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="10632" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10632" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10632" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10632" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10632" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_search -->
<g id="edge8" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10442,-755.87C10503.49,-726.95 10518.46,-718.61 10577,-684.1 10580.64,-681.96 10584.39,-679.68 10588.12,-677.36"/>
<polygon fill="#db5105" stroke="black" points="10590.2,-680.19 10596.78,-671.89 10586.46,-674.27 10590.2,-680.19"/>
</g>
<!-- ahriman_application_handlers_setup -->
<g id="node21" class="node">
<title>ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11414" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="11414" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11414" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="11414" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="11414" y="-628.34" 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="edge9" 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="M10251.69,-870.44C10364.05,-863.26 10658.05,-841.12 10899,-793.64 11071.15,-759.72 11269.6,-696.76 11361.84,-666.07"/>
<polygon fill="#db5105" stroke="black" points="11363.12,-669.34 11371.5,-662.85 11360.9,-662.7 11363.12,-669.34"/>
</g>
<!-- ahriman_application_handlers_shell -->
<g id="node22" class="node">
<title>ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="7877" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7877" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7877" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7877" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7877" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">shell</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge10" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10188.27,-847.11C10168.86,-819.42 10134.08,-777.06 10092,-757.87"/>
<path fill="none" stroke="black" d="M10092,-755.87C9877.43,-658.08 8202.24,-730.26 7971,-684.1 7956.11,-681.13 7940.5,-676.05 7926.36,-670.64"/>
<polygon fill="#db5105" stroke="black" points="7927.43,-667.3 7916.84,-666.86 7924.85,-673.81 7927.43,-667.3"/>
</g>
<!-- ahriman_application_handlers_sign -->
<g id="node23" class="node">
<title>ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="10150" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10150" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10150" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10150" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10150" y="-628.34" 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="M10227.39,-848.38C10245.61,-826.39 10269.88,-792.49 10280,-757.87"/>
<path fill="none" stroke="black" d="M10280,-755.87C10283.27,-744.7 10232.34,-705.93 10193.27,-678.15"/>
<polygon fill="#db5105" stroke="black" points="10194.83,-674.97 10184.64,-672.05 10190.79,-680.68 10194.83,-674.97"/>
</g>
<!-- ahriman_application_handlers_status -->
<g id="node24" class="node">
<title>ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="7463" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7463" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7463" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7463" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7463" y="-628.34" 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="M10158.39,-871.87C9963.75,-866.16 9196.77,-841.68 8568,-793.64 8100.16,-757.9 7960.29,-840.7 7518,-684.1 7513.54,-682.52 7509.07,-680.51 7504.73,-678.26"/>
<polygon fill="#db5105" stroke="black" points="7506.44,-675.2 7496.01,-673.33 7502.99,-681.3 7506.44,-675.2"/>
</g>
<!-- ahriman_application_handlers_status_update -->
<g id="node25" class="node">
<title>ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="441" cy="-647.34" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="441" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="441" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="441" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="441" y="-628.34" 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="M10158.32,-873.13C9538.5,-872.27 2941.17,-861.57 2084,-793.64 1863.6,-776.18 1811.87,-743.35 1592,-720.1 1180.09,-676.56 682.26,-656.52 506.37,-650.44"/>
<polygon fill="#db5105" stroke="black" points="506.36,-646.94 496.25,-650.09 506.12,-653.93 506.36,-646.94"/>
</g>
<!-- ahriman_application_handlers_triggers -->
<g id="node26" class="node">
<title>ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="10743" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10743" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10743" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10743" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10743" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge14" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10442,-755.87C10545.06,-707.4 10584.49,-731.61 10688,-684.1 10692.07,-682.24 10696.19,-680.1 10700.24,-677.82"/>
<polygon fill="#db5105" stroke="black" points="10702.15,-680.76 10708.97,-672.65 10698.58,-674.73 10702.15,-680.76"/>
</g>
<!-- ahriman_application_handlers_update -->
<g id="node28" class="node">
<title>ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="10521" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10521" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10521" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10521" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10521" y="-628.34" 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="M10233.26,-850.94C10243.27,-843.62 10254.83,-835.8 10266,-829.64 10339.99,-788.88 10365.56,-793.83 10442,-757.87"/>
<path fill="none" stroke="black" d="M10442,-755.87C10469.23,-743.07 10489.17,-715.57 10502.2,-691.58"/>
<polygon fill="#db5105" stroke="black" points="10505.36,-693.09 10506.86,-682.6 10499.15,-689.87 10505.36,-693.09"/>
</g>
<!-- ahriman_application_application_application -->
<g id="node3" class="node">
<title>ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="10058" cy="-991.51" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10058" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10058" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10058" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10058" y="-972.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_application_application&#45;&gt;ahriman_application_application -->
<g id="edge16" class="edge">
<title>ahriman_application_application_application&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10090.62,-964.92C10113.63,-946.87 10144.46,-922.68 10168.32,-903.97"/>
<polygon fill="#915230" stroke="black" points="10170.73,-906.52 10176.44,-897.6 10166.41,-901.02 10170.73,-906.52"/>
</g>
<!-- ahriman_application_application_application_packages -->
<g id="node4" class="node">
<title>ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="10058" cy="-1101.05" rx="77.56" ry="36.54"/>
<text text-anchor="middle" x="10058" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10058" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10058" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10058" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_packages</text>
</g>
<!-- ahriman_application_application_application_packages&#45;&gt;ahriman_application_application_application -->
<g id="edge17" class="edge">
<title>ahriman_application_application_application_packages&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10058,-1064.24C10058,-1056.07 10058,-1047.28 10058,-1038.75"/>
<polygon fill="#734126" stroke="black" points="10061.5,-1038.53 10058,-1028.53 10054.5,-1038.53 10061.5,-1038.53"/>
</g>
<!-- ahriman_application_application_application_properties -->
<g id="node5" class="node">
<title>ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ac582b" stroke="black" cx="9875" cy="-1210.59" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="9875" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9875" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9875" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9875" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_properties</text>
</g>
<!-- ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge18" class="edge">
<title>ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9923.08,-1181.33C9947.14,-1167.19 9976.42,-1149.99 10001.54,-1135.23"/>
<polygon fill="#ac582b" stroke="black" points="10003.39,-1138.2 10010.24,-1130.11 9999.85,-1132.16 10003.39,-1138.2"/>
</g>
<!-- ahriman_application_application_application_repository -->
<g id="node6" class="node">
<title>ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="9875" cy="-1101.05" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="9875" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9875" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9875" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="9875" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_repository</text>
</g>
<!-- ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge19" class="edge">
<title>ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9875,-1173.78C9875,-1165.61 9875,-1156.82 9875,-1148.29"/>
<polygon fill="#ac582b" stroke="black" points="9878.5,-1148.07 9875,-1138.07 9871.5,-1148.07 9878.5,-1148.07"/>
</g>
<!-- ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application -->
<g id="edge20" class="edge">
<title>ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9923.08,-1071.79C9950.58,-1055.64 9984.88,-1035.48 10012.02,-1019.53"/>
<polygon fill="#734126" stroke="black" points="10014.08,-1022.38 10020.93,-1014.29 10010.53,-1016.34 10014.08,-1022.38"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node7" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="7634" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="7634" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7634" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7634" 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="edge21" 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="M7634,-93.88C7634,-85.84 7634,-76.94 7634,-68.39"/>
<polygon fill="#953703" stroke="black" points="7637.5,-68.23 7634,-58.23 7630.5,-68.23 7637.5,-68.23"/>
</g>
<!-- ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers -->
<g id="edge22" 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="M11042.12,-621.69C11035.35,-617.53 11028.13,-613.59 11021,-610.57 10904.29,-561.03 10637.41,-616.75 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_backup -->
<g id="node9" class="node">
<title>ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="7597" cy="-334.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7597" y="-348.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7597" y="-337.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7597" y="-326.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7597" y="-315.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">backup</text>
</g>
<!-- ahriman_application_handlers_backup&#45;&gt;ahriman_application_handlers -->
<g id="edge23" class="edge">
<title>ahriman_application_handlers_backup&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7629.07,-307.1C7649.65,-287.19 7672.44,-257.83 7672,-225.74"/>
<path fill="none" stroke="black" d="M7672,-223.74C7671.69,-201.38 7663.24,-177.95 7654.38,-159.41"/>
<polygon fill="#995733" stroke="black" points="7657.51,-157.83 7649.9,-150.46 7651.25,-160.97 7657.51,-157.83"/>
</g>
<!-- ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers -->
<g id="edge24" 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="M8030.44,-610.44C8031.41,-591.29 8031.25,-567.45 8027,-546.57"/>
</g>
<!-- ahriman_application_handlers_dump -->
<g id="node11" class="node">
<title>ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="7687" cy="-1429.67" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7687" y="-1443.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7687" y="-1432.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7687" y="-1421.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7687" y="-1410.67" 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="edge25" 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="M7687,-1392.56C7687,-1349.48 7687,-1275.28 7687,-1211.59 7687,-1211.59 7687,-1211.59 7687,-755.87 7687,-686.5 7666.04,-669.84 7630,-610.57 7610.36,-578.27 7550.24,-575.96 7574,-546.57"/>
</g>
<!-- ahriman_application_handlers_handler -->
<g id="node12" class="node">
<title>ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11376" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="11376" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11376" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="11376" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="11376" y="-1833.27" 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="edge26" 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="M11376,-1815.16C11376,-1772.08 11376,-1697.88 11376,-1634.19 11376,-1634.19 11376,-1634.19 11376,-873.19 11376,-682.05 11185.48,-560.02 11338,-444.81"/>
</g>
<!-- ahriman_application_handlers_help -->
<g id="node13" class="node">
<title>ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="7747" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7747" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7747" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7747" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7747" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">help</text>
</g>
<!-- ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers -->
<g id="edge27" class="edge">
<title>ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7716.42,-196.74C7701.5,-183.57 7683.51,-167.68 7668.14,-154.12"/>
<polygon fill="#a15b35" stroke="black" points="7670.19,-151.26 7660.38,-147.26 7665.56,-156.51 7670.19,-151.26"/>
</g>
<!-- ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers -->
<g id="edge28" 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="M10820.78,-621.46C10784.87,-593.92 10733.91,-552.62 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers -->
<g id="edge29" 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="M7563.88,-611.3C7560.07,-590.32 7559.62,-564.35 7574,-546.57"/>
</g>
<!-- ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers -->
<g id="edge30" 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="M10443.88,-621.69C10450.65,-617.53 10457.87,-613.59 10465,-610.57 10581.71,-561.03 10637.41,-616.75 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers -->
<g id="edge31" 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="M10930.45,-622.3C10923.81,-618.13 10916.8,-614.03 10910,-610.57 10839.18,-574.48 10676.8,-590.57 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers -->
<g id="edge32" 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="M10326.54,-621.35C10335.47,-617.28 10344.89,-613.45 10354,-610.57 10521.04,-557.67 10597.08,-643.56 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_restore -->
<g id="node19" class="node">
<title>ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="482" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="482" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="482" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="482" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="482" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">restore</text>
</g>
<!-- ahriman_application_handlers_restore&#45;&gt;ahriman_application_handlers -->
<g id="edge33" class="edge">
<title>ahriman_application_handlers_restore&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M522.7,-206.33C541.58,-199.15 564.55,-191.65 586,-187.97 950.91,-125.26 6927.45,-123.92 7576.89,-123.96"/>
<polygon fill="#a15b35" stroke="black" points="7576.94,-127.46 7586.94,-123.97 7576.94,-120.46 7576.94,-127.46"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge34" 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="M10659.75,-617.17C10681.12,-595.81 10712.14,-567.08 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge35" 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="M11418.33,-610.66C11426.31,-539.15 11440.25,-381.23 11414,-335.27"/>
</g>
<!-- ahriman_application_handlers_shell&#45;&gt;ahriman_application_handlers -->
<g id="edge36" class="edge">
<title>ahriman_application_handlers_shell&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7913.89,-624.2C7958.91,-596.85 8028.88,-553.11 8027,-546.57"/>
<path fill="none" stroke="black" d="M8027,-544.57C8014.38,-500.56 7672,-381.06 7672,-335.27"/>
</g>
<!-- ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers -->
<g id="edge37" 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="M10183.38,-621.62C10190.55,-617.3 10198.29,-613.32 10206,-610.57 10432.31,-529.61 10542.82,-679.61 10743,-546.57"/>
<path fill="none" stroke="black" d="M10743,-544.57C10966.31,-396.16 11124.04,-606.42 11338,-444.81"/>
<path fill="none" stroke="black" d="M11338,-442.81C11353.28,-431.27 11351.05,-422.75 11362,-407.04 11384.53,-374.73 11407.45,-374.12 11414,-335.27"/>
<path fill="none" stroke="black" d="M11414,-333.27C11446.43,-140.87 8165.34,-125.32 7690.89,-124.08"/>
<polygon fill="#995733" stroke="black" points="7690.86,-120.58 7680.85,-124.06 7690.84,-127.58 7690.86,-120.58"/>
</g>
<!-- ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers -->
<g id="edge38" 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="M7496.17,-621.23C7519.69,-602.36 7551.03,-574.98 7574,-546.57"/>
</g>
<!-- ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers -->
<g id="edge39" 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="M481.94,-622.56C500.8,-610.09 522.4,-593.47 538,-574.57 578.67,-525.26 600,-508.73 600,-444.81 600,-444.81 600,-444.81 600,-333.27 600,-148.15 6908.61,-125.95 7576.89,-124.12"/>
<polygon fill="#8a4e2e" stroke="black" points="7577.23,-127.61 7587.22,-124.09 7577.21,-120.61 7577.23,-127.61"/>
</g>
<!-- ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers -->
<g id="edge40" class="edge">
<title>ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10730.56,-611.72C10724.7,-588.57 10722.81,-560 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_unsafe_commands -->
<g id="node27" class="node">
<title>ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="7672" cy="-443.81" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="7672" y="-457.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7672" y="-446.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7672" y="-435.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7672" y="-424.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">unsafe_commands</text>
</g>
<!-- ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers -->
<g id="edge41" class="edge">
<title>ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7672,-406.97C7672,-386.06 7672,-359.17 7672,-335.27"/>
</g>
<!-- ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers -->
<g id="edge42" 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="M10555.55,-622.3C10562.19,-618.13 10569.2,-614.03 10576,-610.57 10646.82,-574.48 10676.8,-590.57 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_users -->
<g id="node29" class="node">
<title>ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="3763" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3763" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3763" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3763" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3763" y="-1833.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">users</text>
</g>
<!-- ahriman_application_handlers_users&#45;&gt;ahriman_application_handlers -->
<g id="edge43" class="edge">
<title>ahriman_application_handlers_users&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3757.7,-1815.66C3738.09,-1668.93 3684.95,-1105.94 3976,-829.64 4193.56,-623.11 4343.87,-753.35 4642,-720.1 4804.17,-702.02 7471.16,-673.27 7574,-546.57"/>
<path fill="none" stroke="black" d="M7574,-544.57C7608.96,-493.72 7558.99,-458.53 7593,-407.04 7610.14,-381.1 7631.59,-393.6 7653,-371.04 7665.39,-357.99 7674.27,-353.13 7672,-335.27"/>
<path fill="none" stroke="black" d="M7672,-333.27C7665.1,-285.98 7672.66,-273.53 7672,-225.74"/>
</g>
<!-- ahriman_application_handlers_versions -->
<g id="node30" class="node">
<title>ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11074" cy="-1961.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="11074" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11074" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="11074" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="11074" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">versions</text>
</g>
<!-- ahriman_application_handlers_versions&#45;&gt;ahriman_application_handlers -->
<g id="edge44" class="edge">
<title>ahriman_application_handlers_versions&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11093.43,-1928.24C11116.24,-1886.86 11151,-1812.51 11151,-1743.73 11151,-1743.73 11151,-1743.73 11151,-755.87 11151,-690.74 11177.29,-657.37 11132,-610.57 11010.17,-484.64 10597.08,-643.56 10743,-546.57"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node31" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="7597" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="7597" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7597" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="7597" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="7597" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers -->
<g id="edge45" 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="M7609.84,-189.12C7613.24,-179.93 7616.94,-169.98 7620.38,-160.68"/>
<polygon fill="#8a4e2e" stroke="black" points="7623.67,-161.89 7623.87,-151.29 7617.11,-159.45 7623.67,-161.89"/>
</g>
<!-- ahriman_application_lock -->
<g id="node32" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="11150" cy="-2063.57" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="11150" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11150" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="11150" y="-2050.07" 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="edge46" 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="M11175.49,-2038.96C11215.4,-2002 11292.85,-1930.28 11338.93,-1887.59"/>
<polygon fill="#7a4528" stroke="black" points="11341.37,-1890.11 11346.32,-1880.75 11336.61,-1884.97 11341.37,-1890.11"/>
</g>
<!-- ahriman_core -->
<g id="node33" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="7090" cy="-4164.36" rx="42.94" ry="18"/>
<text text-anchor="middle" x="7090" y="-4161.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_ahriman -->
<g id="edge47" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11909,-755.87C11873.32,-724.08 11927.42,-692.44 11909,-648.34"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge48" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11759,-2923.32C11759.19,-2921.66 11910.71,-2739 11911,-2737.36"/>
<path fill="none" stroke="black" d="M11911,-2735.36C11916.1,-2706.69 11903.2,-2699.81 11897,-2671.36 11869.33,-2544.3 11856.61,-2513.64 11835,-2385.4"/>
<path fill="none" stroke="black" d="M11835,-2383.4C11811.32,-2295.72 11678.43,-2105.74 11622,-2034.57 11601.98,-2009.33 11460.31,-1830.88 11432,-1815.5 11330.66,-1760.43 11281.71,-1823.25 11175,-1779.5 11070.61,-1736.69 10462.26,-1221.49 10360,-1173.82 10290.6,-1141.46 10205.2,-1122.92 10142.94,-1112.81"/>
<polygon fill="#f96210" stroke="black" points="10143.19,-1109.31 10132.77,-1111.21 10142.1,-1116.22 10143.19,-1109.31"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge49" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11531,-3314.81C11529.18,-3138.45 11607,-3101.69 11607,-2925.32 11607,-2925.32 11607,-2925.32 11607,-2735.36 11607,-2391.09 11505.09,-2292.43 11277,-2034.57 11223.02,-1973.55 11200.5,-1965.89 11130,-1925.03 11019.41,-1860.95 10184.94,-1531.63 10075,-1466.43 9990.95,-1416.59 9951.67,-1409.51 9910,-1321.13"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge50" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11569,-3533.89C11553.19,-3487.42 11513.01,-3505.28 11479,-3469.9 11422.68,-3411.31 11379,-3398.08 11379,-3316.81 11379,-3316.81 11379,-3316.81 11379,-3017.3 11379,-2713.57 10922.8,-2048.53 10728,-1815.5 10451.81,-1485.09 10352.71,-1423.72 10002,-1173.82 9981.61,-1159.29 9958.02,-1145.27 9936.75,-1133.55"/>
<polygon fill="#f96210" stroke="black" points="9938.25,-1130.38 9927.79,-1128.67 9934.9,-1136.52 9938.25,-1130.38"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge51" 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="M11909,-1741.73C11897,-1676.79 11900.7,-1658.43 11878,-1596.42 11755.65,-1262.22 11652.35,-1204.68 11399,-954.74 11342.37,-898.88 11328.58,-884.53 11271,-829.64 11216.73,-777.91 11152.96,-718.96 11113.5,-682.69"/>
<polygon fill="#f96210" stroke="black" points="11115.68,-679.94 11105.95,-675.75 11110.94,-685.09 11115.68,-679.94"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge52" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3397,-4080.37C3256.87,-4059.92 2225.18,-4039.13 2131,-3933.38 2120.36,-3921.44 2130.95,-3913.38 2131,-3897.38 2131.22,-3827.17 2132,-3809.62 2132,-3739.41 2132,-3739.41 2132,-3739.41 2132,-3635.65 2132,-3163.04 2564.32,-3202.88 2743,-2765.35 2774.17,-2689.01 2716.65,-2642.46 2773,-2582.27 2821.34,-2530.64 2867.57,-2583.02 2928,-2546.27 2972.47,-2519.23 2960.67,-2486 3004,-2457.17 3180.77,-2339.57 3282.06,-2428.98 3459,-2311.63 3559.63,-2244.9 3572,-2185.31 3572,-2064.57 3572,-2064.57 3572,-2064.57 3572,-1209.59 3572,-1113.11 3546.94,-1085.68 3572,-992.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge53" 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="M11075,-3914.38C11065.75,-3879.6 11087.11,-3867.29 11075,-3833.39"/>
<path fill="none" stroke="black" d="M11075,-3831.39C10949.34,-3479.73 10877.11,-3405.93 10773,-3047.3 10714.06,-2844.27 10757.21,-2776.18 10673,-2582.27 10563.06,-2329.12 10086.17,-2029.68 9417,-1356.9 9191.83,-1130.51 9168.48,-1040.83 8929,-829.64 8866.27,-774.33 8854.93,-747.74 8776,-720.1 8631.5,-669.51 8234.65,-728.08 8088,-684.1 8082.2,-682.37 8076.37,-679.97 8070.74,-677.23"/>
<polygon fill="#f96210" stroke="black" points="8071.96,-673.92 8061.48,-672.36 8068.7,-680.12 8071.96,-673.92"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge54" 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="M10467,-4080.37C10476.39,-3828.05 8672.69,-3152.15 8443,-3047.3 8357.3,-3008.17 8333.77,-3001.81 8253,-2953.31 8092.18,-2856.75 8081.25,-2783.92 7910,-2707.36 7842.67,-2677.26 7798.1,-2725.49 7748,-2671.36 7696.58,-2615.8 7724,-2578.43 7724,-2502.72 7724,-2502.72 7724,-2502.72 7724,-2273.87 7724,-2180.84 7702.67,-2155.11 7724,-2064.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge55" 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="M11759,-2923.32C11768.16,-2841.18 11759,-2820.01 11759,-2737.36 11759,-2737.36 11759,-2737.36 11759,-2500.72 11759,-2329.22 11741.48,-2277.81 11657,-2128.56 11630.54,-2081.81 11624.16,-2066.55 11581,-2034.57 11546.71,-2009.17 11526.3,-2023.95 11492,-1998.57 11475.55,-1986.4 11475.1,-1979.31 11463,-1962.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_help -->
<g id="edge56" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11075,-3831.39C11067.31,-3745.63 11092.97,-3721.86 11075,-3637.65"/>
<path fill="none" stroke="black" d="M11075,-3635.65C11053.19,-3542.44 10999,-3529.85 10999,-3434.13 10999,-3434.13 10999,-3434.13 10999,-3017.3 10999,-2873.23 10957.13,-2841.29 10904,-2707.36 10811.69,-2474.65 10763.56,-2427.68 10655,-2202.1 10541.69,-1966.64 10511.43,-1908.61 10405,-1669.96 10365,-1580.27 10356.37,-1557.24 10319,-1466.43 10307.35,-1438.12 10137.84,-973.97 10114,-954.74 9947.17,-820.17 9373.13,-835.93 9163,-793.64 9022.06,-765.28 8988.01,-752.73 8848,-720.1 8682.24,-681.48 8060.87,-711.73 8102,-546.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge57" 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="M11911,-2735.36C11955.53,-2585.38 11956.79,-2541.66 11949,-2385.4"/>
<path fill="none" stroke="black" d="M11949,-2383.4C11915.81,-2196.2 11871,-2152.93 11871,-1962.8 11871,-1962.8 11871,-1962.8 11871,-1851.27 11871,-1688.91 11062.12,-833.58 10946,-720.1 10930.95,-705.4 10912.96,-690.8 10896.9,-678.66"/>
<polygon fill="#f96210" stroke="black" points="10898.81,-675.72 10888.7,-672.54 10894.63,-681.33 10898.81,-675.72"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge58" 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="M2360,-3831.39C2331.45,-3806.56 2437.96,-3536.65 2460,-3505.9 2704.58,-3164.72 2974.47,-3289.4 3226,-2953.31 3296.05,-2859.71 3311.38,-2532.25 3401,-2457.17 3476.61,-2393.83 3539,-2477.47 3620,-2421.17 3650.91,-2399.69 3632.56,-2371.09 3662,-2347.63 3705.21,-2313.2 3741.15,-2349.91 3781,-2311.63 3921.98,-2176.21 3895.59,-1617.78 3900,-1596.42 3936.48,-1419.9 4028,-1391.84 4028,-1211.59 4028,-1211.59 4028,-1211.59 4028,-1100.05 4028,-1050.08 3988.93,-906.34 4028,-875.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge59" 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="M11170,-3914.38C11286.79,-3699.66 11631.31,-3772.24 11569,-3535.89"/>
<path fill="none" stroke="black" d="M11569,-3533.89C11548.7,-3438.07 11529.78,-3414.75 11531,-3316.81"/>
<path fill="none" stroke="black" d="M11531,-3314.81C11512.04,-3220.98 11455,-3209.01 11455,-3113.29 11455,-3113.29 11455,-3113.29 11455,-2923.32 11455,-2523.59 11504.22,-2387.75 11317,-2034.57 11298.19,-1999.1 11085.12,-1811.6 11061,-1779.5 10976.62,-1667.22 10976.91,-1625.38 10909,-1502.43 10716.66,-1154.18 10704.46,-1044.39 10474,-720.1 10465.28,-707.83 10454.76,-695.3 10444.79,-684.21"/>
<polygon fill="#f96210" stroke="black" points="10447.34,-681.81 10438.01,-676.79 10442.17,-686.53 10447.34,-681.81"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge60" 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="M11949,-2383.4C11942.84,-2285.8 11986.95,-2264.1 11985,-2166.33"/>
<path fill="none" stroke="black" d="M11985,-2164.33C11982.13,-2131.95 11977.09,-2124.48 11971,-2092.56 11953.75,-2002.17 11948.94,-1979.66 11933,-1889.03 11921.66,-1824.57 11924.55,-1807.31 11909,-1743.73"/>
<path fill="none" stroke="black" d="M11909,-1741.73C11735.67,-1221.01 11168.87,-791.57 11007.95,-677.85"/>
<polygon fill="#f96210" stroke="black" points="11009.9,-674.95 10999.71,-672.05 11005.87,-680.67 11009.9,-674.95"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge61" 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="M11075,-3997.37C11046.91,-3949.53 11152.87,-3969.16 11170,-3916.38"/>
<path fill="none" stroke="black" d="M11170,-3914.38C11177.62,-3890.9 11173.63,-3828.05 11175,-3803.4 11194.42,-3454.69 11227,-3368.56 11227,-3019.3 11227,-3019.3 11227,-3019.3 11227,-2829.34 11227,-2476.07 11408.45,-2344.55 11239,-2034.57 11206.06,-1974.31 11185.32,-1965.74 11130,-1925.03 11102.14,-1904.53 11088.65,-1909.81 11061,-1889.03 10609.8,-1550.01 10623.73,-1328.67 10201,-954.74 10179.95,-936.12 10162.05,-943.64 10149,-918.74 10105.99,-836.66 10185.75,-738.28 10238.61,-685.76"/>
<polygon fill="#f96210" stroke="black" points="10241.17,-688.15 10245.87,-678.65 10236.27,-683.14 10241.17,-688.15"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge62" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7046.95,-4162.86C6806.34,-4160.06 5603.67,-4146.12 4621,-4135.37 4431.28,-4133.29 1393.03,-4131.27 1206,-4099.37 382.35,-3958.85 36,-3463.37 36,-2627.82 36,-2627.82 36,-2627.82 36,-2383.4 36,-2098.65 0,-2028.48 0,-1743.73 0,-1743.73 0,-1743.73 0,-646.34 0,-627.1 138.04,-348.51 152,-335.27"/>
<path fill="none" stroke="black" d="M152,-333.27C190.77,-293.74 343.94,-255.55 427.28,-237.14"/>
<polygon fill="#f96210" stroke="black" points="428.07,-240.55 437.09,-235 426.57,-233.72 428.07,-240.55"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge63" 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="M11835,-2273.87C11820.22,-2180.32 11832.37,-2151.59 11795,-2064.57"/>
<path fill="none" stroke="black" d="M11795,-2062.57C11691.97,-1774.45 11510.8,-1802.77 11324,-1560.42 11165.13,-1354.29 11160.61,-1278.61 11013,-1064.28 10903.34,-905.06 10893.05,-846.77 10747,-720.1 10723.51,-699.73 10713.37,-700.58 10687,-684.1 10683.41,-681.86 10679.71,-679.52 10676,-677.15"/>
<polygon fill="#f96210" stroke="black" points="10677.69,-674.08 10667.38,-671.61 10673.9,-679.96 10677.69,-674.08"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge64" 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="M11985,-2164.33C11988.7,-2074.84 11985,-2052.37 11985,-1962.8 11985,-1962.8 11985,-1962.8 11985,-1741.73 11985,-1303.16 12162.16,-1116 11909,-757.87"/>
<path fill="none" stroke="black" d="M11909,-755.87C11844.31,-698.23 11585.92,-665.61 11470.36,-653.65"/>
<polygon fill="#f96210" stroke="black" points="11470.6,-650.15 11460.3,-652.62 11469.89,-657.12 11470.6,-650.15"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge65" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11075,-3997.37C11056.78,-3966.33 11094.74,-3946.48 11075,-3916.38"/>
<path fill="none" stroke="black" d="M11075,-3914.38C10983.93,-3775.52 10553.77,-3655.1 10415,-3563.88 10369.63,-3534.06 9675.51,-3002.25 9652,-2953.31 9640.84,-2930.09 9644.78,-2920.07 9652,-2895.33 9679.78,-2800.19 9714.85,-2788.34 9772,-2707.36 9783.69,-2690.8 9793.42,-2690.54 9800,-2671.36 9866.42,-2477.79 9823.46,-2422.76 9632,-2034.57 9451.54,-1668.68 9171.63,-1780.31 8911,-1466.43 8689.19,-1199.31 8851.72,-976.52 8582,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge66" 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="M11075,-3635.65C10991.76,-3174.82 11125.07,-3044.66 11051,-2582.27 11041.81,-2524.89 11035.57,-2510.72 11013,-2457.17 10944.41,-2294.41 10347.6,-1209.45 10247,-1064.28 10210.46,-1011.55 10196.92,-1001.5 10153,-954.74 10137.29,-938.02 10127.93,-938.34 10116,-918.74 10069.25,-841.97 10043.54,-803.12 10078,-720.1 10084.44,-704.58 10096.06,-690.67 10108.1,-679.33"/>
<polygon fill="#f96210" stroke="black" points="10110.5,-681.88 10115.62,-672.61 10105.83,-676.67 10110.5,-681.88"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge67" 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="M1993,-3997.37C1958.25,-3987.99 2004.55,-3950.48 1993,-3916.38"/>
<path fill="none" stroke="black" d="M1993,-3914.38C1980.48,-3877.42 1947.54,-3891.73 1923,-3861.38 1885.38,-3814.85 1866,-3799.25 1866,-3739.41 1866,-3739.41 1866,-3739.41 1866,-3635.65 1866,-3337.85 2355.98,-2715.58 2504,-2457.17 2530.56,-2410.8 3002,-1687.63 3002,-1634.19 3002,-1634.19 3002,-1634.19 3002,-1530.43 3002,-1289.01 3603.28,-971.47 3976,-829.64 4256.37,-722.96 4343.35,-748.33 4642,-720.1 5206.64,-666.74 7057.48,-651.2 7406.1,-648.71"/>
<polygon fill="#f96210" stroke="black" points="7406.23,-652.21 7416.21,-648.64 7406.18,-645.21 7406.23,-652.21"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge68" 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="M1220,-4080.37C1192.94,-4067.9 1045.87,-3917.62 1024,-3897.38 704.42,-3601.68 556.55,-3588.49 302,-3235.26 77.76,-2924.09 152,-2768.96 152,-2385.4 152,-2385.4 152,-2385.4 152,-1319.13 152,-1251.82 351.28,-818.75 380,-757.87"/>
<path fill="none" stroke="black" d="M380,-755.87C388.71,-733.1 401.7,-709.36 413.46,-690"/>
<polygon fill="#f96210" stroke="black" points="416.47,-691.78 418.75,-681.43 410.52,-688.09 416.47,-691.78"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge69" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11795,-2062.57C11780.2,-2002.31 11796.46,-1981.62 11771,-1925.03 11612.98,-1573.83 11453.95,-1561.38 11231,-1247.36 11150.84,-1134.46 11007.04,-806.69 10899,-720.1 10861.81,-690.3 10840.71,-705.24 10798,-684.1 10794.05,-682.15 10790.03,-679.96 10786.06,-677.67"/>
<polygon fill="#f96210" stroke="black" points="10787.86,-674.66 10777.49,-672.5 10784.24,-680.66 10787.86,-674.66"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge70" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7132.96,-4163.1C7516.09,-4160.76 10341.14,-4142.08 10714,-4099.37 10879.4,-4080.42 11159.28,-4142.95 11075,-3999.37"/>
<path fill="none" stroke="black" d="M11075,-3997.37C11079.25,-3873.44 9115.49,-3219.79 8999,-3177.28 8711.56,-3072.4 8622.47,-3088.54 8348,-2953.31 8170.2,-2865.72 8159.81,-2781.5 7976,-2707.36 7894.27,-2674.4 7837.38,-2739.1 7781,-2671.36 7725.22,-2604.35 7801,-1189.24 7801,-1102.05 7801,-1102.05 7801,-1102.05 7801,-873.19 7801,-773.26 7844.57,-738.27 7801,-648.34"/>
<path fill="none" stroke="black" d="M7801,-646.34C7776.51,-599.42 7755.87,-595.62 7736,-546.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge71" 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="M11835,-2383.4C11824.88,-2336.69 11842.94,-2323 11835,-2275.87"/>
<path fill="none" stroke="black" d="M11835,-2273.87C11821.72,-2195.04 11776.47,-2192.87 11729,-2128.56 11661.95,-2037.72 11648.04,-2012.78 11577,-1925.03 11566.82,-1912.46 11493.3,-1826.02 11481,-1815.5 11389.08,-1736.86 11347.75,-1742.57 11251,-1669.96 11192.19,-1625.81 11175.14,-1616.01 11127,-1560.42 11106.83,-1537.13 11105.98,-1528.15 11089,-1502.43 10982.1,-1340.52 10645.64,-835.41 10547.88,-688.68"/>
<polygon fill="#f96210" stroke="black" points="10550.79,-686.73 10542.33,-680.34 10544.96,-690.61 10550.79,-686.73"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_users -->
<g id="edge72" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3397,-4080.37C3361.38,-4075.17 3420.5,-4026.64 3397,-3999.37"/>
<path fill="none" stroke="black" d="M3397,-3997.37C3244.68,-3820.65 2404.55,-4062.41 2360,-3833.39"/>
<path fill="none" stroke="black" d="M2360,-3831.39C2087.11,-3609.31 2693.77,-3311.92 2852,-2765.35 2859.17,-2740.59 2864.61,-2729.84 2852,-2707.36 2836.96,-2680.58 2808.04,-2698.15 2793,-2671.36 2773.62,-2636.83 2767.46,-2612.53 2793,-2582.27 2823.68,-2545.92 2958.46,-2560.01 3004,-2546.27 3097.55,-2518.04 3110.77,-2483.04 3205,-2457.17 3270.17,-2439.28 3452.6,-2461.29 3507,-2421.17 3525.92,-2407.22 3667.95,-2055.32 3679,-2034.57 3696.7,-2001.34 3708.76,-1997.23 3724,-1962.8"/>
<path fill="none" stroke="black" d="M3724,-1960.8C3732.24,-1940.13 3740.74,-1916.95 3747.69,-1897.42"/>
<polygon fill="#f96210" stroke="black" points="3751.04,-1898.45 3751.07,-1887.86 3744.44,-1896.12 3751.04,-1898.45"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge73" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11683,-3314.81C11726.81,-3143.97 11753.22,-3101.6 11759,-2925.32"/>
<path fill="none" stroke="black" d="M11759,-2923.32C11755.65,-2811.01 11301.11,-2147.22 11225,-2064.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge74" 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="M7046.95,-4162.87C6806.34,-4160.14 5603.67,-4146.49 4621,-4135.37 4432.04,-4133.23 1399.87,-4140.29 1220,-4082.37"/>
<path fill="none" stroke="black" d="M1220,-4080.37C1207.56,-4076.36 1207.61,-4069.38 1196,-4063.37 1153.31,-4041.26 1136.02,-4050.72 1094,-4027.37 756.3,-3839.68 701.49,-3741.78 427,-3469.9 379.95,-3423.3 365.09,-3413.81 326,-3360.36 194.61,-3180.72 78,-3147.88 78,-2925.32 78,-2925.32 78,-2925.32 78,-2383.4 78,-2196.47 76,-2149.74 76,-1962.8 76,-1962.8 76,-1962.8 76,-1741.73 76,-1602.45 114,-1569.94 114,-1430.67 114,-1430.67 114,-1430.67 114,-1319.13 114,-1277.14 345.37,-638.18 377,-610.57 432.24,-562.35 468.27,-597.23 538,-574.57 599.72,-554.51 608.97,-532.04 672,-516.58 1977.31,-196.53 2345.41,-358.55 3688,-297.5 5258.36,-226.11 7186.64,-225.15 7540.02,-225.62"/>
<polygon fill="#f96210" stroke="black" points="7540.24,-229.12 7550.25,-225.64 7540.25,-222.12 7540.24,-229.12"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge75" 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="M11569,-3533.89C11530.78,-3431.84 11659.37,-3423.19 11683,-3316.81"/>
<path fill="none" stroke="black" d="M11683,-3314.81C11697.55,-3212.23 11367.12,-2547.85 11317,-2457.17 11288.33,-2405.32 11282.73,-2389.7 11241,-2347.63 11221.46,-2327.94 11208.34,-2332.45 11190,-2311.63 11178.1,-2298.13 11176.7,-2292.94 11171,-2275.87"/>
</g>
<!-- ahriman_models_aur_package -->
<g id="node112" class="node">
<title>ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="4223" cy="-3636.65" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="4223" y="-3645.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4223" y="-3634.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4223" y="-3623.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_aur_package -->
<g id="edge76" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3397,-4080.37C3295.37,-4067.36 3762.97,-4007.22 3834,-3933.38 3896.3,-3868.63 3826.49,-3801.96 3891,-3739.41"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node114" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e55405" stroke="black" cx="4403" cy="-2924.32" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="4403" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4403" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4403" y="-2910.82" 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="edge77" 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="M3321,-3914.38C3282.71,-3856.63 3351.89,-3833.4 3373,-3767.4 3427.92,-3595.67 3404.04,-3518.13 3537,-3396.36 3800.1,-3155.39 4208.95,-2994.53 4351.72,-2943.09"/>
<polygon fill="#f96210" stroke="black" points="4352.9,-2946.39 4361.13,-2939.72 4350.54,-2939.8 4352.9,-2946.39"/>
</g>
<!-- ahriman_models_counters -->
<g id="node115" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a35428" stroke="black" cx="3958" cy="-2830.34" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="3958" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3958" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3958" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_counters -->
<g id="edge78" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3397,-3997.37C3364.77,-3959.98 3348.78,-3957.19 3321,-3916.38"/>
<path fill="none" stroke="black" d="M3321,-3914.38C3293.13,-3873.44 3294.53,-3850.11 3311,-3803.4 3317.83,-3784.02 3331.78,-3786.23 3340,-3767.4 3363.33,-3713.99 3359,-3695.93 3359,-3637.65 3359,-3637.65 3359,-3637.65 3359,-3432.13 3359,-3117.13 3777.06,-2909.14 3914.67,-2849.21"/>
<polygon fill="#f96210" stroke="black" points="3916.28,-2852.32 3924.08,-2845.15 3913.51,-2845.89 3916.28,-2852.32"/>
</g>
<!-- ahriman_models_migration_result -->
<g id="node118" class="node">
<title>ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bc602f" stroke="black" cx="1993" cy="-3832.39" rx="60.62" ry="28.98"/>
<text text-anchor="middle" x="1993" y="-3840.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1993" y="-3829.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="1993" y="-3818.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration_result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_migration_result -->
<g id="edge79" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1993,-3914.38C1988.44,-3900.91 1987.48,-3885.43 1987.99,-3871.63"/>
<polygon fill="#f96210" stroke="black" points="1991.5,-3871.68 1988.64,-3861.48 1984.51,-3871.24 1991.5,-3871.68"/>
</g>
<!-- ahriman_models_package -->
<g id="node119" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="6330" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6330" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6330" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6330" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package -->
<g id="edge80" 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="M7133.15,-4163.26C7513.11,-4162.31 10278.2,-4153.56 10443,-4099.37 10455.42,-4095.28 10466.6,-4095.43 10467,-4082.37"/>
<path fill="none" stroke="black" d="M10467,-4080.37C10467.88,-4051.81 10433.25,-4067.62 10405,-4063.37 9895.82,-3986.75 9757.99,-4090.86 9247,-4027.37 9053.73,-4003.35 9009.17,-3975.39 8819,-3933.38 8746.98,-3917.47 8730.26,-3905.9 8657,-3897.38 8580.07,-3888.44 5923.41,-3916.5 5869,-3861.38 5815.83,-3807.52 5735.24,-3728.02 6026,-3396.36 6048.03,-3371.23 6063.78,-3378.25 6092,-3360.36 6170.57,-3310.52 6374.93,-3188.28 6430,-3113.29"/>
<path fill="none" stroke="black" d="M6430,-3111.29C6459.44,-3067.18 6536.61,-3062.61 6506,-3019.3"/>
<path fill="none" stroke="black" d="M6506,-3017.3C6475.11,-2973.61 6416.99,-2949.09 6376,-2936.55"/>
<polygon fill="#f96210" stroke="black" points="6376.82,-2933.14 6366.24,-2933.69 6374.85,-2939.86 6376.82,-2933.14"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node120" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b45c2d" stroke="black" cx="5101" cy="-3534.89" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="5101" y="-3543.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5101" y="-3532.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5101" y="-3521.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_description</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package_description -->
<g id="edge81" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7132.97,-4162.42C7350.41,-4157.47 8320.57,-4132.62 8358,-4082.37"/>
<path fill="none" stroke="black" d="M8358,-4080.37C8394.48,-4031.39 8325.57,-4006.4 8277,-3969.38 8241.09,-3942.01 8131.36,-3905.82 8087,-3897.38 7802.85,-3843.32 5764.44,-3932.25 5484,-3861.38 5478.53,-3860 5308.43,-3770.89 5304,-3767.4 5229.46,-3708.82 5160.77,-3620.29 5125.6,-3571.43"/>
<polygon fill="#f96210" stroke="black" points="5128.29,-3569.18 5119.63,-3563.07 5122.6,-3573.24 5128.29,-3569.18"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node121" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e55405" stroke="black" cx="5604" cy="-3112.29" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="5604" y="-3120.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5604" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5604" y="-3098.79" 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="edge82" 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="M8358,-4080.37C8425.95,-3997.51 8304.57,-3924.89 8201,-3897.38 8057.68,-3859.31 5665.39,-3926.17 5532,-3861.38 5435.36,-3814.44 5415.83,-3774.7 5380,-3673.42 5348.36,-3583.97 5270.12,-3492.58 5393,-3271.26 5406.82,-3246.37 5422.94,-3251.97 5446,-3235.26 5487.47,-3205.21 5533.72,-3169.2 5565.41,-3144.13"/>
<polygon fill="#f96210" stroke="black" points="5567.88,-3146.64 5573.54,-3137.69 5563.53,-3141.16 5567.88,-3146.64"/>
</g>
<!-- ahriman_models_remote_source -->
<g id="node123" class="node">
<title>ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#af4a13" stroke="black" cx="6007" cy="-3018.3" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="6007" y="-3026.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6007" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6007" y="-3004.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_source</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_remote_source -->
<g id="edge83" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7132.99,-4163.42C7393.27,-4163.61 8749.07,-4161.57 8809,-4099.37 8820.1,-4087.84 8818.53,-4076.22 8809,-4063.37 8790.08,-4037.86 8293.38,-3902.27 8262,-3897.38 8192.28,-3886.53 5776.18,-3906.59 5722,-3861.38 5679.58,-3825.99 5698,-3794.66 5698,-3739.41 5698,-3739.41 5698,-3739.41 5698,-3635.65 5698,-3493 5796.42,-3486.51 5863,-3360.36 5883.35,-3321.81 5873.86,-3302.75 5904,-3271.26 5928.19,-3245.99 5953.57,-3263.66 5974,-3235.26 6011.81,-3182.71 6013.87,-3104.22 6011.04,-3057.75"/>
<polygon fill="#f96210" stroke="black" points="6014.52,-3057.22 6010.31,-3047.5 6007.53,-3057.73 6014.52,-3057.22"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node125" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e55405" stroke="black" cx="9319" cy="-3998.37" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="9319" y="-4006.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9319" y="-3995.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9319" y="-3984.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_paths</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_repository_paths -->
<g id="edge84" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10467,-4080.37C10468.67,-4026.29 9645.52,-4005.74 9392.25,-4000.7"/>
<polygon fill="#f96210" stroke="black" points="9392.12,-3997.19 9382.05,-4000.49 9391.98,-4004.19 9392.12,-3997.19"/>
</g>
<!-- ahriman_models_result -->
<g id="node126" class="node">
<title>ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="6330" cy="-2830.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6330" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6330" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6330" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_result -->
<g id="edge85" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7133.02,-4163.44C7394.96,-4163.73 8766.4,-4162.24 8827,-4099.37 8838.1,-4087.85 8836.59,-4076.18 8827,-4063.37 8670.17,-3853.84 8520.79,-3936.48 8262,-3897.38 8122.46,-3876.3 5854.48,-3910.01 5722,-3861.38 5598.71,-3816.13 5550.02,-3792.2 5494,-3673.42 5431.15,-3540.14 5552.93,-3422.29 5646,-3271.26 5651.25,-3262.75 5861.38,-2994.38 5870,-2989.31 5954.65,-2939.54 5994.53,-2983.41 6088,-2953.31 6128.6,-2940.24 6233.07,-2884.51 6290.58,-2853.1"/>
<polygon fill="#f96210" stroke="black" points="6292.3,-2856.14 6299.39,-2848.27 6288.94,-2850 6292.3,-2856.14"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node136" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="854" cy="-874.19" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="854" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="854" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="854" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="854" y="-855.19" 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="edge86" 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="M1486,-4080.37C1477.51,-4077.19 1430.68,-4033.49 1424,-4027.37 1346.39,-3956.23 1320.28,-3943.98 1255,-3861.38 1214.68,-3810.36 679.09,-2917.49 650,-2859.33 629.85,-2819.03 620.6,-2809.57 612,-2765.35 553.76,-2465.95 605.89,-1697.17 627,-1392.9 630.4,-1343.93 619.19,-1327.32 641,-1283.36 661.22,-1242.6 707.23,-1256.58 714,-1211.59"/>
<path fill="none" stroke="black" d="M714,-1209.59C722.95,-1096.87 788.29,-977.66 826.47,-916.59"/>
<polygon fill="#f96210" stroke="black" points="829.51,-918.33 831.89,-908.01 823.59,-914.59 829.51,-918.33"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node140" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="1958" cy="-991.51" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1958" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1958" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1958" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1958" y="-972.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">base</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_base -->
<g id="edge87" 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="M1410,-3635.65C1379.34,-3551.49 1410,-3523.69 1410,-3434.13 1410,-3434.13 1410,-3434.13 1410,-3314.81 1410,-3189.98 1467.24,-3155.58 1569,-3083.3 1618.58,-3048.08 1662.4,-3094.28 1701,-3047.3 1733.88,-3007.27 1728.44,-2633.77 1734,-2582.27 1763.87,-2305.67 1824,-2241.01 1824,-1962.8 1824,-1962.8 1824,-1962.8 1824,-1632.19 1824,-1438.51 1993.73,-1397.07 1938,-1211.59"/>
<path fill="none" stroke="black" d="M1938,-1209.59C1915.79,-1155.44 1840.65,-1156.54 1862,-1102.05"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node141" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="1262" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1262" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1262" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1262" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1262" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">index</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_index -->
<g id="edge88" 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="M1486,-4080.37C1460,-4069.31 1440.93,-3992 1424,-3969.38 1404.22,-3942.97 1397.18,-3937.71 1372,-3916.38"/>
<path fill="none" stroke="black" d="M1372,-3914.38C1345.65,-3885.12 1325.93,-3891.86 1301,-3861.38 1117.32,-3636.82 1183.26,-3512.43 1022,-3271.26 978.63,-3206.4 955.15,-3200.2 904,-3141.28 806.38,-3028.83 762.4,-3002.93 723,-2859.33 654.25,-2608.75 686,-2535.7 686,-2275.87 686,-2275.87 686,-2275.87 686,-2164.33 686,-1710.73 730.65,-1580.28 932,-1173.82 989.34,-1058.07 1020.83,-1033.78 1123,-954.74 1152.93,-931.58 1190.33,-910.56 1218.79,-895.95"/>
<polygon fill="#f96210" stroke="black" points="1220.74,-898.89 1228.08,-891.25 1217.58,-892.65 1220.74,-898.89"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node146" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="2098" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2098" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2098" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2098" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2098" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="2098" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_service_search -->
<g id="edge89" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7047.12,-4163.06C6660.12,-4160.26 3775.76,-4137.64 3397,-4082.37"/>
<path fill="none" stroke="black" d="M3397,-4080.37C3368.73,-4076.24 3363.22,-4067.85 3335,-4063.37 2745.28,-3969.63 2571.82,-4146.06 1993,-3999.37"/>
<path fill="none" stroke="black" d="M1993,-3997.37C1824.53,-3954.68 1638,-4007.19 1638,-3833.39 1638,-3833.39 1638,-3833.39 1638,-3737.41 1638,-3675.36 1633.38,-3654.93 1662,-3599.88 1710.09,-3507.37 1828,-3538.39 1828,-3434.13 1828,-3434.13 1828,-3434.13 1828,-3205.27 1828,-2838.95 1985.32,-2774.5 2082,-2421.17 2154.81,-2155.06 2134.67,-2078.5 2218,-1815.5 2284.64,-1605.18 2347.4,-1569.03 2408,-1356.9 2425.98,-1293.96 2432,-1277.04 2432,-1211.59 2432,-1211.59 2432,-1211.59 2432,-1100.05 2432,-996.19 2340.03,-1004.73 2249,-954.74 2206.13,-931.2 2186.95,-943.9 2145,-918.74 2141.19,-916.46 2137.43,-913.83 2133.8,-911.02"/>
<polygon fill="#f96210" stroke="black" points="2136,-908.3 2126.06,-904.63 2131.55,-913.7 2136,-908.3"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node148" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="2004" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2004" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2004" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2004" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2004" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2004" y="-849.69" 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="edge90" 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="M1524,-3997.37C1453.36,-3958.09 1539.51,-3346.52 1569,-3271.26 1592.45,-3211.42 1719.25,-3102.6 1752,-3047.3 1774.96,-3008.53 1777.81,-2996.69 1790,-2953.31 1850.48,-2738.15 1825.3,-2675.74 1872,-2457.17 1906.92,-2293.74 2316.28,-1124.67 2214,-992.51"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node152" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="1450" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1450" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1450" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1450" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1450" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="1450" y="-849.69" 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="edge91" 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="M7046.9,-4163.17C6742.92,-4161.72 4889.92,-4151 3383,-4099.37 2758.55,-4077.97 2602.83,-4062.55 1979,-4027.37 1776.72,-4015.96 1705.39,-4089.62 1524,-3999.37"/>
<path fill="none" stroke="black" d="M1524,-3997.37C1495.95,-3983.24 1504.99,-3962.81 1494,-3933.38 1446.18,-3805.39 1458.57,-3765.36 1410,-3637.65"/>
<path fill="none" stroke="black" d="M1410,-3635.65C1192.44,-3251.92 1215.77,-3110.59 1175,-2671.36 1171.34,-2631.94 1168.16,-2621.27 1175,-2582.27 1197.11,-2456.27 1240.64,-2435.4 1273,-2311.63 1317.06,-2143.14 1303.86,-2096.01 1337,-1925.03 1339.23,-1913.54 1519.03,-1113.72 1520,-1102.05"/>
<path fill="none" stroke="black" d="M1520,-1100.05C1519.61,-1036.3 1493.73,-966.8 1473.56,-922.2"/>
<polygon fill="#f96210" stroke="black" points="1476.71,-920.69 1469.35,-913.07 1470.36,-923.62 1476.71,-920.69"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node153" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="1356" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1356" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1356" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1356" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1356" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="1356" y="-849.69" 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="edge92" 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="M1372,-3914.38C1267.89,-3807.38 1311.77,-3737.54 1254,-3599.88 1191.66,-3451.32 1169.18,-3417.23 1101,-3271.26 1034.95,-3129.87 985.92,-3105.64 952,-2953.31 852.63,-2507.07 855.86,-2365.31 979,-1925.03 1058.44,-1641.01 1176.66,-1605.73 1254,-1321.13"/>
<path fill="none" stroke="black" d="M1254,-1319.13C1280.22,-1175.51 1239.58,-1129.88 1289,-992.51"/>
<path fill="none" stroke="black" d="M1289,-990.51C1297.36,-964.55 1312.21,-938.07 1325.81,-917.04"/>
<polygon fill="#f96210" stroke="black" points="1328.74,-918.95 1331.34,-908.68 1322.9,-915.09 1328.74,-918.95"/>
</g>
<!-- ahriman_web_web -->
<g id="node154" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="1530" cy="-545.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1530" y="-554.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1530" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1530" y="-532.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_web -->
<g id="edge93" 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="M7046.8,-4162.83C6528.51,-4156.48 1520.75,-4094.79 1486,-4082.37"/>
<path fill="none" stroke="black" d="M1486,-4080.37C1473.69,-4075.97 1473.65,-4069.29 1462,-4063.37 1417.28,-4040.62 1398.78,-4051.88 1355,-4027.37 1080.09,-3873.45 358,-3334.37 358,-3019.3 358,-3019.3 358,-3019.3 358,-2829.34 358,-2346.75 380,-2226.32 380,-1743.73 380,-1743.73 380,-1743.73 380,-1632.19 380,-1492.91 418,-1460.4 418,-1321.13 418,-1321.13 418,-1321.13 418,-1100.05 418,-920.22 571.63,-932.7 719,-829.64 774.69,-790.7 836.62,-823.57 854,-757.87"/>
<path fill="none" stroke="black" d="M854,-755.87C884.12,-628.46 1332.66,-568.13 1482.02,-551.5"/>
<polygon fill="#f96210" stroke="black" points="1482.69,-554.94 1492.25,-550.37 1481.93,-547.99 1482.69,-554.94"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node34" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="6554" cy="-3206.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6554" y="-3214.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="6554" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="6554" y="-3192.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">alpm</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search -->
<g id="edge94" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6591.63,-3201.1C6645.97,-3195.18 6749.59,-3184.29 6838,-3177.28 6848.85,-3176.42 8392.12,-3083.77 8403,-3083.3 8548.36,-3076.93 9572.48,-3088.59 9712,-3047.3 9759.43,-3033.26 9762.26,-3010.41 9807,-2989.31 9851.24,-2968.45 9870.61,-2980.91 9911,-2953.31 9956.29,-2922.37 9963.45,-2906.76 9991,-2859.33 10074.7,-2715.22 10163,-2566.33 10163,-2275.87 10163,-2275.87 10163,-2275.87 10163,-2164.33 10163,-1911.7 10122.56,-1840.69 10187,-1596.42 10284.68,-1226.14 10379.74,-1156.05 10580,-829.64 10600.6,-796.07 10620.09,-795.42 10632,-757.87"/>
</g>
<!-- ahriman_core_repository_repository_properties -->
<g id="node89" class="node">
<title>ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="6573" cy="-1961.8" rx="77.15" ry="36.54"/>
<text text-anchor="middle" x="6573" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6573" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6573" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6573" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_properties</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge95" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6544,-3111.29C6505.32,-2860.03 6613.16,-2799.71 6633,-2546.27 6636.09,-2506.79 6647.36,-2494.08 6633,-2457.17 6625.13,-2436.95 6607.87,-2441.4 6600,-2421.17 6588.15,-2390.71 6596.86,-2380.17 6600,-2347.63 6603.13,-2315.29 6608.6,-2307.91 6614,-2275.87"/>
<path fill="none" stroke="black" d="M6614,-2273.87C6616.53,-2208.46 6611.13,-2188.24 6638,-2128.56 6653.04,-2095.14 6705.19,-2097.91 6690,-2064.57"/>
<path fill="none" stroke="black" d="M6690,-2062.57C6676.96,-2035.6 6652.87,-2013.1 6629.92,-1996.34"/>
<polygon fill="#f96210" stroke="black" points="6631.73,-1993.33 6621.54,-1990.43 6627.7,-1999.05 6631.73,-1993.33"/>
</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="M6551.58,-3177.01C6549.86,-3158.77 6547.27,-3134.56 6544,-3113.29"/>
<path fill="none" stroke="black" d="M6544,-3111.29C6537.27,-3067.57 6530.63,-3056.05 6506,-3019.3"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_remote_source -->
<g id="edge97" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6519.37,-3193.5C6427.4,-3162.23 6176.4,-3076.9 6063.43,-3038.49"/>
<polygon fill="#f96210" stroke="black" points="6064.5,-3035.16 6053.91,-3035.25 6062.25,-3041.79 6064.5,-3035.16"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search -->
<g id="edge98" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6520.64,-3191.89C6505.19,-3186.31 6486.43,-3180.42 6469,-3177.28 6059.29,-3103.45 5947.85,-3176.06 5533,-3141.28 5009.15,-3097.36 4882.98,-3042.64 4360,-2989.31 4145.85,-2967.48 4082.85,-3016.26 3877,-2953.31 3558.55,-2855.94 2877.1,-2293.25 2722,-1998.57 2602.63,-1771.78 2541.2,-1673.88 2622,-1430.67"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node35" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5105" stroke="black" cx="4368" cy="-3433.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4368" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4368" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4368" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4368" y="-3414.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_remote_aur -->
<g id="node37" class="node">
<title>ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="3982" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="3982" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3982" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3982" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3982" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3982" y="-3291.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge99" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4333.54,-3416.46C4317.02,-3409.47 4296.78,-3401.63 4278,-3396.36 4186.41,-3370.65 4157.27,-3390.39 4067,-3360.36 4052.68,-3355.59 4037.8,-3348.71 4024.57,-3341.82"/>
<polygon fill="#db5105" stroke="black" points="4026.17,-3338.71 4015.7,-3337.08 4022.87,-3344.88 4026.17,-3338.71"/>
</g>
<!-- ahriman_core_alpm_remote_official -->
<g id="node38" class="node">
<title>ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="4340" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="4340" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4340" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4340" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4340" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="4340" y="-3291.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge100" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4359.52,-3397.21C4357.35,-3388.26 4354.96,-3378.43 4352.63,-3368.82"/>
<polygon fill="#db5105" stroke="black" points="4355.99,-3367.81 4350.23,-3358.92 4349.18,-3369.47 4355.99,-3367.81"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb -->
<g id="node39" class="node">
<title>ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="4227" cy="-3315.81" rx="56.64" ry="44.6"/>
<text text-anchor="middle" x="4227" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4227" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4227" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4227" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="4227" y="-3291.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official_syncdb</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge101" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4339.13,-3408.51C4320.25,-3393.08 4295.18,-3372.57 4273.53,-3354.87"/>
<polygon fill="#db5105" stroke="black" points="4275.69,-3352.11 4265.73,-3348.48 4271.25,-3357.52 4275.69,-3352.11"/>
</g>
<!-- ahriman_core_alpm_remote_remote -->
<g id="node40" class="node">
<title>ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="4114" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="4114" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4114" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4114" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4114" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="4114" y="-3291.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge102" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4333.2,-3417.54C4316.6,-3410.78 4296.4,-3402.83 4278,-3396.36 4226.68,-3378.3 4208.14,-3387.53 4161,-3360.36 4157.16,-3358.14 4153.37,-3355.56 4149.71,-3352.78"/>
<polygon fill="#db5105" stroke="black" points="4151.91,-3350.05 4141.95,-3346.44 4147.48,-3355.47 4151.91,-3350.05"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge103" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4404.5,-3421.77C4436.69,-3413.16 4485.04,-3401.52 4528,-3396.36 4735.77,-3371.4 6211.13,-3422.33 6411,-3360.36 6507.57,-3330.41 6538.76,-3314.94 6601,-3235.26 6687.42,-3124.62 6662,-3065.72 6662,-2925.32 6662,-2925.32 6662,-2925.32 6662,-2735.36 6662,-2611.62 6665.86,-2580.01 6651,-2457.17 6641.12,-2375.53 6605.6,-2357.68 6614,-2275.87"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge104" 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="M4404.5,-3421.77C4436.69,-3413.17 4485.05,-3401.53 4528,-3396.36 4628.13,-3384.29 6250.14,-3399.71 6343,-3360.36 6429.29,-3323.79 6440.66,-3288.15 6488,-3207.27"/>
</g>
<!-- ahriman_core_alpm_remote -->
<g id="node36" class="node">
<title>ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b34204" stroke="black" cx="6296" cy="-3315.81" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6296" y="-3329.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6296" y="-3318.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6296" y="-3307.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="6296" y="-3296.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_application_handlers_search -->
<g id="edge105" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6334.12,-3311.74C6535.32,-3295.51 7493.98,-3217.45 8277,-3141.28 8518.13,-3117.82 8577.37,-3100.75 8819,-3083.3 8924.91,-3075.64 9674.67,-3084.83 9774,-3047.3 9812.11,-3032.9 9809.26,-3008.87 9845,-2989.31 9890.13,-2964.63 9913.55,-2983.78 9955,-2953.31 10034.48,-2894.89 10027.41,-2852.82 10073,-2765.35 10334.18,-2264.22 10323.27,-2103.64 10479,-1560.42 10536.88,-1358.52 10594,-1312.08 10594,-1102.05 10594,-1102.05 10594,-1102.05 10594,-990.51 10594,-885.75 10602.91,-858.52 10632,-757.87"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_package -->
<g id="edge106" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6330.87,-3299.97C6378.08,-3279.71 6457.74,-3244.8 6469,-3235.26 6480.47,-3225.54 6481.64,-3220.89 6488,-3207.27"/>
<path fill="none" stroke="black" d="M6488,-3205.27C6523.12,-3130.02 6552.24,-3088.28 6506,-3019.3"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source -->
<g id="edge107" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6275.09,-3284.81C6233.84,-3225.87 6144.4,-3099.28 6126,-3083.3 6106.56,-3066.4 6081.9,-3052.22 6060.07,-3041.54"/>
<polygon fill="#b34204" stroke="black" points="6061.45,-3038.32 6050.92,-3037.18 6058.44,-3044.64 6061.45,-3038.32"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search -->
<g id="edge108" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6260.82,-3301.51C6234.89,-3292.09 6198.61,-3279.67 6166,-3271.26 5941.97,-3213.49 5370.72,-3118.16 5142,-3083.3 5010.99,-3063.32 4974.87,-3078.2 4846,-3047.3 4772.85,-3029.76 4760.62,-3004.76 4687,-2989.31 4280.26,-2903.99 4130.25,-3050.05 3761,-2859.33 3619.21,-2786.1 2736,-2012.85 2736,-1853.27 2736,-1853.27 2736,-1853.27 2736,-1428.67 2736,-1233.17 2809.23,-1138.31 2679,-992.51"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge109" class="edge">
<title>ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4012.64,-3342.94C4029.95,-3356.43 4052.73,-3371.32 4076,-3378.36 4133.41,-3395.71 6179.74,-3401.65 6235,-3378.36 6247.47,-3373.1 6258.67,-3363.9 6267.95,-3354.16"/>
<polygon fill="#7a4528" stroke="black" points="6270.61,-3356.44 6274.67,-3346.65 6265.39,-3351.77 6270.61,-3356.44"/>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge110" class="edge">
<title>ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4378.2,-3315.81C5001.31,-3315.81 5624.41,-3315.81 6247.51,-3315.81"/>
<polygon fill="#7a4528" stroke="black" points="6247.61,-3319.31 6257.61,-3315.81 6247.61,-3312.31 6247.61,-3319.31"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge111" class="edge">
<title>ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4260.34,-3352.07C4272.32,-3362.63 4286.7,-3372.81 4302,-3378.36 4352.48,-3396.65 6185.52,-3399.22 6235,-3378.36 6247.47,-3373.1 6258.67,-3363.9 6267.95,-3354.16"/>
<polygon fill="#915230" stroke="black" points="6270.61,-3356.44 6274.67,-3346.65 6265.39,-3351.77 6270.61,-3356.44"/>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge112" class="edge">
<title>ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4137.04,-3351.55C4145.93,-3362.21 4157.09,-3372.59 4170,-3378.36 4222.37,-3401.76 6182.14,-3400.64 6235,-3378.36 6247.47,-3373.1 6258.67,-3363.9 6267.95,-3354.16"/>
<polygon fill="#995733" stroke="black" points="6270.61,-3356.44 6274.67,-3346.65 6265.39,-3351.77 6270.61,-3356.44"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node41" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="8349" cy="-3636.65" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8349" y="-3650.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8349" y="-3639.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8349" y="-3628.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="8349" y="-3617.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repo</text>
</g>
<!-- ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge113" class="edge">
<title>ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8320.6,-3611.85C8313.33,-3607 8305.23,-3602.57 8297,-3599.88 8166.62,-3557.27 7177.32,-3639.69 7063,-3563.88 7035.28,-3545.49 6814,-3052.57 6814,-3019.3 6814,-3019.3 6814,-3019.3 6814,-2923.32 6814,-2808.98 6773.62,-2785.11 6762,-2671.36 6757.98,-2631.97 6761.6,-2621.87 6762,-2582.27 6762.89,-2494.76 6766,-2472.92 6766,-2385.4 6766,-2385.4 6766,-2385.4 6766,-2273.87 6766,-2174.9 6735.39,-2152.51 6690,-2064.57"/>
</g>
<!-- ahriman_core_auth -->
<g id="node42" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c74905" stroke="black" cx="1183" cy="-1852.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1183" y="-1860.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1183" y="-1849.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1183" y="-1838.77" 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="edge114" 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="M1152.76,-1834.56C1139.87,-1827.94 1124.48,-1820.69 1110,-1815.5 1044.64,-1792.08 1020.62,-1809.48 958,-1779.5 886.43,-1745.23 857.49,-1738.2 817,-1669.96 770.24,-1591.15 791.99,-1557.72 784,-1466.43 782.59,-1450.35 784.89,-1337.01 782,-1321.13"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge115" 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="M1214.11,-1834.92C1345.34,-1764.98 1847.73,-1486.89 1862,-1321.13"/>
<path fill="none" stroke="black" d="M1862,-1319.13C1866.83,-1222.77 1828.03,-1192.35 1862,-1102.05"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge116" 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="M1194.34,-1824.38C1216.07,-1770.02 1260.84,-1642.8 1254,-1532.43"/>
<path fill="none" stroke="black" d="M1254,-1530.43C1251.56,-1455.37 1130.21,-1285.75 1142,-1211.59"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge117" 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="M1254,-1530.43C1259.77,-1468.51 1387.33,-1069.22 1433.5,-926.12"/>
<polygon fill="#c74905" stroke="black" points="1436.94,-926.86 1436.68,-916.27 1430.28,-924.71 1436.94,-926.86"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge118" 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="M1254,-1530.43C1263.23,-1437.86 1230.33,-1411.09 1254,-1321.13"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge119" 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="M1159.18,-1829.5C1078.42,-1753.17 820,-1487.4 820,-1211.59 820,-1211.59 820,-1211.59 820,-1100.05 820,-1029.83 843.96,-1013.75 882,-954.74 893.76,-936.5 903.17,-936.93 915,-918.74 926.51,-901.04 935.54,-896.25 934,-875.19"/>
<path fill="none" stroke="black" d="M934,-873.19C930.96,-852.3 926.18,-847.56 915,-829.64 892.84,-794.13 843.82,-798.48 854,-757.87"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node43" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="1183" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1183" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1183" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1183" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1183" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_core_auth -->
<g id="edge120" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1183,-1925C1183,-1914.25 1183,-1902.43 1183,-1891.54"/>
<polygon fill="#8a4e2e" stroke="black" points="1186.5,-1891.44 1183,-1881.44 1179.5,-1891.44 1186.5,-1891.44"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node44" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d96526" stroke="black" cx="1208" cy="-1210.59" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1208" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="1208" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="1208" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">auth.</text>
<text text-anchor="middle" x="1208" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">helpers</text>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index -->
<g id="edge121" 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="M1181.82,-1183.67C1163.85,-1163.45 1142.32,-1133.6 1137,-1102.05"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge122" 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="M1229.48,-1179.91C1272.63,-1120.28 1369.97,-985.78 1419.62,-917.17"/>
<polygon fill="#d96526" stroke="black" points="1422.7,-918.89 1425.72,-908.73 1417.03,-914.78 1422.7,-918.89"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge123" 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="M1210.61,-1173.51C1215.82,-1121.51 1231.09,-1024.13 1275,-954.74 1278.43,-949.31 1299.37,-928.79 1319.1,-909.95"/>
<polygon fill="#d96526" stroke="black" points="1321.73,-912.28 1326.56,-902.85 1316.9,-907.21 1321.73,-912.28"/>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node45" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="1391" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1391" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1391" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1391" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1391" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">mapping</text>
</g>
<!-- ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth -->
<g id="edge124" class="edge">
<title>ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1357.58,-1943.53C1320.9,-1924.56 1262.05,-1894.13 1222.96,-1873.92"/>
<polygon fill="#824a2b" stroke="black" points="1224.45,-1870.76 1213.96,-1869.27 1221.23,-1876.97 1224.45,-1870.76"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node46" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="1089" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="1089" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1089" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1089" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="1089" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">oauth</text>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth -->
<g id="edge125" class="edge">
<title>ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1113.21,-1933.11C1126.18,-1918.27 1142.2,-1899.94 1155.63,-1884.58"/>
<polygon fill="#824a2b" stroke="black" points="1158.43,-1886.69 1162.38,-1876.86 1153.16,-1882.08 1158.43,-1886.69"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node47" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="7381" cy="-3112.29" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="7381" y="-3120.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="7381" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="7381" y="-3098.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge126" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9897,-2923.32C9991.28,-2841.25 10003.66,-2795.02 10022,-2671.36 10073.04,-2327.22 10041.01,-2236.85 10049,-1889.03 10055.46,-1607.64 10057.35,-1269.53 10057.84,-1148.19"/>
<polygon fill="#f96210" stroke="black" points="10061.34,-1148.15 10057.88,-1138.14 10054.34,-1148.12 10061.34,-1148.15"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge127" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7425.53,-3109.66C7549.79,-3105.13 7910.88,-3092.17 8211,-3083.3 8368.2,-3078.65 9472.03,-3079.36 9626,-3047.3 9693.14,-3033.31 9705.11,-3014.24 9769,-2989.31 9811.45,-2972.75 9825.89,-2976.69 9865,-2953.31 9881.22,-2943.62 9883.68,-2938.73 9897,-2925.32"/>
<path fill="none" stroke="black" d="M9897,-2923.32C9917.95,-2901.15 9999.82,-2701.23 10006,-2671.36 10014.03,-2632.59 10007.09,-2621.85 10006,-2582.27 10001.78,-2429.13 10010.24,-2389.52 9987,-2238.1 9955.22,-2031.02 9742.4,-1529.06 9768,-1321.13"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge128" 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="M7346,-2829.34C7338.29,-2771.59 7342.94,-2744.43 7298,-2707.36 7230.35,-2651.57 7160.07,-2738.79 7104,-2671.36 7078.68,-2640.92 7101.54,-2621.79 7104,-2582.27 7115.58,-2396.33 7156,-2352.63 7156,-2166.33 7156,-2166.33 7156,-2166.33 7156,-1851.27 7156,-1647.27 7155.08,-1595.37 7180,-1392.9 7183.97,-1360.64 7212.17,-1348.07 7194,-1321.13"/>
<path fill="none" stroke="black" d="M7194,-1319.13C7009.42,-1108.39 4666.9,-1271.33 4694,-992.51"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node87" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="6750" cy="-1742.73" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6750" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6750" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6750" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6750" y="-1723.73" 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="edge129" 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="M7346,-3017.3C7312.89,-2941.58 7361.78,-2912.47 7346,-2831.34"/>
<path fill="none" stroke="black" d="M7346,-2829.34C7334.45,-2760.2 7306.1,-2743.45 7246,-2707.36 7176.06,-2665.37 7117.72,-2734.46 7066,-2671.36 7037.88,-2637.06 7003.66,-2587.95 7080,-2275.87"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node90" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="6591" cy="-1742.73" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="6591" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6591" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6591" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6591" y="-1723.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_handler</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge130" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7371.42,-3083.57C7364.81,-3065.13 7355.53,-3040.5 7346,-3019.3"/>
<path fill="none" stroke="black" d="M7346,-3017.3C7277.33,-2864.64 7272.97,-2797.63 7132,-2707.36 7077.17,-2672.26 7035.23,-2718.2 6990,-2671.36 6899.66,-2577.82 6928,-2515.45 6928,-2385.4 6928,-2385.4 6928,-2385.4 6928,-1960.8 6928,-1895.22 6745.34,-1808.54 6648.97,-1767.38"/>
<polygon fill="#f96210" stroke="black" points="6650.22,-1764.11 6639.64,-1763.42 6647.48,-1770.55 6650.22,-1764.11"/>
</g>
<!-- ahriman_core_tree -->
<g id="node98" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="9768" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9768" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9768" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9768" y="-2050.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="edge131" 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="M7425.53,-3109.67C7549.79,-3105.19 7910.88,-3092.33 8211,-3083.3 8361.87,-3078.75 9425.25,-3093.32 9569,-3047.3 9612.9,-3033.24 9612.46,-3007.07 9655,-2989.31 9730.29,-2957.9 9774.27,-3007.79 9835,-2953.31 9887.73,-2906.02 9849.64,-2863.83 9883,-2801.35 9917.84,-2736.08 9962.51,-2741.18 9987,-2671.36 10000.11,-2634 9995.22,-2621 9987,-2582.27 9983.37,-2565.14 9977.77,-2562.42 9971,-2546.27 9900.78,-2378.85 9893.21,-2332.89 9821,-2166.33"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge132" 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="M7338.78,-3102.48C7237.69,-3081.52 6973.69,-3027.6 6752,-2989.31 6616.43,-2965.9 6455.54,-2942.79 6377.36,-2931.86"/>
<polygon fill="#f96210" stroke="black" points="6377.73,-2928.37 6367.34,-2930.46 6376.76,-2935.31 6377.73,-2928.37"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node48" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bd4604" stroke="black" cx="9594" cy="-2274.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9594" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9594" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9594" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="9594" y="-2255.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sources</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge133" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9618,-2062.57C9609.34,-1968.58 9654,-1947.65 9654,-1853.27 9654,-1853.27 9654,-1853.27 9654,-1741.73 9654,-1626.46 9686.16,-1595.62 9754,-1502.43 9812.54,-1422.03 9857.9,-1431.22 9924,-1356.9 9936.72,-1342.59 9938.13,-1337.53 9948,-1321.13"/>
<path fill="none" stroke="black" d="M9948,-1319.13C9973.22,-1257.21 10009.29,-1188.89 10033.16,-1145.75"/>
<polygon fill="#bd4604" stroke="black" points="10036.26,-1147.38 10038.06,-1136.93 10030.14,-1143.97 10036.26,-1147.38"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge134" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9540,-1960.8C9493.21,-1905.32 9490.91,-1687.65 9540,-1634.19"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge135" 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="M9616,-2164.33C9612,-2120.16 9624.2,-2108.48 9618,-2064.57"/>
<path fill="none" stroke="black" d="M9618,-2062.57C9610.13,-2006.84 9577.79,-2004.51 9540,-1962.8"/>
<path fill="none" stroke="black" d="M9540,-1960.8C9274.05,-1667.28 8150.7,-1629.15 7863,-1356.9 7760.41,-1259.81 7796.92,-1193.1 7739,-1064.28 7700.83,-979.39 7663.52,-967.12 7649,-875.19"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node49" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="6853" cy="-1961.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6853" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6853" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6853" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="6853" y="-1942.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="edge136" 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="M9577.88,-2240.06C9563.09,-2210.01 9539.89,-2165.28 9516,-2128.56 9504.95,-2111.57 9500.26,-2108.7 9488,-2092.56 9468.59,-2067.01 9473.45,-2049.39 9445,-2034.57 9443.18,-2033.63 7289.41,-1974.73 6909.8,-1964.36"/>
<polygon fill="#bd4604" stroke="black" points="6909.7,-1960.85 6899.61,-1964.08 6909.51,-1967.85 6909.7,-1960.85"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge137" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9607.48,-2239.15C9614.03,-2218.16 9619.76,-2190.81 9616,-2166.33"/>
<path fill="none" stroke="black" d="M9616,-2164.33C9603.36,-2082.07 9556.7,-2069.15 9481,-2034.57 8915.9,-1776.45 7304.81,-1908.04 6697,-1779.5 6681.49,-1776.22 6665.1,-1771.39 6649.96,-1766.34"/>
<polygon fill="#bd4604" stroke="black" points="6650.81,-1762.93 6640.21,-1763 6648.54,-1769.55 6650.81,-1762.93"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree -->
<g id="edge138" 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="M9619.3,-2243.43C9651.93,-2204.19 9708.41,-2136.25 9741.57,-2096.36"/>
<polygon fill="#bd4604" stroke="black" points="9744.38,-2098.46 9748.08,-2088.53 9738.99,-2093.98 9744.38,-2098.46"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge140" 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="M6899.53,-1958.75C6971.03,-1953.12 7097.91,-1932.04 7080,-1853.27"/>
<path fill="none" stroke="black" d="M7080,-1851.27C7067.38,-1795.75 6893.58,-1763.6 6803.43,-1750.57"/>
<polygon fill="#734126" stroke="black" points="6803.79,-1747.08 6793.4,-1749.14 6802.81,-1754.01 6803.79,-1747.08"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node50" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="6871" cy="-3636.65" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="6871" y="-3645.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6871" y="-3634.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6871" y="-3623.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge141" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8985,-3205.27C9000.73,-3200.68 8994.52,-3184.95 9009,-3177.28 9134.68,-3110.67 9187.29,-3167.95 9327,-3141.28 9423.79,-3122.8 9444.47,-3103.11 9541,-3083.3 9653.12,-3060.29 9686.61,-3080.98 9796,-3047.3 9972.42,-2992.96 10051.3,-2943.13 10101,-2765.35 10233.5,-2291.38 9997.39,-2158.62 9939,-1669.96 9920.54,-1515.48 9969.8,-1464.75 9910,-1321.13"/>
<path fill="none" stroke="black" d="M9910,-1319.13C9900.69,-1299.38 9892.86,-1276.49 9886.99,-1256.92"/>
<polygon fill="#d14d05" stroke="black" points="9890.35,-1255.93 9884.18,-1247.32 9883.63,-1257.9 9890.35,-1255.93"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge142" 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="M6921.91,-3634.3C7252.8,-3625.48 9085.47,-3576.12 9111,-3563.88 9125.78,-3556.79 9119.13,-3539.97 9135,-3535.89"/>
<path fill="none" stroke="black" d="M9135,-3533.89C9148.47,-3530.42 9139.99,-3516.49 9149,-3505.9 9202.97,-3442.48 9224.77,-3429.87 9301,-3396.36 9373.29,-3364.57 9405,-3396.92 9475,-3360.36 9526.02,-3333.71 9517.35,-3296.68 9569,-3271.26 9661.44,-3225.77 9698.47,-3261.88 9798,-3235.26 9867.45,-3216.69 9879.57,-3195.92 9949,-3177.28 10047.23,-3150.91 10078.69,-3173.98 10175,-3141.28 10226.22,-3123.89 10234.24,-3108.69 10282,-3083.3 10312.54,-3067.06 10321.41,-3065.21 10351,-3047.3 10413.53,-3009.43 10429.15,-2999.28 10486,-2953.31 10623.08,-2842.46 10668.44,-2818.86 10765,-2671.36 10830.5,-2571.31 10835.67,-2537.35 10864,-2421.17 10945.34,-2087.64 11037,-1823.05 11037,-1430.67 11037,-1430.67 11037,-1430.67 11037,-1209.59 11037,-1017.77 11059.95,-789.95 11070.64,-694.26"/>
<polygon fill="#d14d05" stroke="black" points="11074.15,-694.39 11071.79,-684.06 11067.19,-693.61 11074.15,-694.39"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge143" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6820.05,-3635.47C6666.03,-3634.24 6207.72,-3625.37 6074,-3563.88 5977.05,-3519.3 5993.26,-3451.67 5902,-3396.36 5805.18,-3337.67 5744.59,-3392.06 5660,-3316.81"/>
<path fill="none" stroke="black" d="M5660,-3314.81C5565.11,-3231.86 5532.4,-3214.55 5412,-3177.28 5296.35,-3141.48 5259.34,-3171.05 5142,-3141.28 5071.92,-3123.5 5060.21,-3100.58 4990,-3083.3 4858.32,-3050.88 4819.71,-3075.2 4687,-3047.3 4600.6,-3029.13 4583.91,-3004.87 4497,-2989.31 4361.15,-2965 4005.7,-3003.15 3877,-2953.31 3815.12,-2929.35 3801.71,-2911.73 3761,-2859.33 3702.76,-2784.37 3565.84,-2537.13 3617,-2457.17 3637.58,-2425.01 3660.39,-2437.3 3695,-2421.17 3798.73,-2372.86 3848.56,-2394 3928,-2311.63 3976.74,-2261.1 3990,-2236.54 3990,-2166.33 3990,-2166.33 3990,-2166.33 3990,-1851.27 3990,-1737.5 3991.74,-1707.24 3966,-1596.42 3920.92,-1402.29 3554.7,-933.98 3648,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge144" 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="M8149,-3533.89C8215.08,-3488.02 8157.28,-3237.15 8211,-3177.28 8249.61,-3134.25 8280.88,-3158.73 8336,-3141.28 8372.31,-3129.78 8387.48,-3137.36 8417,-3113.29"/>
<path fill="none" stroke="black" d="M8417,-3111.29C8429.58,-3100.79 8428.55,-3093.95 8441,-3083.3 8501.34,-3031.65 8524.59,-3029.68 8593,-2989.31 8621.11,-2972.73 8630.04,-2971.71 8657,-2953.31 8711.52,-2916.11 8729.09,-2909.49 8772,-2859.33 8822.88,-2799.86 8820.81,-2774.53 8861,-2707.36 8870.63,-2691.27 8875.14,-2688.39 8883,-2671.36 9114.27,-2170.58 8915,-1982.27 8915,-1430.67 8915,-1430.67 8915,-1430.67 8915,-873.19 8915,-730.97 8770.59,-759.73 8634,-720.1 8400.44,-652.35 8320.47,-755.53 8088,-684.1 8082.07,-682.28 8076.1,-679.79 8070.35,-676.95"/>
<polygon fill="#d14d05" stroke="black" points="8071.99,-673.86 8061.51,-672.27 8068.71,-680.05 8071.99,-673.86"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge145" 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="M7568,-3432.13C7568,-3289.42 7530,-3256 7530,-3113.29 7530,-3113.29 7530,-3113.29 7530,-3017.3 7530,-2942.44 7456.2,-2754.45 7398,-2707.36 7332.88,-2654.68 7266.27,-2736.01 7213,-2671.36 7187.82,-2640.81 7197.97,-2618.9 7213,-2582.27 7335.75,-2283.18 7570.44,-2349.07 7724,-2064.57"/>
<path fill="none" stroke="black" d="M7724,-2062.57C7739.54,-1970.85 7746.1,-1943.62 7724,-1853.27"/>
<path fill="none" stroke="black" d="M7724,-1851.27C7688.34,-1718.65 7685.06,-1554.89 7685.86,-1476.58"/>
<polygon fill="#d14d05" stroke="black" points="7689.36,-1476.61 7685.99,-1466.56 7682.36,-1476.52 7689.36,-1476.61"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge146" 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="M6921.89,-3634.33C7264.22,-3625.42 9219.79,-3574.16 9280,-3563.88 9443.44,-3535.97 10537.72,-3132.43 10680,-3047.3 10914.03,-2907.26 10998.92,-2887.69 11165,-2671.36 11171.5,-2662.9 11468.6,-1971.9 11463,-1962.8"/>
<path fill="none" stroke="black" d="M11463,-1960.8C11452.23,-1944.98 11450.67,-1940.21 11439,-1925.03 11430.05,-1913.4 11419.76,-1901.23 11410.12,-1890.29"/>
<polygon fill="#d14d05" stroke="black" points="11412.51,-1887.71 11403.25,-1882.56 11407.28,-1892.36 11412.51,-1887.71"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help -->
<g id="edge147" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6922,-3634.87C7147.68,-3630.99 8049.63,-3610.87 8149,-3535.89"/>
<path fill="none" stroke="black" d="M8149,-3533.89C8180.81,-3509.89 8162.94,-3209.04 8187,-3177.28 8213.01,-3142.94 8240.49,-3164.14 8277,-3141.28 8362.06,-3088.02 8365.18,-3051.43 8444,-2989.31 8466.36,-2971.69 8476.11,-2972.66 8497,-2953.31 8536.21,-2917.01 8543.13,-2904.3 8572,-2859.33 8745.19,-2589.57 8772,-2486.9 8772,-2166.33 8772,-2166.33 8772,-2166.33 8772,-1960.8 8772,-1525.18 8620,-1428.13 8620,-992.51 8620,-992.51 8620,-992.51 8620,-873.19 8620,-804.32 8647.02,-766.36 8596,-720.1 8492.93,-626.67 8066.5,-785.27 7971,-684.1 7948.56,-660.34 7953.69,-638.29 7971,-610.57 8005.32,-555.6 8081.77,-608.13 8102,-546.57"/>
<path fill="none" stroke="black" d="M8102,-544.57C8150.33,-387.18 7909.64,-282 7799.57,-242.82"/>
<polygon fill="#d14d05" stroke="black" points="7800.57,-239.47 7789.97,-239.46 7798.25,-246.07 7800.57,-239.47"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge148" 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="M6921.93,-3634.36C7203.89,-3627.16 8563.76,-3591.1 8648,-3563.88 8720.02,-3540.61 8732.52,-3519.13 8790,-3469.9 8823.58,-3441.13 8817.39,-3416 8857,-3396.36 9018.9,-3316.09 9087.14,-3405.95 9262,-3360.36 9393.5,-3326.07 9418.4,-3293.88 9541,-3235.26 9592.28,-3210.74 9600.57,-3193.68 9655,-3177.28 9788.65,-3137 9830.89,-3172.26 9967,-3141.28 10091.71,-3112.9 10130.57,-3115.13 10239,-3047.3 10410.8,-2939.83 10413.72,-2856.11 10497,-2671.36 10813.35,-1969.56 10923,-1762.31 10923,-992.51 10923,-992.51 10923,-992.51 10923,-873.19 10923,-804.32 10923.12,-784.61 10899,-720.1 10894.9,-709.13 10888.99,-698.04 10882.8,-687.96"/>
<polygon fill="#d14d05" stroke="black" points="10885.66,-685.94 10877.32,-679.4 10879.76,-689.71 10885.66,-685.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge149" 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="M6921.55,-3633.03C7041.04,-3626.24 7337.57,-3605.56 7427,-3563.88 7504.19,-3527.9 7569.33,-3519.28 7568,-3434.13"/>
<path fill="none" stroke="black" d="M7568,-3432.13C7568.42,-3430.87 7332.96,-2708.27 7332,-2707.36 7285.86,-2663.9 7232.75,-2721.52 7194,-2671.36 7125.38,-2582.55 7194,-2278.56 7194,-2166.33 7194,-2166.33 7194,-2166.33 7194,-1530.43 7194,-1437.4 7252.68,-1393.3 7194,-1321.13"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge150" 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="M6922.13,-3635.13C7142.29,-3632.56 8010.28,-3619.05 8277,-3563.88 8394.06,-3539.66 8423.84,-3526.73 8529,-3469.9 8577.53,-3443.66 8581.93,-3425.14 8629,-3396.36 8659.52,-3377.69 8672.55,-3382.05 8701,-3360.36 8743.32,-3328.09 8734.33,-3296.84 8781,-3271.26 8867.11,-3224.06 8902.48,-3253.36 8999,-3235.26 9122.2,-3212.16 9152.31,-3202.93 9275,-3177.28 9351.87,-3161.21 9373.23,-3165.31 9448,-3141.28 9508.62,-3121.8 9517.59,-3100.1 9579,-3083.3 9710.66,-3047.27 9755.19,-3092.44 9884,-3047.3 10357.9,-2881.2 10201,-2464.97 10201,-1962.8 10201,-1962.8 10201,-1962.8 10201,-1741.73 10201,-1532.86 10336.68,-1017.49 10428,-829.64 10436.86,-811.41 10449.42,-812.82 10456,-793.64 10466.61,-762.73 10465.19,-751.47 10456,-720.1 10452.65,-708.68 10446.87,-697.35 10440.51,-687.18"/>
<polygon fill="#d14d05" stroke="black" points="10443.25,-684.98 10434.82,-678.57 10437.41,-688.84 10443.25,-684.98"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge151" 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="M6921.93,-3634.52C7210.09,-3628.04 8626.36,-3594.7 8713,-3563.88 8778.49,-3540.58 8783.3,-3512.78 8838,-3469.9 8878.65,-3438.03 8880.07,-3415.62 8928,-3396.36 9115.4,-3321.03 9187.68,-3418.82 9381,-3360.36 9458.91,-3336.79 9465.27,-3301.09 9541,-3271.26 9702.87,-3207.49 9751.58,-3216.82 9921,-3177.28 9993.67,-3160.32 10014.17,-3164.77 10085,-3141.28 10181.29,-3109.35 10208.96,-3104.11 10293,-3047.3 10436.03,-2950.61 10652.48,-2830.82 10797,-2546.27 10878.75,-2385.31 10923,-1924.25 10923,-1743.73 10923,-1743.73 10923,-1743.73 10923,-1632.19 10923,-1442.23 10999,-1401.55 10999,-1211.59 10999,-1211.59 10999,-1211.59 10999,-1100.05 10999,-951.4 10980.47,-776.01 10970.77,-694.4"/>
<polygon fill="#d14d05" stroke="black" points="10974.18,-693.5 10969.51,-683.99 10967.23,-694.33 10974.18,-693.5"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge152" 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="M8149,-3533.89C8162.71,-3524.9 8160.48,-3516.47 8173,-3505.9 8196.76,-3485.83 8208.79,-3489.41 8233,-3469.9 8371.95,-3357.89 8375.34,-3296.66 8508,-3177.28 8681.76,-3020.9 8785.64,-3045.51 8927,-2859.33 8949.62,-2829.53 9040.4,-2582.15 9051,-2546.27 9130.63,-2276.66 9177,-2039.97 9177,-1634.19 9177,-1634.19 9177,-1634.19 9177,-990.51 9177,-887.12 9083.44,-801.88 9177,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge153" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6820.54,-3632.78C6709.48,-3626.51 6435.51,-3611.23 6206,-3599.88 5851.41,-3582.34 5757.87,-3624.17 5408,-3563.88 5320.99,-3548.89 5304.54,-3523.39 5218,-3505.9 5065.16,-3474.99 5015.69,-3522.79 4869,-3469.9 4813.68,-3449.95 4809.86,-3425.87 4759,-3396.36 4651.2,-3333.8 4629.09,-3300.81 4508,-3271.26 4269.41,-3213.05 2542.93,-3253.16 2298,-3235.26 1975.7,-3211.71 1895.27,-3197.26 1577,-3141.28 1197.66,-3074.55 1061.55,-3151.03 731,-2953.31 513.63,-2823.3 342,-2605.28 342,-2275.87 342,-2275.87 342,-2275.87 342,-2164.33 342,-1965.56 190,-1942.49 190,-1743.73 190,-1743.73 190,-1743.73 190,-1319.13 190,-1172.98 152,-1138.65 152,-992.51 152,-992.51 152,-992.51 152,-544.57 152,-498.06 118.89,-367.94 152,-335.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge154" 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="M8719,-3432.13C8747.32,-3417.63 8751.11,-3407.25 8781,-3396.36 8867.09,-3364.99 8895.02,-3382.24 8984,-3360.36 9162.82,-3316.39 9204.5,-3294.1 9379,-3235.26 9451.46,-3210.83 9468.08,-3200.31 9541,-3177.28 9578.58,-3165.41 9844.41,-3091.28 9883,-3083.3 9995.52,-3060.03 10038.84,-3103.59 10139,-3047.3 10207.71,-3008.68 10341.61,-2837.79 10417,-2671.36 10536.98,-2406.51 10489.34,-2314.77 10567,-2034.57 10616.9,-1854.54 10663.05,-1818.26 10695,-1634.19"/>
<path fill="none" stroke="black" d="M10695,-1632.19C10701,-1535.13 10786.08,-839.34 10733,-757.87"/>
<path fill="none" stroke="black" d="M10733,-755.87C10715.25,-729.05 10690.61,-702.67 10670.11,-682.74"/>
<polygon fill="#d14d05" stroke="black" points="10672.41,-680.1 10662.77,-675.71 10667.57,-685.15 10672.41,-680.1"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge155" 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="M6922.01,-3634.38C7274.04,-3625.63 9330.72,-3574.1 9394,-3563.88 9537.39,-3540.73 9568.65,-3514.11 9707,-3469.9 10091.62,-3346.98 10186.58,-3308.75 10554,-3141.28 10764.95,-3045.12 11379,-2734.56 11379,-2502.72 11379,-2502.72 11379,-2502.72 11379,-2383.4 11379,-2313.23 11717.2,-1239.08 11743,-1173.82 11776.08,-1090.16 11802.21,-1077.04 11833,-992.51"/>
<path fill="none" stroke="black" d="M11833,-990.51C11855.71,-803.47 11585.53,-699.45 11467.55,-663.19"/>
<polygon fill="#d14d05" stroke="black" points="11468.55,-659.84 11457.97,-660.29 11466.53,-666.54 11468.55,-659.84"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge156" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7644,-3314.81C7684.51,-2980.18 8015.48,-3113.09 8329,-2989.31 8378.03,-2969.96 8396.24,-2979.47 8442,-2953.31 8496.37,-2922.23 8516.78,-2914.19 8547,-2859.33 8603.65,-2756.52 8734.74,-1930.25 8710,-1815.5 8680.9,-1680.52 8582,-1670.5 8582,-1532.43 8582,-1532.43 8582,-1532.43 8582,-990.51 8582,-938.81 8621.34,-791.41 8582,-757.87"/>
<path fill="none" stroke="black" d="M8582,-755.87C8470.14,-665.2 8074.66,-729.49 7938,-684.1 7932.33,-682.22 7926.61,-679.76 7921.06,-677.01"/>
<polygon fill="#d14d05" stroke="black" points="7922.4,-673.76 7911.93,-672.16 7919.12,-679.94 7922.4,-673.76"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge157" 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="M8149,-3533.89C8163.81,-3524.3 8186.04,-3484.46 8196,-3469.9 8282.99,-3342.7 8276.77,-3289.86 8382,-3177.28 8400.45,-3157.54 8411.35,-3159.83 8431,-3141.28 8455.33,-3118.32 8452.59,-3103.83 8479,-3083.3 8508.51,-3060.36 8522.04,-3064.92 8555,-3047.3 8626.72,-3008.96 8647.74,-3003.16 8712,-2953.31 8758.93,-2916.91 8770.67,-2906.32 8807,-2859.33 8980.65,-2634.73 9067,-2559.76 9067,-2275.87 9067,-2275.87 9067,-2275.87 9067,-1530.43 9067,-1167.76 8900.81,-970.67 9163,-720.1 9230.41,-655.68 9893.32,-648.91 10093.23,-648.34"/>
<polygon fill="#d14d05" stroke="black" points="10093.24,-651.84 10103.23,-648.32 10093.22,-644.84 10093.24,-651.84"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge158" 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="M5508,-3314.81C5427.65,-3284.6 5409.19,-3272.83 5332,-3235.26 5281.95,-3210.9 5274.37,-3193.06 5221,-3177.28 5057.05,-3128.79 4992.41,-3214.69 4838,-3141.28 4805.36,-3125.76 4813.77,-3098.52 4781,-3083.3 4685.2,-3038.79 4411.93,-3059.5 4307,-3047.3 4142.1,-3028.11 4102.15,-3014.12 3938,-2989.31 3827.87,-2972.67 3789.95,-3002.45 3690,-2953.31 3529.92,-2874.62 3504.42,-2757.65 3537,-2582.27 3547.85,-2523.88 3543.56,-2500.68 3584,-2457.17 3609.99,-2429.21 3628.69,-2439.84 3662,-2421.17 3713.3,-2392.42 3720.56,-2376.14 3772,-2347.63 3806.1,-2328.73 3828.04,-2342.39 3852,-2311.63 3876.2,-2280.58 3914,-2002.17 3914,-1962.8 3914,-1962.8 3914,-1962.8 3914,-1428.67 3914,-1326.44 3977.68,-1313.06 3990,-1211.59"/>
<path fill="none" stroke="black" d="M3990,-1209.59C3993.21,-1135.35 3922.75,-906.81 3990,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge159" 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="M5204,-3533.89C5189.02,-3532.64 5197.91,-3513.6 5185,-3505.9 5117.29,-3465.49 4908.19,-3490.22 4832,-3469.9 4622.73,-3414.06 4598.44,-3318.21 4387,-3271.26 4159.94,-3220.84 2525.96,-3252.4 2294,-3235.26 1973.48,-3211.57 1893.51,-3197.07 1577,-3141.28 1197.68,-3074.41 1034.61,-3190.33 731,-2953.31 704.29,-2932.46 625.8,-2739.79 603,-2671.36 580.58,-2604.1 304,-1501.57 304,-1430.67 304,-1430.67 304,-1430.67 304,-1319.13 304,-1118.95 367.28,-1074.96 380,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge160" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6922.08,-3635.04C7189.19,-3631.68 8419.09,-3613.58 8581,-3563.88 8656.93,-3540.57 8668.85,-3516.73 8733,-3469.9 8773.62,-3440.24 8772.85,-3416.35 8819,-3396.36 8952.35,-3338.58 9003.5,-3397.49 9144,-3360.36 9240.84,-3334.76 9256.76,-3305.19 9351,-3271.26 9404.59,-3251.97 9421.42,-3257.16 9474,-3235.26 9523.21,-3214.77 9528.69,-3194.89 9579,-3177.28 9668.79,-3145.84 9696.78,-3160.25 9790,-3141.28 9967.68,-3105.13 10029.88,-3137.79 10187,-3047.3 10578.84,-2821.62 10784,-1554.23 10784,-1102.05 10784,-1102.05 10784,-1102.05 10784,-990.51 10784,-934.15 10899.14,-812.43 10885,-757.87"/>
<path fill="none" stroke="black" d="M10885,-755.87C10867.24,-709 10840.79,-710.21 10798,-684.1 10794.39,-681.9 10790.67,-679.59 10786.95,-677.24"/>
<polygon fill="#d14d05" stroke="black" points="10788.63,-674.15 10778.31,-671.73 10784.86,-680.06 10788.63,-674.15"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge161" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7568,-3432.13C7590.87,-3375.16 7632.38,-3377.08 7644,-3316.81"/>
<path fill="none" stroke="black" d="M7644,-3314.81C7651.25,-3277.23 7624.7,-3271 7611,-3235.26 7590.42,-3181.59 7568,-3170.77 7568,-3113.29 7568,-3113.29 7568,-3113.29 7568,-3017.3 7568,-2867.41 7558.63,-2792.13 7435,-2707.36 7352.56,-2650.84 7277.78,-2747.49 7213,-2671.36 7187.34,-2641.21 7208.03,-2621.55 7213,-2582.27 7216.66,-2553.31 7742.57,-575.02 7736,-546.57"/>
<path fill="none" stroke="black" d="M7736,-544.57C7727.84,-524.43 7715.53,-503.94 7703.87,-486.8"/>
<polygon fill="#d14d05" stroke="black" points="7706.45,-484.38 7697.86,-478.17 7700.7,-488.37 7706.45,-484.38"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge162" 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="M6921.86,-3634.65C7187.76,-3629.15 8411.78,-3600.48 8567,-3535.89"/>
<path fill="none" stroke="black" d="M8567,-3533.89C8646.95,-3500.62 8638.99,-3452.4 8705,-3396.36 8725.88,-3378.64 8733.81,-3377.7 8755,-3360.36 8800.04,-3323.48 8798.18,-3295.73 8851,-3271.26 8972.85,-3214.82 9020.62,-3267.43 9151,-3235.26 9221.2,-3217.94 9233.15,-3195.97 9303,-3177.28 9400.83,-3151.09 9434.56,-3180.33 9528,-3141.28 9568.18,-3124.48 9566.35,-3098.93 9607,-3083.3 9754.6,-3026.51 9811.9,-3100 9961,-3047.3 10033.06,-3021.82 10048.5,-3004.78 10105,-2953.31 10164.16,-2899.42 10302.64,-2746.92 10329,-2671.36 10342.04,-2633.98 10339.33,-2620.5 10329,-2582.27 10324.17,-2564.39 10313.56,-2563.94 10308,-2546.27 10257.16,-2384.65 10277,-2335.75 10277,-2166.33 10277,-2166.33 10277,-2166.33 10277,-1960.8 10277,-1455.42 10454.04,-858.74 10506.51,-692.97"/>
<polygon fill="#d14d05" stroke="black" points="10509.94,-693.72 10509.64,-683.13 10503.27,-691.6 10509.94,-693.72"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users -->
<g id="edge163" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5888,-3432.13C5822.8,-3340.83 5746.74,-3409.73 5646,-3360.36 5585.06,-3330.49 5580.16,-3306.22 5522,-3271.26 5441.25,-3222.73 5421.68,-3206.15 5332,-3177.28 5238.53,-3147.18 5210.52,-3159.38 5114,-3141.28 4990.8,-3118.18 4961.06,-3107.11 4838,-3083.3 4602.7,-3037.77 4544.85,-3018.74 4307,-2989.31 4195.12,-2975.47 3905.68,-2995.15 3801,-2953.31 3577.51,-2863.99 3475.59,-2672.05 3584,-2457.17 3608.52,-2408.58 3753.29,-2358.48 3781,-2311.63 3860.65,-2177 3855.31,-2116.84 3828,-1962.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge164" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9135,-3533.89C9148.58,-3530.88 9138.1,-3514.53 9149,-3505.9 9203.43,-3462.8 9234.89,-3491.09 9301,-3469.9 9331.63,-3460.07 9541.32,-3376.74 9569,-3360.36 9623.14,-3328.31 9621.22,-3296.15 9679,-3271.26 9790.19,-3223.38 9846.53,-3299.73 9949,-3235.26 9975.08,-3218.85 9960.83,-3193.54 9987,-3177.28 10099.19,-3107.56 10158.65,-3188.5 10282,-3141.28 10324.02,-3125.19 10324.59,-3103.09 10365,-3083.3 10413.48,-3059.56 10430.87,-3067.33 10481,-3047.3 10524.74,-3029.82 10635.54,-2984.32 10671,-2953.31 10951.59,-2707.92 10911.14,-2535.74 10961,-2166.33"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge165" 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="M5204,-3314.81C5172.85,-3302.03 5170.95,-3288.45 5142,-3271.26 5060.99,-3223.16 5042.06,-3204.93 4952,-3177.28 4915.28,-3166.01 4305.24,-3086.89 4267,-3083.3 3955.52,-3054.01 3872.96,-3096.48 3564,-3047.3 3466.69,-3031.8 3446.38,-3009.85 3350,-2989.31 3299.4,-2978.53 3154.83,-2991.56 3120,-2953.31 2916.87,-2730.28 3078,-2577.53 3078,-2275.87 3078,-2275.87 3078,-2275.87 3078,-2164.33 3078,-2156.58 3420,-1109.8 3420,-1102.05 3420,-1102.05 3420,-1102.05 3420,-646.34 3420,-588.05 3422.71,-570.67 3401,-516.58 3386.43,-480.27 3311.5,-451.83 3350,-444.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge166" 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="M6921.93,-3634.39C7248.19,-3626.25 9035.26,-3581.05 9149,-3563.88 9226.93,-3552.11 9418.09,-3499.84 9491,-3469.9 9657.88,-3401.35 9677.45,-3338.15 9845,-3271.26 9905.47,-3247.12 9924.06,-3251.93 9987,-3235.26 10080.6,-3210.48 10102.96,-3200.32 10197,-3177.28 10271.17,-3159.11 10292.86,-3166.33 10365,-3141.28 10543.75,-3079.22 10609.68,-3083.5 10747,-2953.31 10890.41,-2817.36 11146.92,-2363.43 11161,-2166.33"/>
<path fill="none" stroke="black" d="M11161,-2164.33C11160.5,-2143.84 11158.14,-2121.13 11155.74,-2102.56"/>
<polygon fill="#d14d05" stroke="black" points="11159.17,-2101.87 11154.37,-2092.43 11152.24,-2102.81 11159.17,-2101.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge167" 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="M5204,-3533.89C5189.02,-3532.64 5198.09,-3513.3 5185,-3505.9 5121.36,-3469.91 4600.42,-3479.91 4528,-3469.9 4489.33,-3464.55 4446.17,-3454.67 4414.43,-3446.64"/>
<polygon fill="#d14d05" stroke="black" points="4415.1,-3443.2 4404.54,-3444.11 4413.36,-3449.98 4415.1,-3443.2"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge168" 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="M6820.5,-3632.89C6593.24,-3620.43 5675.26,-3569.84 5646,-3563.88 5571.07,-3548.6 5558.3,-3524.01 5484,-3505.9 5368.09,-3477.64 5325.33,-3521.97 5218,-3469.9 5175.71,-3449.38 5184.46,-3416.52 5142,-3396.36 5019.1,-3337.99 4957.97,-3424.53 4838,-3360.36 4792.11,-3335.81 4809.02,-3293.58 4762,-3271.26 4678.92,-3231.83 3198.29,-3246.36 3107,-3235.26 2989.9,-3221.02 2964.72,-3194.33 2848,-3177.28 2621.4,-3144.17 2561.89,-3163.79 2334,-3141.28 2131.57,-3121.28 2082.02,-3107.08 1880,-3083.3 1805.86,-3074.57 1611.49,-3083.13 1546,-3047.3 1484.99,-3013.92 1448,-2994.86 1448,-2925.32 1448,-2925.32 1448,-2925.32 1448,-2829.34 1448,-2473.49 1320.55,-2403.13 1211,-2064.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge169" 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="M6820.26,-3632.99C6605.01,-3621.65 5775.98,-3577.27 5722,-3563.88 5692.66,-3556.6 5689.71,-3541.49 5660,-3535.89"/>
<path fill="none" stroke="black" d="M5660,-3533.89C5614.65,-3525.33 5604.88,-3516.65 5560,-3505.9 5480.66,-3486.89 5457.65,-3494.92 5380,-3469.9 5304.74,-3445.64 5293.93,-3418.43 5218,-3396.36 5107.67,-3364.28 5068.64,-3403.12 4962,-3360.36 4899.01,-3335.1 4902.33,-3292.86 4838,-3271.26 4684.69,-3219.79 3543.63,-3253.96 3383,-3235.26 3258.5,-3220.77 3230.66,-3197.75 3107,-3177.28 2765.56,-3120.76 2678.85,-3112.46 2334,-3083.3 2250.54,-3076.24 1648.16,-3097.35 1581,-3047.3 1541.2,-3017.64 1524,-2880.97 1524,-2831.34 1524,-2831.34 1524,-2831.34 1524,-2735.36 1524,-2630.59 1509.97,-2604.71 1486,-2502.72"/>
<path fill="none" stroke="black" d="M1486,-2500.72C1475.11,-2450.61 1477.43,-2436.48 1482,-2385.4"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge170" 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="M6820.11,-3632.84C6708.78,-3626.72 6435.19,-3611.76 6206,-3599.88 6045.57,-3591.56 5634.86,-3619.08 5484,-3563.88 5444.1,-3549.28 5447.24,-3522.17 5408,-3505.9 5297.8,-3460.2 5258.74,-3494.48 5142,-3469.9 5120.5,-3465.37 4778.46,-3374.91 4762,-3360.36 4729.75,-3331.84 4759.69,-3295.33 4724,-3271.26 4680.7,-3242.05 2896.13,-3238.52 2844,-3235.26 2600.44,-3220.03 2540.91,-3200.63 2298,-3177.28 2112.39,-3159.43 2064.27,-3169.8 1880,-3141.28 1832.96,-3134 1500.09,-3075.85 1462,-3047.3 1292.1,-2919.93 1056.71,-2375.71 1092,-2166.33"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge171" 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="M6852,-3205.27C6841.45,-3123.3 6852,-3101.96 6852,-3019.3 6852,-3019.3 6852,-3019.3 6852,-2829.34 6852,-2719.01 6861.09,-2691.58 6876,-2582.27 6880.85,-2546.7 6884.73,-2538.23 6890,-2502.72"/>
<path fill="none" stroke="black" d="M6890,-2500.72C6893.98,-2400.87 6890,-2375.8 6890,-2275.87 6890,-2275.87 6890,-2275.87 6890,-2164.33 6890,-2109.73 6876.7,-2048.15 6866.05,-2007.6"/>
<polygon fill="#d14d05" stroke="black" points="6869.38,-2006.51 6863.41,-1997.76 6862.62,-2008.32 6869.38,-2006.51"/>
</g>
<!-- ahriman_core_database_data -->
<g id="node52" class="node">
<title>ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f1e" stroke="black" cx="2844" cy="-2501.72" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="2844" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2844" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2844" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="2844" y="-2482.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_data -->
<g id="edge172" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5204,-3314.81C5173.16,-3301.28 5171.52,-3287.45 5142,-3271.26 5045.9,-3218.56 5020.52,-3203.1 4914,-3177.28 4748.08,-3137.06 3551.9,-3072.2 3383,-3047.3 3382.22,-3047.18 2938.73,-2953.62 2938,-2953.31 2828.07,-2906.29 2818.88,-2862.28 2716,-2801.35 2673.77,-2776.33 2640.04,-2784.38 2626,-2737.36"/>
</g>
<!-- ahriman_core_database_data_users -->
<g id="node56" class="node">
<title>ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="10359" cy="-2501.72" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="10359" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10359" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10359" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="10359" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="10359" y="-2477.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">users</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_data_users -->
<g id="edge173" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8567,-3533.89C8641.6,-3502.84 8648.74,-3474.04 8719,-3434.13"/>
<path fill="none" stroke="black" d="M8719,-3432.13C8746.66,-3416.41 8752.45,-3410.39 8781,-3396.36 8912.12,-3331.91 8944.47,-3311.22 9085,-3271.26 9179.46,-3244.4 9209.2,-3264.33 9303,-3235.26 9361.11,-3217.25 9369.2,-3196.27 9427,-3177.28 9504.51,-3151.82 9531.71,-3172.7 9607,-3141.28 9649.54,-3123.53 9649.55,-3098.7 9693,-3083.3 9864.58,-3022.48 9940.33,-3132.87 10101,-3047.3 10103.96,-3045.72 10251.07,-2862.08 10253,-2859.33 10309.18,-2779.39 10340.7,-2765.46 10367,-2671.36 10377.55,-2633.63 10374.9,-2589.32 10369.96,-2555.59"/>
<polygon fill="#d14d05" stroke="black" points="10373.38,-2554.82 10368.37,-2545.49 10366.47,-2555.91 10373.38,-2554.82"/>
</g>
<!-- ahriman_core_database_migrations -->
<g id="node57" class="node">
<title>ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#815137" stroke="black" cx="2844" cy="-2384.4" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="2844" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2844" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2844" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="2844" y="-2365.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migrations</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge174" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5888,-3533.89C5766.21,-3495.85 5754.78,-3442.96 5636,-3396.36 5575.39,-3372.57 5556.11,-3379.88 5494,-3360.36 5274.21,-3291.25 5232.79,-3232.09 5009,-3177.28 4923.89,-3156.43 4313.06,-3093.22 4226,-3083.3 4192.55,-3079.48 3046.25,-2975.58 3021,-2953.31 2893.88,-2841.22 2972.24,-2747.15 2933,-2582.27 2924.58,-2546.91 2912.98,-2539.06 2914,-2502.72"/>
</g>
<!-- ahriman_core_database_sqlite -->
<g id="node64" class="node">
<title>ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="3408" cy="-2274.87" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="3408" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3408" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3408" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3408" y="-2255.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sqlite</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge175" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5888,-3533.89C5866.71,-3527.69 5900.88,-3452.17 5888,-3434.13"/>
<path fill="none" stroke="black" d="M5888,-3432.13C5803.79,-3314.22 5702.46,-3419.06 5570,-3360.36 5539.21,-3346.71 5539.35,-3329.1 5508,-3316.81"/>
<path fill="none" stroke="black" d="M5508,-3314.81C5458.28,-3295.31 5446.25,-3289.36 5396,-3271.26 5271.31,-3226.35 5242.35,-3206.13 5113,-3177.28 4980.64,-3147.76 4937.12,-3188.51 4810,-3141.28 4766.79,-3125.22 4767.51,-3098.54 4724,-3083.3 4630.37,-3050.49 4377.88,-3055.35 4279,-3047.3 4277.01,-3047.13 3133.35,-2954.78 3132,-2953.31 3114.54,-2934.36 3128,-2920.79 3132,-2895.33 3164.12,-2691.13 3189,-2638.63 3288,-2457.17 3316.03,-2405.79 3354.14,-2350.13 3379.82,-2314.23"/>
<polygon fill="#d14d05" stroke="black" points="3382.75,-2316.15 3385.75,-2305.99 3377.07,-2312.06 3382.75,-2316.15"/>
</g>
<!-- ahriman_core_report_console -->
<g id="node78" class="node">
<title>ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="6120" cy="-2274.87" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6120" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6120" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6120" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="6120" y="-2255.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">console</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_console -->
<g id="edge176" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6830,-3533.89C6738.13,-3372.49 6671.96,-3352.58 6505,-3271.26 6459.51,-3249.11 6435.12,-3268.53 6397,-3235.26 6326.85,-3174.03 6242.25,-2947.39 6212,-2859.33 6184.28,-2778.64 6188.08,-2755.34 6173,-2671.36 6156.11,-2577.3 6144.81,-2552.3 6154,-2457.17 6157.13,-2424.83 6192.53,-2406.72 6168,-2385.4"/>
<path fill="none" stroke="black" d="M6168,-2383.4C6149.37,-2367.27 6137.64,-2342.49 6130.45,-2320.78"/>
<polygon fill="#d14d05" stroke="black" points="6133.74,-2319.59 6127.45,-2311.06 6127.05,-2321.65 6133.74,-2319.59"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node79" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="4562" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4562" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4562" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4562" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4562" y="-2482.72" 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="edge177" 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="M6820.32,-3633.5C6686.48,-3627.29 6326.29,-3606.94 6216,-3563.88 6125.47,-3528.54 6057.88,-3529.65 6040,-3434.13"/>
<path fill="none" stroke="black" d="M6040,-3432.13C5930.82,-3269.15 5832.02,-3293.27 5708,-3141.28 5689.25,-3118.3 5700.01,-3099.22 5675,-3083.3 5591.32,-3030 5326.75,-3069.26 5230,-3047.3 5117.58,-3021.77 4327.35,-2767.01 4263,-2671.36 4240.9,-2638.51 4238.87,-2613.66 4263,-2582.27 4278.48,-2562.13 4434.33,-2528.32 4514.66,-2512.04"/>
<polygon fill="#d14d05" stroke="black" points="4515.43,-2515.46 4524.54,-2510.05 4514.04,-2508.59 4515.43,-2515.46"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node80" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="4980" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4980" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4980" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4980" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4980" y="-2482.72" 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="edge178" 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="M6040,-3314.81C6001.44,-3166.33 5924.7,-3144.42 5784,-3083.3 5670.94,-3034.18 5624.68,-3089.87 5509,-3047.3 5353.46,-2990.06 5222.29,-2996.17 5205,-2831.34"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node81" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="3680" cy="-2501.72" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="3680" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3680" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3680" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="3680" y="-2482.72" 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="edge179" 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="M5660,-3314.81C5614.49,-3272.74 5680.17,-3221.75 5637,-3177.28 5627.63,-3167.63 4700.31,-2991.26 4687,-2989.31 4520.46,-2964.95 4475.01,-2986.54 4310,-2953.31 4225.11,-2936.22 4208.75,-2913.09 4124,-2895.33 4053.31,-2880.52 3858.8,-2902.63 3801,-2859.33 3753.97,-2824.1 3769.93,-2792.63 3750,-2737.36"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node82" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="5762" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5762" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5762" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5762" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5762" y="-2482.72" 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="edge180" 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="M6230,-3432.13C6190.88,-3262.11 6193.5,-3182.51 6050,-3083.3 6008.03,-3054.28 5988.77,-3065.22 5941,-3047.3 5840.3,-3009.52 5804.88,-3016.72 5718,-2953.31 5704.76,-2943.65 5680.54,-2934.68 5694,-2925.32"/>
</g>
<!-- ahriman_core_report_report_trigger -->
<g id="node83" class="node">
<title>ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="6040" cy="-2165.33" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="6040" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6040" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6040" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="6040" y="-2146.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge181" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6834.29,-3616.22C6741.23,-3565.34 6493.2,-3419.3 6348,-3235.26 6290.63,-3162.55 6293.49,-3132.85 6258,-3047.3 6240.8,-3005.83 6236.06,-2995.6 6221,-2953.31 6186.16,-2855.44 6049.06,-2394.55 6054,-2385.4"/>
</g>
<!-- ahriman_core_report_telegram -->
<g id="node84" class="node">
<title>ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="4656" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4656" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4656" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4656" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4656" y="-2482.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">telegram</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_telegram -->
<g id="edge182" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6040,-3432.13C6030.57,-3381.75 6059,-3364.41 6040,-3316.81"/>
<path fill="none" stroke="black" d="M6040,-3314.81C6021.34,-3268.06 5902.98,-3203.48 5860,-3177.28 5828.09,-3157.83 5815.92,-3160.72 5784,-3141.28 5747.71,-3119.18 5747.57,-3098.77 5708,-3083.3 5549.19,-3021.18 5483.54,-3112.57 5326,-3047.3 5167.67,-2981.69 5184.53,-2873.35 5029,-2801.35 4945.85,-2762.85 4907.69,-2806.85 4826,-2765.35 4772.2,-2738.02 4762.32,-2721 4728,-2671.36 4701.27,-2632.71 4681.43,-2582.56 4669.42,-2547.02"/>
<polygon fill="#d14d05" stroke="black" points="4672.7,-2545.8 4666.24,-2537.41 4666.05,-2548 4672.7,-2545.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge183" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6738,-2923.32C6714.68,-2619.29 6723.29,-2542.4 6704,-2238.1 6699.1,-2160.88 6723.68,-2134.22 6690,-2064.57"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node92" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#934b24" stroke="black" cx="3622" cy="-3433.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3622" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3622" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3622" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="3622" y="-3414.13" 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="edge184" 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="M6820.54,-3632.76C6709.48,-3626.44 6435.52,-3611.05 6206,-3599.88 5838.98,-3582.01 5745.6,-3600.8 5380,-3563.88 5301.2,-3555.92 5282.93,-3542.46 5204,-3535.89"/>
<path fill="none" stroke="black" d="M5204,-3533.89C5189.02,-3532.64 5198.19,-3513.12 5185,-3505.9 5120.6,-3470.64 3937.14,-3476.27 3864,-3469.9 3796.06,-3463.97 3718.14,-3451.41 3669.48,-3442.86"/>
<polygon fill="#d14d05" stroke="black" points="3670.02,-3439.4 3659.56,-3441.1 3668.8,-3446.29 3670.02,-3439.4"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node93" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b65520" stroke="black" cx="2540" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2540" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2540" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2540" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">spawn</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_spawn -->
<g id="edge185" 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="M6820.25,-3634C6652.49,-3628.19 6116.91,-3606.66 5950,-3563.88 5920.71,-3556.37 5916.99,-3544.46 5888,-3535.89"/>
<path fill="none" stroke="black" d="M5888,-3533.89C5765.58,-3497.7 5728.95,-3510.71 5608,-3469.9 5533.08,-3444.62 5521.93,-3418.43 5446,-3396.36 5335.67,-3364.28 5296.64,-3403.12 5190,-3360.36 5127.01,-3335.1 5129.61,-3294.92 5066,-3271.26 4913.87,-3214.68 3771.36,-3166.36 3611,-3141.28 3516.94,-3126.57 3285.18,-3071.13 3193,-3047.3 3104.22,-3024.34 3084.64,-3008.63 2995,-2989.31 2917.9,-2972.69 2688.41,-2943.57 2587.97,-2931.17"/>
<polygon fill="#d14d05" stroke="black" points="2588.16,-2927.67 2577.81,-2929.92 2587.3,-2934.62 2588.16,-2927.67"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node95" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#93451a" stroke="black" cx="5620" cy="-2384.4" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5620" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5620" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5620" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="5620" y="-2365.4" 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="edge186" 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="M6863.11,-3607.82C6856.37,-3586.88 6845.31,-3558.09 6830,-3535.89"/>
<path fill="none" stroke="black" d="M6830,-3533.89C6812.55,-3508.57 6387.19,-3255.45 6364,-3235.26 6281.03,-3163.05 6270.77,-3133.93 6203,-3047.3 6115.16,-2935 6078.01,-2905.14 6050,-2765.35 6033.99,-2685.45 6032.91,-2663.45 6040,-2582.27 6043.12,-2546.51 6077.91,-2529.5 6054,-2502.72"/>
<path fill="none" stroke="black" d="M6054,-2500.72C6039.28,-2485.58 6051.61,-2470.21 6035,-2457.17 5978.6,-2412.92 5765.08,-2394.35 5668.26,-2388.08"/>
<polygon fill="#d14d05" stroke="black" points="5668.35,-2384.58 5658.15,-2387.45 5667.91,-2391.57 5668.35,-2384.58"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node96" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b4722" stroke="black" cx="2936" cy="-1320.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2936" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2936" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2936" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2936" y="-1301.13" 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="edge187" 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="M6820.32,-3633.41C6644.13,-3625.42 6058.92,-3596.96 5874,-3563.88 5782.9,-3547.58 5764.33,-3526.04 5674,-3505.9 5573.87,-3483.57 5529.18,-3529.94 5446,-3469.9 5416.17,-3448.36 5438.38,-3417.11 5408,-3396.36 5281.8,-3310.14 5201.23,-3431.57 5066,-3360.36 5019.95,-3336.11 5036.82,-3294 4990,-3271.26 4899.78,-3227.43 4187.96,-3243.5 4088,-3235.26 3753.2,-3207.65 3634.88,-3298.5 3338,-3141.28 3307.67,-3125.22 3317.35,-3099.33 3287,-3083.3 3171.38,-3022.22 3124.22,-3067.34 2995,-3047.3 2966.96,-3042.95 2511.12,-2975.14 2493,-2953.31 2463.12,-2917.32 2424.61,-3126.98 2532,-2582.27 2543.14,-2525.74 2538.58,-2507.85 2566,-2457.17 2576.19,-2438.35 2586.71,-2439.36 2598,-2421.17 2787.97,-2115.17 2815.6,-2019.62 2902,-1669.96 2927.64,-1566.19 2927.75,-1537.54 2926,-1430.67"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node97" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="5482" cy="-2274.87" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="5482" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5482" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5482" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="5482" y="-2255.87" 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="edge188" 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="M6821.3,-3630.13C6676.4,-3612.69 6262.5,-3552.75 6230,-3434.13"/>
<path fill="none" stroke="black" d="M6230,-3432.13C6125.21,-3322.06 6116.65,-3277.04 6002,-3177.28 5945.46,-3128.08 5928.2,-3118.42 5862,-3083.3 5824.31,-3063.3 5808.51,-3070.95 5773,-3047.3 5684.96,-2988.66 5653.86,-2961.64 5627,-2859.33 5620.46,-2834.4 5616.66,-2824.95 5627,-2801.35 5636.46,-2779.74 5650.75,-2783.35 5666,-2765.35 5685.91,-2741.84 5685.66,-2732.13 5704,-2707.36 5716.4,-2690.63 5722.25,-2688.56 5734,-2671.36 5746.46,-2653.12 5758.35,-2649.91 5758,-2627.82"/>
<path fill="none" stroke="black" d="M5758,-2625.82C5757.66,-2573.85 5634.37,-2492.22 5596,-2457.17 5577.09,-2439.9 5566.9,-2441.25 5551,-2421.17 5526.91,-2390.75 5508.64,-2350.54 5496.97,-2320.13"/>
<polygon fill="#d14d05" stroke="black" points="5500.2,-2318.77 5493.42,-2310.63 5493.64,-2321.22 5500.2,-2318.77"/>
</g>
<!-- ahriman_core_triggers_trigger -->
<g id="node100" class="node">
<title>ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="6386" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6386" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6386" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6386" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6386" y="-2482.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge189" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6830,-3533.89C6789.03,-3473.78 6864.23,-3278.98 6852,-3207.27"/>
<path fill="none" stroke="black" d="M6852,-3205.27C6845.68,-3169.17 6819.97,-3172.01 6800,-3141.28 6766.86,-3090.29 6762.32,-3075.04 6738,-3019.3"/>
<path fill="none" stroke="black" d="M6738,-3017.3C6663.01,-2881.35 6582.95,-2893.99 6496,-2765.35 6458.45,-2709.8 6451.82,-2692.45 6434,-2627.82"/>
</g>
<!-- ahriman_core_triggers_trigger_loader -->
<g id="node101" class="node">
<title>ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="6571" cy="-2501.72" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="6571" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6571" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6571" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6571" y="-2482.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">trigger_loader</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge190" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6738,-3017.3C6721.65,-2979.83 6749.01,-2964.69 6738,-2925.32"/>
<path fill="none" stroke="black" d="M6738,-2923.32C6698.24,-2781.1 6626.84,-2620.99 6591.69,-2545.92"/>
<polygon fill="#d14d05" stroke="black" points="6594.81,-2544.33 6587.39,-2536.76 6588.48,-2547.3 6594.81,-2544.33"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node103" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="9321" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9321" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9321" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9321" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9321" y="-2607.82" 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="edge191" 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="M6921.95,-3635.4C7134.58,-3633.99 7951.62,-3624.64 8201,-3563.88 8230.37,-3556.72 8233.68,-3543.26 8263,-3535.89"/>
<path fill="none" stroke="black" d="M8263,-3533.89C8341.37,-3514.18 8358.29,-3491.7 8415,-3434.13"/>
<path fill="none" stroke="black" d="M8415,-3432.13C8468.77,-3377.54 8428.08,-3330.24 8477,-3271.26 8578.41,-3149 8643.42,-3162.7 8781,-3083.3 8810.28,-3066.4 8821.9,-3068.78 8848,-3047.3 8848.85,-3046.6 8947.58,-2926.33 8948,-2925.32"/>
<path fill="none" stroke="black" d="M8948,-2923.32C8989.19,-2825.29 8966.01,-2771.27 9051,-2707.36 9129.49,-2648.35 9179.76,-2712.34 9269,-2671.36 9275.26,-2668.49 9281.37,-2664.66 9287.07,-2660.46"/>
<polygon fill="#d14d05" stroke="black" points="9289.43,-2663.05 9295.11,-2654.11 9285.09,-2657.56 9289.43,-2663.05"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node104" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="8984" cy="-3433.13" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="8984" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8984" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8984" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8984" y="-3414.13" 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="edge192" 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="M6921.82,-3634.44C7230.31,-3627 8840.05,-3587.13 8885,-3563.88 8920.81,-3545.36 8947.39,-3507.34 8963.95,-3477.23"/>
<polygon fill="#d14d05" stroke="black" points="8967.16,-3478.64 8968.76,-3468.16 8960.98,-3475.35 8967.16,-3478.64"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node105" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="9415" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9415" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9415" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9415" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9415" y="-2607.82" 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="edge193" 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="M8415,-3432.13C8445.9,-3403.46 8454.69,-3396.12 8477,-3360.36 8499.79,-3323.83 8486.58,-3303.59 8515,-3271.26 8533.81,-3249.87 8711.65,-3156.06 8736,-3141.28 8803.25,-3100.45 8825.33,-3097.37 8886,-3047.3 9045.32,-2915.8 9023.48,-2809.57 9203,-2707.36 9268.23,-2670.23 9301.46,-2706.1 9368,-2671.36 9372.93,-2668.79 9377.73,-2665.56 9382.26,-2662.03"/>
<polygon fill="#d14d05" stroke="black" points="9384.7,-2664.55 9390.09,-2655.43 9380.19,-2659.2 9384.7,-2664.55"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node106" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="9699" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9699" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9699" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9699" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9699" y="-2607.82" 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="edge194" 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="M8415,-3432.13C8469.25,-3382.25 8638.17,-3302.32 8705,-3271.26 8918.03,-3172.26 8970.92,-3139.52 9199,-3083.3 9263.98,-3067.28 9453.6,-3097.37 9498,-3047.3 9534,-3006.7 9480.46,-2978.11 9493,-2925.32"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node107" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="9907" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9907" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9907" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9907" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9907" y="-2607.82" 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="edge195" 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="M8263,-3533.89C8438.37,-3489.78 8480.19,-3460.13 8631,-3360.36 8684.05,-3325.26 8686.15,-3299.8 8743,-3271.26 8792.71,-3246.31 8932.14,-3224.59 8985,-3207.27"/>
<path fill="none" stroke="black" d="M8985,-3205.27C9000.67,-3200.47 8994.83,-3185.51 9009,-3177.28 9074.95,-3138.97 9609.93,-3069.16 9683,-3047.3 9788,-3015.88 9850.03,-3044.39 9911,-2953.31 9968.41,-2867.55 9941.88,-2738.5 9921.95,-2671.57"/>
<polygon fill="#d14d05" stroke="black" points="9925.22,-2670.3 9918.94,-2661.77 9918.53,-2672.36 9925.22,-2670.3"/>
</g>
<!-- ahriman_core_upload_upload_trigger -->
<g id="node108" class="node">
<title>ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="8868" cy="-2165.33" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="8868" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8868" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8868" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8868" y="-2146.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge196" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8417,-3111.29C8460.6,-3068.31 8433.07,-3027.4 8481,-2989.31 8530.63,-2949.88 8565.54,-2987.37 8619,-2953.31 8647.22,-2935.34 8640.93,-2916.29 8667,-2895.33 8694.27,-2873.41 8711.77,-2883.57 8737,-2859.33 8792.96,-2805.56 8779.95,-2771.94 8823,-2707.36 8834.24,-2690.5 8843.32,-2690.12 8851,-2671.36 8918.02,-2507.58 8944.22,-2446.41 8897,-2275.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge197" 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="M5660,-3533.89C5622.66,-3526.36 5615.71,-3516.06 5579,-3505.9 5504.15,-3485.17 5478.49,-3502.49 5408,-3469.9 5359.54,-3447.49 5362.49,-3416.4 5313,-3396.36 5179.12,-3342.13 5117.6,-3428.05 4990,-3360.36 4944.02,-3335.96 4961,-3293.63 4914,-3271.26 4763.17,-3199.47 3574.91,-3267.5 3411,-3235.26 3340.06,-3221.31 3328.38,-3197.63 3259,-3177.28 2904.3,-3073.21 2726.62,-3207.25 2458,-2953.31 2354.24,-2855.22 2343,-2808.72 2304,-2671.36 2250.93,-2484.47 2289.89,-2427.35 2246,-2238.1 2243.33,-2226.58 1973.01,-1442.11 1976,-1430.67"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge198" 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="M5888,-3533.89C5843.69,-3520.99 5832.69,-3517.44 5788,-3505.9 5720.78,-3488.54 5698.64,-3499.82 5636,-3469.9 5587.82,-3446.88 5590.29,-3416.88 5541,-3396.36 5427.2,-3348.99 5380.87,-3405.07 5266,-3360.36 5234.62,-3348.14 5235.44,-3328.87 5204,-3316.81"/>
<path fill="none" stroke="black" d="M5204,-3314.81C5172.7,-3302.4 5172.23,-3286.09 5142,-3271.26 5110.26,-3255.69 4872.65,-3184.29 4838,-3177.28 4267.57,-3061.87 4111.28,-3128.59 3535,-3047.3 3477.51,-3039.19 3062.22,-2994.19 3021,-2953.31 2960.53,-2893.35 3013.24,-2593.02 3014,-2582.27 3031.24,-2338.45 3012.45,-2273.51 3064,-2034.57 3074.87,-1984.2 3083.5,-1973.13 3102,-1925.03 3163.98,-1763.9 3215.93,-1731.9 3236,-1560.42 3265.39,-1309.33 3154.72,-1240.46 3204,-992.51"/>
</g>
<!-- ahriman_core_database -->
<g id="node51" class="node">
<title>ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5105" stroke="black" cx="3504" cy="-2165.33" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="3504" y="-2173.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3504" y="-2162.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3504" y="-2151.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database</text>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge199" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3531.06,-2144.12C3548.49,-2130.48 3571.15,-2111.57 3589,-2092.56 3610.96,-2069.17 3606.08,-2053.48 3632,-2034.57 3672.2,-2005.26 3695.29,-2024.1 3738,-1998.57 3901.74,-1900.7 3876.47,-1780.64 4052,-1705.96 4600.22,-1472.73 6137.42,-1630.92 6729,-1560.42 6957,-1533.24 7011.26,-1508.38 7237,-1466.43 7412.14,-1433.89 7454.27,-1415.2 7631,-1392.9 7869.64,-1362.78 7931.16,-1375.12 8171,-1356.9 8790.42,-1309.84 9535.55,-1242.64 9787.16,-1219.65"/>
<polygon fill="#db5105" stroke="black" points="9787.7,-1223.12 9797.34,-1218.72 9787.06,-1216.15 9787.7,-1223.12"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge200" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3458,-1319.13C3416.72,-1171.02 3538.21,-1142.5 3572,-992.51"/>
<path fill="none" stroke="black" d="M3572,-990.51C3583.94,-882.4 3631.03,-865.31 3648,-757.87"/>
<path fill="none" stroke="black" d="M3648,-755.87C3681.71,-347.47 7058.72,-334.87 7540.14,-335.16"/>
<polygon fill="#db5105" stroke="black" points="7540.32,-338.66 7550.32,-335.16 7540.33,-331.66 7540.32,-338.66"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_users -->
<g id="edge201" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3520.72,-2138.75C3538.49,-2112.07 3567.85,-2069.34 3596,-2034.57 3638.74,-1981.78 3692.67,-1924.76 3727.49,-1889.05"/>
<polygon fill="#db5105" stroke="black" points="3730.13,-1891.35 3734.62,-1881.76 3725.13,-1886.46 3730.13,-1891.35"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_auth -->
<g id="edge202" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3464.36,-2163.38C3248.64,-2157.82 2194.51,-2125.03 1344,-1998.57 1305.16,-1992.8 1261.72,-1982.94 1229.76,-1975.04"/>
<polygon fill="#db5105" stroke="black" points="1230.36,-1971.58 1219.81,-1972.55 1228.66,-1978.37 1230.36,-1971.58"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge203" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3466.22,-2155.71C3360.04,-2131.89 3049.65,-2064.88 2788,-2034.57 2262.02,-1973.66 1618.64,-1964.44 1439.36,-1963.05"/>
<polygon fill="#db5105" stroke="black" points="1439.23,-1959.55 1429.21,-1962.98 1439.18,-1966.55 1439.23,-1959.55"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge204" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3464.22,-2163.61C3227.81,-2159.22 2005.06,-2134.81 1632,-2092.56 1409.06,-2067.3 1340.97,-2089.84 1136,-1998.57 1132.36,-1996.95 1128.75,-1995 1125.23,-1992.86"/>
<polygon fill="#db5105" stroke="black" points="1127,-1989.83 1116.74,-1987.21 1123.13,-1995.66 1127,-1989.83"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge205" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3543.51,-2161.78C3763.14,-2147.65 4856.14,-2078.09 5750,-2034.57 6153.84,-2014.91 6257.17,-2043.34 6659,-1998.57 6706.34,-1993.3 6759.5,-1983.2 6798.18,-1975.07"/>
<polygon fill="#db5105" stroke="black" points="6799.14,-1978.45 6808.19,-1972.95 6797.68,-1971.6 6799.14,-1978.45"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge206" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3533.4,-2145.77C3583.13,-2115.57 3688.01,-2056.92 3786,-2034.57 4012.55,-1982.91 5644.77,-2006.54 5877,-1998.57 6096.79,-1991.04 6355.34,-1976.17 6486.81,-1968.18"/>
<polygon fill="#db5105" stroke="black" points="6487.06,-1971.67 6496.82,-1967.57 6486.63,-1964.69 6487.06,-1971.67"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_status_watcher -->
<g id="edge207" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3478.14,-2143.33C3442.32,-2113.48 3376.74,-2056.01 3330,-1998.57 3175.99,-1809.32 3177.72,-1733.84 3040,-1532.43"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_tree -->
<g id="edge208" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3543.67,-2163.69C3776.51,-2159.99 4989.08,-2140.85 5979,-2128.56 6749.2,-2118.99 8675.64,-2129.83 9445,-2092.56 9542.99,-2087.81 9657.28,-2076.55 9720.24,-2069.85"/>
<polygon fill="#db5105" stroke="black" points="9720.7,-2073.32 9730.27,-2068.77 9719.95,-2066.36 9720.7,-2073.32"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_views_base -->
<g id="edge209" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3492.21,-2137.4C3483.21,-2117.19 3470.29,-2088.91 3458,-2064.57"/>
<path fill="none" stroke="black" d="M3458,-2062.57C3366.6,-1881.54 3144.45,-1406.07 2983,-1283.36 2901.52,-1221.43 2194.93,-1049.22 2004.89,-1003.68"/>
<polygon fill="#db5105" stroke="black" points="2005.47,-1000.22 1994.93,-1001.29 2003.84,-1007.02 2005.47,-1000.22"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_web -->
<g id="edge210" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3458,-2062.57C3427.82,-1974.57 3458,-1946.29 3458,-1853.27 3458,-1853.27 3458,-1853.27 3458,-1530.43 3458,-1437.4 3480.1,-1411.48 3458,-1321.13"/>
<path fill="none" stroke="black" d="M3458,-1319.13C3439.3,-1252.03 3375.78,-1273.57 3344,-1211.59"/>
</g>
<!-- ahriman_core_database_data&#45;&gt;ahriman_core_database_migrations -->
<g id="edge211" class="edge">
<title>ahriman_core_database_data&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2844,-2464.87C2844,-2454.24 2844,-2442.45 2844,-2431.27"/>
<polygon fill="#7a3f1e" stroke="black" points="2847.5,-2431.24 2844,-2421.24 2840.5,-2431.24 2847.5,-2431.24"/>
</g>
<!-- ahriman_core_database_data_package_remotes -->
<g id="node53" class="node">
<title>ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="5960" cy="-2501.72" rx="66.44" ry="44.6"/>
<text text-anchor="middle" x="5960" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5960" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5960" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="5960" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="5960" y="-2477.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_remotes</text>
</g>
<!-- ahriman_core_database_data_package_remotes&#45;&gt;ahriman_core_database_data -->
<g id="edge212" class="edge">
<title>ahriman_core_database_data_package_remotes&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5919.86,-2537.74C5905.47,-2548.43 5888.47,-2558.75 5871,-2564.27 5752.08,-2601.88 3750.62,-2569.25 3626,-2564.27 3350.01,-2553.25 3020.54,-2520.44 2895.52,-2507.28"/>
<polygon fill="#8a4e2e" stroke="black" points="2895.78,-2503.78 2885.47,-2506.21 2895.05,-2510.74 2895.78,-2503.78"/>
</g>
<!-- ahriman_core_database_data_package_statuses -->
<g id="node54" class="node">
<title>ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="4780" cy="-2501.72" rx="67.76" ry="44.6"/>
<text text-anchor="middle" x="4780" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4780" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4780" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4780" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="4780" y="-2477.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_statuses</text>
</g>
<!-- ahriman_core_database_data_package_statuses&#45;&gt;ahriman_core_database_data -->
<g id="edge213" class="edge">
<title>ahriman_core_database_data_package_statuses&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4740.53,-2538.39C4726.82,-2548.83 4710.68,-2558.85 4694,-2564.27 4581.15,-2600.97 3744.57,-2569 3626,-2564.27 3350.01,-2553.25 3020.54,-2520.44 2895.52,-2507.28"/>
<polygon fill="#a15b35" stroke="black" points="2895.78,-2503.78 2885.47,-2506.21 2895.05,-2510.74 2895.78,-2503.78"/>
</g>
<!-- ahriman_core_database_data_patches -->
<g id="node55" class="node">
<title>ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="5512" cy="-2501.72" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="5512" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5512" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5512" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="5512" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="5512" y="-2477.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patches</text>
</g>
<!-- ahriman_core_database_data_patches&#45;&gt;ahriman_core_database_data -->
<g id="edge214" class="edge">
<title>ahriman_core_database_data_patches&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5485.5,-2536.24C5474.88,-2547.37 5461.67,-2558.36 5447,-2564.27 5353.17,-2602.08 3727.09,-2568.31 3626,-2564.27 3350.01,-2553.25 3020.54,-2520.44 2895.52,-2507.28"/>
<polygon fill="#b0643a" stroke="black" points="2895.78,-2503.78 2885.47,-2506.21 2895.05,-2510.74 2895.78,-2503.78"/>
</g>
<!-- ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data -->
<g id="edge215" class="edge">
<title>ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10332.5,-2536.24C10321.88,-2547.37 10308.67,-2558.36 10294,-2564.27 10208.1,-2598.89 3718.54,-2567.96 3626,-2564.27 3350.01,-2553.25 3020.54,-2520.44 2895.52,-2507.28"/>
<polygon fill="#b0643a" stroke="black" points="2895.78,-2503.78 2885.47,-2506.21 2895.05,-2510.74 2895.78,-2503.78"/>
</g>
<!-- ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge216" class="edge">
<title>ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2886.85,-2375.23C2989.19,-2355.72 3247.42,-2306.48 3357.27,-2285.54"/>
<polygon fill="#815137" stroke="black" points="3357.95,-2288.97 3367.12,-2283.66 3356.64,-2282.1 3357.95,-2288.97"/>
</g>
<!-- ahriman_core_database_operations -->
<g id="node58" class="node">
<title>ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a93e04" stroke="black" cx="5906" cy="-2626.82" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="5906" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5906" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5906" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="5906" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations</text>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge217" class="edge">
<title>ahriman_core_database_operations&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5920.76,-2592.18C5925.93,-2580.38 5931.87,-2566.84 5937.53,-2553.93"/>
<polygon fill="#a93e04" stroke="black" points="5940.78,-2555.24 5941.6,-2544.68 5934.37,-2552.43 5940.78,-2555.24"/>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge218" class="edge">
<title>ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5896.97,-2590.79C5884.55,-2550.61 5857.96,-2486.51 5809,-2457.17 5753.36,-2423.83 4706.69,-2425.87 4642,-2421.17 4215.9,-2390.22 4111.11,-2363.14 3687,-2311.63 3607.36,-2301.96 3515.05,-2289.97 3459.11,-2282.63"/>
<polygon fill="#a93e04" stroke="black" points="3459.48,-2279.14 3449.11,-2281.31 3458.56,-2286.08 3459.48,-2279.14"/>
</g>
<!-- ahriman_core_database_operations_auth_operations -->
<g id="node59" class="node">
<title>ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="2863" cy="-2626.82" rx="60.62" ry="44.6"/>
<text text-anchor="middle" x="2863" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2863" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2863" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="2863" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="2863" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_operations</text>
</g>
<!-- ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge219" class="edge">
<title>ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2923.74,-2630.48C3119.2,-2642.05 3749.66,-2677.78 4272,-2689.36 4359.03,-2691.3 5758.01,-2721.29 5839,-2689.36 5852.34,-2684.11 5864.59,-2674.8 5874.87,-2664.94"/>
<polygon fill="#915230" stroke="black" points="5877.46,-2667.3 5881.99,-2657.72 5872.48,-2662.38 5877.46,-2667.3"/>
</g>
<!-- ahriman_core_database_operations_build_operations -->
<g id="node60" class="node">
<title>ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="4334" cy="-2626.82" rx="61.54" ry="44.6"/>
<text text-anchor="middle" x="4334" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4334" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4334" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4334" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="4334" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_operations</text>
</g>
<!-- ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge220" class="edge">
<title>ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4384.5,-2652.78C4414.33,-2666.65 4453.33,-2682.29 4490,-2689.36 4563.59,-2703.57 5769.28,-2716.85 5839,-2689.36 5852.34,-2684.11 5864.59,-2674.8 5874.87,-2664.94"/>
<polygon fill="#995733" stroke="black" points="5877.46,-2667.3 5881.99,-2657.72 5872.48,-2662.38 5877.46,-2667.3"/>
</g>
<!-- ahriman_core_database_operations_operations -->
<g id="node61" class="node">
<title>ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="5120" cy="-2626.82" rx="45.92" ry="44.6"/>
<text text-anchor="middle" x="5120" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="5120" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="5120" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">database.</text>
<text text-anchor="middle" x="5120" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">operations.</text>
<text text-anchor="middle" x="5120" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge221" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5147.56,-2662.98C5157.74,-2673.53 5170.19,-2683.74 5184,-2689.36 5217.7,-2703.1 5805.15,-2702.71 5839,-2689.36 5852.34,-2684.11 5864.59,-2674.8 5874.87,-2664.94"/>
<polygon fill="#c27347" stroke="black" points="5877.46,-2667.3 5881.99,-2657.72 5872.48,-2662.38 5877.46,-2667.3"/>
</g>
<!-- ahriman_core_database_operations_package_operations -->
<g id="node62" class="node">
<title>ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="4564" cy="-2626.82" rx="73.58" ry="44.6"/>
<text text-anchor="middle" x="4564" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4564" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4564" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4564" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="4564" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_operations</text>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge222" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4622.65,-2653.78C4655.51,-2667.4 4697.68,-2682.47 4737,-2689.36 4797.3,-2699.93 5782.04,-2711.82 5839,-2689.36 5852.34,-2684.11 5864.59,-2674.8 5874.87,-2664.94"/>
<polygon fill="#824a2b" stroke="black" points="5877.46,-2667.3 5881.99,-2657.72 5872.48,-2662.38 5877.46,-2667.3"/>
</g>
<!-- ahriman_core_database_operations_patch_operations -->
<g id="node63" class="node">
<title>ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a86038" stroke="black" cx="5248" cy="-2626.82" rx="64.19" ry="44.6"/>
<text text-anchor="middle" x="5248" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5248" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5248" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="5248" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="5248" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_operations</text>
</g>
<!-- ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge223" class="edge">
<title>ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5312.58,-2626.82C5492.31,-2626.82 5672.04,-2626.82 5851.76,-2626.82"/>
<polygon fill="#a86038" stroke="black" points="5851.96,-2630.32 5861.96,-2626.82 5851.96,-2623.32 5851.96,-2630.32"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_database -->
<g id="edge224" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3433.47,-2245.33C3446.62,-2230.6 3462.69,-2212.6 3476.17,-2197.5"/>
<polygon fill="#995733" stroke="black" points="3478.9,-2199.7 3482.95,-2189.91 3473.68,-2195.04 3478.9,-2199.7"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node65" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="4567" cy="-4164.36" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="4567" y="-4172.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="4567" y="-4161.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="4567" y="-4150.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">exceptions</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge225" 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="M11037,-3997.37C11054.16,-3984.61 11234.78,-3692.21 11245,-3673.42 11404.48,-3380.17 11396.35,-3283.01 11555,-2989.31 11611.02,-2885.61 11654.5,-2875.28 11697,-2765.35 11719.37,-2707.47 11721,-2689.87 11721,-2627.82 11721,-2627.82 11721,-2627.82 11721,-2500.72 11721,-2431.85 11716.89,-2413.57 11697,-2347.63 11694.5,-2339.35 11571.95,-2071.67 11567,-2064.57"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search -->
<g id="edge226" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4611.67,-4162.87C5091.52,-4157.67 9280.8,-4111.95 9541,-4099.37 9922.78,-4080.9 10053.44,-4192.83 10398,-4027.37 10697.84,-3883.37 11178.42,-3153.32 11334,-2859.33 11430.21,-2677.53 11461.96,-2625.78 11483,-2421.17 11496.92,-2285.82 11449.84,-2252.18 11393,-2128.56 11226.86,-1767.24 11105.94,-1718.31 10940,-1356.9 10836.92,-1132.38 10856.02,-1058.91 10764,-829.64 10757.41,-813.22 10754.01,-809.89 10747,-793.64 10740.24,-777.97 10742.42,-772.11 10733,-757.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge227" 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="M4611.68,-4162.84C4856.14,-4160 6056.67,-4146.11 7038,-4135.37 7416.33,-4131.22 10066.13,-4132.87 10443,-4099.37 10576.33,-4087.51 11008.48,-4130.16 11037,-3999.37"/>
<path fill="none" stroke="black" d="M11037,-3997.37C11070.46,-3969.68 11053.83,-3846.24 11061,-3803.4 11165.77,-3177.59 11476.67,-2968.75 11227,-2385.4"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge228" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4522.41,-4162.63C4308.8,-4158.92 3398.67,-4140.76 3356,-4099.37 3290.99,-4036.3 3331.41,-3971.83 3383,-3897.38 3522.71,-3695.77 3583.12,-3662.38 3772,-3505.9 3815.81,-3469.6 3840.72,-3477.11 3878,-3434.13"/>
<path fill="none" stroke="black" d="M3878,-3432.13C3899.78,-3405.08 3925.98,-3376.06 3946.63,-3353.89"/>
<polygon fill="#f96210" stroke="black" points="3949.41,-3356.05 3953.68,-3346.35 3944.29,-3351.26 3949.41,-3356.05"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge229" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4522.29,-4162.64C4311.19,-4159.06 3422.91,-4141.49 3383,-4099.37 3343.27,-4057.43 3343.81,-4011.83 3383,-3969.38 3451.21,-3895.52 3750.88,-3989.95 3834,-3933.38 3913.36,-3879.38 3857.24,-3803.17 3929,-3739.41"/>
<path fill="none" stroke="black" d="M3929,-3737.41C3949.93,-3715.59 3961.89,-3717.58 3991,-3709.42 4053.95,-3691.77 4236.43,-3719.31 4283,-3673.42 4326.95,-3630.11 4290.64,-3596.54 4302,-3535.89"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge230" 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="M8795,-4080.37C8876.62,-4072.21 8815.59,-3966.23 8771,-3897.38 8680.17,-3757.14 8484.27,-3680.2 8395,-3651.23"/>
<polygon fill="#f96210" stroke="black" points="8396.01,-3647.87 8385.42,-3648.17 8393.88,-3654.54 8396.01,-3647.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge231" 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="M4522.32,-4162.52C4342,-4159.12 3650.18,-4146.08 3081,-4135.37 2974.72,-4133.37 1271.27,-4124.55 1168,-4099.37 1070.68,-4075.63 966,-4099.55 966,-3999.37 966,-3999.37 966,-3999.37 966,-2625.82 966,-2525.73 1038.62,-2518.95 1060,-2421.17 1066.98,-2389.24 1068.87,-2379.09 1060,-2347.63 1049.84,-2311.63 1005.75,-2311.85 1016,-2275.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge232" 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="M8795,-4080.37C8804.73,-4079.33 8800.24,-4067.74 8809,-4063.37 8890.6,-4022.64 9565.94,-4093.25 9629,-4027.37 9678.75,-3975.38 9631.68,-3873.71 9569,-3803.4 9384.13,-3596.04 9252.94,-3639.69 8978,-3599.88 8886.38,-3586.61 7383.93,-3622.16 7312,-3563.88 7165.41,-3445.11 7212.44,-2900.68 7118,-2737.36"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration -->
<g id="edge233" 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="M4611.65,-4162.96C5036.36,-4159.15 8357.68,-4128.01 8795,-4082.37"/>
<path fill="none" stroke="black" d="M8795,-4080.37C8839.32,-4075.74 8541.5,-3828.96 8505,-3803.4 8427.83,-3749.36 8406.18,-3733.14 8315,-3709.42 8047.66,-3639.87 7172.6,-3636.86 6932.45,-3637.38"/>
<polygon fill="#f96210" stroke="black" points="6932.15,-3633.88 6922.16,-3637.41 6932.17,-3640.88 6932.15,-3633.88"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge234" 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="M4611.52,-4162.98C5030.96,-4159.35 8272.76,-4129.74 8282,-4082.37"/>
<path fill="none" stroke="black" d="M8282,-4080.37C8313.07,-3921.02 5522.69,-3910.66 5368,-3861.38 5156.44,-3793.99 4977.38,-3724.36 5017,-3505.9 5036.87,-3396.31 5040.98,-3362.4 5105,-3271.26 5222.03,-3104.68 5279.69,-3071.38 5466,-2989.31 5562.32,-2946.89 5623.94,-3003.86 5694,-2925.32"/>
<path fill="none" stroke="black" d="M5694,-2923.32C5705.52,-2911.67 5705.56,-2906 5718,-2895.33 5741.03,-2875.58 5756.4,-2882.49 5776,-2859.33 5813.84,-2814.6 5818.34,-2795.44 5826,-2737.36"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge235" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8795,-4080.37C8804.74,-4079.4 8800.28,-4067.81 8809,-4063.37 8924.42,-4004.47 9268.26,-4068.93 9391,-4027.37 9471.42,-4000.13 9563.91,-3975.65 9531,-3897.38 9480.1,-3776.32 9423.87,-3760.77 9303,-3709.42 9059.14,-3605.81 8980.5,-3627.61 8717,-3599.88 8637.14,-3591.47 7338.77,-3608.49 7272,-3563.88 7181.79,-3503.6 6905.93,-2775.65 6876,-2671.36 6855.12,-2598.59 6852,-2578.43 6852,-2502.72 6852,-2502.72 6852,-2502.72 6852,-2164.33 6852,-2064.32 6732.74,-2008.94 6650.16,-1982.58"/>
<polygon fill="#f96210" stroke="black" points="6651.13,-1979.22 6640.54,-1979.59 6649.05,-1985.9 6651.13,-1979.22"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge236" 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="M1448,-4080.37C1405.78,-4042.82 1464.25,-4002.54 1510,-3969.38 1712.77,-3822.44 1817.45,-3910.52 2063,-3861.38 2188.9,-3836.19 2218.52,-3818.66 2346,-3803.4 2455.73,-3790.26 3237.98,-3809.89 3340,-3767.4 3357.36,-3760.17 3578.36,-3552.59 3587,-3535.89"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge237" 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="M1182,-4080.37C1171.36,-4063.34 1255.74,-3936.34 1258,-3916.38"/>
<path fill="none" stroke="black" d="M1258,-3914.38C1309.19,-3770.58 1320.22,-3732.38 1396,-3599.88 1461.19,-3485.89 1492.35,-3466.98 1569,-3360.36 1627.4,-3279.12 1638.17,-3255.94 1700,-3177.28 1747.12,-3117.32 1766.75,-3108.67 1812,-3047.3 1888.54,-2943.49 1892.09,-2907.04 1966,-2801.35 1977.62,-2784.74 1981.61,-2781.39 1994,-2765.35 2026.15,-2723.69 2035.72,-2714.4 2066,-2671.36 2111.97,-2606.02 2772.99,-1575.37 2910.9,-1360.28"/>
<polygon fill="#f96210" stroke="black" points="2913.88,-1362.12 2916.33,-1351.81 2907.99,-1358.34 2913.88,-1362.12"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge238" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8282,-4080.37C8298.23,-4050.18 8315.5,-4053.22 8338,-4027.37 8371.68,-3988.67 8385.07,-3980.65 8405,-3933.38 8427.55,-3879.89 8456.62,-3846.75 8418,-3803.4 8357.5,-3735.51 7695.65,-3716.61 7605,-3709.42 7558.93,-3705.76 6806.86,-3705.91 6774,-3673.42 6617.18,-3518.38 6838.89,-3386.1 6768,-3177.28 6710.74,-3008.61 6618.49,-3010.33 6524,-2859.33 6516.62,-2847.54 6513.23,-2844.87 6510,-2831.34"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge239" 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="M4611.76,-4162.88C5008.64,-4158.57 7931.32,-4126.26 8809,-4099.37 8982.21,-4094.06 10229.44,-4132.77 10367,-4027.37 10402.92,-3999.84 10429,-3878.65 10429,-3833.39 10429,-3833.39 10429,-3833.39 10429,-3017.3 10429,-2781.44 10082.4,-2671.35 9954.06,-2638.67"/>
<polygon fill="#f96210" stroke="black" points="9954.67,-2635.22 9944.12,-2636.19 9952.97,-2642.01 9954.67,-2635.22"/>
</g>
<!-- ahriman_core_util -->
<g id="node109" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c74905" stroke="black" cx="5916" cy="-3832.39" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5916" y="-3840.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5916" y="-3829.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5916" y="-3818.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">util</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_util -->
<g id="edge240" 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="M8263,-3997.37C8238.7,-3951.07 8246.33,-3923.45 8201,-3897.38 8100.7,-3839.71 6286.62,-3834.01 5964.65,-3833.45"/>
<polygon fill="#f96210" stroke="black" points="5964.27,-3829.95 5954.26,-3833.43 5964.26,-3836.95 5964.27,-3829.95"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result -->
<g id="edge241" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4522.34,-4162.52C4144.15,-4155.45 1490.96,-4105.62 1472,-4099.37 1459.59,-4095.27 1458.91,-4089.57 1448,-4082.37"/>
<path fill="none" stroke="black" d="M1448,-4080.37C1406.52,-4052.95 1403.28,-4008.47 1434,-3969.38 1494.15,-3892.85 1786.78,-3854.02 1922.99,-3839.85"/>
<polygon fill="#f96210" stroke="black" points="1923.72,-3843.3 1933.32,-3838.79 1923.01,-3836.33 1923.72,-3843.3"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge242" 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="M8282,-4080.37C8307.79,-3950.62 8480.79,-3900.54 8391,-3803.4 8328.55,-3735.84 6808.41,-3734.94 6740,-3673.42 6606.5,-3553.37 6641.93,-3440.44 6702,-3271.26 6714.26,-3236.73 6768.19,-3241.06 6754,-3207.27"/>
<path fill="none" stroke="black" d="M6754,-3205.27C6725.99,-3142.34 6545.77,-3075.55 6506,-3019.3"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths -->
<g id="edge243" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8795,-4080.37C8959.86,-4063.16 9152.05,-4030.09 9251.56,-4011.98"/>
<polygon fill="#f96210" stroke="black" points="9252.27,-4015.41 9261.48,-4010.17 9251.01,-4008.53 9252.27,-4015.41"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_result -->
<g id="edge244" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8282,-4080.37C8285.54,-4062.22 8272.61,-4015.17 8263,-3999.37"/>
<path fill="none" stroke="black" d="M8263,-3997.37C8239.62,-3958.95 8130.4,-3909.2 8087,-3897.38 8022.78,-3879.9 5741.14,-3905.17 5691,-3861.38 5571.05,-3756.63 5605.15,-3659.82 5646,-3505.9 5679.91,-3378.12 5832.34,-3064.61 5941,-2989.31 6023.52,-2932.13 6071.41,-2992.12 6164,-2953.31 6216.76,-2931.2 6268.39,-2889.11 6299.71,-2860.63"/>
<polygon fill="#f96210" stroke="black" points="6302.24,-2863.06 6307.22,-2853.7 6297.5,-2857.91 6302.24,-2863.06"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge245" 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="M4522.38,-4162.52C4125.08,-4155.05 1208.58,-4100.22 1206,-4099.37 1193.58,-4095.28 1190.11,-4092.62 1182,-4082.37"/>
<path fill="none" stroke="black" d="M1182,-4080.37C1119.42,-4001.25 1186.28,-3935.7 1352,-3599.88 1469.49,-3361.79 1458.34,-3264.91 1652,-3083.3 1677.81,-3059.09 1700.35,-3074.48 1723,-3047.3 1791.15,-2965.51 1958.68,-2228.63 1995,-2128.56 2098.45,-1843.53 2115.93,-1765.92 2266,-1502.43 2285.49,-1468.21 2298.37,-1464.82 2318,-1430.67"/>
<path fill="none" stroke="black" d="M2318,-1428.67C2327.23,-1411.89 2331.05,-1408.6 2342,-1392.9 2364.53,-1360.59 2386.6,-1359.81 2394,-1321.13"/>
<path fill="none" stroke="black" d="M2394,-1319.13C2421.96,-1172.94 2292.18,-1162.57 2228,-1028.28 2220.64,-1012.88 2226.28,-1004.37 2214,-992.51"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge246" 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="M1258,-3914.38C1273.04,-3887.72 1283.12,-3885.48 1302,-3861.38 1503.12,-3604.69 1527.73,-3520.51 1738,-3271.26 1838.12,-3152.58 1980,-3174.57 1980,-3019.3 1980,-3019.3 1980,-3019.3 1980,-2923.32 1980,-2796.96 2571.18,-2103.22 2642,-1998.57 2706.76,-1902.88 2738.01,-1886.35 2782,-1779.5 2867.87,-1570.9 2774.62,-1477.79 2889,-1283.36 2985.62,-1119.12 3164.22,-1178.86 3204,-992.51"/>
<path fill="none" stroke="black" d="M3204,-990.51C3205.87,-939.29 3214.99,-925.25 3204,-875.19"/>
</g>
<!-- ahriman_core_formatters -->
<g id="node66" class="node">
<title>ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="7836" cy="-2501.72" rx="43.68" ry="28.98"/>
<text text-anchor="middle" x="7836" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7836" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7836" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters</text>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge247" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8696,-1851.27C8749.35,-1752.07 9348.57,-1222.77 9450,-1173.82 9557.72,-1121.83 9696.61,-1106.78 9785.75,-1102.81"/>
<polygon fill="#953703" stroke="black" points="9785.98,-1106.31 9795.83,-1102.4 9785.69,-1099.31 9785.98,-1106.31"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge248" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8267,-2164.33C8228.07,-2143.1 8290.7,-2102.04 8267,-2064.57"/>
<path fill="none" stroke="black" d="M8267,-2062.57C8162.37,-1897.12 7992.41,-2083.13 7838,-1962.8"/>
<path fill="none" stroke="black" d="M7838,-1960.8C7794.85,-1927.18 7771.57,-1932.23 7738,-1889.03 7727.52,-1875.56 7728.06,-1869.85 7724,-1853.27"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge249" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7838,-1960.8C7780.36,-1915.89 7882.77,-1706.94 7876,-1634.19"/>
<path fill="none" stroke="black" d="M7876,-1632.19C7850.98,-1349.85 7737,-1303.93 7671,-1028.28 7655,-961.43 7656.06,-943.57 7649,-875.19"/>
<path fill="none" stroke="black" d="M7649,-873.19C7640.22,-807.64 7612.91,-735.78 7593.79,-691.36"/>
<polygon fill="#953703" stroke="black" points="7596.93,-689.81 7589.72,-682.04 7590.51,-692.61 7596.93,-689.81"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge250" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8620,-1741.73C8583.22,-1662.55 9096.97,-1230.93 9163,-1173.82 9506.33,-876.89 9641.41,-844.33 10078,-720.1 10196.98,-686.25 10237.75,-726.41 10354,-684.1 10358.51,-682.46 10363.02,-680.41 10367.43,-678.13"/>
<polygon fill="#953703" stroke="black" points="10369.27,-681.11 10376.29,-673.17 10365.85,-675 10369.27,-681.11"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge251" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8267,-2062.57C8153.61,-1883.26 8559.1,-2015.34 8696,-1853.27"/>
<path fill="none" stroke="black" d="M8696,-1851.27C8719.71,-1819.81 8666.53,-1811.8 8644,-1779.5 8633.05,-1763.79 8629.9,-1760.12 8620,-1743.73"/>
<path fill="none" stroke="black" d="M8620,-1741.73C8599.64,-1708.01 8580.15,-1707.43 8568,-1669.96 8545.04,-1599.13 8550.31,-1574.76 8568,-1502.43 8669.58,-1087.17 8775.13,-903.71 9177,-757.87"/>
<path fill="none" stroke="black" d="M9177,-755.87C9194.32,-747.73 9184.27,-729.41 9201,-720.1 9298.64,-665.77 10097.55,-710.99 10206,-684.1 10212.27,-682.55 10218.64,-680.43 10224.87,-677.98"/>
<polygon fill="#953703" stroke="black" points="10226.67,-681.02 10234.53,-673.92 10223.95,-674.57 10226.67,-681.02"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search -->
<g id="edge252" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8499,-2383.4C8504.28,-2379.79 9781.25,-1067.08 9787,-1064.28 9918.43,-1000.22 9974.12,-1070.84 10114,-1028.28 10121.76,-1025.92 10628.91,-765.38 10632,-757.87"/>
<path fill="none" stroke="black" d="M10632,-755.87C10638.22,-736.26 10639.09,-713.61 10638.05,-694.17"/>
<polygon fill="#953703" stroke="black" points="10641.53,-693.76 10637.33,-684.03 10634.55,-694.25 10641.53,-693.76"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge253" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7877,-755.87C7873.65,-735.99 7873.13,-713.74 7873.64,-694.67"/>
<polygon fill="#953703" stroke="black" points="7877.15,-694.55 7874.02,-684.43 7870.15,-694.29 7877.15,-694.55"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status -->
<g id="edge254" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7880.06,-2498.67C8012.52,-2491.65 8403.91,-2464.51 8499,-2385.4"/>
<path fill="none" stroke="black" d="M8499,-2383.4C8607.56,-2293.1 8390.98,-2233.92 8267,-2166.33"/>
<path fill="none" stroke="black" d="M8267,-2164.33C8076.44,-2075.56 8018.3,-2078.83 7824,-1998.57 7330.18,-1794.59 7241.6,-1653.12 6729,-1502.43 5983.35,-1283.24 5754.19,-1431.03 4999,-1247.36 4853.34,-1211.93 4770.91,-1257.01 4680,-1137.82 4577.39,-1003.28 4489.81,-789.64 4656,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge255" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7876,-1632.19C7886.45,-1445.55 7877,-1398.52 7877,-1211.59 7877,-1211.59 7877,-1211.59 7877,-990.51 7877,-887.12 7894.18,-859.83 7877,-757.87"/>
<path fill="none" stroke="black" d="M7877,-755.87C7873.73,-739.12 7872.89,-734.02 7863,-720.1 7848.76,-700.06 7836.57,-703.13 7821,-684.1 7809.46,-670.01 7808.94,-664.73 7801,-648.34"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users -->
<g id="edge256" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7792.46,-2497.92C7626.39,-2486.07 7042,-2433.19 7042,-2275.87 7042,-2275.87 7042,-2275.87 7042,-2062.57 7042,-1977.53 6986.9,-1959.12 6909,-1925.03 6872.17,-1908.92 4241.53,-1861.73 3819.76,-1854.27"/>
<polygon fill="#953703" stroke="black" points="3819.7,-1850.76 3809.64,-1854.09 3819.57,-1857.76 3819.7,-1850.76"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge257" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7879.82,-2498.37C8082.6,-2487 8949.65,-2433.33 9650,-2311.63 10192.35,-2217.39 10834.65,-2033.42 11020.94,-1978.59"/>
<polygon fill="#953703" stroke="black" points="11022.16,-1981.88 11030.76,-1975.7 11020.18,-1975.17 11022.16,-1981.88"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_core_report_console -->
<g id="edge258" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7792.15,-2500.74C7612.2,-2500.3 6912.98,-2493.76 6344,-2421.17 6264.82,-2411.07 6228.22,-2437.8 6168,-2385.4"/>
</g>
<!-- ahriman_core_formatters_aur_printer -->
<g id="node67" class="node">
<title>ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="7650" cy="-2626.82" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="7650" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7650" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7650" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="7650" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_printer</text>
</g>
<!-- ahriman_core_formatters_aur_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge259" class="edge">
<title>ahriman_core_formatters_aur_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7684.99,-2602.66C7716.86,-2581.57 7763.88,-2550.45 7796.97,-2528.55"/>
<polygon fill="#915230" stroke="black" points="7799.08,-2531.35 7805.48,-2522.92 7795.21,-2525.52 7799.08,-2531.35"/>
</g>
<!-- ahriman_core_formatters_build_printer -->
<g id="node68" class="node">
<title>ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="7397" cy="-2626.82" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="7397" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7397" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7397" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="7397" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_printer</text>
</g>
<!-- ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge260" class="edge">
<title>ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7428.23,-2598.48C7436.49,-2592.38 7445.71,-2586.47 7455,-2582.27 7564.66,-2532.65 7706.17,-2513.57 7782.12,-2506.55"/>
<polygon fill="#a15b35" stroke="black" points="7782.74,-2510.01 7792.39,-2505.64 7782.12,-2503.04 7782.74,-2510.01"/>
</g>
<!-- ahriman_core_formatters_configuration_printer -->
<g id="node69" class="node">
<title>ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="7974" cy="-2626.82" rx="73.58" ry="36.54"/>
<text text-anchor="middle" x="7974" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7974" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7974" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="7974" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration_printer</text>
</g>
<!-- ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge261" class="edge">
<title>ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7938.82,-2594.44C7917.44,-2575.36 7890.29,-2551.15 7869.27,-2532.39"/>
<polygon fill="#a15b35" stroke="black" points="7871.32,-2529.54 7861.53,-2525.5 7866.66,-2534.76 7871.32,-2529.54"/>
</g>
<!-- ahriman_core_formatters_package_printer -->
<g id="node70" class="node">
<title>ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="7525" cy="-2626.82" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="7525" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7525" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7525" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="7525" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_printer</text>
</g>
<!-- ahriman_core_formatters_package_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge262" class="edge">
<title>ahriman_core_formatters_package_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7564.8,-2598.8C7574.44,-2592.89 7584.89,-2587 7595,-2582.27 7658.28,-2552.66 7735.64,-2529.21 7785.35,-2515.65"/>
<polygon fill="#915230" stroke="black" points="7786.47,-2518.97 7795.22,-2512.99 7784.65,-2512.21 7786.47,-2518.97"/>
</g>
<!-- ahriman_core_formatters_printer -->
<g id="node71" class="node">
<title>ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="7836" cy="-2626.82" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="7836" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7836" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7836" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="7836" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">printer</text>
</g>
<!-- ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge263" class="edge">
<title>ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7836,-2589.88C7836,-2574.66 7836,-2556.89 7836,-2541.39"/>
<polygon fill="#b0643a" stroke="black" points="7839.5,-2541.07 7836,-2531.07 7832.5,-2541.07 7839.5,-2541.07"/>
</g>
<!-- ahriman_core_formatters_status_printer -->
<g id="node72" class="node">
<title>ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="7276" cy="-2626.82" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="7276" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7276" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7276" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="7276" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_printer</text>
</g>
<!-- ahriman_core_formatters_status_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge264" class="edge">
<title>ahriman_core_formatters_status_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7310.06,-2598.21C7319.03,-2592.11 7329.01,-2586.28 7339,-2582.27 7491.61,-2521 7688.43,-2506.82 7781.99,-2503.61"/>
<polygon fill="#a15b35" stroke="black" points="7782.18,-2507.11 7792.07,-2503.3 7781.96,-2500.11 7782.18,-2507.11"/>
</g>
<!-- ahriman_core_formatters_string_printer -->
<g id="node73" class="node">
<title>ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="8491" cy="-2626.82" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="8491" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8491" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8491" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="8491" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">string_printer</text>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge265" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8458.79,-2598.02C8450.24,-2591.92 8440.68,-2586.14 8431,-2582.27 8332.88,-2543.04 8016.82,-2516.04 7889.7,-2506.52"/>
<polygon fill="#b0643a" stroke="black" points="7889.66,-2503.01 7879.43,-2505.76 7889.15,-2509.99 7889.66,-2503.01"/>
</g>
<!-- ahriman_core_formatters_update_printer -->
<g id="node74" class="node">
<title>ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="8121" cy="-2626.82" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="8121" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8121" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8121" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="8121" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_printer</text>
</g>
<!-- ahriman_core_formatters_update_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge266" class="edge">
<title>ahriman_core_formatters_update_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8084.75,-2598.84C8075.93,-2592.93 8066.34,-2587.03 8057,-2582.27 8000.65,-2553.54 7931.45,-2530.42 7885.66,-2516.66"/>
<polygon fill="#995733" stroke="black" points="7886.55,-2513.28 7875.97,-2513.78 7884.56,-2519.99 7886.55,-2513.28"/>
</g>
<!-- ahriman_core_formatters_user_printer -->
<g id="node75" class="node">
<title>ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="8242" cy="-2626.82" rx="48.17" ry="36.54"/>
<text text-anchor="middle" x="8242" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8242" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8242" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="8242" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_printer</text>
</g>
<!-- ahriman_core_formatters_user_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge267" class="edge">
<title>ahriman_core_formatters_user_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8211.01,-2598.36C8202.97,-2592.34 8194.02,-2586.5 8185,-2582.27 8086.58,-2536.15 7959.74,-2515.92 7889.26,-2507.73"/>
<polygon fill="#995733" stroke="black" points="7889.6,-2504.24 7879.27,-2506.6 7888.82,-2511.2 7889.6,-2504.24"/>
</g>
<!-- ahriman_core_formatters_version_printer -->
<g id="node76" class="node">
<title>ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="8365" cy="-2626.82" rx="56.64" ry="36.54"/>
<text text-anchor="middle" x="8365" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8365" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8365" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="8365" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version_printer</text>
</g>
<!-- ahriman_core_formatters_version_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge268" class="edge">
<title>ahriman_core_formatters_version_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8329.14,-2598.32C8319.74,-2592.22 8309.34,-2586.36 8299,-2582.27 8158.2,-2526.57 7978.12,-2509.82 7889.78,-2504.82"/>
<polygon fill="#a15b35" stroke="black" points="7889.9,-2501.32 7879.73,-2504.28 7889.52,-2508.31 7889.9,-2501.32"/>
</g>
<!-- ahriman_core_report -->
<g id="node77" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#9f3b04" stroke="black" cx="5797" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5797" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5797" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5797" y="-2050.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_report_console&#45;&gt;ahriman_core_report -->
<g id="edge269" class="edge">
<title>ahriman_core_report_console&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6126.24,-2238.54C6129.87,-2205.49 6129.17,-2157.06 6101,-2128.56 6061.24,-2088.32 5902.73,-2110.24 5849,-2092.56 5844.43,-2091.05 5839.79,-2089.16 5835.26,-2087.07"/>
<polygon fill="#8a4e2e" stroke="black" points="5836.68,-2083.87 5826.17,-2082.57 5833.58,-2090.15 5836.68,-2083.87"/>
</g>
<!-- ahriman_core_report_email&#45;&gt;ahriman_core_report -->
<g id="edge270" class="edge">
<title>ahriman_core_report_email&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4588.4,-2474.44C4609.29,-2452.35 4637.88,-2419.06 4656,-2385.4"/>
<path fill="none" stroke="black" d="M4656,-2383.4C4669.9,-2357.59 4730.16,-2276.98 4732,-2275.87"/>
</g>
<!-- ahriman_core_report_html&#45;&gt;ahriman_core_report -->
<g id="edge271" class="edge">
<title>ahriman_core_report_html&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4945.26,-2486.2C4855.39,-2447.15 4629.21,-2338.65 4732,-2275.87"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report -->
<g id="edge272" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3734.57,-2501.27C3898.3,-2500.5 4394.88,-2480.38 4732,-2275.87"/>
<path fill="none" stroke="black" d="M4732,-2273.87C5057.66,-2101.54 5205.12,-2284.79 5554,-2166.33"/>
<path fill="none" stroke="black" d="M5554,-2164.33C5580.56,-2155.31 5580.9,-2141.08 5606,-2128.56 5653.35,-2104.92 5711.46,-2086.87 5751.07,-2076.06"/>
<polygon fill="#7a4528" stroke="black" points="5752.22,-2079.37 5760.97,-2073.4 5750.4,-2072.61 5752.22,-2079.37"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report -->
<g id="edge273" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5735.56,-2474.77C5727.82,-2468.26 5719,-2461.82 5710,-2457.17 5654.07,-2428.27 5613.27,-2469.56 5573,-2421.17 5554.84,-2399.35 5527.12,-2175.49 5554,-2166.33"/>
</g>
<!-- ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report -->
<g id="edge274" class="edge">
<title>ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5992.97,-2148.64C5953.87,-2135.13 5897.05,-2114.4 5849,-2092.56 5844.85,-2090.67 5840.56,-2088.59 5836.32,-2086.45"/>
<polygon fill="#8a4e2e" stroke="black" points="5837.66,-2083.2 5827.18,-2081.69 5834.43,-2089.41 5837.66,-2083.2"/>
</g>
<!-- ahriman_core_report_telegram&#45;&gt;ahriman_core_report -->
<g id="edge275" class="edge">
<title>ahriman_core_report_telegram&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4647.69,-2465.57C4643.94,-2441.57 4642.86,-2409.82 4656,-2385.4"/>
</g>
<!-- ahriman_core_repository -->
<g id="node85" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5105" stroke="black" cx="6678" cy="-1531.43" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="6678" y="-1539.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6678" y="-1528.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6678" y="-1517.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge276" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6718.18,-1521.89C6831.86,-1498.03 7165.68,-1429.97 7446,-1392.9 8355.28,-1272.65 9467.39,-1226.01 9785.93,-1214.57"/>
<polygon fill="#db5105" stroke="black" points="9786.16,-1218.06 9796.03,-1214.21 9785.91,-1211.07 9786.16,-1218.06"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge277" 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="M6635.59,-1528.42C6356.23,-1515.14 4750.87,-1437.96 3444,-1356.9 3275.08,-1346.42 3074.75,-1331.61 2984.42,-1324.81"/>
<polygon fill="#db5105" stroke="black" points="2984.46,-1321.3 2974.22,-1324.04 2983.93,-1328.28 2984.46,-1321.3"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node86" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b45c2d" stroke="black" cx="6591" cy="-1852.27" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6591" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6591" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6591" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6591" y="-1833.27" 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="edge278" 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="M6624.72,-1828.46C6648.96,-1812.06 6681.82,-1789.84 6707.8,-1772.27"/>
<polygon fill="#b45c2d" stroke="black" points="6710.01,-1775 6716.33,-1766.5 6706.08,-1769.2 6710.01,-1775"/>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge279" 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="M6591,-1815.46C6591,-1807.29 6591,-1798.5 6591,-1789.97"/>
<polygon fill="#b45c2d" stroke="black" points="6594.5,-1789.75 6591,-1779.75 6587.5,-1789.75 6594.5,-1789.75"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node88" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="6678" cy="-1633.19" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6678" y="-1647.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6678" y="-1636.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6678" y="-1625.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6678" y="-1614.19" 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="edge280" 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="M6728.98,-1710.33C6721.43,-1699.06 6712.81,-1686.19 6704.84,-1674.27"/>
<polygon fill="#7a4528" stroke="black" points="6707.64,-1672.17 6699.17,-1665.81 6701.82,-1676.06 6707.64,-1672.17"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_repository -->
<g id="edge281" class="edge">
<title>ahriman_core_repository_repository&#45;&gt;ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6678,-1596.17C6678,-1587.93 6678,-1579.14 6678,-1570.8"/>
<polygon fill="#8a4e2e" stroke="black" points="6681.5,-1570.56 6678,-1560.56 6674.5,-1570.56 6681.5,-1570.56"/>
</g>
<!-- ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge282" class="edge">
<title>ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6578.99,-1925C6580.39,-1916.65 6581.9,-1907.66 6583.35,-1898.95"/>
<polygon fill="#734126" stroke="black" points="6586.83,-1899.36 6585.03,-1888.92 6579.93,-1898.2 6586.83,-1899.36"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge283" 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="M6617.1,-1709.46C6626.63,-1697.69 6637.49,-1684.27 6647.37,-1672.05"/>
<polygon fill="#824a2b" stroke="black" points="6650.13,-1674.2 6653.7,-1664.22 6644.69,-1669.8 6650.13,-1674.2"/>
</g>
<!-- ahriman_core_sign -->
<g id="node91" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce6f3b" stroke="black" cx="5112" cy="-2736.36" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5112" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="5112" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="5112" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sign</text>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge284" 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="M5081.78,-2718.23C5021.85,-2685.21 4882.78,-2613.29 4756,-2582.27 4562.29,-2534.88 3946.46,-2511.29 3744.69,-2504.7"/>
<polygon fill="#ce6f3b" stroke="black" points="3744.66,-2501.19 3734.55,-2504.37 3744.43,-2508.19 3744.66,-2501.19"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge285" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5138.93,-2715.73C5144.09,-2712.59 5149.57,-2709.63 5155,-2707.36 5224.67,-2678.29 5269.51,-2726.58 5321,-2671.36 5386.6,-2601.02 5329.06,-2550.59 5352,-2457.17 5376.62,-2356.95 5353,-2307.92 5429,-2238.1 5475.99,-2194.92 5509.94,-2228.58 5568,-2202.1 5593.52,-2190.45 5595.05,-2179.15 5620,-2166.33"/>
<path fill="none" stroke="black" d="M5620,-2164.33C5884.94,-2028.91 6008.16,-2180.94 6282,-2064.57"/>
<path fill="none" stroke="black" d="M6282,-2062.57C6354.17,-2031.89 6439.28,-2003.59 6498.74,-1985.03"/>
<polygon fill="#ce6f3b" stroke="black" points="6499.92,-1988.33 6508.43,-1982.02 6497.84,-1981.64 6499.92,-1988.33"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge286" 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="M3636.18,-3398.64C3676.8,-3298.59 3788.32,-2992.98 3750,-2737.36"/>
<path fill="none" stroke="black" d="M3750,-2735.36C3735.89,-2701.54 3712.08,-2705.2 3698,-2671.36 3681.75,-2632.32 3678.07,-2583.99 3677.97,-2549.1"/>
<polygon fill="#934b24" stroke="black" points="3681.47,-2548.75 3678.04,-2538.73 3674.47,-2548.7 3681.47,-2548.75"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge287" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3654.73,-3413.68C3711.02,-3382.33 3830.21,-3317.55 3935,-3271.26 4195.36,-3156.24 4270.92,-3153.51 4535,-3047.3 4693.09,-2983.71 4725.68,-2950.21 4887,-2895.33 4948.64,-2874.36 4966.17,-2876.4 5029,-2859.33 5118.31,-2835.07 5139.17,-2823.63 5229,-2801.35 5305.65,-2782.34 5340.4,-2813.49 5403,-2765.35 5440.02,-2736.88 5439.27,-2716.82 5450,-2671.36 5459.1,-2632.83 5460.73,-2620.39 5450,-2582.27 5444.92,-2564.22 5433.08,-2564.32 5428,-2546.27 5417.27,-2508.15 5412.32,-2493.54 5428,-2457.17 5451.23,-2403.28 5603.36,-2332.14 5620,-2275.87"/>
<path fill="none" stroke="black" d="M5620,-2273.87C5631.36,-2227.44 5577.44,-2188.08 5620,-2166.33"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge288" 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="M2546,-2625.82C2550.84,-2606.07 2548.65,-2599.14 2560,-2582.27 2573.92,-2561.59 2586.84,-2565.25 2603,-2546.27 2632.87,-2511.18 2628.24,-2493.94 2656,-2457.17 2669.26,-2439.61 2676.57,-2438.61 2690,-2421.17 2724.96,-2375.77 2728.95,-2361.03 2758,-2311.63 3054.8,-1806.92 3280,-1687.57 3280,-1102.05 3280,-1102.05 3280,-1102.05 3280,-646.34 3280,-551.52 3256.72,-461.82 3350,-444.81"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge289" 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="M2544.35,-2895.42C2546.5,-2877.12 2548.06,-2852.71 2545,-2831.34"/>
<path fill="none" stroke="black" d="M2545,-2829.34C2526.11,-2697.47 2482.59,-2366.19 2446,-2238.1 2315.19,-1780.21 2200.13,-1695.11 2038,-1247.36 2011.65,-1174.59 1985.66,-1088.4 1970.76,-1037.21"/>
<polygon fill="#b65520" stroke="black" points="1974.07,-1036.08 1967.93,-1027.45 1967.35,-1038.03 1974.07,-1036.08"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge290" 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="M2545,-2829.34C2545.48,-2739.77 2534.46,-2716.64 2546,-2627.82"/>
<path fill="none" stroke="black" d="M2546,-2625.82C2553.26,-2582.4 2592.49,-2480.38 2608,-2457.17 2620.93,-2437.83 2630.68,-2438.69 2646,-2421.17 2685.52,-2375.99 2697.6,-2365.04 2725,-2311.63 2862.3,-2044.03 2869.82,-1962.43 2940,-1669.96 2951.01,-1624.06 3045.67,-872.7 3065,-829.64 3082.03,-791.72 3125,-799.45 3125,-757.87"/>
<path fill="none" stroke="black" d="M3125,-755.87C3122.5,-595.79 1844.71,-554.56 1578.31,-547.7"/>
<polygon fill="#b65520" stroke="black" points="1578.27,-544.2 1568.18,-547.45 1578.09,-551.2 1578.27,-544.2"/>
</g>
<!-- ahriman_core_status -->
<g id="node94" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="3734" cy="-2274.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3734" y="-2283.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="3734" y="-2272.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="3734" y="-2261.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge291" 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="M3772.45,-2273.04C4074.1,-2266.55 6064.59,-2223.39 6666,-2202.1 7371.65,-2177.11 7547.32,-2152.7 8253,-2128.56 8546.34,-2118.52 10712.45,-2073.6 11093,-2065.74"/>
<polygon fill="#f96210" stroke="black" points="11093.29,-2069.24 11103.22,-2065.53 11093.15,-2062.24 11093.29,-2069.24"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge292" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3771.72,-2268.94C3973.88,-2242.66 4949.74,-2116.94 5750,-2034.57 6018.65,-2006.92 6337.35,-1981.12 6487.13,-1969.41"/>
<polygon fill="#f96210" stroke="black" points="6487.49,-1972.89 6497.19,-1968.62 6486.94,-1965.91 6487.49,-1972.89"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge293" 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="M3695.82,-2272.09C3629.34,-2267.7 3489.4,-2252.72 3384,-2202.1 3234.38,-2130.23 2359.95,-1356.63 2235,-1247.36 2145.87,-1169.41 2044.14,-1074.13 1992.3,-1025.1"/>
<polygon fill="#f96210" stroke="black" points="1994.39,-1022.26 1984.72,-1017.93 1989.57,-1027.34 1994.39,-1022.26"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge294" 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="M3697.65,-2265.68C3623.92,-2248.9 3463.02,-2211.44 3455,-2202.1 3446.54,-2192.24 3420,-2015.37 3420,-1853.27 3420,-1853.27 3420,-1853.27 3420,-1428.67 3420,-1326.44 3390.64,-1302.55 3344,-1211.59"/>
<path fill="none" stroke="black" d="M3344,-1209.59C3319.29,-1157.78 3197,-1049.48 3204,-992.51"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge295" 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="M5658.05,-2381.01C5765.66,-2374.34 6081.41,-2355.55 6344,-2347.63 7078.38,-2325.5 8918.07,-2375.52 9650,-2311.63 10221.18,-2261.78 10903.12,-2118.62 11096.53,-2076.41"/>
<polygon fill="#93451a" stroke="black" points="11097.42,-2079.8 11106.44,-2074.25 11095.92,-2072.96 11097.42,-2079.8"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge296" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5615,-2347.81C5613.22,-2326.51 5613.12,-2299.14 5620,-2275.87"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge297" 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="M5582.74,-2354.37C5563.82,-2339.63 5540.85,-2321.72 5521.62,-2306.74"/>
<polygon fill="#93451a" stroke="black" points="5580.69,-2357.21 5590.73,-2360.6 5585,-2351.69 5580.69,-2357.21"/>
<polygon fill="#93451a" stroke="black" points="5523.67,-2303.9 5513.63,-2300.51 5519.36,-2309.42 5523.67,-2303.9"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge298" 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="M2897.78,-1317.94C2780.15,-1313.77 2425.32,-1297.27 2323,-1247.36 2220.16,-1197.19 2237.61,-1127.13 2142,-1064.28 2099.13,-1036.1 2043.51,-1016.34 2004.7,-1004.79"/>
<polygon fill="#8b4722" stroke="black" points="2005.29,-1001.32 1994.72,-1001.89 2003.34,-1008.04 2005.29,-1001.32"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge299" 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="M2959.51,-1290.68C3026.56,-1208.3 3213.31,-969.37 3204,-875.19"/>
<path fill="none" stroke="black" d="M3204,-873.19C3199.43,-852.39 3195.3,-847.7 3184,-829.64 3162.09,-794.64 3125,-799.17 3125,-757.87"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge301" class="edge">
<title>ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9760.78,-2035.09C9736.39,-1940.34 9660.3,-1627.83 9692,-1532.43"/>
</g>
<!-- ahriman_core_triggers -->
<g id="node99" class="node">
<title>ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#cc4f0a" stroke="black" cx="6391" cy="-2384.4" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6391" y="-2392.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6391" y="-2381.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6391" y="-2370.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers</text>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge302" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6387.51,-2355.07C6383.51,-2331.95 6375.15,-2299.38 6358,-2275.87"/>
<path fill="none" stroke="black" d="M6358,-2273.87C6299.29,-2193.36 6177.18,-2172.42 6102.53,-2167.39"/>
<polygon fill="#cc4f0a" stroke="black" points="6102.51,-2163.89 6092.32,-2166.78 6102.09,-2170.87 6102.51,-2163.89"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge303" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6358,-2273.87C6319.43,-2220.98 6360.87,-2188.24 6334,-2128.56 6318.96,-2095.14 6248.37,-2079.12 6282,-2064.57"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge304" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6418.46,-2364.14C6467.45,-2331 6574.35,-2264.28 6676,-2238.1 6728.86,-2224.48 8446.57,-2177.65 8803.46,-2168.05"/>
<polygon fill="#cc4f0a" stroke="black" points="8803.72,-2171.55 8813.62,-2167.78 8803.53,-2164.55 8803.72,-2171.55"/>
</g>
<!-- ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers -->
<g id="edge305" class="edge">
<title>ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6387.55,-2464.87C6388.12,-2451.82 6388.76,-2437.04 6389.34,-2423.78"/>
<polygon fill="#995733" stroke="black" points="6392.84,-2423.69 6389.78,-2413.55 6385.85,-2423.39 6392.84,-2423.69"/>
</g>
<!-- ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers -->
<g id="edge306" class="edge">
<title>ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6532.78,-2475.78C6523.38,-2469.68 6513.34,-2463.17 6504,-2457.17 6478.91,-2441.05 6450.58,-2423.06 6428.56,-2409.12"/>
<polygon fill="#8a4e2e" stroke="black" points="6430.17,-2406 6419.85,-2403.61 6426.43,-2411.91 6430.17,-2406"/>
</g>
<!-- ahriman_core_upload -->
<g id="node102" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a93e04" stroke="black" cx="9398" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9398" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9398" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9398" y="-2050.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_upload_github&#45;&gt;ahriman_core_upload -->
<g id="edge307" class="edge">
<title>ahriman_core_upload_github&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9333.47,-2591.95C9359.98,-2516.45 9419.01,-2328.21 9412,-2166.33"/>
<path fill="none" stroke="black" d="M9412,-2164.33C9409.2,-2143.95 9406.02,-2121.25 9403.4,-2102.66"/>
<polygon fill="#8a4e2e" stroke="black" points="9406.83,-2101.92 9401.97,-2092.51 9399.9,-2102.9 9406.83,-2101.92"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload -->
<g id="edge308" class="edge">
<title>ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8988.27,-3396.27C9000.73,-3304.5 9044.15,-3057.02 9165,-2895.33 9243.63,-2790.14 9283.52,-2779.9 9393,-2707.36 9421.83,-2688.26 9437.15,-2695.43 9462,-2671.36 9523.8,-2611.52 9578.96,-2585.9 9557,-2502.72"/>
<path fill="none" stroke="black" d="M9557,-2500.72C9548.11,-2450.25 9572.01,-2434.41 9557,-2385.4"/>
</g>
<!-- ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload -->
<g id="edge309" class="edge">
<title>ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9438.64,-2597.55C9481.9,-2544.38 9568.39,-2430.77 9557,-2385.4"/>
<path fill="none" stroke="black" d="M9557,-2383.4C9541.69,-2334.59 9497.13,-2352.98 9467,-2311.63 9426.33,-2255.83 9414.52,-2235.33 9412,-2166.33"/>
</g>
<!-- ahriman_core_upload_s3&#45;&gt;ahriman_core_upload -->
<g id="edge310" class="edge">
<title>ahriman_core_upload_s3&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9664.49,-2610.63C9627.1,-2591.73 9570.91,-2555.4 9557,-2502.72"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload -->
<g id="edge311" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9883.51,-2597.3C9830.69,-2533.76 9702.83,-2383.35 9647,-2347.63 9604.02,-2320.14 9577.44,-2344 9538,-2311.63 9502,-2282.1 9442.9,-2161.63 9414.4,-2100.51"/>
<polygon fill="#8a4e2e" stroke="black" points="9417.47,-2098.83 9410.09,-2091.23 9411.12,-2101.77 9417.47,-2098.83"/>
</g>
<!-- ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload -->
<g id="edge312" class="edge">
<title>ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8920.27,-2154.49C9023.56,-2135.05 9252.34,-2091.98 9351.1,-2073.39"/>
<polygon fill="#8a4e2e" stroke="black" points="9351.9,-2076.8 9361.08,-2071.51 9350.61,-2069.92 9351.9,-2076.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_ahriman -->
<g id="edge313" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5954.38,-3831.12C6302.11,-3828.59 8903.22,-3808.36 9246,-3767.4 9660.09,-3717.92 9771.66,-3710.69 10162,-3563.88 10347.74,-3494.02 11683,-2826.26 11683,-2627.82 11683,-2627.82 11683,-2627.82 11683,-2500.72 11683,-2432.4 11689.86,-2415.58 11697,-2347.63 11702.12,-2298.88 11699.6,-2286.01 11710,-2238.1 11719.52,-2194.23 11833,-1898.16 11833,-1853.27 11833,-1853.27 11833,-1853.27 11833,-1428.67 11833,-1234.08 11871,-1187.09 11871,-992.51 11871,-992.51 11871,-992.51 11871,-873.19 11871,-804.32 11883.07,-787.93 11895,-720.1 11900.63,-688.1 11924.31,-677 11909,-648.34"/>
<path fill="none" stroke="black" d="M11909,-646.34C11785.58,-433.88 11504.72,-575.25 11452,-335.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge314" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5954.54,-3831.36C6234.98,-3831.01 7965.7,-3826.45 8487,-3767.4 8695.21,-3743.82 8748.09,-3732.94 8949,-3673.42 9251.16,-3583.9 9797.64,-3384.69 10235,-3141.28 10355.23,-3074.36 10406.48,-3068.98 10481,-2953.31 10601.82,-2765.78 10591.09,-2677.63 10557,-2457.17 10516.52,-2195.41 10454.35,-2142.37 10377,-1889.03 10337.42,-1759.39 10339.15,-1723.13 10291,-1596.42 10225.88,-1425.05 10126.34,-1230.75 10081.42,-1145.75"/>
<polygon fill="#c74905" stroke="black" points="10084.51,-1144.1 10076.74,-1136.9 10078.32,-1147.38 10084.51,-1144.1"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge315" 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="M5954.26,-3831.21C6291.48,-3829.5 8751.65,-3815.45 9075,-3767.4 9404.77,-3718.4 9488.61,-3690.55 9797,-3563.88 10382.08,-3323.57 10655.01,-3310.94 10975,-2765.35 11093.55,-2563.21 11236.17,-2500.96 11171,-2275.87"/>
<path fill="none" stroke="black" d="M11171,-2273.87C11155.8,-2228.33 11162.16,-2214.31 11161,-2166.33"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge316" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5879.19,-3824.45C5845.62,-3818.29 5794.61,-3809.37 5750,-3803.4 5589.75,-3781.95 5548.08,-3790.13 5388,-3767.4 5141.88,-3732.46 4472.48,-3730.51 4288,-3563.88 4230.43,-3511.88 4295.96,-3449.02 4239,-3396.36 4181.66,-3343.33 4140.63,-3386.39 4067,-3360.36 4052.77,-3355.33 4037.92,-3348.37 4024.69,-3341.49"/>
<polygon fill="#c74905" stroke="black" points="4026.28,-3338.38 4015.81,-3336.77 4022.99,-3344.56 4026.28,-3338.38"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge317" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5878.79,-3824.7C5820.67,-3814.01 5704.92,-3791.78 5608,-3767.4 5495.17,-3739.01 4697.3,-3539.41 4604,-3469.9 4572.7,-3446.58 4586.53,-3420.68 4556,-3396.36 4549.05,-3390.82 4447.36,-3354.53 4386.02,-3332.93"/>
<polygon fill="#c74905" stroke="black" points="4387.14,-3329.61 4376.55,-3329.59 4384.82,-3336.21 4387.14,-3329.61"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge318" 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="M5954.31,-3830.81C6249.67,-3826.24 8156.05,-3794.62 8263,-3739.41"/>
<path fill="none" stroke="black" d="M8263,-3737.41C8288.83,-3724.07 8310.21,-3699.38 8325.2,-3677.9"/>
<polygon fill="#c74905" stroke="black" points="8328.14,-3679.8 8330.82,-3669.55 8322.33,-3675.89 8328.14,-3679.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge319" 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="M9059,-3533.89C9065.21,-3526.86 9272.6,-2902.19 9279,-2895.33 9306.99,-2865.34 9334.78,-2888.13 9364,-2859.33 9416.57,-2807.52 9378.01,-2758.75 9431,-2707.36 9461.63,-2677.66 9489.32,-2701.02 9520,-2671.36 9578.98,-2614.36 9548.22,-2570.11 9595,-2502.72"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge320" 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="M6807,-3737.41C6969.04,-3709.83 8193.68,-3775.64 8283,-3637.65"/>
<path fill="none" stroke="black" d="M8283,-3635.65C8356.78,-3521.65 7182.57,-3628.24 7063,-3563.88 6999.6,-3529.75 6966,-3506.13 6966,-3434.13 6966,-3434.13 6966,-3434.13 6966,-3205.27 6966,-3150.02 6978.76,-3137.39 6990,-3083.3 6995.92,-3054.79 7001.1,-3048.27 7004,-3019.3"/>
<path fill="none" stroke="black" d="M7004,-3017.3C7014.03,-2837.22 6976.56,-2786.06 6890,-2627.82"/>
<path fill="none" stroke="black" d="M6890,-2625.82C6865.78,-2576.76 6887.35,-2557.37 6890,-2502.72"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge321" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8283,-3635.65C8323.25,-3594.26 8281.31,-3563.46 8277,-3505.9 8266.07,-3359.72 8233.24,-3323.01 8249,-3177.28 8252.13,-3148.33 8267.24,-3142.09 8263,-3113.29"/>
<path fill="none" stroke="black" d="M8263,-3111.29C8230.89,-3058.23 8189.18,-3083.74 8139,-3047.3 8090.95,-3012.39 8082.83,-2998.25 8044,-2953.31 7955.26,-2850.62 7976.25,-2782.17 7863,-2707.36 7804.71,-2668.86 7773.51,-2700.45 7710,-2671.36 7703.16,-2668.23 7696.32,-2664.26 7689.83,-2660"/>
<polygon fill="#c74905" stroke="black" points="7691.45,-2656.86 7681.23,-2654.05 7687.47,-2662.62 7691.45,-2656.86"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge322" 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="M5879.27,-3823.76C5845.76,-3817.15 5794.78,-3807.94 5750,-3803.4 5293.39,-3757.14 5174.83,-3811.4 4718,-3767.4 4684.8,-3764.2 4152.69,-3692.01 4125,-3673.42 4091.22,-3650.74 3945.96,-3399.54 3935,-3360.36 3924.33,-3322.22 3923.52,-3309.16 3935,-3271.26 3994.69,-3074.13 4044.19,-3022.77 4206,-2895.33 4232.86,-2874.17 4256.36,-2888.63 4274,-2859.33 4287.29,-2837.25 4284.14,-2825.04 4274,-2801.35 4252,-2749.98 4072.89,-2680.33 4092,-2627.82"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge323" 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="M5879.28,-3823.6C5845.78,-3816.87 5794.81,-3807.59 5750,-3803.4 5698.19,-3798.56 3918.44,-3798.88 3877,-3767.4 3781.94,-3695.19 3509.67,-2860.63 3598,-2627.82"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_telegram -->
<g id="edge324" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5879.27,-3823.78C5845.75,-3817.18 5794.77,-3807.98 5750,-3803.4 5534.31,-3781.33 4981.68,-3832.92 4775,-3767.4 4753.26,-3760.51 4754.61,-3742.4 4732,-3739.41"/>
<path fill="none" stroke="black" d="M4732,-3737.41C4716.23,-3735.33 4175,-3683.85 4163,-3673.42 4105,-3622.98 4142.73,-3579.33 4120,-3505.9 4099.64,-3440.14 4078.96,-3428.15 4067,-3360.36 4027.88,-3138.62 4104.57,-3050.21 4268,-2895.33 4295.42,-2869.34 4324.72,-2891.2 4345,-2859.33 4402.08,-2769.63 4230.45,-2672.55 4230,-2671.36 4215.97,-2634.34 4203.36,-2611.56 4230,-2582.27 4286.92,-2519.68 4531.79,-2580.84 4609,-2546.27 4614.33,-2543.88 4619.46,-2540.64 4624.23,-2537"/>
<polygon fill="#c74905" stroke="black" points="4626.5,-2539.67 4631.92,-2530.56 4622,-2534.3 4626.5,-2539.67"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_executor -->
<g id="edge325" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8283,-3635.65C8318.67,-3585.51 8219.52,-3588.12 8187,-3535.89"/>
<path fill="none" stroke="black" d="M8187,-3533.89C8041.42,-3300.04 7849.64,-3457.82 7592,-3360.36 7478.02,-3317.24 7436.21,-3319.35 7348,-3235.26 7164.52,-3060.34 7320.75,-2876.58 7132,-2707.36 7083.52,-2663.9 7029.98,-2722.75 6990,-2671.36 6901.64,-2557.81 6927.57,-2477.27 6990,-2347.63 7012.2,-2301.54 7065.81,-2325.02 7080,-2275.87"/>
<path fill="none" stroke="black" d="M7080,-2273.87C7104.73,-2183.73 7100.72,-1944.41 7080,-1853.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge326" 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="M8187,-3533.89C8175.33,-3522.38 8175.54,-3516.45 8163,-3505.9 8090.18,-3444.62 8068.99,-3427.33 7979,-3396.36 7858.7,-3354.94 7815.3,-3401.77 7695,-3360.36 7650.01,-3344.87 7353.64,-3180.71 7327,-3141.28 7296.29,-3095.82 7308,-3074.17 7308,-3019.3 7308,-3019.3 7308,-3019.3 7308,-2923.32 7308,-2867.98 7228.38,-2740.43 7184,-2707.36 7127.98,-2665.63 7074.37,-2726.13 7031,-2671.36 7006.41,-2640.32 7026.48,-2621.61 7031,-2582.27 7052.55,-2394.64 7118,-2355.19 7118,-2166.33 7118,-2166.33 7118,-2166.33 7118,-1851.27 7118,-1680.94 6849.54,-1644.25 6732.01,-1636.35"/>
<polygon fill="#c74905" stroke="black" points="6732,-1632.85 6721.8,-1635.71 6731.56,-1639.83 6732,-1632.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge327" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5954.02,-3829.26C6077.67,-3821.95 6479.31,-3795.19 6807,-3739.41"/>
<path fill="none" stroke="black" d="M6807,-3737.41C7079.98,-3690.94 6444.87,-3750.5 6192,-3637.65"/>
<path fill="none" stroke="black" d="M6192,-3635.65C6073.8,-3582.9 5998.76,-3522.9 6026,-3396.36 6071.46,-3185.15 6170.22,-3162.03 6226,-2953.31 6242.37,-2892.06 6282,-2448.81 6282,-2385.4 6282,-2385.4 6282,-2385.4 6282,-2273.87 6282,-2180.84 6196.39,-2100.95 6282,-2064.57"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge328" 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="M5879.28,-3823.61C5845.78,-3816.9 5794.81,-3807.62 5750,-3803.4 5654.79,-3794.43 4114.01,-3811.2 4029,-3767.4 3982.7,-3743.55 3984.44,-3718.86 3959,-3673.42 3919.83,-3603.45 3953.65,-3557.18 3892,-3505.9 3829.28,-3453.72 3790.23,-3493.06 3712,-3469.9 3696.8,-3465.4 3680.6,-3459.36 3666.19,-3453.53"/>
<polygon fill="#c74905" stroke="black" points="3667.11,-3450.13 3656.53,-3449.55 3664.44,-3456.6 3667.11,-3450.13"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge329" 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="M5508,-3635.65C5395.87,-3586.31 5497.11,-3482.83 5494,-3360.36 5492.99,-3320.77 5489.96,-3310.65 5494,-3271.26 5516.04,-3056.5 5553.71,-3007.75 5617,-2801.35 5634.76,-2743.43 5648.78,-2731.24 5658,-2671.36 5664.03,-2632.23 5670.63,-2619.8 5658,-2582.27 5635.72,-2516.11 5615.27,-2503.46 5563,-2457.17 5515.62,-2415.21 5437.34,-2448.64 5440,-2385.4"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_tree -->
<g id="edge330" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5954.34,-3831.41C6220.89,-3831.41 7800.93,-3828.77 8277,-3767.4 8671.71,-3716.52 8775.86,-3702.25 9149,-3563.88 9265.33,-3520.74 10042.73,-3125.57 10139,-3047.3 10180.9,-3013.23 10197.83,-3004.16 10216,-2953.31 10283.13,-2765.45 10066.75,-2268.7 9897,-2166.33"/>
<path fill="none" stroke="black" d="M9897,-2164.33C9862.38,-2142.6 9825.78,-2113.65 9800.44,-2092.53"/>
<polygon fill="#c74905" stroke="black" points="9802.54,-2089.72 9792.63,-2085.97 9798.04,-2095.08 9802.54,-2089.72"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge331" 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="M8283,-3635.65C8295.38,-3622.58 8291.1,-3614.2 8302,-3599.88 8356.11,-3528.8 8832.53,-3118.86 8886,-3047.3 8922.4,-2998.58 8927.62,-2982.62 8948,-2925.32"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge332" 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="M8283,-3635.65C8295.55,-3622.74 8286.84,-3609.59 8302,-3599.88 8360.85,-3562.17 8860.75,-3573.32 8930,-3563.88 8988.13,-3555.96 9020.23,-3579.92 9059,-3535.89"/>
<path fill="none" stroke="black" d="M9059,-3533.89C9079.05,-3511.12 9054.73,-3483.41 9028.58,-3462.98"/>
<polygon fill="#c74905" stroke="black" points="9030.55,-3460.09 9020.45,-3456.89 9026.35,-3465.69 9030.55,-3460.09"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge333" 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="M8283,-3635.65C8293.56,-3621.07 8287.2,-3610.12 8302,-3599.88 8404.81,-3528.72 8472.58,-3626.14 8581,-3563.88 8685.19,-3504.05 9141.52,-2774.73 9241,-2707.36 9289.58,-2674.47 9316.85,-2700.1 9368,-2671.36 9372.85,-2668.64 9377.6,-2665.32 9382.1,-2661.74"/>
<polygon fill="#c74905" stroke="black" points="9384.56,-2664.24 9389.9,-2655.09 9380.02,-2658.91 9384.56,-2664.24"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge334" 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="M9059,-3533.89C9104.61,-3482.08 9393.49,-3086.99 9407,-3019.3"/>
<path fill="none" stroke="black" d="M9407,-3017.3C9423.92,-2963.96 9479.04,-2979.52 9493,-2925.32"/>
<path fill="none" stroke="black" d="M9493,-2923.32C9517.89,-2826.74 9486.87,-2781.13 9554,-2707.36 9583.83,-2674.59 9608.83,-2693.9 9647,-2671.36 9652.86,-2667.91 9658.72,-2663.79 9664.29,-2659.49"/>
<polygon fill="#c74905" stroke="black" points="9666.61,-2662.11 9672.2,-2653.11 9662.22,-2656.66 9666.61,-2662.11"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_aur_package -->
<g id="edge335" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4732,-3737.41C4565.97,-3715.48 4372.55,-3672.76 4279.15,-3651.04"/>
<polygon fill="#c74905" stroke="black" points="4279.88,-3647.61 4269.35,-3648.75 4278.29,-3654.43 4279.88,-3647.61"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge336" 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="M5880.81,-3820.59C5810.95,-3799.17 5649.77,-3749.89 5514,-3709.42 5458.86,-3692.98 5068.91,-3588.7 5017,-3563.88 4786.07,-3453.45 4707.98,-3431.82 4544,-3235.26 4473.51,-3150.77 4430.98,-3025.29 4413.02,-2963.09"/>
<polygon fill="#c74905" stroke="black" points="4416.34,-2961.98 4410.25,-2953.31 4409.61,-2963.89 4416.34,-2961.98"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_counters -->
<g id="edge337" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5879.28,-3823.68C5845.77,-3817 5794.8,-3807.75 5750,-3803.4 5451.74,-3774.42 4697.81,-3815.3 4402,-3767.4 4259.88,-3744.39 4215.32,-3747.71 4092,-3673.42 4002.21,-3619.33 4008.93,-3570 3926,-3505.9 3900.79,-3486.41 3879.9,-3497.51 3864,-3469.9 3834.1,-3417.97 3682.34,-3284.26 3877,-2895.33 3885.8,-2877.75 3901.93,-2863.49 3917.49,-2852.93"/>
<polygon fill="#c74905" stroke="black" points="3919.51,-2855.79 3926.03,-2847.44 3915.72,-2849.9 3919.51,-2855.79"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge338" 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="M6192,-3635.65C6048.52,-3573.54 6326.76,-3492.07 6411,-3360.36 6452.04,-3296.2 6448.65,-3272.48 6488,-3207.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_description -->
<g id="edge339" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5886.67,-3813.45C5857.61,-3795.42 5812.04,-3766.5 5774,-3739.41"/>
<path fill="none" stroke="black" d="M5774,-3737.41C5671.16,-3664.16 5623.57,-3688.5 5508,-3637.65"/>
<path fill="none" stroke="black" d="M5508,-3635.65C5490.48,-3627.94 5500.31,-3609.9 5484,-3599.88 5371.83,-3530.98 5318.66,-3591.74 5190,-3563.88 5181.92,-3562.13 5173.53,-3559.96 5165.26,-3557.62"/>
<polygon fill="#c74905" stroke="black" points="5166.23,-3554.26 5155.65,-3554.8 5164.26,-3560.97 5166.23,-3554.26"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge340" 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="M5774,-3737.41C5721.81,-3700.24 5659.45,-3237.29 5637,-3177.28 5633.52,-3167.98 5629.03,-3158.29 5624.48,-3149.35"/>
<polygon fill="#c74905" stroke="black" points="5627.5,-3147.59 5619.76,-3140.36 5621.3,-3150.84 5627.5,-3147.59"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_remote_source -->
<g id="edge341" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5910.14,-3803.45C5900.3,-3754.96 5880.87,-3651.99 5874,-3563.88 5868.21,-3489.65 5848.18,-3466.19 5874,-3396.36 5876.04,-3390.83 6009.96,-3240.79 6012,-3235.26 6033.85,-3176.16 6024.87,-3101.6 6016.11,-3057.34"/>
<polygon fill="#c74905" stroke="black" points="6019.48,-3056.39 6014.02,-3047.31 6012.63,-3057.81 6019.48,-3056.39"/>
</g>
<!-- ahriman_models -->
<g id="node110" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="6637" cy="-3998.37" rx="50.75" ry="18"/>
<text text-anchor="middle" x="6637" y="-3995.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge342" 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="M6586.39,-3996.83C6078.3,-3991.31 1914.15,-3945.77 1853,-3933.38 1485.47,-3858.94 580.26,-3446.92 363,-3141.28 339.91,-3108.79 38,-1783.58 38,-1743.73 38,-1743.73 38,-1743.73 38,-544.57 38,-445.61 54.3,-414.21 114,-335.27"/>
<path fill="none" stroke="black" d="M114,-333.27C125.07,-317.65 123.19,-309.64 138,-297.5 293.93,-169.79 371.91,-203.77 557,-123.97"/>
<path fill="none" stroke="black" d="M557,-121.97C725.94,-43.94 6915.73,-31.22 7576.95,-30.08"/>
<polygon fill="#f96210" stroke="black" points="7577.18,-33.58 7587.18,-30.07 7577.17,-26.58 7577.18,-33.58"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application -->
<g id="edge343" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8187,-3914.38C8196.76,-3913.7 8192.23,-3901.73 8201,-3897.38 8382.68,-3807.22 8922.17,-3930.09 9113,-3861.38 9152.97,-3846.99 9154.19,-3827.76 9189,-3803.4 9232.23,-3773.15 9252.53,-3777.55 9289,-3739.41"/>
<path fill="none" stroke="black" d="M9289,-3737.41C9299.06,-3727.81 9294.64,-3720.54 9303,-3709.42 9317.17,-3690.56 9331.74,-3694.66 9342,-3673.42 9474.59,-3398.87 9320.56,-3285.47 9393,-2989.31 9425.4,-2856.86 9433.25,-2817.25 9514,-2707.36 9528.56,-2687.55 9544.41,-2693.05 9556,-2671.36 9623.88,-2544.33 9623.22,-2481.87 9571,-2347.63 9563.13,-2327.41 9547.16,-2331.31 9538,-2311.63 9430.56,-2080.88 9464,-1998.26 9464,-1743.73 9464,-1743.73 9464,-1743.73 9464,-1428.67 9464,-1282.52 9304.18,-1182.78 9426,-1102.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge344" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9232,-3914.38C9244.72,-3911.38 9244.13,-3902.86 9256,-3897.38 9315.12,-3870.11 9336.13,-3881.66 9398,-3861.38 9463.17,-3840.02 9476.28,-3826.09 9541,-3803.4 9593.95,-3784.84 9609.86,-3788.14 9662,-3767.4 9748.06,-3733.17 9772.95,-3727.69 9848,-3673.42 10269.89,-3368.36 10504.47,-3279.23 10588,-2765.35 10678.27,-2210.04 10713.82,-2023.63 10502,-1502.43 10437.8,-1344.47 10442.38,-1273.45 10304,-1173.82 10256.78,-1139.82 10193.61,-1121.83 10143.1,-1112.36"/>
<polygon fill="#f96210" stroke="black" points="10143.64,-1108.9 10133.18,-1110.58 10142.4,-1115.79 10143.64,-1108.9"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge345" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8757,-3914.38C8785.46,-3911.89 8790.83,-3902.17 8819,-3897.38 9048.27,-3858.44 9121.07,-3936.97 9341,-3861.38 9384.6,-3846.4 9384.95,-3822.3 9427,-3803.4 9485.6,-3777.06 9506.12,-3787.93 9567,-3767.4 9668.91,-3733.03 9699.53,-3731.59 9790,-3673.42 9912.85,-3594.43 10358.8,-3081.1 10422,-2953.31 10672.66,-2446.51 10378.65,-2232.25 10172,-1705.96 10079.13,-1469.44 10112.79,-1379.07 9963,-1173.82 9953.28,-1160.5 9940.52,-1148.22 9927.74,-1137.73"/>
<polygon fill="#f96210" stroke="black" points="9929.81,-1134.91 9919.81,-1131.43 9925.46,-1140.39 9929.81,-1134.91"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge346" 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="M9479,-3914.38C9491.62,-3910.98 9491.12,-3902.84 9503,-3897.38 9562.95,-3869.84 9584.9,-3883.65 9647,-3861.38 9703.51,-3841.12 9711.27,-3819.88 9769,-3803.4 9906.2,-3764.24 9948.95,-3799.39 10088,-3767.4 10163.34,-3750.07 10177.63,-3730.54 10252,-3709.42 10324.62,-3688.79 10346.22,-3696.79 10418,-3673.42 10532.58,-3636.12 10560.96,-3622.92 10666,-3563.88 10729.73,-3528.06 10746.78,-3518.94 10801,-3469.9 10832.92,-3441.03 10835.96,-3429.01 10864,-3396.36 10877.76,-3380.34 10881.91,-3376.93 10895,-3360.36 10953.54,-3286.22 11359.53,-2759.7 11393,-2671.36 11449.06,-2523.4 11552,-2093.62 11463,-1962.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge347" 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="M3701,-3914.38C3610.09,-3878.33 3603.78,-3834.33 3511,-3803.4 3360.98,-3753.39 3278.99,-3844.69 3161,-3739.41"/>
<path fill="none" stroke="black" d="M3161,-3737.41C3051.09,-3636.25 3417.81,-2473.08 3437,-2457.17 3514.97,-2392.55 3571.43,-2466.48 3662,-2421.17 3704.04,-2400.15 3697.62,-2371.7 3738,-2347.63 3783.64,-2320.44 3812.47,-2347.14 3852,-2311.63 3920.31,-2250.28 3952,-1969.34 3952,-1962.8 3952,-1962.8 3952,-1962.8 3952,-1741.73 3952,-1676.85 3938.19,-1655.03 3966,-1596.42 4161.26,-1184.94 4606.93,-1322.24 4694,-875.19"/>
<path fill="none" stroke="black" d="M4694,-873.19C4698,-822.1 4643.65,-767.47 4694,-757.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge348" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6687.58,-3997.41C6874.13,-3997.08 7541.09,-3991.6 8087,-3933.38 8131.83,-3928.6 8142.03,-3919.58 8187,-3916.38"/>
<path fill="none" stroke="black" d="M8187,-3914.38C8196.76,-3913.69 8192.24,-3901.75 8201,-3897.38 8367.42,-3814.42 8872.07,-3947.26 9037,-3861.38 9083.67,-3837.08 9085.48,-3814.47 9109,-3767.4 9150.99,-3683.37 9143.59,-3655.1 9166,-3563.88 9197.72,-3434.78 9195.72,-3400.22 9228,-3271.26 9280.79,-3060.35 9297.74,-3008.43 9364,-2801.35 9377.49,-2759.18 9366.56,-2739.51 9397,-2707.36 9425.77,-2676.98 9460.75,-2706.15 9484,-2671.36 9506.01,-2638.44 9494.98,-2620.31 9484,-2582.27 9439.36,-2427.64 9291,-2436.81 9291,-2275.87 9291,-2275.87 9291,-2275.87 9291,-1851.27 9291,-1497.38 9171.24,-1323.63 9412,-1064.28 9450.4,-1022.92 10303.84,-709.96 10354,-684.1 10358.03,-682.03 10362.14,-679.74 10366.22,-677.37"/>
<polygon fill="#f96210" stroke="black" points="10368.27,-680.22 10375.04,-672.06 10364.66,-674.22 10368.27,-680.22"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_search -->
<g id="edge349" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6687.62,-3996.59C7007.41,-3991.54 8751.16,-3963.02 9284,-3933.38 9370.86,-3928.55 9395,-3939.01 9479,-3916.38"/>
<path fill="none" stroke="black" d="M9479,-3914.38C9502.83,-3907.96 9533.78,-3845.99 9555,-3833.39"/>
<path fill="none" stroke="black" d="M9555,-3831.39C9566.96,-3824.29 9557.98,-3811.89 9569,-3803.4 9631.23,-3755.49 9668.33,-3794.61 9742,-3767.4 9872.31,-3719.27 10162.64,-3524.1 10421,-3360.36 10507.03,-3305.84 10538.76,-3304.99 10613,-3235.26 10726.89,-3128.3 10758.83,-3095.78 10823,-2953.31 11064.92,-2416.25 10632.8,-2219.93 10695,-1634.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge350" 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="M6687.4,-3996.55C7057.78,-3990.46 9348.37,-3952.16 9493,-3933.38 9610.05,-3918.19 10413.46,-3717.38 10523,-3673.42 10849.95,-3542.22 11367.51,-3229.89 11554,-3047.3 11630.98,-2971.93 11797,-2735.55 11797,-2627.82 11797,-2627.82 11797,-2627.82 11797,-2273.87 11797,-2134.48 11757,-2102.19 11757,-1962.8 11757,-1962.8 11757,-1962.8 11757,-1319.13 11757,-1253.67 11755.79,-1234.22 11781,-1173.82 11796.17,-1137.47 11827.67,-1141.08 11833,-1102.05"/>
<path fill="none" stroke="black" d="M11833,-1100.05C11838.14,-1052.53 11833.59,-1040.3 11833,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge351" 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="M2910,-3432.13C2891.14,-3191.39 2922.79,-3126.07 2994,-2895.33 3140.01,-2422.21 3271.58,-2341.79 3472,-1889.03 3611.11,-1574.77 3596.19,-1472.62 3766,-1173.82 3847.98,-1029.57 3838.34,-942.46 3990,-875.19"/>
<path fill="none" stroke="black" d="M3990,-873.19C4008.53,-861.15 3995.61,-841.9 4014,-829.64 4075.57,-788.62 4271.47,-801.87 4345,-793.64 4483.27,-778.17 4518.87,-781.41 4656,-757.87"/>
<path fill="none" stroke="black" d="M4656,-755.87C4674.87,-752.64 4663.19,-729.27 4680,-720.1 4725.85,-695.09 6507.79,-685.64 6560,-684.1 6880.15,-674.7 7263.91,-657.55 7406.26,-650.99"/>
<polygon fill="#f96210" stroke="black" points="7406.66,-654.47 7416.49,-650.51 7406.34,-647.48 7406.66,-654.47"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge352" 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="M6586.35,-3996.89C6090.74,-3992.07 2122.09,-3952.98 2003,-3933.38 1900.23,-3916.48 1872.72,-3908.82 1780,-3861.38 1605.23,-3771.96 1582.47,-3715.77 1424,-3599.88 1029.94,-3311.69 839.9,-3335.39 536,-2953.31 436.95,-2828.78 304,-2434.99 304,-2275.87 304,-2275.87 304,-2275.87 304,-2062.57 304,-1781.21 266,-1712.02 266,-1430.67 266,-1430.67 266,-1430.67 266,-1319.13 266,-1152.62 304.91,-1114.14 353,-954.74 363.78,-919 376.8,-912.39 380,-875.19"/>
<path fill="none" stroke="black" d="M380,-873.19C381.67,-821.97 358.13,-804.23 380,-757.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge353" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9555,-3831.39C9566.84,-3824.09 9557.53,-3811.26 9569,-3803.4 9708.94,-3707.51 9803.72,-3854.99 9949,-3767.4 9975.39,-3751.49 9960.98,-3725.91 9987,-3709.42 10084.42,-3647.67 10146.64,-3735.25 10244,-3673.42 10276.95,-3652.49 10264.8,-3627.87 10292,-3599.88 10489.97,-3396.13 10631.02,-3450.01 10817,-3235.26 10870.3,-3173.72 10950.2,-3143.98 11051,-2765.35 11134.7,-2450.95 10960.72,-2331.37 11094,-2034.57 11103.27,-2013.93 11119.76,-2018.75 11130,-1998.57 11174.6,-1910.71 11156.42,-1877.74 11164,-1779.5 11173.55,-1655.63 11157.38,-1622.89 11127,-1502.43 11041.91,-1165.04 11008.27,-1083.26 10885,-757.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_users -->
<g id="edge354" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6586.24,-3997.04C6225,-3994.52 4049.7,-3977.58 3760,-3933.38 3733.02,-3929.27 3726.24,-3926.77 3701,-3916.38"/>
<path fill="none" stroke="black" d="M3701,-3914.38C3574.52,-3862.35 3546.46,-3837.44 3414,-3803.4 3298.03,-3773.6 3249.75,-3828.88 3147,-3767.4 3051.99,-3710.55 3055,-3646.61 3055,-3535.89 3055,-3535.89 3055,-3535.89 3055,-3111.29 3055,-2926.24 3089.9,-2880.21 3156,-2707.36 3200.91,-2589.94 3185.09,-2529.4 3288,-2457.17 3382.77,-2390.66 3451.16,-2487.59 3546,-2421.17 3576.3,-2399.95 3567.01,-2379.96 3585,-2347.63 3594.01,-2331.45 3598.33,-2328.49 3606,-2311.63 3673.8,-2162.67 3667.92,-2116.56 3724,-1962.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge355" 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="M9479,-3914.38C9491.62,-3910.97 9491.77,-3904.08 9503,-3897.38 9523.23,-3885.32 9670.43,-3810.15 9693,-3803.4 9819.12,-3765.68 9858.61,-3796.47 9987,-3767.4 10066.09,-3749.5 10082.41,-3732.98 10160,-3709.42 10218.19,-3691.75 10234.7,-3693.78 10292,-3673.42 10502.66,-3598.57 10571.87,-3602.3 10752,-3469.9 10778.08,-3450.73 10829.01,-3386.57 10848,-3360.36 10971.37,-3190.12 11009.76,-3148.05 11089,-2953.31 11137.95,-2833.02 11276.73,-2505.38 11227,-2385.4"/>
<path fill="none" stroke="black" d="M11227,-2383.4C11205.8,-2333.86 11188.06,-2326.98 11171,-2275.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge356" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3878,-3533.89C3872.48,-3489.89 3848.37,-3467.11 3878,-3434.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge357" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6586.12,-3997.03C6291.39,-3994.81 4809.59,-3980.53 4618,-3916.38"/>
<path fill="none" stroke="black" d="M4618,-3914.38C4492.82,-3872.47 4378,-3871.41 4378,-3739.41 4378,-3739.41 4378,-3739.41 4378,-3635.65 4378,-3539.93 4304.11,-3529.83 4302,-3434.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge358" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4049,-3635.65C4074.6,-3583.15 4155.56,-3441.05 4198.93,-3365.52"/>
<polygon fill="#f96210" stroke="black" points="4202.08,-3367.07 4204.03,-3356.65 4196.01,-3363.58 4202.08,-3367.07"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge359" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3853,-3737.41C3865.93,-3727.34 3863.75,-3719.05 3877,-3709.42 3944,-3660.71 4006.69,-3708.86 4049,-3637.65"/>
<path fill="none" stroke="black" d="M4049,-3635.65C4062.45,-3613.01 4090.78,-3454.27 4105.19,-3369.65"/>
<polygon fill="#f96210" stroke="black" points="4108.65,-3370.15 4106.87,-3359.71 4101.75,-3368.98 4108.65,-3370.15"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge360" 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="M6687.48,-3996.23C6866.53,-3991.78 7487.75,-3972.97 7997,-3916.38"/>
<path fill="none" stroke="black" d="M7997,-3914.38C8025.4,-3911.23 8031.2,-3903.98 8059,-3897.38 8129.13,-3880.73 8335.65,-3892.44 8377,-3833.39"/>
<path fill="none" stroke="black" d="M8377,-3831.39C8414.34,-3778.06 8205.15,-3769.27 8263,-3739.41"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge361" 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="M2145,-3914.38C2085.86,-3898.16 2106.19,-3846.94 2063,-3803.4 1995.27,-3735.12 1963.25,-3735.73 1890,-3673.42 1836.48,-3627.89 1823.81,-3615.37 1776,-3563.88 1753.23,-3539.36 1756.28,-3523.77 1728,-3505.9 1672.97,-3471.1 1638.97,-3507.75 1586,-3469.9 1554.24,-3447.21 1561.75,-3427.33 1538,-3396.36 1458.51,-3292.67 1429.7,-3274.12 1342,-3177.28 1327.43,-3161.19 1322.54,-3158.24 1309,-3141.28 1277.32,-3101.58 1270.37,-3090.7 1244,-3047.3 1163.09,-2914.1 1080,-2893.2 1080,-2737.36 1080,-2737.36 1080,-2737.36 1080,-2625.82 1080,-2503.75 1149.03,-2137.2 1174.07,-2008.27"/>
<polygon fill="#f96210" stroke="black" points="1177.53,-2008.81 1176,-1998.32 1170.66,-2007.47 1177.53,-2008.81"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge362" 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="M1904,-3635.65C1848.92,-3588.04 1849.28,-3562.91 1804,-3505.9 1720.2,-3400.38 1701.51,-3371.98 1612,-3271.26 1520.13,-3167.89 1459.96,-3169.91 1396,-3047.3 1370.45,-2998.31 1372,-2980.57 1372,-2925.32 1372,-2925.32 1372,-2925.32 1372,-2829.34 1372,-2661.65 1372.23,-2613.07 1434,-2457.17 1448.14,-2421.5 1478.58,-2423.63 1482,-2385.4"/>
<path fill="none" stroke="black" d="M1482,-2383.4C1480.58,-2350.94 1473.94,-2343.59 1468,-2311.63 1445.14,-2188.69 1452.78,-2154.97 1419,-2034.57 1416.32,-2025.02 1412.84,-2014.97 1409.25,-2005.52"/>
<polygon fill="#f96210" stroke="black" points="1412.4,-2003.97 1405.5,-1995.93 1405.88,-2006.52 1412.4,-2003.97"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge363" 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="M6586.31,-3997C6166.55,-3993.88 3259.41,-3971.07 2384,-3933.38 2277.61,-3928.8 2247.97,-3943.53 2145,-3916.38"/>
<path fill="none" stroke="black" d="M2145,-3914.38C2117.37,-3907.1 2110.72,-3904.3 2083,-3897.38 2012.28,-3879.74 1982.91,-3902.9 1923,-3861.38 1793.05,-3771.34 1814.66,-3696.11 1728,-3563.88 1711.11,-3538.11 1715.23,-3523.59 1690,-3505.9 1633.16,-3466.03 1598.74,-3503.52 1538,-3469.9 1477.36,-3436.32 1472.47,-3412.67 1427,-3360.36 1360.51,-3283.85 1352.34,-3257.97 1291,-3177.28 1216.02,-3078.64 1187.76,-3060.14 1125,-2953.31 1000.28,-2741.03 1001.29,-2665.51 971,-2421.17 966.98,-2388.74 961.97,-2379.05 971,-2347.63 981.41,-2311.45 1000.75,-2310.29 1016,-2275.87"/>
<path fill="none" stroke="black" d="M1016,-2273.87C1032.03,-2217.58 1082.51,-2224.08 1092,-2166.33"/>
<path fill="none" stroke="black" d="M1092,-2164.33C1100.71,-2111.33 1097.9,-2049.44 1094.25,-2008.37"/>
<polygon fill="#f96210" stroke="black" points="1097.73,-2008.02 1093.31,-1998.4 1090.76,-2008.68 1097.73,-2008.02"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge364" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9251,-3831.39C9274.72,-3824.51 9276.42,-3813.4 9299,-3803.4 9347.58,-3781.89 9366.6,-3793.28 9413,-3767.4 9440.93,-3751.82 9505.39,-3700.75 9522,-3673.42 9723.8,-3341.4 9500.45,-3181.01 9583,-2801.35 9592.54,-2757.48 9586.76,-2737.54 9620,-2707.36 9663.13,-2668.22 9710.93,-2717.86 9746,-2671.36 9769.85,-2639.75 9760.63,-2619.07 9746,-2582.27 9737.87,-2561.82 9722.61,-2565.55 9712,-2546.27 9676.42,-2481.63 9703.31,-2451.74 9671,-2385.4"/>
<path fill="none" stroke="black" d="M9671,-2383.4C9657.57,-2359.38 9639.84,-2334.27 9624.77,-2314.37"/>
<polygon fill="#f96210" stroke="black" points="9627.36,-2311.98 9618.5,-2306.17 9621.8,-2316.24 9627.36,-2311.98"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge365" 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="M7004,-3111.29C6998.47,-3070.78 7001.73,-3060.12 7004,-3019.3"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_configuration -->
<g id="edge366" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5356,-3914.38C5272.24,-3788.51 6519.24,-3669.03 6810.76,-3642.91"/>
<polygon fill="#f96210" stroke="black" points="6811.07,-3646.4 6820.72,-3642.02 6810.45,-3639.42 6811.07,-3646.4"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data -->
<g id="edge367" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2910,-3533.89C2885.75,-3496.77 2916.92,-3477.92 2910,-3434.13"/>
<path fill="none" stroke="black" d="M2910,-3432.13C2893.55,-3327.93 2856.23,-3310.39 2834,-3207.27"/>
<path fill="none" stroke="black" d="M2834,-3205.27C2748.87,-2994.21 2685.63,-2956.99 2626,-2737.36"/>
<path fill="none" stroke="black" d="M2626,-2735.36C2618.65,-2699.48 2662.29,-2609.3 2687,-2582.27 2715.99,-2550.55 2760.5,-2529.68 2794.74,-2517.31"/>
<polygon fill="#f96210" stroke="black" points="2796.26,-2520.48 2804.55,-2513.89 2793.96,-2513.87 2796.26,-2520.48"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge368" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4960,-3635.65C4933.06,-3545.24 5139.1,-3321.62 5190,-3271.26 5342.29,-3120.57 5388.13,-3082.6 5581,-2989.31 5633.82,-2963.77 5658.58,-2984.93 5708,-2953.31 5721.8,-2944.48 5719.4,-2935.8 5732,-2925.32"/>
<path fill="none" stroke="black" d="M5732,-2923.32C5778.98,-2888.48 5805.03,-2900.07 5847,-2859.33 5931.83,-2776.98 5966.73,-2745.5 5978,-2627.82"/>
<path fill="none" stroke="black" d="M5978,-2625.82C5977.87,-2602.79 5974.73,-2577.59 5971.1,-2556.03"/>
<polygon fill="#f96210" stroke="black" points="5974.53,-2555.32 5969.35,-2546.08 5967.64,-2556.53 5974.53,-2555.32"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge369" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4618,-3914.38C4584.46,-3901.3 4614.05,-3869.17 4618,-3833.39"/>
<path fill="none" stroke="black" d="M4618,-3831.39C4627.45,-3745.8 4635.97,-3721.86 4618,-3637.65"/>
<path fill="none" stroke="black" d="M4618,-3635.65C4593.46,-3543.12 4558.02,-3528.5 4542,-3434.13"/>
<path fill="none" stroke="black" d="M4542,-3432.13C4465.67,-3215.04 4389.62,-3179.06 4345,-2953.31 4340,-2928.03 4338.54,-2920.28 4345,-2895.33 4349.59,-2877.61 4360.41,-2877.05 4365,-2859.33 4371.46,-2834.38 4370.26,-2826.57 4365,-2801.35 4355.69,-2756.74 4354.2,-2741.49 4324,-2707.36 4303.14,-2683.79 4278.61,-2698.7 4263,-2671.36 4243.37,-2636.98 4236.17,-2611.39 4263,-2582.27 4329.48,-2510.13 4609.22,-2575.09 4703,-2546.27 4709.86,-2544.16 4716.79,-2541.37 4723.52,-2538.22"/>
<polygon fill="#f96210" stroke="black" points="4725.17,-2541.31 4732.56,-2533.72 4722.05,-2535.04 4725.17,-2541.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge370" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4618,-3831.39C4635.66,-3740.6 4694,-3730.14 4694,-3637.65 4694,-3637.65 4694,-3637.65 4694,-3533.89 4694,-3471.84 4685.19,-3456.52 4670,-3396.36 4665.87,-3380 4660.7,-3377 4658,-3360.36 4651.66,-3321.27 4635.59,-3303.91 4658,-3271.26 4702.74,-3206.07 4804.34,-3283.86 4824,-3207.27"/>
<path fill="none" stroke="black" d="M4824,-3205.27C4858.12,-3058.21 4836.78,-2978.16 4963,-2895.33 5059.06,-2832.29 5111.73,-2900.5 5219,-2859.33 5262.04,-2842.81 5263,-2820.36 5305,-2801.35 5362.35,-2775.38 5393.64,-2805.66 5442,-2765.35 5502.9,-2714.58 5514.01,-2617.31 5514.46,-2556.46"/>
<polygon fill="#f96210" stroke="black" points="5517.96,-2556.27 5514.43,-2546.28 5510.96,-2556.29 5517.96,-2556.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_migrations -->
<g id="edge371" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3473,-3914.38C3442.37,-3902.37 3404.13,-3818.69 3375,-3803.4 3256.1,-3740.98 3190.49,-3835.93 3075,-3767.4 2966.34,-3702.92 2979.09,-3641.68 2910,-3535.89"/>
<path fill="none" stroke="black" d="M2910,-3533.89C2696.47,-3206.95 2575.05,-3096.1 2612,-2707.36 2617.36,-2651.01 2608.8,-2631.92 2636,-2582.27 2676.12,-2509.05 2753.1,-2447.18 2801.32,-2413.28"/>
<polygon fill="#f96210" stroke="black" points="2803.46,-2416.05 2809.68,-2407.48 2799.47,-2410.3 2803.46,-2416.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge372" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2834,-3205.27C2796.37,-3011.8 2877.53,-2962.05 2890,-2765.35 2891.63,-2739.63 2894.2,-2732.79 2890,-2707.36 2888.48,-2698.17 2886.04,-2688.61 2883.23,-2679.44"/>
<polygon fill="#f96210" stroke="black" points="2886.48,-2678.11 2880.06,-2669.68 2879.82,-2680.27 2886.48,-2678.11"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge373" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3777,-3737.41C3802.22,-3527.57 3776.38,-3460.25 3871,-3271.26 3946.24,-3120.98 3999.7,-3103.52 4123,-2989.31 4192.78,-2924.68 4243.56,-2940.58 4293,-2859.33 4325.98,-2805.13 4334.03,-2731.39 4335.26,-2681.83"/>
<polygon fill="#f96210" stroke="black" points="4338.76,-2681.69 4335.42,-2671.63 4331.76,-2681.58 4338.76,-2681.69"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge374" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3701,-3831.39C3686.79,-3794.56 3821.85,-3763.67 3853,-3739.41"/>
<path fill="none" stroke="black" d="M3853,-3737.41C3888.6,-3709.68 3883.62,-3580.66 3878,-3535.89"/>
<path fill="none" stroke="black" d="M3878,-3533.89C3866.19,-3473.59 3848.32,-3455.76 3864,-3396.36 3880.32,-3334.55 3890.42,-3317.08 3935,-3271.26 4125.49,-3075.47 4288.23,-3164.9 4461,-2953.31 4526.34,-2873.29 4550.45,-2751.34 4559.19,-2681.66"/>
<polygon fill="#f96210" stroke="black" points="4562.71,-2681.7 4560.42,-2671.35 4555.76,-2680.87 4562.71,-2681.7"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge375" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7997,-3914.38C8025.39,-3911.2 8030.89,-3902.52 8059,-3897.38 8142.66,-3882.08 8366.62,-3904.37 8440,-3861.38 8566.25,-3787.42 8554.99,-3707.87 8581,-3563.88 8624.57,-3322.67 8374.41,-3331.62 8263,-3113.29"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge376" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7997,-3914.38C8025.4,-3911.23 8030.93,-3902.72 8059,-3897.38 8131.91,-3883.53 8328.55,-3901.47 8391,-3861.38 8482.66,-3802.54 8512.41,-3744.44 8491,-3637.65"/>
<path fill="none" stroke="black" d="M8491,-3635.65C8463.31,-3497.48 8380.58,-3498.02 8283,-3396.36 8128.53,-3235.43 7742.67,-2824.77 7553,-2707.36 7513.55,-2682.94 7495.76,-2693.53 7455,-2671.36 7449.13,-2668.17 7443.2,-2664.43 7437.49,-2660.51"/>
<polygon fill="#f96210" stroke="black" points="7439.48,-2657.63 7429.31,-2654.67 7435.41,-2663.33 7439.48,-2657.63"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge377" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6687.58,-3996.52C6903.45,-3992.62 7748.46,-3974.97 8011,-3933.38 8039.22,-3928.91 8044.52,-3918.7 8073,-3916.38"/>
<path fill="none" stroke="black" d="M8073,-3914.38C8117.93,-3910.72 8128.32,-3903.38 8173,-3897.38 8334.12,-3875.75 8382.69,-3912.53 8537,-3861.38 8720.14,-3800.69 8909,-3830.58 8909,-3637.65 8909,-3637.65 8909,-3637.65 8909,-3533.89 8909,-3255.84 8712.48,-3227.91 8475,-3083.3 8431.79,-3056.98 8400.52,-3085.19 8367,-3047.3 8338.76,-3015.38 8352.73,-2995.66 8348,-2953.31 8346.67,-2941.39 8351.1,-2746.21 8343,-2737.36"/>
<path fill="none" stroke="black" d="M8343,-2735.36C8308.49,-2704.71 8287.92,-2717.98 8243,-2707.36 8161.06,-2688 8136.46,-2699.22 8057,-2671.36 8048,-2668.21 8038.76,-2664.21 8029.88,-2659.93"/>
<polygon fill="#f96210" stroke="black" points="8031.28,-2656.72 8020.77,-2655.38 8028.15,-2662.98 8031.28,-2656.72"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge378" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8491,-3635.65C8478.31,-3526.52 8487.35,-3489.45 8429,-3396.36 8413.82,-3372.14 7745.37,-2812.16 7567.89,-2663.68"/>
<polygon fill="#f96210" stroke="black" points="7569.97,-2660.86 7560.05,-2657.13 7565.48,-2666.23 7569.97,-2660.86"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge379" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7997,-3914.38C8025.38,-3911.09 8030.87,-3902.37 8059,-3897.38 8153.64,-3880.6 8405.82,-3907.76 8490,-3861.38 8576.22,-3813.88 8695.29,-3610.45 8733,-3469.9 8741.47,-3438.33 8746.34,-3426.2 8733,-3396.36 8689.19,-3298.34 8626.85,-3313.18 8553,-3235.26 8493.42,-3172.4 8503.78,-3130.25 8431,-3083.3 8377.02,-3048.46 8335.18,-3093.94 8291,-3047.3 8194.4,-2945.3 8350.5,-2807.88 8229,-2737.36"/>
<path fill="none" stroke="black" d="M8229,-2735.36C8214.4,-2727.92 8219.47,-2715.05 8205,-2707.36 8080.93,-2641.49 8020.82,-2725.02 7891,-2671.36 7884.8,-2668.8 7878.72,-2665.33 7873,-2661.45"/>
<polygon fill="#f96210" stroke="black" points="7875.04,-2658.6 7864.89,-2655.54 7870.91,-2664.26 7875.04,-2658.6"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge380" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8377,-3831.39C8437.49,-3745.01 8472.1,-3696.13 8429,-3599.88 8425.53,-3592.13 8208.5,-3400.34 8201,-3396.36 8143.51,-3365.8 8119.61,-3384.13 8059,-3360.36 7845.5,-3276.62 7606,-3342.62 7606,-3113.29 7606,-3113.29 7606,-3113.29 7606,-3017.3 7606,-2873.36 7621.19,-2801.17 7512,-2707.36 7452.43,-2656.19 7411.18,-2702.31 7339,-2671.36 7332.28,-2668.48 7325.54,-2664.83 7319.1,-2660.87"/>
<polygon fill="#f96210" stroke="black" points="7320.82,-2657.82 7310.53,-2655.32 7317.02,-2663.69 7320.82,-2657.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge381" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8073,-3914.38C8117.93,-3910.66 8128.24,-3902.8 8173,-3897.38 8392.87,-3870.79 8449.17,-3878.14 8670,-3861.38 8826.93,-3849.48 8896.47,-3926.98 9023,-3833.39"/>
<path fill="none" stroke="black" d="M9023,-3831.39C9131.85,-3750.88 9041,-3659.15 9097,-3535.89"/>
<path fill="none" stroke="black" d="M9097,-3533.89C9114.71,-3470.14 9088.36,-3441.52 9040,-3396.36 9003.33,-3362.11 8975.33,-3387.29 8933,-3360.36 8886.83,-3330.97 8887.16,-3309.49 8848,-3271.26 8786.54,-3211.27 8755.88,-3210.47 8705,-3141.28 8606.3,-3007.06 8657.79,-2925.77 8547,-2801.35 8493.93,-2741.75 8468.67,-2735.53 8394,-2707.36 8305.81,-2674.1 8272.39,-2706.68 8185,-2671.36 8178.15,-2668.6 8171.28,-2665.01 8164.73,-2661.08"/>
<polygon fill="#f96210" stroke="black" points="8166.34,-2657.95 8156.02,-2655.55 8162.59,-2663.86 8166.34,-2657.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge382" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9097,-3533.89C9109.82,-3473.84 9119.11,-3446.72 9084,-3396.36 9062.86,-3366.02 9037.67,-3383.71 9009,-3360.36 8766.81,-3163.08 8800.57,-3025.49 8583,-2801.35 8536.78,-2753.74 8526.86,-2735.99 8467,-2707.36 8398.11,-2674.42 8368.35,-2703.32 8299,-2671.36 8292.92,-2668.56 8286.88,-2665.02 8281.13,-2661.17"/>
<polygon fill="#f96210" stroke="black" points="8283.13,-2658.29 8272.95,-2655.35 8279.07,-2664 8283.13,-2658.29"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_version_printer -->
<g id="edge383" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9023,-3831.39C9057.24,-3811.49 9066.14,-3802.22 9085,-3767.4 9121.36,-3700.27 9091.57,-3669.46 9123,-3599.88 9131.12,-3581.89 9142.93,-3582.66 9149,-3563.88 9156.93,-3539.36 9153.28,-3531.31 9149,-3505.9 9122.32,-3347.58 9093.55,-3307.03 8999,-3177.28 8823.74,-2936.76 8773.55,-2866.37 8522,-2707.36 8484.89,-2683.9 8468.91,-2691.7 8430,-2671.36 8423.63,-2668.03 8417.11,-2664.22 8410.78,-2660.26"/>
<polygon fill="#f96210" stroke="black" points="8412.61,-2657.27 8402.3,-2654.81 8408.82,-2663.16 8412.61,-2657.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_console -->
<g id="edge384" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4967,-3831.39C4895.83,-3782.82 4980.35,-3721.38 4960,-3637.65"/>
<path fill="none" stroke="black" d="M4960,-3635.65C4952.59,-3585.03 4892.2,-3609.97 4870,-3563.88 4858.82,-3540.66 4864.21,-3531.01 4870,-3505.9 4881.75,-3455 5036.5,-3117.48 5076,-3083.3 5199.49,-2976.41 5645.13,-2957.04 5776,-2859.33 5816.49,-2829.1 5823.42,-2813.08 5840,-2765.35 5885.42,-2634.59 5784.41,-2552.26 5885,-2457.17 5945.24,-2400.23 6005.17,-2475.25 6068,-2421.17 6096.86,-2396.33 6109.7,-2354.29 6115.42,-2321.8"/>
<polygon fill="#f96210" stroke="black" points="6118.92,-2322.05 6117.03,-2311.62 6112.01,-2320.95 6118.92,-2322.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge385" 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="M3549,-3737.41C3462.82,-3632.4 3511,-3569.97 3511,-3434.13 3511,-3434.13 3511,-3434.13 3511,-3314.81 3511,-3108.96 3901.17,-2687.66 4078,-2582.27 4151.27,-2538.6 4406.25,-2514.56 4513.68,-2506.18"/>
<polygon fill="#f96210" stroke="black" points="4514.21,-2509.65 4523.91,-2505.39 4513.67,-2502.67 4514.21,-2509.65"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge386" 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="M4618,-3635.65C4555.58,-3290.09 4597.02,-3082.7 4894,-2895.33 5013.35,-2820.03 5223.21,-2971.28 5205,-2831.34"/>
<path fill="none" stroke="black" d="M5205,-2829.34C5190.83,-2714.66 5033.24,-2848.5 4953,-2765.35 4910.07,-2720.85 4926.4,-2689.4 4932,-2627.82"/>
<path fill="none" stroke="black" d="M4932,-2625.82C4931.89,-2596.66 4943.72,-2566.1 4955.67,-2542.73"/>
<polygon fill="#f96210" stroke="black" points="4958.8,-2544.3 4960.4,-2533.82 4952.62,-2541.01 4958.8,-2544.3"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge387" 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="M3701,-3831.39C3670.78,-3758.44 3604.35,-3795.73 3549,-3739.41"/>
<path fill="none" stroke="black" d="M3549,-3737.41C3522.71,-3710.66 3507.03,-3708.58 3494,-3673.42 3482.64,-3642.77 3493.85,-3632.56 3494,-3599.88 3494.67,-3453.82 3486.05,-3416.91 3497,-3271.26 3518.7,-2982.6 3461.39,-2883.03 3598,-2627.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge388" 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="M5356,-3914.38C5218.96,-3826.86 5138.65,-3935.66 4994,-3861.38 4978.62,-3853.49 4981.83,-3842.27 4967,-3833.39"/>
<path fill="none" stroke="black" d="M4967,-3831.39C4871.43,-3774.17 4808,-3749.04 4808,-3637.65 4808,-3637.65 4808,-3637.65 4808,-3533.89 4808,-3386.54 4896.2,-3371.63 4952,-3235.26 4978.82,-3169.71 4957.5,-3139.96 5000,-3083.3 5196.82,-2820.91 5384.33,-2933.42 5666,-2765.35 5738.23,-2722.25 5819.95,-2708.45 5796,-2627.82"/>
<path fill="none" stroke="black" d="M5796,-2625.82C5788.62,-2599.78 5780.55,-2570.59 5774.12,-2547.17"/>
<polygon fill="#f96210" stroke="black" points="5777.49,-2546.23 5771.47,-2537.51 5770.74,-2548.08 5777.49,-2546.23"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge389" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4824,-3205.27C4940.99,-3049.87 4957.71,-2979.65 5133,-2895.33 5219.91,-2853.52 5259.03,-2898.86 5347,-2859.33 5384.48,-2842.49 5383.28,-2821.64 5419,-2801.35 5458.98,-2778.63 5480.14,-2794.13 5516,-2765.35 5643.14,-2663.29 5580.72,-2549.64 5715,-2457.17 5841.84,-2369.83 5980.12,-2520.53 6054,-2385.4"/>
<path fill="none" stroke="black" d="M6054,-2383.4C6076.44,-2341.21 6063.27,-2322.75 6054,-2275.87"/>
<path fill="none" stroke="black" d="M6054,-2273.87C6050.04,-2253.83 6046.92,-2231.45 6044.64,-2212.33"/>
<polygon fill="#f96210" stroke="black" points="6048.12,-2211.9 6043.5,-2202.36 6041.16,-2212.7 6048.12,-2211.9"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_telegram -->
<g id="edge390" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3701,-3831.39C3628.54,-3643.59 3508.49,-3586.35 3575,-3396.36 3622.24,-3261.41 3692.51,-3260.78 3771,-3141.28 3831.28,-3049.5 3804.54,-2993 3891,-2925.32"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge391" 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="M8377,-3831.39C8405.14,-3788.11 8431.97,-3636.91 8396,-3599.88 8348.14,-3550.6 7220.25,-3596.88 7160,-3563.88 6974.12,-3462.08 7032.66,-3323.27 7004,-3113.29"/>
<path fill="none" stroke="black" d="M7004,-3111.29C6986.04,-3008.35 6862.79,-2772.87 6838,-2671.36 6807.63,-2547.03 6804,-2513.39 6804,-2385.4 6804,-2385.4 6804,-2385.4 6804,-2273.87 6804,-2180.01 6751.47,-2155.15 6776,-2064.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge392" 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="M3161,-3737.41C3112.48,-3692.93 3395.2,-2641.45 3424,-2582.27 3453.86,-2520.92 3455.03,-2493.16 3513,-2457.17 3599.04,-2403.76 3655.95,-2480.53 3738,-2421.17 3767.81,-2399.61 3747.01,-2370.28 3776,-2347.63 3830.71,-2304.89 3875.5,-2357.06 3928,-2311.63 4054.08,-2202.54 4066,-2129.53 4066,-1962.8 4066,-1962.8 4066,-1962.8 4066,-1851.27 4066,-1718.1 6250.59,-1646.94 6624.02,-1635.75"/>
<polygon fill="#f96210" stroke="black" points="6624.14,-1639.25 6634.03,-1635.46 6623.93,-1632.26 6624.14,-1639.25"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge393" 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="M3701,-3914.38C3667.54,-3901.11 3714.78,-3866.65 3701,-3833.39"/>
<path fill="none" stroke="black" d="M3701,-3831.39C3659.56,-3731.36 3291.23,-3847.15 3218,-3767.4 3193.59,-3740.82 3180.7,-3825.75 3307,-3271.26 3392.99,-2893.77 3307.77,-2690.13 3617,-2457.17 3674.87,-2413.58 3706.39,-2441.28 3776,-2421.17 4150.98,-2312.87 4228.63,-2235.48 4604,-2128.56 5154.87,-1971.65 5297.47,-1944.09 5863,-1853.27"/>
<path fill="none" stroke="black" d="M5863,-1851.27C6101.07,-1790.62 6392.24,-1760.4 6522.42,-1749.12"/>
<polygon fill="#f96210" stroke="black" points="6522.97,-1752.59 6532.63,-1748.25 6522.37,-1745.61 6522.97,-1752.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge394" 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="M3701,-3831.39C3681.91,-3781.92 3772.51,-3792.25 3777,-3739.41"/>
<path fill="none" stroke="black" d="M3777,-3737.41C3778.3,-3722.08 3580.24,-3549.71 3587,-3535.89"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge395" 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="M3473,-3914.38C3461,-3909.2 3459.67,-3904.93 3449,-3897.38 3389.91,-3855.58 3383.66,-3829.12 3316,-3803.4 3181.39,-3752.23 3121.54,-3834.27 2994,-3767.4 2838.74,-3685.99 2823.64,-3621.15 2735,-3469.9 2631.96,-3294.08 2569.75,-3054.81 2548.38,-2963.16"/>
<polygon fill="#f96210" stroke="black" points="2551.75,-2962.19 2546.09,-2953.24 2544.93,-2963.77 2551.75,-2962.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge396" 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="M6586.51,-3997.04C6362.05,-3995.17 5461.11,-3983.52 5356,-3916.38"/>
<path fill="none" stroke="black" d="M5356,-3914.38C5203.75,-3817.14 5121.35,-3926.91 4953,-3861.38 4833.29,-3814.78 4770,-3766.11 4770,-3637.65 4770,-3637.65 4770,-3637.65 4770,-3533.89 4770,-3399.98 4941.67,-3091.68 5028,-2989.31 5068.38,-2941.44 5077.69,-2924.71 5133,-2895.33 5190.88,-2864.58 5214.67,-2882.44 5276,-2859.33 5328.82,-2839.43 5337.67,-2824.84 5389,-2801.35 5427.8,-2783.59 5447.16,-2794.84 5478,-2765.35 5574.08,-2673.48 5605.67,-2510.5 5615.64,-2431.24"/>
<polygon fill="#f96210" stroke="black" points="5619.14,-2431.43 5616.86,-2421.08 5612.19,-2430.6 5619.14,-2431.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge397" 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="M2322,-3432.13C2191.14,-3258.97 2323.89,-2666.84 2380,-2457.17 2388.54,-2425.25 2630.46,-1954.21 2646,-1925.03 2705.36,-1813.6 2927.87,-1556.91 2926,-1430.67"/>
<path fill="none" stroke="black" d="M2926,-1428.67C2924.15,-1408.25 2925.71,-1385.65 2928.1,-1366.46"/>
<polygon fill="#f96210" stroke="black" points="2931.57,-1366.86 2929.45,-1356.48 2924.64,-1365.92 2931.57,-1366.86"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge398" 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="M4542,-3432.13C4514.39,-3318.2 4574.39,-3288.97 4610,-3177.28 4623.54,-3134.81 4627.9,-3124.46 4645,-3083.3 4648.67,-3074.46 4925.86,-2463.55 4933,-2457.17 5078.77,-2326.9 5320.5,-2289.91 5427.81,-2279.66"/>
<polygon fill="#f96210" stroke="black" points="5428.44,-2283.12 5438.08,-2278.73 5427.8,-2276.15 5428.44,-2283.12"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge399" 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="M6687.52,-3996.4C7038.54,-3989.55 9103.89,-3947.99 9232,-3916.38"/>
<path fill="none" stroke="black" d="M9232,-3914.38C9244.69,-3911.25 9244.58,-3903.75 9256,-3897.38 9291.84,-3877.41 9304.94,-3880.94 9341,-3861.38 9381.52,-3839.41 9384.95,-3822.3 9427,-3803.4 9485.6,-3777.06 9507.21,-3790.91 9567,-3767.4 9648.43,-3735.38 9674.55,-3731.5 9740,-3673.42 9938.08,-3497.65 10296.26,-2920.88 10385,-2671.36 10417.12,-2581.06 10458.25,-2539.99 10410,-2457.17 10377.02,-2400.56 9952.5,-2201.16 9897,-2166.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge400" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5356,-3914.38C5325.66,-3895.01 5370.16,-3866.48 5356,-3833.39"/>
<path fill="none" stroke="black" d="M5356,-3831.39C5258.03,-3602.51 5231.41,-3491.25 5348,-3271.26 5375.45,-3219.48 5485.7,-3117.9 5533,-3083.3 5607.43,-3028.84 5629.79,-3016.21 5718,-2989.31 5843.92,-2950.92 5896.47,-3016.42 6012,-2953.31 6058.64,-2927.84 6278.58,-2643.4 6357.62,-2540"/>
<polygon fill="#f96210" stroke="black" points="6360.44,-2542.08 6363.73,-2532.01 6354.88,-2537.83 6360.44,-2542.08"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge401" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5356,-3831.39C5245.25,-3566.04 5857.96,-3400.96 5874,-3396.36 6192.12,-3305.11 6444,-3526.6 6601,-3235.26 6613.23,-3212.58 6604.31,-3202.84 6601,-3177.28 6580.61,-3019.61 6537.45,-2987.93 6510,-2831.34"/>
<path fill="none" stroke="black" d="M6510,-2829.34C6500.52,-2789.57 6492.6,-2774.35 6510,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge402" 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="M9289,-3737.41C9431.94,-3566.31 9166.07,-3252.01 9109,-2859.33 9099.26,-2792.35 9074.34,-2758.22 9119,-2707.36 9164.24,-2655.85 9207.76,-2702.19 9269,-2671.36 9275.15,-2668.27 9281.2,-2664.32 9286.88,-2660.06"/>
<polygon fill="#f96210" stroke="black" points="9289.26,-2662.64 9294.9,-2653.67 9284.9,-2657.17 9289.26,-2662.64"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge403" 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="M6687.59,-3997.51C6891.73,-3997.62 7674.66,-3993.83 8315,-3933.38 8421.51,-3923.33 8446.57,-3908.25 8553,-3897.38 8627.61,-3889.77 9159.72,-3894.52 9227,-3861.38 9241.7,-3854.14 9235.24,-3837.87 9251,-3833.39"/>
<path fill="none" stroke="black" d="M9251,-3831.39C9266.75,-3826.86 9262.26,-3813.71 9275,-3803.4 9300.97,-3782.37 9312.14,-3784.24 9341,-3767.4 9409.28,-3727.57 9442.92,-3735.38 9492,-3673.42 9523.91,-3633.14 9520.67,-3614.59 9529,-3563.88 9541.07,-3490.41 9542.75,-3469.53 9529,-3396.36 9498.25,-3232.72 9423.75,-3210.93 9393,-3047.3 9388.24,-3021.97 9392.22,-3015.07 9393,-2989.31 9396.45,-2875.73 9405.99,-2742.36 9411.31,-2673.74"/>
<polygon fill="#f96210" stroke="black" points="9414.8,-2673.94 9412.09,-2663.7 9407.82,-2673.4 9414.8,-2673.94"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge404" 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="M6687.86,-3997.18C6902.11,-3996.02 7752.11,-3988.04 8448,-3933.38 8579.68,-3923.04 8611.51,-3909.93 8743,-3897.38 8858.75,-3886.34 9161.55,-3914.47 9265,-3861.38 9294.76,-3846.11 9285.63,-3822.63 9313,-3803.4 9351.65,-3776.25 9372.21,-3791.22 9413,-3767.4 9468.24,-3735.14 9488.78,-3728.08 9522,-3673.42 9547.99,-3630.66 9542.18,-3613.58 9548,-3563.88 9563.19,-3434.08 9560.49,-3395.19 9519,-3271.26 9509.27,-3242.21 9397.74,-3048.51 9407,-3019.3"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge405" 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="M6687.77,-3997.27C6913.25,-3996.49 7846.54,-3989.81 8610,-3933.38 8675.59,-3928.54 8691.48,-3922.12 8757,-3916.38"/>
<path fill="none" stroke="black" d="M8757,-3914.38C8785.46,-3911.89 8790.84,-3902.24 8819,-3897.38 8925.28,-3879.04 9207.18,-3910.88 9303,-3861.38 9332.72,-3846.03 9323.16,-3821.95 9351,-3803.4 9396.63,-3773 9417.52,-3786.28 9469,-3767.4 9568.06,-3731.07 9605.58,-3740.52 9687,-3673.42 9771.53,-3603.75 9789.41,-3573.14 9826,-3469.9 9842.32,-3423.85 9833,-3409.16 9835,-3360.36 9842.07,-3187.99 9834.53,-3119.21 9721,-2989.31 9701.28,-2966.75 9678.46,-2979.55 9664,-2953.31 9651.56,-2930.74 9653.69,-2918.95 9664,-2895.33 9680.73,-2857 9723.92,-2872.17 9733,-2831.34"/>
<path fill="none" stroke="black" d="M9733,-2829.34C9740.66,-2788.48 9823.46,-2705.55 9872.03,-2659.84"/>
<polygon fill="#f96210" stroke="black" points="9874.6,-2662.22 9879.51,-2652.83 9869.82,-2657.11 9874.6,-2662.22"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge406" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6687.78,-3997.1C6922.09,-3995.57 7900.19,-3986.07 8201,-3933.38 8253.34,-3924.22 8262.66,-3906.56 8315,-3897.38 8410.73,-3880.6 9101.92,-3904.55 9189,-3861.38 9218.97,-3846.52 9211.18,-3824.68 9237,-3803.4 9262.78,-3782.15 9278.44,-3790.05 9303,-3767.4 9325.65,-3746.51 9317.77,-3729.65 9341,-3709.42 9369.18,-3684.87 9392.27,-3701.44 9417,-3673.42 9450.91,-3634.99 9444.9,-3614.48 9453,-3563.88 9464.77,-3490.36 9466.85,-3469.51 9453,-3396.36 9409.15,-3164.75 9213.79,-3121.86 9279,-2895.33 9306.29,-2800.54 9325.37,-2775.18 9397,-2707.36 9420.98,-2684.66 9445.23,-2699.82 9462,-2671.36 9482.1,-2637.25 9482.25,-2616.3 9462,-2582.27 9388.94,-2459.54 8939.08,-2412.36 8897,-2275.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_util -->
<g id="edge407" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5356,-3914.38C5293.12,-3819.89 5755.53,-3894.8 5864,-3861.38 5868.65,-3859.95 5873.37,-3858.08 5877.97,-3856"/>
<polygon fill="#f96210" stroke="black" points="5879.75,-3859.02 5887.18,-3851.47 5876.66,-3852.74 5879.75,-3859.02"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge408" 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="M6586.24,-3996.84C6097.82,-3991.71 2246.95,-3950.71 2131,-3933.38 2074.24,-3924.9 2062.52,-3911.92 2007,-3897.38 1939,-3879.58 1912.34,-3899.05 1853,-3861.38 1745.95,-3793.44 1751.73,-3739.34 1676,-3637.65"/>
<path fill="none" stroke="black" d="M1676,-3635.65C1654.17,-3599.66 1575.27,-3525.46 1538,-3505.9 1470.77,-3470.6 1438.48,-3504.69 1371,-3469.9 1219.65,-3391.86 890.42,-3100.63 805,-2953.31 603.71,-2606.18 646,-2465.84 646,-2064.57 646,-2064.57 646,-2064.57 646,-1741.73 646,-1537.83 600.82,-1476.89 665,-1283.36 677.16,-1246.7 707.89,-1249.72 714,-1211.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge409" 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="M2170,-3635.65C2114.67,-3550.46 1907.88,-2865.34 1890,-2765.35 1882.64,-2724.19 1887.72,-2713.14 1886,-2671.36 1874.93,-2401.69 1862,-2334.46 1862,-2064.57 1862,-2064.57 1862,-2064.57 1862,-1632.19 1862,-1570.54 1875.91,-1553.11 1911,-1502.43 1935.5,-1467.05 1967.81,-1472.91 1976,-1430.67"/>
<path fill="none" stroke="black" d="M1976,-1428.67C1987.77,-1331.43 1967.25,-1305.06 1938,-1211.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge410" 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="M1676,-3635.65C1642.36,-3581.3 1664,-3545.71 1614,-3505.9 1556.64,-3460.22 1516.34,-3506.83 1453,-3469.9 1348.26,-3408.82 1182.37,-3111.04 1143,-3047.3 1070.29,-2929.57 1050.41,-2897.98 1011,-2765.35 943.71,-2538.92 895.03,-2206.16 885,-2092.56 882.73,-2066.89 883.25,-2060.28 885,-2034.57 891.57,-1938.26 966.62,-1263.24 1003,-1173.82 1040.76,-1081 1071.43,-1068.28 1137,-992.51"/>
<path fill="none" stroke="black" d="M1137,-990.51C1160.82,-956.23 1196.45,-924.64 1223.59,-903.23"/>
<polygon fill="#f96210" stroke="black" points="1225.96,-905.82 1231.71,-896.92 1221.67,-900.29 1225.96,-905.82"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node143" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="1582" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1582" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1582" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1582" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1582" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1582" y="-849.69" 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="edge411" 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="M1752,-3314.81C1685.21,-3259.7 1677.62,-3236.02 1614,-3177.28 1548.69,-3116.98 1514.59,-3118.95 1462,-3047.3 1427.13,-2999.79 1410,-2984.25 1410,-2925.32 1410,-2925.32 1410,-2925.32 1410,-2829.34 1410,-2643.95 1469.89,-2604.72 1496,-2421.17 1553.67,-2015.78 1526.13,-1910.06 1565,-1502.43 1586.66,-1275.32 1634.67,-1220.41 1624,-992.51"/>
<path fill="none" stroke="black" d="M1624,-990.51C1619.52,-967.77 1611.26,-943.54 1603.25,-923.18"/>
<polygon fill="#f96210" stroke="black" points="1606.46,-921.79 1599.47,-913.82 1599.97,-924.41 1606.46,-921.79"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node144" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="1910" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1910" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1910" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1910" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1910" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1910" y="-849.69" 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="edge412" 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="M3397,-3914.38C3368.49,-3912.43 3362.88,-3903.64 3335,-3897.38 2939.17,-3808.54 2777.91,-3957.75 2436,-3739.41"/>
<path fill="none" stroke="black" d="M2436,-3737.41C2407.51,-3713.02 2401.82,-3704.61 2381,-3673.42 2337.73,-3608.61 2254.14,-3431.79 2223,-3360.36 2163.7,-3224.34 2146.13,-3190.42 2107,-3047.3 2095.8,-3006.35 2096.03,-2995.33 2090,-2953.31 2056.39,-2719 2071.24,-2657.86 2068,-2421.17 2067.55,-2388.49 2065.25,-2380.2 2068,-2347.63 2076.36,-2248.67 2209.64,-1565.4 2218,-1466.43 2235.93,-1254.21 2301.46,-1139.15 2147,-992.51"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node145" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="1816" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="1816" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1816" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1816" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1816" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="1816" y="-849.69" 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="edge413" 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="M2398,-3831.39C2371.31,-3820.54 2191.26,-3387.28 2181,-3360.36 2144.73,-3265.22 2141,-3239.45 2114,-3141.28 1993.82,-2704.31 1980.54,-2581.52 1995,-2128.56 2001,-1940.45 2000.5,-1892.93 2022,-1705.96 2023.85,-1689.84 2026.47,-1686.11 2028,-1669.96 2045.71,-1482.92 2035.78,-1435.22 2038,-1247.36 2039.55,-1116.49 2092.86,-1051.74 2005,-954.74 1961.29,-906.48 1920.21,-949.83 1863,-918.74 1859.1,-916.62 1855.28,-914.1 1851.6,-911.37"/>
<polygon fill="#f96210" stroke="black" points="1853.78,-908.64 1843.8,-905.09 1849.39,-914.09 1853.78,-908.64"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge414" 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="M6586.48,-3996.91C6192.77,-3993.21 3627.16,-3967.17 3473,-3916.38"/>
<path fill="none" stroke="black" d="M3473,-3914.38C3460.58,-3910.29 3460.82,-3902.95 3449,-3897.38 3393.6,-3871.28 3365.57,-3897.34 3316,-3861.38 3291.06,-3843.29 3304.38,-3819.31 3278,-3803.4 3205.55,-3759.71 2979.9,-3792.14 2899,-3767.4 2693.31,-3704.5 2575.28,-3725.65 2474,-3535.89"/>
<path fill="none" stroke="black" d="M2474,-3533.89C2453.88,-3506.15 2443.34,-3501.86 2431,-3469.9 2413.28,-3424 2421.71,-3409.1 2415,-3360.36 2372.91,-3054.48 2345.82,-2979.49 2326,-2671.36 2318.19,-2550.02 2366.93,-1515.22 2432,-1430.67"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge415" 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="M2436,-3737.41C2351.19,-3671.15 2408.76,-3604.22 2365,-3505.9 2349.88,-3471.92 2346.36,-3462.22 2322,-3434.13"/>
<path fill="none" stroke="black" d="M2322,-3432.13C2301.7,-3397.44 2286.83,-3395.31 2267,-3360.36 2241.33,-3315.12 2094,-2977.34 2094,-2925.32 2094,-2925.32 2094,-2925.32 2094,-2829.34 2094,-2594.65 2159.03,-2543.06 2198,-2311.63 2206.2,-2262.93 2295.1,-1474.43 2318,-1430.67"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node149" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="1718" cy="-874.19" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="1718" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1718" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1718" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="1718" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="1718" y="-849.69" 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="edge416" 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="M3397,-3914.38C3368.47,-3912.76 3363.22,-3901.86 3335,-3897.38 2997.51,-3843.88 2906.81,-3897.36 2567,-3861.38 2491.29,-3853.37 2467.71,-3864 2398,-3833.39"/>
<path fill="none" stroke="black" d="M2398,-3831.39C2383,-3824.8 2385.78,-3814.79 2374,-3803.4 2355.58,-3785.6 2348.92,-3783.5 2329,-3767.4 2258.05,-3710.08 2225.15,-3710.3 2170,-3637.65"/>
<path fill="none" stroke="black" d="M2170,-3635.65C2141.99,-3606.07 2134.66,-3598.37 2113,-3563.88 2069.02,-3493.84 2083.1,-3461.38 2032,-3396.36 1894.22,-3221.05 1835.31,-3190.84 1640,-3083.3 1600.81,-3061.72 1576.1,-3080.39 1546,-3047.3 1478.98,-2973.6 1486,-2930.96 1486,-2831.34 1486,-2831.34 1486,-2831.34 1486,-2735.36 1486,-2656.28 1594.45,-2112.11 1610,-2034.57 1670.68,-1731.92 1728.02,-1663.69 1762,-1356.9 1779.27,-1200.98 1747.91,-1016.12 1729.69,-927.58"/>
<polygon fill="#f96210" stroke="black" points="1733.12,-926.85 1727.65,-917.78 1726.26,-928.28 1733.12,-926.85"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node150" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="2192" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="2192" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2192" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="2192" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="2192" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="2192" y="-849.69" 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="edge417" 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="M2474,-3533.89C2356.41,-3280.09 2432,-2555.58 2432,-2275.87 2432,-2275.87 2432,-2275.87 2432,-2164.33 2432,-1791.59 2577.18,-1717.15 2761,-1392.9 2834.95,-1262.45 2892.32,-1246.66 2932,-1102.05"/>
<path fill="none" stroke="black" d="M2932,-1100.05C2931.89,-1052.25 2959.06,-1031.91 2932,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge418" 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="M6586.28,-3997.22C6188.23,-3995.86 3577.77,-3985 3421,-3933.38 3408.58,-3929.3 3410.05,-3917.12 3397,-3916.38"/>
<path fill="none" stroke="black" d="M3397,-3914.38C3368.47,-3912.76 3363.24,-3901.73 3335,-3897.38 3125.98,-3865.21 2585.22,-3926.48 2384,-3861.38 2312.34,-3838.2 2301.45,-3814.89 2243,-3767.4 2214.47,-3744.22 2210.72,-3734.67 2184,-3709.42 1995.44,-3531.21 1972.25,-3453.93 1752,-3316.81"/>
<path fill="none" stroke="black" d="M1752,-3314.81C1696.38,-3271.01 1672.99,-3274.4 1614,-3235.26 1556.38,-3197.03 1541.63,-3187.28 1490,-3141.28 1446.82,-3102.81 1437.19,-3091.58 1400,-3047.3 1366.68,-3007.61 1347.14,-3002.56 1331,-2953.31 1216.68,-2604.44 1422.52,-2492.85 1377,-2128.56 1365.64,-2037.63 1329.49,-2015.51 1344,-1925.03 1362.91,-1807.18 1398.2,-1785.53 1428,-1669.96 1471.66,-1500.64 1462.38,-1453.9 1501,-1283.36 1508.29,-1251.18 1513.74,-1243.98 1520,-1211.59"/>
<path fill="none" stroke="black" d="M1520,-1209.59C1524.1,-1161.97 1516.04,-1149.68 1520,-1102.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge419" 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="M6586.29,-3997.24C6283.72,-3996.29 4685.65,-3988.72 3383,-3933.38 2892.62,-3912.55 2748.12,-4012.07 2281,-3861.38 2159.77,-3822.28 2148.21,-3773.29 2038,-3709.42 1979.55,-3675.54 1960.24,-3675.09 1904,-3637.65"/>
<path fill="none" stroke="black" d="M1904,-3635.65C1885.26,-3620.9 1883.2,-3614.03 1864,-3599.88 1838.96,-3581.43 1826.42,-3585.43 1804,-3563.88 1781.78,-3542.53 1787.41,-3528.06 1766,-3505.9 1746.72,-3485.94 1735.94,-3488.09 1715,-3469.9 1664.67,-3426.16 1452.63,-3188.31 1414,-3141.28 1380.95,-3101.03 1368.46,-3093.28 1344,-3047.3 1284.15,-2934.8 1295.61,-2892.72 1292,-2765.35 1286.71,-2578.64 1266.91,-2111.72 1273,-1925.03 1277.22,-1795.56 1292,-1763.73 1292,-1634.19 1292,-1634.19 1292,-1634.19 1292,-1428.67 1292,-1416.55 1285.89,-1004.22 1289,-992.51"/>
</g>
<!-- ahriman_models_action -->
<g id="node111" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e76822" stroke="black" cx="2042" cy="-2165.33" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2042" y="-2173.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="2042" y="-2162.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="2042" y="-2151.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge420" 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="M2011.41,-2147.62C1928.06,-2102.96 1688.74,-1980.42 1474,-1925.03 1327.72,-1887.31 1281.8,-1928.6 1136,-1889.03 1059.3,-1868.22 1047.84,-1842.24 973,-1815.5 914.93,-1794.75 886.65,-1818.64 839,-1779.5 777.3,-1728.82 694.74,-1517.55 665,-1356.9 599.45,-1002.74 676,-906.75 676,-546.57 676,-546.57 676,-546.57 676,-442.81 676,-423.91 540.11,-132.47 557,-123.97"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge421" 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="M2068.91,-2144.43C2104.63,-2118.29 2169.98,-2071.37 2228,-2034.57 2585.49,-1807.89 2697.49,-1788.63 3054,-1560.42 3233.07,-1445.79 3268.21,-1402.96 3444,-1283.36 3689.55,-1116.29 3801.84,-1136.32 4004,-918.74 4019.04,-902.55 4008.09,-884.78 4028,-875.19"/>
<path fill="none" stroke="black" d="M4028,-873.19C4252.83,-693.99 4425.12,-944.3 4670,-793.64 4686.31,-783.61 4675.19,-761.46 4694,-757.87"/>
<path fill="none" stroke="black" d="M4694,-755.87C5002.44,-697.08 7219.13,-777.2 7519,-684.1 7523.4,-682.74 7527.79,-680.91 7532.05,-678.8"/>
<polygon fill="#e76822" stroke="black" points="7534.07,-681.68 7541.15,-673.8 7530.7,-675.55 7534.07,-681.68"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge422" 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="M2003.95,-2162.52C1906.68,-2156.09 1645.1,-2127.11 1481,-1998.57 1451.19,-1975.23 1469.85,-1945.51 1438,-1925.03 1371.11,-1882.04 1159.48,-1906.89 1082,-1889.03 944.5,-1857.34 895.63,-1865.82 784,-1779.5 737.13,-1743.25 739.4,-1720.2 708,-1669.96 653.05,-1582.04 637.12,-1560.72 594,-1466.43 564.94,-1402.9 380,-945.06 380,-875.19"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_users -->
<g id="edge423" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2079.14,-2157.61C2300.07,-2117.68 3440.62,-1911.53 3707.22,-1863.35"/>
<polygon fill="#e76822" stroke="black" points="3708.22,-1866.72 3717.43,-1861.5 3706.97,-1859.84 3708.22,-1866.72"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search -->
<g id="edge424" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4272.53,-3629.71C4345.12,-3621.3 4484.75,-3606.23 4604,-3599.88 4917.25,-3583.2 7116.09,-3605.6 7427,-3563.88 7939.9,-3495.05 8052.19,-3397.73 8554,-3271.26 8895.17,-3185.28 8975.42,-3137.87 9323,-3083.3 9433.27,-3065.98 9722.88,-3094.56 9824,-3047.3 9856.46,-3032.12 9849.45,-3008.02 9880,-2989.31 9926.76,-2960.68 9954.33,-2986.47 9998,-2953.31 10049.17,-2914.46 10128.1,-2802.38 10237,-2546.27 10471.6,-1994.54 10517.48,-1841.05 10601,-1247.36 10607.8,-1199.05 10604.91,-1186.5 10608,-1137.82 10610.68,-1095.6 10620.57,-798.6 10632,-757.87"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge425" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4227.67,-3607.5C4230,-3587.17 4231.01,-3559.28 4224,-3535.89"/>
<path fill="none" stroke="black" d="M4224,-3533.89C4195.01,-3437.21 4088.44,-3369.68 4026.82,-3337.74"/>
<polygon fill="#d14d05" stroke="black" points="4028.2,-3334.52 4017.7,-3333.11 4025.03,-3340.76 4028.2,-3334.52"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge426" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4252.19,-3612.65C4272.22,-3594.43 4296.18,-3566.94 4302,-3535.89"/>
<path fill="none" stroke="black" d="M4302,-3533.89C4310.16,-3490.31 4302.98,-3478.45 4302,-3434.13"/>
<path fill="none" stroke="black" d="M4302,-3432.13C4301.49,-3408.84 4308.5,-3384.17 4316.63,-3363.65"/>
<polygon fill="#d14d05" stroke="black" points="4319.94,-3364.81 4320.55,-3354.24 4313.48,-3362.12 4319.94,-3364.81"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge427" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4225,-3432.13C4220.7,-3412.21 4220.14,-3389.9 4221.02,-3370.26"/>
<polygon fill="#d14d05" stroke="black" points="4224.51,-3370.44 4221.6,-3360.25 4217.52,-3370.03 4224.51,-3370.44"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge428" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4224,-3533.89C4211.26,-3491.42 4234.35,-3477.47 4225,-3434.13"/>
<path fill="none" stroke="black" d="M4225,-3432.13C4222.72,-3421.56 4182.24,-3381.27 4150.82,-3351.27"/>
<polygon fill="#d14d05" stroke="black" points="4153.12,-3348.63 4143.46,-3344.28 4148.29,-3353.7 4153.12,-3348.63"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge429" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4272.53,-3629.71C4345.12,-3621.3 4484.75,-3606.24 4604,-3599.88 4681.12,-3595.77 7323.67,-3612.09 7384,-3563.88 7544.87,-3435.31 7492,-3319.22 7492,-3113.29 7492,-3113.29 7492,-3113.29 7492,-3017.3 7492,-2880.85 7576.31,-2735.92 7621.75,-2667.71"/>
<polygon fill="#d14d05" stroke="black" points="7624.68,-2669.63 7627.36,-2659.38 7618.87,-2665.72 7624.68,-2669.63"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search -->
<g id="edge430" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4184.52,-3617.66C4095.06,-3576.14 3865.74,-3471.46 3669,-3396.36 3535.14,-3345.26 2532.25,-3075.85 2458,-2953.31 2342.35,-2762.47 2484.83,-2674.61 2535,-2457.17 2553.77,-2375.84 2584,-2359.34 2584,-2275.87 2584,-2275.87 2584,-2275.87 2584,-2164.33 2584,-1908.04 2424.05,-1845.59 2484,-1596.42 2494.97,-1550.82 2502.33,-1538.76 2532,-1502.43 2564.36,-1462.81 2604.01,-1478.56 2622,-1430.67"/>
<path fill="none" stroke="black" d="M2622,-1428.67C2635.72,-1382.88 2602.09,-1364.58 2622,-1321.13"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node113" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db6b2f" stroke="black" cx="1211" cy="-2274.87" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="1211" y="-2283.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="1211" y="-2272.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="1211" y="-2261.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">auth_settings</text>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge431" 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="M1208.31,-2245.77C1206.86,-2223.94 1206.23,-2192.97 1211,-2166.33"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge432" 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="M1226.5,-2247.08C1258.18,-2192.32 1330.5,-2067.35 1367.8,-2002.89"/>
<polygon fill="#db6b2f" stroke="black" points="1370.84,-2004.62 1372.82,-1994.21 1364.79,-2001.12 1370.84,-2004.62"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge433" 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="M1200.17,-2246.26C1178.87,-2191.95 1131.39,-2070.88 1105.91,-2005.93"/>
<polygon fill="#db6b2f" stroke="black" points="1109.08,-2004.42 1102.17,-1996.39 1102.57,-2006.98 1109.08,-2004.42"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge434" 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="M4354.53,-2919.36C4234.13,-2909.48 3911.76,-2882.89 3643,-2859.33 3043.59,-2806.78 1461.41,-2769.81 971,-2421.17 885.83,-2360.62 456,-1738.69 456,-1634.19 456,-1634.19 456,-1634.19 456,-1319.13 456,-1276.04 505.75,-585.6 524,-546.57"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge435" 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="M4356.49,-2915.2C4271.07,-2900.09 4096.98,-2868.41 4087,-2859.33 3947.03,-2732.02 4028,-2275.02 4028,-2166.33 4028,-2166.33 4028,-2166.33 4028,-1851.27 4028,-1785.81 4026.79,-1766.36 4052,-1705.96 4067.17,-1669.6 4100.9,-1673.46 4104,-1634.19"/>
<path fill="none" stroke="black" d="M4104,-1632.19C4109.47,-1522.46 4070.92,-1498.88 4042,-1392.9 4019.93,-1312.02 3976.07,-1294.25 3990,-1211.59"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge436" 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="M4451.93,-2922.4C4691.6,-2917.8 5765.73,-2896.01 6645,-2859.33 7406.37,-2827.57 7597.98,-2833.03 8357,-2765.35 8526.5,-2750.23 8955.44,-2724.83 9117,-2671.36 9193.17,-2646.16 9197.31,-2605.83 9274,-2582.27 9465.37,-2523.47 9525.83,-2580.96 9723,-2546.27 10291.36,-2446.28 10459.75,-2462 10975,-2202.1 11030.58,-2174.06 11085.5,-2126.85 11118.59,-2095.7"/>
<polygon fill="#e55405" stroke="black" points="11121.29,-2097.97 11126.12,-2088.54 11116.46,-2092.9 11121.29,-2097.97"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge437" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4429.41,-2899.93C4440.34,-2888.75 4452.07,-2874.5 4459,-2859.33 4481.75,-2809.55 4483.74,-2791.54 4476,-2737.36"/>
<path fill="none" stroke="black" d="M4476,-2735.36C4482.28,-2682.64 4406.85,-2678.06 4424,-2627.82"/>
<path fill="none" stroke="black" d="M4424,-2625.82C4431.14,-2604.9 4429.81,-2594.81 4448,-2582.27 4542.23,-2517.3 4594.63,-2583.09 4703,-2546.27 4709.55,-2544.05 4716.17,-2541.26 4722.64,-2538.17"/>
<polygon fill="#e55405" stroke="black" points="4724.63,-2541.09 4731.99,-2533.47 4721.49,-2534.84 4724.63,-2541.09"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge438" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4476,-2735.36C4472.24,-2708.99 4488.08,-2685.37 4507.33,-2667.02"/>
<polygon fill="#e55405" stroke="black" points="4509.75,-2669.55 4514.83,-2660.26 4505.06,-2664.35 4509.75,-2669.55"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge439" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4452.13,-2923.41C4729.83,-2923.67 6105.43,-2921.72 6524,-2859.33 6621.04,-2844.87 6640.2,-2817.33 6737,-2801.35 6887.84,-2776.44 7286.63,-2808.4 7422,-2737.36"/>
<path fill="none" stroke="black" d="M7422,-2735.36C7451.75,-2719.89 7477.8,-2692.49 7496.25,-2669.22"/>
<polygon fill="#e55405" stroke="black" points="7499.11,-2671.24 7502.46,-2661.19 7493.58,-2666.96 7499.11,-2671.24"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge440" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4452.14,-2923.19C4718.23,-2922.26 5988.78,-2914.92 6377,-2859.33 6545.05,-2835.27 7045.28,-2694.04 7217.2,-2644.77"/>
<polygon fill="#e55405" stroke="black" points="7218.19,-2648.12 7226.84,-2642 7216.26,-2641.4 7218.19,-2648.12"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge441" 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="M5015,-2829.34C5057.49,-2820.65 5363.13,-2788.18 5400,-2765.35 5443.83,-2738.2 5452.12,-2720.41 5468,-2671.36 5480.2,-2633.69 5474.23,-2621.37 5468,-2582.27 5462.15,-2545.54 5428.46,-2537.37 5442,-2502.72"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge442" 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="M4356.76,-2915.02C4322.19,-2909.01 4273.74,-2900.98 4231,-2895.33 4152.61,-2884.98 3945.76,-2898.37 3877,-2859.33 3803.81,-2817.77 3814.95,-2774.36 3764,-2707.36 3751.73,-2691.23 3742.58,-2690.54 3736,-2671.36 3723.15,-2633.91 3732.2,-2621.69 3736,-2582.27 3737.56,-2566.04 3741.44,-2562.49 3743,-2546.27 3746.8,-2506.85 3769.67,-2486.44 3743,-2457.17 3684.82,-2393.33 3434.22,-2457.81 3356,-2421.17 3233.3,-2363.7 3215.41,-2317.24 3144,-2202.1 3065.63,-2075.73 3052.65,-2035.32 3026,-1889.03 3014.37,-1825.21 3029.22,-1807.7 3040,-1743.73"/>
<path fill="none" stroke="black" d="M3040,-1741.73C3043.39,-1648.77 3090.46,-1610.57 3040,-1532.43"/>
<path fill="none" stroke="black" d="M3040,-1530.43C3001.29,-1475.34 2927.1,-1497.98 2926,-1430.67"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge443" 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="M4448.86,-2914.02C4610.15,-2881.28 5142.45,-2772.91 5159,-2765.35 5197.64,-2747.68 5197.17,-2726.71 5235,-2707.36 5284.2,-2682.2 5319.51,-2714.54 5354,-2671.36 5400.9,-2612.66 5359.15,-2577.55 5366,-2502.72"/>
<path fill="none" stroke="black" d="M5366,-2500.72C5372.39,-2440.16 5437.44,-2446.25 5440,-2385.4"/>
<path fill="none" stroke="black" d="M5440,-2383.4C5440.96,-2360.52 5449.44,-2336.63 5458.53,-2317.2"/>
<polygon fill="#e55405" stroke="black" points="5461.75,-2318.56 5463.01,-2308.04 5455.47,-2315.48 5461.75,-2318.56"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge444" 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="M4355.67,-2916.61C4287.42,-2906.51 4157.63,-2885.75 4049,-2859.33 4033.86,-2855.65 4017.54,-2850.88 4002.95,-2846.33"/>
<polygon fill="#e55405" stroke="black" points="4003.75,-2842.92 3993.16,-2843.23 4001.64,-2849.59 4003.75,-2842.92"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node116" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bf5921" stroke="black" cx="5301" cy="-2736.36" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="5301" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5301" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5301" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_internal_status -->
<g id="edge445" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4450.91,-2917.86C4554.46,-2905.68 4806.57,-2873.96 5015,-2831.34"/>
<path fill="none" stroke="black" d="M5015,-2829.34C5059.47,-2820.25 5175.69,-2780.99 5245.53,-2756.8"/>
<polygon fill="#e55405" stroke="black" points="5246.76,-2760.07 5255.06,-2753.49 5244.47,-2753.46 5246.76,-2760.07"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge446" 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="M4354.51,-2920.55C4232.21,-2913.17 3913.76,-2891.39 3813,-2859.33 3431.51,-2737.96 3347.89,-2659.2 3026,-2421.17 2913.01,-2337.62 2883.94,-2313.29 2798,-2202.1 2534.59,-1861.27 2322.42,-1745.89 2394,-1321.13"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge447" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4356.37,-2915.09C4321.83,-2909.15 4273.56,-2901.18 4231,-2895.33 4159.89,-2885.56 3966.39,-2903.74 3910,-2859.33 3835.31,-2800.51 3838.75,-2515.92 3764,-2457.17 3706.52,-2412 3505.66,-2446.29 3437,-2421.17 3396.01,-2406.18 3303.38,-2343.9 3274,-2311.63 3248.95,-2284.13 3258.98,-2265.67 3234,-2238.1 3214.88,-2216.99 3196.28,-2226.12 3181,-2202.1 2959.11,-1853.15 3170.17,-1673.82 3034,-1283.36 3003.55,-1196.05 2902.17,-1189.56 2932,-1102.05"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge448" 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="M3994.4,-2819.6C4020.07,-2813.19 4055.39,-2805.28 4087,-2801.35 4560.07,-2742.57 4685.39,-2819.62 5159,-2765.35 5185.88,-2762.27 5215.26,-2756.83 5240.3,-2751.56"/>
<polygon fill="#a35428" stroke="black" points="5241.33,-2754.91 5250.38,-2749.39 5239.86,-2748.07 5241.33,-2754.91"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge449" 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="M3951.49,-2801.71C3932.08,-2720.16 3874.6,-2484.53 3852,-2457.17 3783.2,-2373.88 3735.96,-2386.1 3635,-2347.63 3576.97,-2325.53 3549,-2349.78 3500,-2311.63 3470.47,-2288.65 3485.75,-2264.27 3459,-2238.1 3434.56,-2214.18 3415.73,-2225.72 3391,-2202.1 3315.07,-2129.57 3308.85,-2096.52 3271,-1998.57 3189.83,-1788.5 3227.92,-1719.53 3168,-1502.43 3140.58,-1403.09 3134.67,-1377.17 3092,-1283.36 3037.92,-1164.45 3002.4,-1146.1 2946,-1028.28 2938.63,-1012.88 2940.66,-1007.22 2932,-992.51"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge450" 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="M5416,-2625.82C5435.54,-2573.43 5421.65,-2554.8 5442,-2502.72"/>
<path fill="none" stroke="black" d="M5442,-2500.72C5449.69,-2481.05 5446.16,-2472.2 5461,-2457.17 5491.7,-2426.09 5538.29,-2407.24 5573.11,-2396.72"/>
<polygon fill="#bf5921" stroke="black" points="5574.42,-2399.98 5583.05,-2393.84 5572.48,-2393.26 5574.42,-2399.98"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge451" 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="M5338.56,-2714.41C5356.27,-2703.26 5376.79,-2688.34 5392,-2671.36 5406.75,-2654.91 5408.28,-2648.52 5416,-2627.82"/>
<path fill="none" stroke="black" d="M5416,-2625.82C5436.64,-2570.49 5360.62,-2561.53 5366,-2502.72"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge452" 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="M5253.98,-2720.15C5240.18,-2715.85 5225.03,-2711.27 5211,-2707.36 5146.62,-2689.43 5110.67,-2720.16 5065,-2671.36 4998.93,-2600.78 5097.63,-2523.2 5027,-2457.17 4808.19,-2252.63 3976.42,-2388.8 3687,-2311.63 3657.7,-2303.82 3457.4,-2224.53 3437,-2202.1 3372.93,-2131.64 3398.41,-2089.47 3370,-1998.57 3281.27,-1714.69 3236.75,-1648.86 3180,-1356.9 3167.62,-1293.21 3169.83,-1276.35 3166,-1211.59"/>
<path fill="none" stroke="black" d="M3166,-1209.59C3150.22,-1060.79 3087.18,-1004.31 2946,-954.74 2797.57,-902.62 2383.95,-979.87 2239,-918.74 2234.85,-916.99 2230.84,-914.71 2227.03,-912.1"/>
<polygon fill="#bf5921" stroke="black" points="2229.08,-909.26 2219.02,-905.96 2224.83,-914.82 2229.08,-909.26"/>
</g>
<!-- ahriman_models_migration -->
<g id="node117" class="node">
<title>ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="2694" cy="-2736.36" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="2694" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="2694" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="2694" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">migration</text>
</g>
<!-- ahriman_models_migration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge453" class="edge">
<title>ahriman_models_migration&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2690.58,-2707.47C2688.06,-2673.2 2689.54,-2615.53 2722,-2582.27 2776.86,-2526.07 2834.05,-2595.79 2895,-2546.27 2911.39,-2532.95 2913.15,-2523.82 2914,-2502.72"/>
<path fill="none" stroke="black" d="M2914,-2500.72C2914.84,-2470.62 2897.18,-2441.67 2879.39,-2420.3"/>
<polygon fill="#c27347" stroke="black" points="2881.81,-2417.75 2872.61,-2412.5 2876.53,-2422.34 2881.81,-2417.75"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_data -->
<g id="edge454" class="edge">
<title>ahriman_models_migration_result&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2024,-3737.41C2061.75,-3448.32 2424.91,-2772.32 2646,-2582.27 2688.74,-2545.53 2750.62,-2524.36 2793.79,-2513.23"/>
<polygon fill="#bc602f" stroke="black" points="2794.66,-2516.62 2803.52,-2510.81 2792.97,-2509.83 2794.66,-2516.62"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations -->
<g id="edge455" class="edge">
<title>ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2005.75,-3803.93C2013.19,-3786.01 2021.57,-3761.86 2024,-3739.41"/>
<path fill="none" stroke="black" d="M2024,-3737.41C2027.21,-3707.79 2008.5,-3702.87 2004,-3673.42 1999.07,-3641.11 1997.38,-3631.89 2004,-3599.88 2061.36,-3322.55 2526.12,-2590.42 2532,-2582.27 2576,-2521.26 2583.49,-2499.01 2646,-2457.17 2690.87,-2427.15 2749.85,-2407.88 2791.74,-2396.95"/>
<polygon fill="#bc602f" stroke="black" points="2792.64,-2400.34 2801.47,-2394.48 2790.91,-2393.55 2792.64,-2400.34"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge456" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6368,-2920.13C6438.25,-2914.35 6593.2,-2902.1 6724,-2895.33 7216.93,-2869.84 7344.52,-2922.9 7834,-2859.33 8018.96,-2835.31 8066.65,-2826.07 8243,-2765.35 8300.52,-2745.54 8308.09,-2722.56 8367,-2707.36 8596.9,-2648.07 8670.39,-2731.79 8900,-2671.36 8905.59,-2669.89 9646.44,-2316.18 9650,-2311.63 9758.33,-2173.49 9668.27,-2089 9731,-1925.03 9803.02,-1736.78 9895.95,-1724.2 9958,-1532.43"/>
<path fill="none" stroke="black" d="M9958,-1530.43C9992.15,-1391.3 10029.94,-1226.07 10047.71,-1147.68"/>
<polygon fill="#953703" stroke="black" points="10051.18,-1148.18 10049.98,-1137.66 10044.35,-1146.64 10051.18,-1148.18"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge457" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6368.14,-2920.67C6526.34,-2909.63 7124.54,-2867.51 7164,-2859.33 7241.34,-2843.29 7254.63,-2817.27 7332,-2801.35 7545.45,-2757.43 7608.08,-2811.77 7821,-2765.35 7893.27,-2749.59 7904.53,-2722.16 7977,-2707.36 8060.7,-2690.28 8669.34,-2711.03 8745,-2671.36 8789.12,-2648.24 8782.73,-2621.83 8813,-2582.27 8974.32,-2371.4 9350.43,-1820.06 9540,-1634.19"/>
<path fill="none" stroke="black" d="M9540,-1632.19C9595.46,-1573.42 9665.93,-1608.91 9692,-1532.43"/>
<path fill="none" stroke="black" d="M9692,-1530.43C9723.93,-1436.75 9751.55,-1418.72 9768,-1321.13"/>
<path fill="none" stroke="black" d="M9768,-1319.13C9773.01,-1254.19 9755.3,-1230.71 9787,-1173.82 9794.79,-1159.83 9806.5,-1147.5 9818.85,-1137.17"/>
<polygon fill="#953703" stroke="black" points="9821.37,-1139.64 9827.02,-1130.68 9817.01,-1134.16 9821.37,-1139.64"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge458" 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="M4092,-2735.36C4075.2,-2669.13 4043.62,-2641.31 4078,-2582.27 4216.87,-2343.81 4618,-2551.81 4618,-2275.87 4618,-2275.87 4618,-2275.87 4618,-1209.59 4618,-1107.37 4677.01,-1093.31 4694,-992.51"/>
<path fill="none" stroke="black" d="M4694,-990.51C4698.96,-939.5 4684.2,-925.5 4694,-875.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge459" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6368,-2920.08C6438.25,-2914.21 6593.18,-2901.82 6724,-2895.33 6908.02,-2886.2 8212.04,-2904.83 8381,-2831.34"/>
<path fill="none" stroke="black" d="M8381,-2829.34C8385.02,-2827.59 8477.11,-2709.37 8481,-2707.36 8585.13,-2653.66 8897.96,-2714.23 9007,-2671.36 9065.55,-2648.35 9058.5,-2605.42 9117,-2582.27 9320.86,-2501.57 9407.94,-2633.7 9609,-2546.27 9675.53,-2517.34 9792.12,-2369.41 9836,-2311.63 9871.68,-2264.65 9885.2,-2255.16 9911,-2202.1 10004.59,-2009.62 10134.29,-1487.05 10200,-1283.36 10271.68,-1061.17 10360.3,-796.3 10395.04,-692.83"/>
<polygon fill="#953703" stroke="black" points="10398.46,-693.63 10398.33,-683.04 10391.82,-691.4 10398.46,-693.63"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge460" 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="M4101,-2829.34C4063.96,-2811.59 4106.12,-2775.93 4092,-2737.36"/>
<path fill="none" stroke="black" d="M4092,-2735.36C4079.4,-2700.94 4052.26,-2705.9 4040,-2671.36 4026.75,-2634.05 4037.96,-2621.82 4040,-2582.27 4054.24,-2305.85 4104,-2239.59 4104,-1962.8 4104,-1962.8 4104,-1962.8 4104,-1851.27 4104,-1754.79 4096.8,-1730.4 4104,-1634.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge461" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6378,-2919.81C6452.19,-2914.4 6599.19,-2903.78 6724,-2895.33 6972.83,-2878.49 7035.83,-2884.1 7284,-2859.33 7593.28,-2828.46 7670.71,-2818.22 7977,-2765.35 8100.52,-2744.03 8128.81,-2724.31 8253,-2707.36 8376.56,-2690.5 8695.46,-2713.02 8813,-2671.36 8968.1,-2616.4 8969.76,-2534.53 9115,-2457.17 9261.94,-2378.92 9450.16,-2318.15 9540.69,-2291.14"/>
<polygon fill="#953703" stroke="black" points="6377.75,-2916.32 6368.03,-2920.53 6378.26,-2923.3 6377.75,-2916.32"/>
<polygon fill="#953703" stroke="black" points="9541.85,-2294.45 9550.45,-2288.25 9539.86,-2287.74 9541.85,-2294.45"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge462" 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="M6690,-2273.87C6726.06,-2189.2 6747.67,-2174.27 6790,-2092.56 6804.81,-2063.97 6820.64,-2031.37 6832.72,-2006"/>
<polygon fill="#953703" stroke="black" points="6836.03,-2007.18 6837.16,-1996.65 6829.71,-2004.18 6836.03,-2007.18"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge463" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5433,-2829.34C5371.02,-2820.7 5356.86,-2810.85 5295,-2801.35 5219.47,-2789.74 5018.29,-2805.07 4953,-2765.35 4873.53,-2716.99 4823.21,-2616.67 4798.44,-2554.97"/>
<polygon fill="#953703" stroke="black" points="4801.6,-2553.44 4794.68,-2545.41 4795.08,-2556 4801.6,-2553.44"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge464" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6291.68,-2923.81C6137.06,-2925.28 5544.32,-2926 5063,-2859.33 4877.39,-2833.62 4831.14,-2820.3 4652,-2765.35 4596.85,-2748.43 4462.06,-2696.22 4410,-2671.36 4403.4,-2668.21 4396.59,-2664.71 4389.89,-2661.09"/>
<polygon fill="#953703" stroke="black" points="4391.3,-2657.87 4380.85,-2656.12 4387.92,-2664 4391.3,-2657.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge465" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6291.72,-2923.12C6118.41,-2921.89 5406.34,-2913.57 5191,-2859.33 5132,-2844.47 5125.5,-2818.06 5067,-2801.35 4937.45,-2764.35 4892.17,-2812.61 4766,-2765.35 4763.94,-2764.58 4679.53,-2706.92 4620.49,-2666.51"/>
<polygon fill="#953703" stroke="black" points="4622.21,-2663.45 4611.98,-2660.69 4618.25,-2669.22 4622.21,-2663.45"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge466" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6366.49,-2915.12C6536.57,-2876.75 7247.25,-2715.05 7339,-2671.36 7345.11,-2668.46 7351.21,-2664.85 7357.04,-2660.96"/>
<polygon fill="#953703" stroke="black" points="7359.18,-2663.74 7365.35,-2655.12 7355.15,-2658.01 7359.18,-2663.74"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge467" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6367.45,-2917.77C6439.74,-2907 6603.53,-2882.29 6741,-2859.33 6885.72,-2835.16 6921.11,-2824.45 7066,-2801.35 7179.46,-2783.25 7209.54,-2788.89 7322,-2765.35 7367.17,-2755.89 7381.12,-2758.77 7422,-2737.36"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge468" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6368.11,-2921.09C6462.13,-2915.18 6712.44,-2896.92 6918,-2859.33 7019.16,-2840.83 7040.97,-2820.52 7142,-2801.35 7271.33,-2776.8 7305.57,-2783.2 7436,-2765.35 7505.14,-2755.88 7992.03,-2696.85 8057,-2671.36 8063.97,-2668.63 8070.93,-2665.03 8077.56,-2661.06"/>
<polygon fill="#953703" stroke="black" points="8079.8,-2663.78 8086.37,-2655.47 8076.05,-2657.87 8079.8,-2663.78"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_console -->
<g id="edge469" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6168,-2500.72C6163.89,-2449.63 6206.69,-2419.02 6168,-2385.4"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge470" 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="M6291.62,-2922.5C6165.86,-2919.43 5755.04,-2906.21 5419,-2859.33 5294.86,-2842.01 5266.74,-2821.33 5143,-2801.35 5003.02,-2778.75 4954.36,-2825.59 4826,-2765.35 4722.98,-2717 4726.88,-2663.32 4647,-2582.27 4642.11,-2577.31 4617.87,-2554.66 4596.52,-2534.78"/>
<polygon fill="#953703" stroke="black" points="4598.83,-2532.15 4589.13,-2527.9 4594.07,-2537.28 4598.83,-2532.15"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge471" 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="M6291.57,-2923.34C6182.99,-2922.65 5865.22,-2915.58 5609,-2859.33 5534.31,-2842.93 5521.65,-2817.95 5447,-2801.35 5280.54,-2764.33 5223.29,-2828.79 5065,-2765.35 4986.07,-2733.71 4923.74,-2712.45 4932,-2627.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge472" 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="M6297.25,-2909.27C6229.38,-2879.81 6068.93,-2808.4 5940,-2737.36"/>
<path fill="none" stroke="black" d="M5940,-2735.36C5869.28,-2698.21 5818.74,-2704.39 5796,-2627.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge473" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6264,-2829.34C6195.13,-2694.62 6180.13,-2653.54 6168,-2502.72"/>
<path fill="none" stroke="black" d="M6168,-2500.72C6151.06,-2389.96 6079.6,-2384.95 6054,-2275.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_telegram -->
<g id="edge474" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6291.71,-2922.75C6131.24,-2920.08 5517.98,-2906.82 5447,-2859.33 5435.44,-2851.6 5446.78,-2833.25 5433,-2831.34"/>
<path fill="none" stroke="black" d="M5433,-2829.34C5371.01,-2820.75 5356.93,-2810.33 5295,-2801.35 5204.7,-2788.26 4967.36,-2806.64 4886,-2765.35 4859.84,-2752.07 4741.67,-2608.63 4685.65,-2539.53"/>
<polygon fill="#953703" stroke="black" points="4688.15,-2537.05 4679.13,-2531.48 4682.7,-2541.46 4688.15,-2537.05"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge475" 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="M6490,-2500.72C6490.88,-2479.62 6497.11,-2474.63 6509,-2457.17 6541.05,-2410.12 6665.33,-2327.17 6690,-2275.87"/>
<path fill="none" stroke="black" d="M6690,-2273.87C6710.91,-2227.69 6632.86,-2213.26 6652,-2166.33"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge476" 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="M6434,-2735.36C6445.47,-2704.81 6459.88,-2702.39 6470,-2671.36 6493.4,-2599.61 6485.34,-2578.06 6490,-2502.72"/>
<path fill="none" stroke="black" d="M6490,-2500.72C6533.29,-2269.26 6614.9,-2229.89 6659,-1998.57 6680.52,-1885.67 6681.08,-1749.77 6679.58,-1680.18"/>
<polygon fill="#953703" stroke="black" points="6683.08,-1679.92 6679.34,-1670 6676.08,-1680.08 6683.08,-1679.92"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge477" 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="M6349.67,-2899.43C6363.81,-2881.48 6382.66,-2855.86 6396,-2831.34"/>
<path fill="none" stroke="black" d="M6396,-2829.34C6457.33,-2716.61 6359.21,-2673 6339,-2546.27 6327.66,-2475.18 6320,-2457.4 6320,-2385.4 6320,-2385.4 6320,-2385.4 6320,-2273.87 6320,-2167.2 6216.8,-2189.12 6129,-2128.56 6014.33,-2049.47 5773.06,-2069.18 5863,-1962.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge478" 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="M6311.47,-2898.75C6297.9,-2880.45 6279.27,-2854.7 6264,-2831.34"/>
<path fill="none" stroke="black" d="M6264,-2829.34C6217.21,-2757.72 6200.29,-2743.31 6154,-2671.36 6106.85,-2598.08 6106.97,-2571.91 6054,-2502.72"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge479" 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="M4101,-2829.34C4013.61,-2797.71 4016.33,-2748.17 3964,-2671.36 3903.51,-2582.59 3935.02,-2525.34 3852,-2457.17 3674.78,-2311.65 3557.63,-2422.68 3357,-2311.63 3313.88,-2287.77 3311.16,-2270.48 3274,-2238.1 3255.47,-2221.94 3246.47,-2221.97 3232,-2202.1 3166.99,-2112.82 3027.01,-1853.39 3040,-1743.73"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge480" 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="M6291.46,-2922.7C6152.91,-2920.05 5685.99,-2907.6 5642,-2859.33 5624.64,-2840.28 5629.14,-2823.68 5642,-2801.35 5657.9,-2773.73 5683.24,-2789.52 5704,-2765.35 5746.78,-2715.52 5764.32,-2693.18 5758,-2627.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge481" 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="M6368.01,-2920.28C6438.28,-2914.74 6593.24,-2902.87 6724,-2895.33 7085.09,-2874.51 7176.72,-2891.22 7537,-2859.33 7852.31,-2831.42 7939.21,-2854.31 8243,-2765.35 8301.39,-2748.25 8308.03,-2722.34 8367,-2707.36 8625.06,-2641.81 8714.12,-2760.56 8965,-2671.36 9028.94,-2648.63 9027.7,-2611.39 9089,-2582.27 9336.85,-2464.52 9470.31,-2592.06 9685,-2421.17 9785.45,-2341.22 9871.83,-2284.22 9821,-2166.33"/>
<path fill="none" stroke="black" d="M9821,-2164.33C9811.35,-2142.06 9798.64,-2118.01 9788.09,-2099.1"/>
<polygon fill="#953703" stroke="black" points="9791.07,-2097.25 9783.11,-2090.26 9784.97,-2100.69 9791.07,-2097.25"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge482" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6396,-2829.34C6406.57,-2809.91 6426.23,-2758.06 6434,-2737.36"/>
<path fill="none" stroke="black" d="M6434,-2735.36C6450.8,-2690.61 6446.71,-2673.89 6434,-2627.82"/>
<path fill="none" stroke="black" d="M6434,-2625.82C6426.42,-2598.32 6414.87,-2568.48 6405.01,-2545.08"/>
<polygon fill="#953703" stroke="black" points="6408.19,-2543.61 6401.04,-2535.79 6401.75,-2546.36 6408.19,-2543.61"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge483" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6396,-2829.34C6402.65,-2817.12 6400.7,-2811.69 6410,-2801.35 6445.29,-2762.12 6487.55,-2785.11 6510,-2737.36"/>
<path fill="none" stroke="black" d="M6510,-2735.36C6531.57,-2689.48 6526.04,-2673.5 6548,-2627.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge484" 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="M8381,-2829.34C8395.09,-2820.97 8390.79,-2809.51 8405,-2801.35 8683.95,-2641.15 8801.45,-2733.83 9117,-2671.36 9170.99,-2660.68 9232.77,-2647.33 9274.06,-2638.25"/>
<polygon fill="#953703" stroke="black" points="9274.83,-2641.67 9283.84,-2636.1 9273.32,-2634.83 9274.83,-2641.67"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge485" 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="M6368,-2919.97C6438.23,-2913.93 6593.16,-2901.27 6724,-2895.33 6967.08,-2884.3 8677.11,-2891.03 8913,-2831.34"/>
<path fill="none" stroke="black" d="M8913,-2829.34C9005.26,-2805.99 9000.17,-2741.53 9089,-2707.36 9205.69,-2662.48 9254.76,-2724.37 9368,-2671.36 9373.29,-2668.89 9378.39,-2665.59 9383.15,-2661.92"/>
<polygon fill="#953703" stroke="black" points="9385.43,-2664.58 9390.83,-2655.46 9380.92,-2659.23 9385.43,-2664.58"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge486" 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="M8913,-2829.34C9194.74,-2761.47 9531.23,-2672.55 9652.55,-2640.23"/>
<polygon fill="#953703" stroke="black" points="9653.5,-2643.6 9662.26,-2637.64 9651.7,-2636.84 9653.5,-2643.6"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge487" 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="M6368,-2919.93C6438.23,-2913.81 6593.15,-2901.04 6724,-2895.33 7213.15,-2873.97 8440.96,-2918.42 8927,-2859.33 9293.55,-2814.77 9722.35,-2686.14 9861.17,-2642.5"/>
<polygon fill="#953703" stroke="black" points="9862.56,-2645.74 9871.04,-2639.39 9860.45,-2639.06 9862.56,-2645.74"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge488" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6368.05,-2920.81C6496.29,-2912.2 6912.02,-2883.1 7044,-2859.33 7140.14,-2842.02 7159.85,-2818.58 7256,-2801.35 7435.62,-2769.15 7484.42,-2791.64 7665,-2765.35 7792.48,-2746.78 7821.17,-2723.39 7949,-2707.36 8031.78,-2696.99 8629.09,-2716.9 8699,-2671.36 8740.18,-2644.54 8906.71,-2324.04 8897,-2275.87"/>
<path fill="none" stroke="black" d="M8897,-2273.87C8891.33,-2253.39 8885.19,-2230.69 8880.02,-2211.44"/>
<polygon fill="#953703" stroke="black" points="8883.38,-2210.47 8877.42,-2201.72 8876.62,-2212.28 8883.38,-2210.47"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge489" 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="M6291.53,-2923.2C6032.41,-2922.23 4538.49,-2914.27 4087,-2859.33 4059.21,-2855.95 4028.56,-2849.42 4004.12,-2843.52"/>
<polygon fill="#953703" stroke="black" points="4004.94,-2840.11 3994.39,-2841.12 4003.26,-2846.91 4004.94,-2840.11"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_result -->
<g id="edge490" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6330,-2895.22C6330,-2887.19 6330,-2878.28 6330,-2869.74"/>
<polygon fill="#953703" stroke="black" points="6333.5,-2869.58 6330,-2859.58 6326.5,-2869.58 6333.5,-2869.58"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge491" 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="M6291.66,-2923.2C6006.09,-2922.19 4219.07,-2913.67 4120,-2859.33 4106.82,-2852.1 4115.05,-2836.7 4101,-2831.34"/>
<path fill="none" stroke="black" d="M4101,-2829.34C4045.26,-2808.08 4027.66,-2804.91 3983,-2765.35 3920.11,-2709.64 3836.43,-2499.74 3764,-2457.17 3637.94,-2383.09 3576.58,-2464.69 3437,-2421.17 3279.04,-2371.92 3230.11,-2338.19 3136,-2202.1 2876.04,-1826.18 2983.6,-1619.58 2674,-1283.36 2507.22,-1102.23 2457.23,-1044.62 2228,-954.74 2153.26,-925.44 2122.43,-955.38 2051,-918.74 2047.16,-916.77 2043.4,-914.39 2039.79,-911.78"/>
<polygon fill="#953703" stroke="black" points="2041.68,-908.81 2031.67,-905.35 2037.33,-914.3 2041.68,-908.81"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge492" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5090.21,-3505.96C5050.63,-3405.27 4906.15,-3053.61 4725,-2801.35 4711.98,-2783.22 4705.05,-2781.83 4690,-2765.35 4678.95,-2753.25 4679.5,-2746.64 4666,-2737.36"/>
<path fill="none" stroke="black" d="M4666,-2735.36C4652.52,-2726.04 4653.08,-2719.44 4642,-2707.36 4631.49,-2695.91 4619.89,-2683.8 4608.92,-2672.58"/>
<polygon fill="#b45c2d" stroke="black" points="4611.32,-2670.03 4601.82,-2665.35 4606.33,-2674.94 4611.32,-2670.03"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge493" 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="M5105.31,-3505.82C5111.22,-3475.68 5124.41,-3427.88 5152,-3396.36 5288.87,-3240.02 5373.78,-3258.58 5565,-3177.28 5612.34,-3157.15 5628.62,-3163.52 5675,-3141.28 5786.48,-3087.82 5792.48,-3033.35 5908,-2989.31 5942.52,-2976.15 6179.29,-2944.67 6282.3,-2931.39"/>
<polygon fill="#b45c2d" stroke="black" points="6282.96,-2934.84 6292.43,-2930.09 6282.06,-2927.89 6282.96,-2934.84"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge494" 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="M5541.64,-3111.19C5096.76,-3110.37 2398.55,-3103.15 1581,-3047.3 1234.4,-3023.62 1079.76,-3165.91 805,-2953.31 731.8,-2896.67 532,-2258.88 532,-2166.33 532,-2166.33 532,-2166.33 532,-2062.57 532,-1884.49 481.21,-1845.62 452,-1669.96 414.46,-1444.14 168.54,-819.98 320,-648.34"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge495" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5666.04,-3109.02C5814.98,-3103.68 6204.58,-3090.19 6530,-3083.3 6612.43,-3081.55 9420.51,-3075.45 9498,-3047.3 9536.29,-3033.38 9531.78,-3005.89 9569,-2989.31 9664.72,-2946.68 9719.76,-3018.25 9802,-2953.31 9830.63,-2930.71 9849.67,-2834.89 9864,-2801.35 9881.98,-2759.28 9877.45,-2743.12 9906,-2707.36 9922.64,-2686.53 9942.07,-2695.22 9954,-2671.36 9971.71,-2635.95 9964.73,-2620.39 9954,-2582.27 9948.92,-2564.22 9937.37,-2564.24 9932,-2546.27 9899.75,-2438.3 9932.65,-1642.22 9958,-1532.43"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge496" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5632.83,-3086.58C5657.73,-3066.25 5695.38,-3037.86 5732,-3019.3"/>
<path fill="none" stroke="black" d="M5732,-3017.3C5768.47,-2998.83 5700.56,-2951.45 5732,-2925.32"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge497" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5543.74,-3104.84C5402.23,-3089.65 5058.71,-3052.52 5034,-3047.3 4950.12,-3029.55 4934.23,-3005.36 4850,-2989.31 4628.96,-2947.21 4561.81,-3013.51 4345,-2953.31 4290.23,-2938.1 4284.24,-2915.24 4231,-2895.33 4169.21,-2872.23 4133.65,-2905.98 4087,-2859.33 3998.68,-2771.02 3974.66,-2688.71 4040,-2582.27 4216.79,-2294.27 4400.88,-2354.87 4718,-2238.1 4840.79,-2192.88 5779.22,-2063.31 5863,-1962.8"/>
<path fill="none" stroke="black" d="M5863,-1960.8C5880.93,-1916.5 5815.81,-1860.84 5863,-1853.27"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge498" 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="M5542.45,-3107.55C5144.68,-3083.41 2942.58,-2949.76 2588.16,-2928.24"/>
<polygon fill="#e55405" stroke="black" points="2588.17,-2924.74 2577.98,-2927.63 2587.74,-2931.73 2588.17,-2924.74"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_package -->
<g id="edge499" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5732,-3017.3C5758.97,-3003.64 5764.87,-2997.42 5794,-2989.31 5805.76,-2986.04 6153.44,-2945.71 6282.44,-2930.81"/>
<polygon fill="#e55405" stroke="black" points="6282.89,-2934.28 6292.43,-2929.65 6282.09,-2927.32 6282.89,-2934.28"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_remote_source -->
<g id="edge500" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5659.19,-3098.69C5733.98,-3081.62 5867.1,-3051.24 5945.17,-3033.42"/>
<polygon fill="#e55405" stroke="black" points="5946.37,-3036.73 5955.34,-3031.1 5944.81,-3029.91 5946.37,-3036.73"/>
</g>
<!-- ahriman_models_property -->
<g id="node122" class="node">
<title>ahriman_models_property</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="8395" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8395" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="8395" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="8395" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">property</text>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge501" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8372.25,-2900.79C8324.73,-2855.28 8209.46,-2752.85 8091,-2707.36 7961.51,-2657.64 7916.41,-2701.4 7781,-2671.36 7753.96,-2665.37 7724.63,-2655.91 7700.6,-2647.34"/>
<polygon fill="#f96210" stroke="black" points="7701.58,-2643.97 7690.98,-2643.86 7699.19,-2650.55 7701.58,-2643.97"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge502" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8419,-2829.34C8407.78,-2791.36 8380.59,-2797.16 8357,-2765.35 8348.71,-2754.17 8352.39,-2747.62 8343,-2737.36"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge503" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8362.31,-2908.78C8262.95,-2864.79 7965.12,-2734.48 7863,-2707.36 7746.85,-2676.52 7708.1,-2712.01 7595,-2671.36 7587.33,-2668.61 7579.61,-2664.92 7572.24,-2660.86"/>
<polygon fill="#f96210" stroke="black" points="7573.52,-2657.56 7563.12,-2655.55 7570,-2663.6 7573.52,-2657.56"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge504" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8409.35,-2897.43C8417.76,-2878.93 8425.55,-2853.5 8419,-2831.34"/>
<path fill="none" stroke="black" d="M8419,-2829.34C8398.15,-2758.78 8294.5,-2775.38 8229,-2737.36"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge505" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8419,-2829.34C8403.77,-2770.46 8405.29,-2744.33 8357,-2707.36 8294.99,-2659.89 8256.88,-2701.92 8185,-2671.36 8178.2,-2668.47 8171.36,-2664.81 8164.83,-2660.85"/>
<polygon fill="#f96210" stroke="black" points="8166.44,-2657.73 8156.13,-2655.3 8162.67,-2663.63 8166.44,-2657.73"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge506" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8427.06,-2908.42C8466.1,-2889.3 8527.56,-2855.72 8533,-2831.34"/>
<path fill="none" stroke="black" d="M8533,-2829.34C8541.63,-2790.69 8495.74,-2796.27 8471,-2765.35 8451.75,-2741.29 8457.96,-2725.43 8433,-2707.36 8383.05,-2671.21 8354.33,-2698.6 8299,-2671.36 8292.99,-2668.41 8287,-2664.77 8281.27,-2660.88"/>
<polygon fill="#f96210" stroke="black" points="8283.27,-2658 8273.11,-2655.03 8279.2,-2663.69 8283.27,-2658"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_version_printer -->
<g id="edge507" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8533,-2829.34C8550.64,-2771.14 8510.11,-2753.93 8471,-2707.36 8461.63,-2696.21 8435.62,-2676.64 8411.7,-2659.71"/>
<polygon fill="#f96210" stroke="black" points="8413.56,-2656.73 8403.36,-2653.84 8409.53,-2662.46 8413.56,-2656.73"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge508" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6064.15,-3014.72C6185.6,-3009.31 6478.39,-2996.68 6724,-2989.31 6914.84,-2983.59 8255.95,-2996.22 8442,-2953.31 8696.22,-2894.69 8736.18,-2812.38 8975,-2707.36 9106.86,-2649.38 9134.73,-2619.08 9274,-2582.27 9402.55,-2548.29 9460.8,-2620.67 9571,-2546.27 9589.32,-2533.9 9584.54,-2522.19 9595,-2502.72"/>
<path fill="none" stroke="black" d="M9595,-2500.72C9626.92,-2445.29 9617.57,-2368.71 9606.7,-2320.75"/>
<polygon fill="#af4a13" stroke="black" points="9610.1,-2319.89 9604.38,-2310.97 9603.29,-2321.51 9610.1,-2319.89"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge509" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5998.32,-2989.25C5993.99,-2970.66 5991.01,-2945.99 5998,-2925.32"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge510" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5951.47,-3010.6C5761.01,-2987.25 5141.9,-2908.25 5067,-2859.33 5041.2,-2842.48 5055.32,-2817.37 5029,-2801.35 4895.8,-2720.28 4808.26,-2854.03 4680,-2765.35 4668.56,-2757.44 4677.47,-2745.22 4666,-2737.36"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_models_package -->
<g id="edge511" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6057.13,-3004.06C6104.41,-2991.44 6177.19,-2971.7 6240,-2953.31 6254.8,-2948.98 6270.9,-2944.04 6285.34,-2939.54"/>
<polygon fill="#af4a13" stroke="black" points="6286.54,-2942.83 6295.03,-2936.5 6284.45,-2936.15 6286.54,-2942.83"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node124" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="5709" cy="-2830.34" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="5709" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="5709" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="5709" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">report_settings</text>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge512" 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="M5755.09,-2812.5C5785.73,-2798.05 5821.2,-2773.73 5826,-2737.36"/>
<path fill="none" stroke="black" d="M5826,-2735.36C5832.49,-2686.16 5810.13,-2675.38 5796,-2627.82"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge513" 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="M9380.41,-3991.36C9466.41,-3982.29 9627.28,-3962.96 9762,-3933.38 10036.61,-3873.09 10738.34,-3720.24 10972,-3563.88 11173.18,-3429.26 11499.58,-2879.72 11540,-2765.35 11565.96,-2691.88 11609.5,-2129.88 11567,-2064.57"/>
<path fill="none" stroke="black" d="M11567,-2062.57C11541.96,-2026.61 11522.59,-2029.94 11492,-1998.57 11477.71,-1983.92 11474.51,-1979.73 11463,-1962.8"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge514" 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="M9380.43,-3991.71C9480.44,-3982.12 9684.51,-3960.99 9856,-3933.38 10586.89,-3815.71 10817.03,-3789.86 11420,-3360.36 11486.89,-3312.71 11505.51,-3300.03 11556,-3235.26 11574.26,-3211.84 11801.3,-2793.42 11811,-2765.35 11870.05,-2594.37 11947,-2143.69 11947,-1962.8 11947,-1962.8 11947,-1962.8 11947,-1741.73 11947,-1676.27 11934.2,-1660.91 11923,-1596.42 11918.23,-1568.91 11828.36,-1129.58 11833,-1102.05"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge515" 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="M9270,-3914.38C9161.11,-3814.03 9110.68,-3816.57 8971,-3767.4 8898.87,-3742.01 8883.11,-3728.28 8809,-3709.42 8661.24,-3671.81 8481.48,-3650.66 8397.1,-3642.13"/>
<polygon fill="#e55405" stroke="black" points="8397.35,-3638.64 8387.05,-3641.13 8396.66,-3645.6 8397.35,-3638.64"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge516" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9517,-3914.38C9674.76,-3786.04 9806.68,-3850.89 9906,-3673.42 9921.96,-3644.9 9911.56,-3632.09 9906,-3599.88 9855.77,-3309.07 9839.31,-3211.43 9645,-2989.31 9626.49,-2968.16 9606.05,-2978.21 9593,-2953.31 9552,-2875.06 9630.08,-2741.12 9666,-2707.36 9704.41,-2671.27 9747.9,-2713.92 9779,-2671.36 9802.37,-2639.4 9788.83,-2620.63 9779,-2582.27 9754.22,-2485.6 9715.57,-2474.7 9671,-2385.4"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge517" 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="M9364.57,-3978.16C9372.03,-3975.14 9379.71,-3972.12 9387,-3969.38 9433.58,-3951.91 9448.68,-3956 9493,-3933.38 9504.64,-3927.44 9506.7,-3924.43 9517,-3916.38"/>
<path fill="none" stroke="black" d="M9517,-3914.38C9588.6,-3858.47 9081.37,-3683.94 8505,-3599.88 8434.33,-3589.57 7273.82,-3610.83 7220,-3563.88 6980.86,-3355.26 7129.63,-3175.64 7104,-2859.33 7101.92,-2833.64 7101.23,-2826.97 7104,-2801.35 7107.13,-2772.4 7128.51,-2764.51 7118,-2737.36"/>
<path fill="none" stroke="black" d="M7118,-2735.36C7061.91,-2638.37 6939.6,-2728.28 6890,-2627.82"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration -->
<g id="edge518" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9307.02,-3969.55C9298.61,-3952.54 9286.01,-3931.26 9270,-3916.38"/>
<path fill="none" stroke="black" d="M9270,-3914.38C9206.41,-3855.29 9155.39,-3907.75 9082,-3861.38 9054.42,-3843.96 9065.11,-3819.95 9037,-3803.4 9033.32,-3801.23 8433.25,-3709.84 8429,-3709.42 7848.42,-3651.34 7141.34,-3640.19 6932.09,-3638.11"/>
<polygon fill="#e55405" stroke="black" points="6931.95,-3634.61 6921.92,-3638.01 6931.88,-3641.61 6931.95,-3634.61"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge519" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5736,-3831.39C5620.08,-3781.82 5615.49,-3393.58 5646,-3271.26 5681.53,-3128.84 5699.33,-3075.71 5818,-2989.31 5886.64,-2939.34 5970.82,-3005.76 5998,-2925.32"/>
<path fill="none" stroke="black" d="M5998,-2923.32C6038.1,-2797.94 5978.74,-2759.45 5978,-2627.82"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge520" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9256.73,-3993.88C9116.43,-3985.75 8764.98,-3963.89 8472,-3933.38 8351.15,-3920.8 8322.18,-3906.28 8201,-3897.38 7926.27,-3877.21 5991.6,-3917.98 5722,-3861.38 5389.16,-3791.51 5275.07,-3785.37 5017,-3563.88 4677.83,-3272.78 4780.28,-3047.23 4490,-2707.36 4460.16,-2672.43 4409.16,-2671.29 4424,-2627.82"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge521" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9258.84,-3989.41C9092.64,-3967.54 8629.4,-3907.51 8476,-3897.38 7897.87,-3859.21 6444.85,-3925.35 5869,-3861.38 5808.96,-3854.71 5793.13,-3853.01 5736,-3833.39"/>
<path fill="none" stroke="black" d="M5736,-3831.39C5614.53,-3789.66 5574.69,-3773.35 5494,-3673.42 5457.39,-3628.08 5395.74,-3379.67 5393,-3360.36 5368.49,-3187.8 5326.4,-2956.15 5419,-2801.35 5434.77,-2774.99 5457.61,-2788.32 5478,-2765.35 5508.5,-2731 5511.22,-2716.25 5521,-2671.36 5529.32,-2633.2 5526.54,-2589.09 5521.96,-2555.55"/>
<polygon fill="#e55405" stroke="black" points="5525.4,-2554.89 5520.5,-2545.5 5518.48,-2555.9 5525.4,-2554.89"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_tree -->
<g id="edge522" 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="M9380.1,-3991C9539.78,-3971.47 9975.72,-3899.33 10244,-3673.42 10528.61,-3433.75 10574.36,-3312.63 10671,-2953.31 10766.63,-2597.77 10557.82,-2444.6 10253,-2238.1 10109.71,-2141.02 9905.87,-2091.54 9814.93,-2073.18"/>
<polygon fill="#e55405" stroke="black" points="9815.42,-2069.71 9804.93,-2071.19 9814.06,-2076.57 9815.42,-2069.71"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_util -->
<g id="edge523" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9262.05,-3985.8C9171.57,-3967.88 8989.22,-3933.69 8833,-3916.38"/>
<path fill="none" stroke="black" d="M8833,-3914.38C8804.6,-3911.24 8799.27,-3901.51 8771,-3897.38 8482.71,-3855.28 6316.78,-3836.54 5964.39,-3833.76"/>
<polygon fill="#e55405" stroke="black" points="5964.29,-3830.26 5954.26,-3833.68 5964.23,-3837.26 5964.29,-3830.26"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge524" 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="M8833,-3914.38C8785.11,-3909.08 8469.09,-3786.85 8425,-3767.4 8374.44,-3745.1 8368.48,-3723.33 8315,-3709.42 8234.11,-3688.37 6872.92,-3729.56 6811,-3673.42 6733.69,-3603.32 6791.58,-3304.63 6754,-3207.27"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application -->
<g id="edge525" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6359.13,-2811.2C6366.37,-2807.39 6374.28,-2803.79 6382,-2801.35 6510.46,-2760.71 6552.45,-2798.64 6683,-2765.35 6750.25,-2748.2 6759.98,-2721.18 6828,-2707.36 6923.84,-2687.89 8512.06,-2732.99 8588,-2671.36 8621.05,-2644.54 8742.35,-1963.29 8761,-1925.03 8967.11,-1502.35 9046.38,-1379.59 9426,-1102.05"/>
<path fill="none" stroke="black" d="M9426,-1100.05C9520.38,-1037.5 9863.91,-1006.45 10000.97,-996.34"/>
<polygon fill="#d14d05" stroke="black" points="10001.53,-999.8 10011.25,-995.59 10001.03,-992.82 10001.53,-999.8"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge526" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6358.73,-2810.95C6366.06,-2807.1 6374.1,-2803.54 6382,-2801.35 6542.77,-2756.7 6965.44,-2775.25 7132,-2765.35 7495.38,-2743.73 7585.64,-2729.37 7949,-2707.36 8108.46,-2697.71 8516.84,-2725.91 8667,-2671.36 8728.77,-2648.93 8730.55,-2619.05 8785,-2582.27 8874.39,-2521.89 8900.3,-2512.35 8993,-2457.17 9040.98,-2428.61 9386.58,-2241.65 9426,-2202.1 9606.3,-2021.18 9585.62,-1925.58 9716,-1705.96 9817.95,-1534.23 9860.38,-1500.59 9948,-1321.13"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge527" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6358.79,-2811.13C6366.11,-2807.28 6374.13,-2803.67 6382,-2801.35 6572.72,-2745.02 6630.17,-2785.63 6828,-2765.35 7035.62,-2744.06 7085.89,-2723.09 7294,-2707.36 7367.65,-2701.8 8562.7,-2714.02 8623,-2671.36 8715.71,-2605.77 8734,-2351.23 8734,-2166.33 8734,-2166.33 8734,-2166.33 8734,-2062.57 8734,-1970.09 8973.38,-1844.65 9039,-1779.5 9206.47,-1613.22 9220.5,-1542.52 9403,-1392.9 9538.25,-1282.01 9719.28,-1182.01 9812.98,-1133.3"/>
<polygon fill="#d14d05" stroke="black" points="9814.77,-1136.32 9822.04,-1128.61 9811.55,-1130.1 9814.77,-1136.32"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge528" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6358.71,-2810.87C6366.03,-2807.02 6374.08,-2803.49 6382,-2801.35 6495.12,-2770.77 7318.99,-2771.57 7436,-2765.35 7793.31,-2746.35 7882.11,-2733.07 8239,-2707.36 8461.66,-2691.33 8522.36,-2721.04 8740,-2671.36 8844.86,-2647.43 8862.2,-2613.91 8965,-2582.27 9278.4,-2485.81 9396.45,-2576.94 9685,-2421.17 9840.66,-2337.15 10288.28,-1856.06 10405,-1669.96 10432.77,-1625.68 10737.33,-845 10747,-793.64 10753.19,-760.73 10751.89,-722.9 10749.2,-694.08"/>
<polygon fill="#d14d05" stroke="black" points="10752.66,-693.49 10748.16,-683.9 10745.7,-694.21 10752.66,-693.49"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_console -->
<g id="edge529" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6320.99,-2802.16C6315.13,-2783.95 6307.58,-2759.36 6302,-2737.36"/>
<path fill="none" stroke="black" d="M6302,-2735.36C6294.09,-2704.14 6280.91,-2700.87 6268,-2671.36 6254.51,-2640.53 6193.39,-2407.5 6168,-2385.4"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_email -->
<g id="edge530" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4742,-2625.82C4710.07,-2615.12 4708.87,-2599.61 4680,-2582.27 4649.67,-2564.06 4638.03,-2566.49 4609,-2546.27 4604.44,-2543.09 4599.86,-2539.49 4595.46,-2535.76"/>
<polygon fill="#d14d05" stroke="black" points="4597.56,-2532.95 4587.74,-2528.96 4592.93,-2538.2 4597.56,-2532.95"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_html -->
<g id="edge531" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6301.29,-2810.88C6293.96,-2807.03 6285.92,-2803.49 6278,-2801.35 6054.13,-2740.8 5453.4,-2843.37 5235,-2765.35 5194.99,-2751.05 5196.99,-2726.38 5159,-2707.36 5106.53,-2681.11 5073.96,-2712.37 5032,-2671.36 4999.15,-2639.26 4986.94,-2586.93 4982.47,-2549.07"/>
<polygon fill="#d14d05" stroke="black" points="4985.91,-2548.38 4981.4,-2538.8 4978.95,-2549.11 4985.91,-2548.38"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge532" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6301.57,-2810.98C6294.18,-2807.08 6286.02,-2803.49 6278,-2801.35 6000.06,-2727.17 5263.46,-2833.58 4984,-2765.35 4890.93,-2742.62 4869.4,-2724.98 4790,-2671.36 4766.13,-2655.24 4769.31,-2636.97 4742,-2627.82"/>
<path fill="none" stroke="black" d="M4742,-2625.82C4698.89,-2608.52 4691.93,-2594.03 4647,-2582.27 4475.48,-2537.39 3932.21,-2512.53 3744.52,-2505.11"/>
<polygon fill="#d14d05" stroke="black" points="3744.66,-2501.62 3734.53,-2504.72 3744.38,-2508.61 3744.66,-2501.62"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report -->
<g id="edge533" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6300.75,-2811.58C6293.51,-2807.75 6285.63,-2804.05 6278,-2801.35 6133.89,-2750.29 6073.91,-2811.14 5940,-2737.36"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge534" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6302,-2735.36C6262.09,-2509.86 6309.38,-2417.46 6167,-2238.1 6148.71,-2215.05 6120.87,-2198.15 6095.91,-2186.55"/>
<polygon fill="#d14d05" stroke="black" points="6097.07,-2183.24 6086.51,-2182.36 6094.23,-2189.63 6097.07,-2183.24"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_telegram -->
<g id="edge535" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6301.29,-2810.85C6293.97,-2807 6285.92,-2803.47 6278,-2801.35 6017.51,-2731.57 5320.52,-2851.58 5065,-2765.35 5023.05,-2751.19 5021.5,-2730.89 4984,-2707.36 4955.7,-2689.61 4946.29,-2689.15 4918,-2671.36 4860.55,-2635.25 4853.56,-2614.8 4794,-2582.27 4755.83,-2561.42 4739.8,-2569.45 4703,-2546.27 4698.29,-2543.31 4693.63,-2539.84 4689.18,-2536.18"/>
<polygon fill="#d14d05" stroke="black" points="4691.27,-2533.36 4681.42,-2529.45 4686.68,-2538.64 4691.27,-2533.36"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_repository_executor -->
<g id="edge536" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6346.53,-2803.87C6359.26,-2784.89 6377.71,-2758.69 6396,-2737.36"/>
<path fill="none" stroke="black" d="M6396,-2735.36C6401.96,-2728.4 6444.38,-2679.78 6448,-2671.36 6485.93,-2583.17 6438.81,-2545.68 6476,-2457.17 6499.98,-2400.11 6514.75,-2387.62 6562,-2347.63 6587.51,-2326.05 6608.65,-2338.88 6628,-2311.63 6665.9,-2258.27 6629.19,-2227.68 6652,-2166.33"/>
<path fill="none" stroke="black" d="M6652,-2164.33C6678.71,-2098.83 6760.54,-2133.59 6776,-2064.57"/>
<path fill="none" stroke="black" d="M6776,-2062.57C6797.51,-1966.57 6776.8,-1850.76 6762,-1788.52"/>
<polygon fill="#d14d05" stroke="black" points="6765.36,-1787.53 6759.6,-1778.64 6758.56,-1789.19 6765.36,-1787.53"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge537" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6302,-2735.36C6294.59,-2704.43 6322.16,-2700.88 6334,-2671.36 6350.5,-2630.21 6364.97,-2581.7 6374.42,-2547.29"/>
<polygon fill="#d14d05" stroke="black" points="6377.83,-2548.1 6377.07,-2537.54 6371.07,-2546.27 6377.83,-2548.1"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge538" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6396,-2735.36C6406.67,-2722.92 6407.26,-2717.68 6420,-2707.36 6472.05,-2665.21 6518.98,-2688.18 6548,-2627.82"/>
<path fill="none" stroke="black" d="M6548,-2625.82C6559.49,-2601.92 6565.25,-2572.86 6568.13,-2548.97"/>
<polygon fill="#d14d05" stroke="black" points="6571.65,-2549.06 6569.24,-2538.74 6564.69,-2548.31 6571.65,-2549.06"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge539" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6359.32,-2811.76C6366.56,-2807.93 6374.41,-2804.18 6382,-2801.35 6404.3,-2793.02 6776.37,-2710.23 6800,-2707.36 6896.64,-2695.63 8470.08,-2723.97 8552,-2671.36 8589,-2647.61 8573.33,-2620.53 8595,-2582.27 8675.57,-2439.98 8786.26,-2280.68 8838.47,-2207.34"/>
<polygon fill="#d14d05" stroke="black" points="8841.59,-2209 8844.54,-2198.83 8835.89,-2204.94 8841.59,-2209"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node127" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db6b2f" stroke="black" cx="3279" cy="-3738.41" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="3279" y="-3746.91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="3279" y="-3735.91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="3279" y="-3724.91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sign_settings</text>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge540" 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="M3250.75,-3713.51C3193.25,-3666.15 3056.77,-3560.3 2924,-3505.9 2438.09,-3306.78 2282.6,-3365.48 1766,-3271.26 1411.2,-3206.55 1306.42,-3257.48 965,-3141.28 881.79,-3112.96 866.81,-3091.77 791,-3047.3 609.3,-2940.71 540.69,-2930.56 410,-2765.35 269.31,-2587.5 266,-2502.63 266,-2275.87 266,-2275.87 266,-2275.87 266,-2164.33 266,-2159.06 76,-1435.93 76,-1430.67 76,-1430.67 76,-1430.67 76,-1319.13 76,-1209.73 52.2,-425.54 114,-335.27"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge541" 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="M3286.48,-3709.6C3293.14,-3688.4 3304.41,-3659.26 3321,-3637.65"/>
<path fill="none" stroke="black" d="M3321,-3635.65C3375.53,-3564.59 3321,-3523.69 3321,-3434.13 3321,-3434.13 3321,-3434.13 3321,-3314.81 3321,-3234.67 3350.96,-3219.13 3370,-3141.28 3396.52,-3032.84 3388.61,-3002.16 3421,-2895.33 3434.07,-2852.21 3436.23,-2840.23 3459,-2801.35 3508.94,-2716.08 3554.39,-2716.49 3598,-2627.82"/>
<path fill="none" stroke="black" d="M3598,-2625.82C3609.52,-2595.45 3629.67,-2565.05 3647.11,-2542.05"/>
<polygon fill="#db6b2f" stroke="black" points="3650.05,-2543.98 3653.39,-2533.93 3644.51,-2539.7 3650.05,-2543.98"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge542" 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="M3321,-3635.65C3397.87,-3535.48 3531.51,-3649.3 3587,-3535.89"/>
<path fill="none" stroke="black" d="M3587,-3533.89C3595.64,-3516.22 3603.18,-3495.86 3609.03,-3478.17"/>
<polygon fill="#db6b2f" stroke="black" points="3612.36,-3479.23 3612.1,-3468.64 3605.7,-3477.09 3612.36,-3479.23"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node128" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="4197" cy="-2830.34" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="4197" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="4197" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="4197" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge543" 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="M4176.55,-2802.34C4142.5,-2755.98 4079.14,-2662.81 4092,-2627.82"/>
<path fill="none" stroke="black" d="M4092,-2625.82C4099.56,-2605.05 4097.89,-2594.93 4116,-2582.27 4201.87,-2522.23 4245.86,-2564.77 4349,-2546.27 4406.27,-2536 4471.79,-2522.31 4514.87,-2513.04"/>
<polygon fill="#c27347" stroke="black" points="4515.75,-2516.43 4524.78,-2510.9 4514.27,-2509.59 4515.75,-2516.43"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node129" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="9733" cy="-2924.32" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="9733" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="9733" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="9733" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">upload_settings</text>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge544" 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="M9729.86,-2895.2C9728.57,-2876.81 9728.32,-2852.38 9733,-2831.34"/>
</g>
<!-- ahriman_models_user -->
<g id="node130" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b84709" stroke="black" cx="3179" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3179" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3179" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3179" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_application_handlers_users -->
<g id="edge545" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3179.62,-2895.2C3180.79,-2870.15 3184.04,-2832.71 3193,-2801.35 3216.25,-2719.98 3288.23,-2507.86 3356,-2457.17 3438.5,-2395.46 3500.93,-2480.73 3585,-2421.17 3590.41,-2417.34 3830.05,-1978.04 3828,-1962.8"/>
<path fill="none" stroke="black" d="M3828,-1960.8C3823.52,-1935.54 3809.44,-1910.8 3795.53,-1891.43"/>
<polygon fill="#b84709" stroke="black" points="3798.17,-1889.12 3789.39,-1883.19 3792.56,-1893.3 3798.17,-1889.12"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge546" 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="M3142.62,-2915.1C3051.8,-2894.15 2808.31,-2835.47 2612,-2765.35 2384.29,-2684.01 2320.56,-2671.98 2114,-2546.27 1824.95,-2370.35 1524.12,-2090.94 1424.92,-1995.79"/>
<polygon fill="#b84709" stroke="black" points="1427.22,-1993.14 1417.58,-1988.73 1422.36,-1998.18 1427.22,-1993.14"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge547" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3155.51,-2901.35C3103.03,-2852.28 2975.58,-2733.1 2907.54,-2669.47"/>
<polygon fill="#b84709" stroke="black" points="2909.64,-2666.64 2899.94,-2662.37 2904.86,-2671.75 2909.64,-2666.64"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge548" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3217.25,-2922.32C3363.53,-2918.49 3901.65,-2904.58 4345,-2895.33 5248.06,-2876.49 5475.02,-2907.28 6377,-2859.33 6848.85,-2834.24 6966.35,-2817.32 7436,-2765.35 7630.74,-2743.8 7678.57,-2731.48 7873,-2707.36 8011.53,-2690.18 8055.56,-2723.61 8185,-2671.36 8191.36,-2668.8 8197.63,-2665.32 8203.54,-2661.44"/>
<polygon fill="#b84709" stroke="black" points="8205.77,-2664.15 8211.92,-2655.53 8201.73,-2658.43 8205.77,-2664.15"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge549" 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="M3217.33,-2921.46C3358.18,-2914.55 3860.42,-2889.19 4274,-2859.33 4289.2,-2858.23 5353.88,-2773.09 5367,-2765.35 5377.83,-2758.96 5426.34,-2683.39 5430,-2671.36 5441.52,-2633.48 5446.11,-2618.44 5430,-2582.27 5420.27,-2560.42 5404.87,-2565 5390,-2546.27 5376.26,-2528.96 5363.68,-2524.7 5366,-2502.72"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node131" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="1641" cy="-3018.3" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="1641" y="-3026.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="1641" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="1641" y="-3004.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user_access</text>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_ahriman -->
<g id="edge550" 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="M1590.19,-3016.05C1419.31,-3011.47 872.25,-2993.75 805,-2953.31 681.34,-2878.95 700.23,-2804.26 644,-2671.36 530.68,-2403.56 228,-1721.46 228,-1430.67 228,-1430.67 228,-1430.67 228,-1209.59 228,-991.71 171.05,-921.16 255,-720.1 271.58,-680.39 289.2,-678.39 320,-648.34"/>
<path fill="none" stroke="black" d="M320,-646.34C332.67,-631.98 328.88,-622.31 344,-610.57 411.04,-558.46 486.77,-622.88 524,-546.57"/>
<path fill="none" stroke="black" d="M524,-544.57C534.28,-523.51 535.59,-133.51 557,-123.97"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge551" 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="M1562,-2923.32C1529.12,-2899.03 1572.17,-2870.94 1562,-2831.34"/>
<path fill="none" stroke="black" d="M1562,-2829.34C1521.69,-2672.33 1426.21,-2678.18 1332,-2546.27 1271.51,-2461.58 1281.96,-2420.85 1208,-2347.63 1186.17,-2326.03 1164.04,-2338.42 1149,-2311.63 1133,-2283.13 1137.6,-2268.73 1149,-2238.1 1163.7,-2198.59 1203.58,-2207.82 1211,-2166.33"/>
<path fill="none" stroke="black" d="M1211,-2164.33C1217.56,-2120.48 1224.65,-2106.75 1211,-2064.57"/>
<path fill="none" stroke="black" d="M1211,-2062.57C1205.21,-2044.68 1199.49,-2024.78 1194.73,-2007.48"/>
<polygon fill="#f96210" stroke="black" points="1198.06,-2006.36 1192.05,-1997.63 1191.3,-2008.2 1198.06,-2006.36"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge552" 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="M1562,-2829.34C1540.08,-2742.5 1575.16,-2716.41 1562,-2627.82"/>
<path fill="none" stroke="black" d="M1562,-2625.82C1553.43,-2562.1 1500.71,-2565.31 1486,-2502.72"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge553" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1686.6,-3005.04C1817.36,-2970.15 2205.14,-2868.46 2531,-2801.35 2624.61,-2782.07 2659.63,-2812.07 2743,-2765.35 2780.52,-2744.32 2811.99,-2706.93 2833.28,-2676.43"/>
<polygon fill="#f96210" stroke="black" points="2836.26,-2678.27 2839.01,-2668.03 2830.48,-2674.32 2836.26,-2678.27"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge554" 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="M1691.73,-3014.27C1926.05,-3000.26 2901.84,-2941.9 3130.78,-2928.21"/>
<polygon fill="#f96210" stroke="black" points="3131.02,-2931.7 3140.8,-2927.61 3130.61,-2924.71 3131.02,-2931.7"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge555" 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="M1594.59,-3006.37C1567.22,-3000.35 1531.82,-2993.31 1500,-2989.31 1426.8,-2980.11 891,-3003.58 837,-2953.31 776.16,-2896.69 800.82,-2664.68 790,-2582.27 782.7,-2526.64 784.12,-2512.17 773,-2457.17 756.46,-2375.36 724,-2359.34 724,-2275.87 724,-2275.87 724,-2275.87 724,-2164.33 724,-2024.94 684,-1992.65 684,-1853.27 684,-1853.27 684,-1853.27 684,-1530.43 684,-1427.71 803.99,-1421.46 782,-1321.13"/>
<path fill="none" stroke="black" d="M782,-1319.13C776.72,-1301.92 772.31,-1298.76 763,-1283.36 743.02,-1250.3 707.89,-1249.72 714,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge556" 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="M1672,-2500.72C1703.59,-2400.07 1748,-2381.36 1748,-2275.87 1748,-2275.87 1748,-2275.87 1748,-2164.33 1748,-2016.6 1755.59,-1639.78 1810,-1502.43 1817.47,-1483.59 1829.88,-1485.01 1838,-1466.43 1864.23,-1406.47 1861.41,-1386.58 1862,-1321.13"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge557" 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="M1623.47,-2991.06C1608.94,-2970.93 1586.72,-2943.58 1562,-2925.32"/>
<path fill="none" stroke="black" d="M1562,-2923.32C1379.18,-2788.3 1278.76,-2831.02 1117,-2671.36 1025.37,-2580.92 1004.61,-2545.45 971,-2421.17 900.13,-2159.12 1099.04,-1479.64 1142,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge558" 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="M1562,-2829.34C1564.81,-2776.38 1613.02,-2784.13 1638,-2737.36"/>
<path fill="none" stroke="black" d="M1638,-2735.36C1670.32,-2674.83 1647.61,-2650.09 1658,-2582.27 1663.44,-2546.79 1662.96,-2537.46 1672,-2502.72"/>
<path fill="none" stroke="black" d="M1672,-2500.72C1680.5,-2450.18 1672,-2436.66 1672,-2385.4"/>
<path fill="none" stroke="black" d="M1672,-2383.4C1672,-2130.95 1701.63,-2064.66 1661,-1815.5 1637.89,-1673.76 1533.24,-1637.87 1581,-1502.43 1587.83,-1483.06 1602.88,-1485.71 1610,-1466.43 1683.01,-1268.76 1633.85,-1203 1624,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge559" 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="M1638,-2735.36C1708.18,-2617.43 1700.17,-2574.11 1772,-2457.17 1782.61,-2439.9 1791.16,-2439.42 1800,-2421.17 1817.84,-2384.35 1961.43,-1744.19 1976,-1705.96 1988.85,-1672.23 2013.92,-1670.28 2014,-1634.19"/>
<path fill="none" stroke="black" d="M2014,-1632.19C2011.31,-1581.1 1946.2,-1606.51 1924,-1560.42 1912.82,-1537.2 1910.85,-1524.59 1924,-1502.43 1941.06,-1473.7 1968.59,-1492.08 1990,-1466.43 2025.55,-1423.85 2183.68,-1034.12 2147,-992.51"/>
<path fill="none" stroke="black" d="M2147,-990.51C2081.53,-928.36 2034.74,-964.62 1957,-918.74 1953.18,-916.48 1949.41,-913.87 1945.76,-911.08"/>
<polygon fill="#f96210" stroke="black" points="1947.96,-908.35 1938.02,-904.71 1943.52,-913.76 1947.96,-908.35"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge560" 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="M1816,-990.51C1810.89,-970.7 1809.86,-948.33 1810.47,-928.6"/>
<polygon fill="#f96210" stroke="black" points="1813.97,-928.7 1810.92,-918.55 1806.97,-928.38 1813.97,-928.7"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge561" 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="M1656.73,-2990.65C1716.21,-2889.43 1932.03,-2518.57 2089,-2202.1 2130.68,-2118.06 2371.38,-1502.25 2432,-1430.67"/>
<path fill="none" stroke="black" d="M2432,-1428.67C2491.18,-1351.77 2588.07,-1412.03 2622,-1321.13"/>
<path fill="none" stroke="black" d="M2622,-1319.13C2661.78,-1212.54 2616.48,-1174.15 2646,-1064.28 2655.11,-1030.37 2701.23,-1019.68 2679,-992.51"/>
<path fill="none" stroke="black" d="M2679,-990.51C2599.24,-901.21 2253.68,-969 2145,-918.74 2140.91,-916.85 2136.95,-914.47 2133.16,-911.8"/>
<polygon fill="#f96210" stroke="black" points="2135.22,-908.97 2125.19,-905.58 2130.91,-914.49 2135.22,-908.97"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge562" 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="M2014,-1632.19C2012.98,-1557.73 2265.15,-1046.63 2214,-992.51"/>
<path fill="none" stroke="black" d="M2214,-990.51C2193.56,-970.77 2186.53,-967.23 2161,-954.74 2114.79,-932.13 2095.34,-944.82 2051,-918.74 2047.18,-916.49 2043.4,-913.88 2039.76,-911.09"/>
<polygon fill="#f96210" stroke="black" points="2041.96,-908.37 2032.01,-904.72 2037.51,-913.77 2041.96,-908.37"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge563" 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="M1672,-2383.4C1675.03,-2350.76 1683.37,-2343.93 1689,-2311.63 1743.97,-1996.49 1721.17,-1912.58 1770,-1596.42 1772.38,-1581.01 1824,-1336.71 1824,-1321.13 1824,-1321.13 1824,-1321.13 1824,-1209.59 1824,-1113.04 1838.41,-1086.42 1816,-992.51"/>
<path fill="none" stroke="black" d="M1816,-990.51C1811.31,-972.31 1781.26,-938.44 1755.66,-912.1"/>
<polygon fill="#f96210" stroke="black" points="1758.08,-909.57 1748.58,-904.89 1753.09,-914.48 1758.08,-909.57"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge564" 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="M1668.95,-2994.04C1682.09,-2982.45 1697.57,-2967.84 1710,-2953.31 1895.29,-2736.7 1911.1,-2659.15 2068,-2421.17 2191.08,-2234.49 2233.21,-2194.48 2341,-1998.57 2370.27,-1945.38 2528.53,-1546.78 2570,-1502.43 2592.82,-1478.03 2616.65,-1493.68 2636,-1466.43 2673.9,-1413.07 2660,-1386.58 2660,-1321.13 2660,-1321.13 2660,-1321.13 2660,-1209.59 2660,-1054.92 2994.36,-1134.05 2932,-992.51"/>
<path fill="none" stroke="black" d="M2932,-990.51C2844.34,-862.89 2380.79,-980.91 2239,-918.74 2234.88,-916.93 2230.88,-914.61 2227.08,-911.97"/>
<polygon fill="#f96210" stroke="black" points="2229.14,-909.14 2219.09,-905.8 2224.86,-914.68 2229.14,-909.14"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge565" 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="M1596,-2383.4C1593.91,-2302.61 1606.89,-2282.86 1610,-2202.1 1612.87,-2127.7 1614.27,-2108.91 1610,-2034.57 1588.91,-1667.23 1458.85,-1574.42 1520,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge566" 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="M1562,-2625.82C1547.61,-2518.87 1597.02,-2493.31 1596,-2385.4"/>
<path fill="none" stroke="black" d="M1596,-2383.4C1574.5,-2058.35 1484.04,-1990.86 1428,-1669.96 1403.91,-1531.99 1405.22,-1496.33 1392,-1356.9 1377.28,-1201.7 1364.96,-1017.9 1359.31,-928.87"/>
<polygon fill="#f96210" stroke="black" points="1362.79,-928.51 1358.67,-918.75 1355.81,-928.95 1362.79,-928.51"/>
</g>
<!-- ahriman_models_user_identity -->
<g id="node132" class="node">
<title>ahriman_models_user_identity</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce6f3b" stroke="black" cx="1063" cy="-1210.59" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="1063" y="-1219.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="1063" y="-1208.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="1063" y="-1197.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user_identity</text>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge567" 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="M1029.77,-1188.25C980.21,-1154.07 889.4,-1081.75 858,-992.51"/>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login -->
<g id="edge568" 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="M1092.52,-1186.67C1109.89,-1172.91 1132.09,-1154.82 1151,-1137.82 1237.03,-1060.49 1242.98,-1023.51 1336,-954.74 1363.18,-934.64 1375.49,-938.39 1403,-918.74 1406.61,-916.16 1410.24,-913.33 1413.79,-910.38"/>
<polygon fill="#ce6f3b" stroke="black" points="1416.12,-913 1421.4,-903.81 1411.54,-907.7 1416.12,-913"/>
</g>
<!-- ahriman_version -->
<g id="node133" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e76822" stroke="black" cx="11237" cy="-2274.87" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="11237" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11237" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge569" 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="M11225,-2164.33C11223.28,-2131.87 11234.39,-2124.73 11239,-2092.56 11280.89,-1800.12 11300,-1726.09 11300,-1430.67 11300,-1430.67 11300,-1430.67 11300,-646.34 11300,-492.46 11426.43,-487.01 11452,-335.27"/>
<path fill="none" stroke="black" d="M11452,-333.27C11478.19,-109.54 12659.78,-408.64 10884,-187.97 9599.42,-28.33 8010.56,-27.91 7691.37,-29.57"/>
<polygon fill="#e76822" stroke="black" points="7690.97,-26.07 7680.99,-29.63 7691.01,-33.07 7690.97,-26.07"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge570" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11225,-2164.33C11222.65,-2120.05 11255.03,-2097.18 11225,-2064.57"/>
<path fill="none" stroke="black" d="M11225,-2062.57C11214.82,-2051.5 11217.29,-2044.51 11206,-2034.57 11179.44,-2011.2 11166.05,-2015.53 11135,-1998.57 11129.89,-1995.78 11124.58,-1992.8 11119.33,-1989.79"/>
<polygon fill="#e76822" stroke="black" points="11120.98,-1986.7 11110.57,-1984.73 11117.47,-1992.77 11120.98,-1986.7"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge571" 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="M11234.04,-2253.71C11231.04,-2232.14 11226.62,-2196.9 11225,-2166.33"/>
<path fill="none" stroke="black" d="M11225,-2164.33C11223.54,-2136.68 11204.86,-2111.79 11186.51,-2093.78"/>
<polygon fill="#e76822" stroke="black" points="11188.41,-2090.77 11178.72,-2086.5 11183.63,-2095.88 11188.41,-2090.77"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge572" 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="M11198.93,-2272.77C11022.72,-2267.76 10268.64,-2246.86 9650,-2238.1 9606.98,-2237.49 3488.31,-2229.32 3455,-2202.1 3332.35,-2101.86 3382,-2011.66 3382,-1853.27 3382,-1853.27 3382,-1853.27 3382,-1632.19 3382,-1422.04 3190.43,-1420.31 3166,-1211.59"/>
</g>
<!-- ahriman_web -->
<g id="node134" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="3350" cy="-545.57" rx="41.59" ry="18"/>
<text text-anchor="middle" x="3350" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.web</text>
</g>
<!-- ahriman_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge573" 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="M3344.2,-527.66C3337.93,-505.97 3331.16,-468.33 3350,-444.81"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node135" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c85d23" stroke="black" cx="1452" cy="-647.34" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="1452" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1452" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1452" y="-633.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares</text>
</g>
<!-- ahriman_web_middlewares&#45;&gt;ahriman_web_web -->
<g id="edge574" 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="M1472.09,-620.64C1482.03,-607.93 1494.14,-592.44 1504.71,-578.92"/>
<polygon fill="#c85d23" stroke="black" points="1507.65,-580.84 1511.05,-570.81 1502.14,-576.53 1507.65,-580.84"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge575" 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="M849.56,-837.31C847.78,-814.27 847.48,-783.9 854,-757.87"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node137" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="1516" cy="-756.87" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="1516" y="-770.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1516" y="-759.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1516" y="-748.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="1516" y="-737.87" 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="edge576" 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="M1518.41,-719.89C1520.92,-682.29 1524.85,-623.5 1527.43,-585.01"/>
<polygon fill="#915230" stroke="black" points="1530.94,-584.93 1528.12,-574.72 1523.96,-584.46 1530.94,-584.93"/>
</g>
<!-- ahriman_web_routes -->
<g id="node138" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="1611" cy="-647.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1611" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1611" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="1611" y="-633.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">routes</text>
</g>
<!-- ahriman_web_routes&#45;&gt;ahriman_web_web -->
<g id="edge577" 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="M1591.39,-622.19C1580.82,-609.17 1567.64,-592.94 1556.21,-578.85"/>
<polygon fill="#734126" stroke="black" points="1558.73,-576.4 1549.71,-570.85 1553.29,-580.82 1558.73,-576.4"/>
</g>
<!-- ahriman_web_views -->
<g id="node139" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="2164" cy="-756.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2164" y="-765.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="2164" y="-754.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="2164" y="-743.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge578" 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="M2138.62,-734.97C2130.54,-729.3 2121.29,-723.73 2112,-720.1 1954.58,-658.61 1750.9,-649.01 1659.33,-648.03"/>
<polygon fill="#f96210" stroke="black" points="1659.28,-644.53 1649.26,-647.96 1659.23,-651.53 1659.28,-644.53"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge579" 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="M1922.31,-978.43C1896.88,-970.34 1861.72,-960.21 1830,-954.74 1715.63,-935.02 1415.52,-964.8 1309,-918.74 1303.64,-916.42 1298.5,-913.22 1293.71,-909.6"/>
<polygon fill="#953703" stroke="black" points="1295.94,-906.9 1286.02,-903.18 1291.46,-912.27 1295.94,-906.9"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge580" 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="M1921.73,-979.8C1896.18,-972.39 1861.12,-962.52 1830,-954.74 1758.02,-936.75 1736.81,-943.86 1667,-918.74 1652.8,-913.63 1637.96,-906.65 1624.72,-899.78"/>
<polygon fill="#953703" stroke="black" points="1626.31,-896.66 1615.84,-895.06 1623.03,-902.84 1626.31,-896.66"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge581" 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="M1944.12,-957.15C1939.79,-946.76 1934.93,-935.08 1930.26,-923.86"/>
<polygon fill="#953703" stroke="black" points="1933.47,-922.47 1926.4,-914.58 1927.01,-925.16 1933.47,-922.47"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge582" 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="M1927.45,-968.64C1908.52,-954.79 1883.92,-936.26 1863,-918.74 1859.6,-915.89 1856.11,-912.87 1852.66,-909.81"/>
<polygon fill="#953703" stroke="black" points="1854.95,-907.16 1845.18,-903.07 1850.26,-912.36 1854.95,-907.16"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge583" 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="M1987.86,-968.55C2006.37,-954.67 2030.45,-936.13 2051,-918.74 2054.39,-915.87 2057.86,-912.84 2061.31,-909.77"/>
<polygon fill="#953703" stroke="black" points="2063.71,-912.32 2068.78,-903.02 2059.02,-907.12 2063.71,-912.32"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge584" 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="M1971.43,-956.84C1975.49,-946.66 1980.04,-935.27 1984.41,-924.3"/>
<polygon fill="#953703" stroke="black" points="1987.74,-925.39 1988.2,-914.8 1981.24,-922.79 1987.74,-925.39"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge585" 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="M1921.14,-980.63C1881.77,-969.15 1818.37,-947.99 1769,-918.74 1764.9,-916.31 1760.8,-913.54 1756.81,-910.6"/>
<polygon fill="#953703" stroke="black" points="1758.86,-907.77 1748.82,-904.4 1754.57,-913.3 1758.86,-907.77"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge586" 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="M1994.7,-980.94C2033.84,-969.73 2096.73,-948.79 2145,-918.74 2148.77,-916.39 2152.5,-913.72 2156.12,-910.88"/>
<polygon fill="#953703" stroke="black" points="2158.39,-913.55 2163.83,-904.46 2153.91,-908.17 2158.39,-913.55"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge587" 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="M1921.94,-978.86C1896.49,-971.02 1861.45,-961.02 1830,-954.74 1700.47,-928.89 1661.28,-957.45 1535,-918.74 1520.57,-914.32 1505.66,-907.54 1492.44,-900.63"/>
<polygon fill="#953703" stroke="black" points="1494.04,-897.52 1483.57,-895.86 1490.72,-903.68 1494.04,-897.52"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge588" 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="M1922.01,-978.49C1896.59,-970.48 1861.56,-960.43 1830,-954.74 1736.28,-937.85 1490.12,-957.19 1403,-918.74 1398.88,-916.92 1394.89,-914.59 1391.09,-911.95"/>
<polygon fill="#953703" stroke="black" points="1393.15,-909.12 1383.1,-905.77 1388.87,-914.66 1393.15,-909.12"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge589" 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="M1283.82,-843.55C1302.06,-819.5 1329.31,-785.24 1356,-757.87"/>
<path fill="none" stroke="black" d="M1356,-755.87C1371.57,-739.92 1498.63,-690.56 1567.31,-664.63"/>
<polygon fill="#7a4528" stroke="black" points="1568.87,-667.78 1577,-660.98 1566.41,-661.23 1568.87,-667.78"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node142" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="2474" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2474" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="2474" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="2474" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="2474" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge590" 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="M2449.86,-845.47C2443.09,-839.3 2435.29,-833.46 2427,-829.64 2301.01,-771.64 2231.55,-871.85 2117,-793.64 2102.13,-783.49 2106.47,-773.76 2098,-757.87"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge591" 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="M1590.67,-830.72C1595.67,-808.69 1602.63,-781.52 1611,-757.87"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge592" 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="M1938.52,-844.46C1944.39,-839.22 1950.7,-834.03 1957,-829.64 2014.67,-789.42 2131.1,-819.91 2098,-757.87"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge593" 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="M1843.95,-843.55C1849.86,-838.4 1856.35,-833.47 1863,-829.64 1957.67,-775.21 2149.41,-854.22 2098,-757.87"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge594" 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="M2107.25,-830.85C2110.06,-807.96 2109.78,-779.95 2098,-757.87"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node147" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="2286" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2286" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="2286" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="2286" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="2286" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge595" 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="M2260.87,-845.98C2254.23,-839.95 2246.74,-834.04 2239,-829.64 2189.86,-801.7 2160.79,-829.4 2117,-793.64 2103.06,-782.26 2106.47,-773.76 2098,-757.87"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge596" 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="M2032.29,-844.24C2061.78,-813.29 2103.06,-767.36 2098,-757.87"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge597" 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="M1748.36,-843.15C1754.78,-838.03 1761.8,-833.22 1769,-829.64 1903.05,-763.1 2168.46,-889.91 2098,-757.87"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge598" 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="M2162.59,-845.73C2147.87,-831.1 2130.38,-812.31 2117,-793.64 2106.51,-779.02 2106.47,-773.76 2098,-757.87"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node151" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="2380" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="2380" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="2380" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="2380" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="2380" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge599" 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="M2355.73,-845.75C2348.95,-839.57 2341.19,-833.66 2333,-829.64 2245.63,-786.77 2195.99,-850.5 2117,-793.64 2102.39,-783.13 2106.47,-773.76 2098,-757.87"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge600" 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="M1479.58,-845.69C1486.62,-839.94 1494.32,-834.24 1502,-829.64 1538.98,-807.54 1559.94,-822.42 1592,-793.64 1605.4,-781.62 1604.99,-774.84 1611,-757.87"/>
<path fill="none" stroke="black" d="M1611,-755.87C1618.84,-733.74 1618.97,-707.4 1617.09,-686.33"/>
<polygon fill="#734126" stroke="black" points="1620.54,-685.71 1615.98,-676.15 1613.58,-686.47 1620.54,-685.71"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge601" 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="M1343.12,-832.11C1338.13,-807.31 1337.41,-776.93 1356,-757.87"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge602" 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="M1568.37,-544.07C1825.71,-540.48 3292.26,-516.9 3350,-444.81"/>
<path fill="none" stroke="black" d="M3350,-442.81C3487.42,-271.26 7045.35,-231.02 7540.11,-226.25"/>
<polygon fill="#734126" stroke="black" points="7540.25,-229.75 7550.22,-226.15 7540.19,-222.75 7540.25,-229.75"/>
</g>
<!-- aioauthclient -->
<g id="node155" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b69953" stroke="black" points="1051.5,-2402.4 1048.5,-2406.4 1027.5,-2406.4 1024.5,-2402.4 980.5,-2402.4 980.5,-2366.4 1051.5,-2366.4 1051.5,-2402.4"/>
<text text-anchor="middle" x="1016" y="-2381.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aioauthclient</text>
</g>
<!-- aioauthclient&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge603" 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="M1011.88,-2366.13C1007.52,-2344.13 1002.92,-2305.4 1016,-2275.87"/>
</g>
<!-- aiohttp -->
<g id="node156" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ebf906" stroke="black" points="1644,-1549.43 1641,-1553.43 1620,-1553.43 1617,-1549.43 1590,-1549.43 1590,-1513.43 1644,-1513.43 1644,-1549.43"/>
<text text-anchor="middle" x="1617" y="-1528.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttp</text>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares -->
<g id="edge604" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1643.29,-1513.22C1666.96,-1495.78 1699.57,-1466.35 1710,-1430.67"/>
<path fill="none" stroke="black" d="M1710,-1428.67C1719.14,-1397.39 1529.64,-904.78 1516,-875.19"/>
<path fill="none" stroke="black" d="M1516,-873.19C1508.18,-853.58 1510.76,-845.67 1497,-829.64 1477.48,-806.91 1454.46,-819.88 1440,-793.64 1421.72,-760.48 1428.9,-716.46 1438.03,-685.59"/>
<polygon fill="#ebf906" stroke="black" points="1441.49,-686.25 1441.17,-675.66 1434.82,-684.15 1441.49,-686.25"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge605" 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="M1589.75,-1528.76C1522.59,-1524.12 1344.26,-1508.5 1202,-1466.43 1088.01,-1432.73 1035.33,-1447.17 958,-1356.9 848.74,-1229.36 887.71,-1157.8 858,-992.51"/>
<path fill="none" stroke="black" d="M858,-990.51C853.34,-968 852.06,-942.51 852.05,-921.23"/>
<polygon fill="#ebf906" stroke="black" points="855.56,-921.18 852.15,-911.15 848.56,-921.11 855.56,-921.18"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge606" 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="M1516,-873.19C1506.12,-851.77 1505.34,-825.63 1507.37,-803.66"/>
<polygon fill="#ebf906" stroke="black" points="1510.86,-803.91 1508.52,-793.58 1503.91,-803.11 1510.86,-803.91"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge607" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1667,-990.51C1655.25,-919.98 1620.78,-884.19 1667,-829.64 1792.53,-681.48 2189.42,-929.2 2098,-757.87"/>
<path fill="none" stroke="black" d="M2098,-755.87C2056.36,-678.4 1774.11,-656.17 1659.36,-650.29"/>
<polygon fill="#ebf906" stroke="black" points="1659.28,-646.78 1649.12,-649.78 1658.93,-653.77 1659.28,-646.78"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge608" 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="M1786,-1209.59C1805.18,-1154.29 1841.39,-1156.83 1862,-1102.05"/>
<path fill="none" stroke="black" d="M1862,-1100.05C1873.62,-1069.17 1898.72,-1041.58 1920.34,-1022.08"/>
<polygon fill="#ebf906" stroke="black" points="1922.9,-1024.49 1928.12,-1015.27 1918.29,-1019.22 1922.9,-1024.49"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge609" 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="M1710,-1428.67C1724.22,-1380.01 1729.03,-1368.13 1748,-1321.13"/>
<path fill="none" stroke="black" d="M1748,-1319.13C1766.97,-1272.12 1718.42,-1261.57 1710,-1211.59"/>
<path fill="none" stroke="black" d="M1710,-1209.59C1693.66,-1112.6 1676.58,-1090.4 1667,-992.51"/>
<path fill="none" stroke="black" d="M1667,-990.51C1661.72,-958.83 1640.14,-929.76 1620.04,-908.74"/>
<polygon fill="#ebf906" stroke="black" points="1622.27,-906.01 1612.74,-901.37 1617.29,-910.93 1622.27,-906.01"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge610" 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="M1748,-1100.05C1756.43,-1082.86 1760.92,-1079.89 1772,-1064.28 1783.58,-1047.97 1787.13,-1044.37 1799,-1028.28 1826.61,-990.84 1857.65,-947.96 1879.88,-917.12"/>
<polygon fill="#ebf906" stroke="black" points="1882.9,-918.91 1885.9,-908.75 1877.22,-914.82 1882.9,-918.91"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge611" 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="M1710,-1209.59C1703.29,-1159.34 1728.62,-1148.89 1748,-1102.05"/>
<path fill="none" stroke="black" d="M1748,-1100.05C1771.82,-1042.47 1791.43,-973.52 1803.37,-927.29"/>
<polygon fill="#ebf906" stroke="black" points="1806.79,-928.05 1805.87,-917.49 1800.01,-926.32 1806.79,-928.05"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge612" 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="M1748,-1319.13C1794.68,-1203.47 2166.79,-1136.94 2228,-1028.28 2244.04,-999.8 2245.93,-982.06 2228,-954.74 2205.94,-921.12 2178.67,-940.72 2145,-918.74 2141.28,-916.31 2137.59,-913.59 2133.99,-910.71"/>
<polygon fill="#ebf906" stroke="black" points="2136.21,-908.01 2126.31,-904.24 2131.7,-913.36 2136.21,-908.01"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge613" 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="M1748,-1319.13C1766.97,-1272.12 1769.39,-1259.48 1786,-1211.59"/>
<path fill="none" stroke="black" d="M1786,-1209.59C1827.35,-1090.4 1828.35,-1050.05 1911,-954.74 1928.01,-935.13 1937.24,-935.58 1957,-918.74 1960.38,-915.86 1963.84,-912.82 1967.29,-909.74"/>
<polygon fill="#ebf906" stroke="black" points="1969.69,-912.29 1974.75,-902.99 1964.99,-907.1 1969.69,-912.29"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge614" 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="M1667,-990.51C1662.75,-965 1673.28,-938.48 1685.86,-917.31"/>
<polygon fill="#ebf906" stroke="black" points="1688.98,-918.92 1691.34,-908.59 1683.05,-915.2 1688.98,-918.92"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge615" 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="M1644.16,-1520.4C1749.92,-1479.58 2134.04,-1314.35 2249,-1028.28 2261.19,-997.95 2259,-985.86 2249,-954.74 2244.23,-939.89 2235.55,-925.46 2226.38,-913.06"/>
<polygon fill="#ebf906" stroke="black" points="2228.88,-910.58 2219.99,-904.81 2223.35,-914.86 2228.88,-910.58"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge616" 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="M1617.49,-1513.33C1617.93,-1487.18 1617.6,-1435.74 1610,-1392.9 1598.19,-1326.28 1519.38,-1169.7 1520,-1102.05"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge617" 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="M1603.81,-1513.2C1569.84,-1467.05 1482,-1335.72 1482,-1211.59 1482,-1211.59 1482,-1211.59 1482,-1100.05 1482,-1025.69 1428.92,-953.13 1391.66,-911.36"/>
<polygon fill="#ebf906" stroke="black" points="1394.22,-908.97 1384.91,-903.93 1389.04,-913.68 1394.22,-908.97"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge618" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1589.79,-1529.31C1526.05,-1525.95 1362.83,-1513.11 1236,-1466.43 1176.23,-1444.44 1171.34,-1418.45 1113,-1392.9 1061.22,-1370.21 1031.24,-1396.6 991,-1356.9 942.88,-1309.41 962.36,-1277.18 946,-1211.59"/>
<path fill="none" stroke="black" d="M946,-1209.59C909.49,-1065.42 944.86,-1023.51 934,-875.19"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node158" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#56b03a" stroke="black" points="1068,-1338.13 1065,-1342.13 1044,-1342.13 1041,-1338.13 1000,-1338.13 1000,-1302.13 1068,-1302.13 1068,-1338.13"/>
<text text-anchor="middle" x="1034" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge619" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1589.66,-1520.61C1496.59,-1487.2 1191.49,-1377.67 1077.49,-1336.74"/>
<polygon fill="#ebf906" stroke="black" points="1078.61,-1333.42 1068.02,-1333.34 1076.25,-1340.01 1078.61,-1333.42"/>
</g>
<!-- aiohttpsession -->
<g id="node160" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db877" stroke="black" points="754,-1338.13 751,-1342.13 730,-1342.13 727,-1338.13 674,-1338.13 674,-1302.13 754,-1302.13 754,-1338.13"/>
<text text-anchor="middle" x="714" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge620" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1589.96,-1529.16C1511.47,-1525.04 1277.14,-1509.74 1088,-1466.43 941.47,-1432.88 902.87,-1423.28 768,-1356.9 760.48,-1353.19 752.76,-1348.62 745.6,-1343.99"/>
<polygon fill="#ebf906" stroke="black" points="747.14,-1340.8 736.88,-1338.15 743.24,-1346.62 747.14,-1340.8"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node157" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#8db653" stroke="black" points="3175.5,-892.19 3172.5,-896.19 3151.5,-896.19 3148.5,-892.19 3074.5,-892.19 3074.5,-856.19 3175.5,-856.19 3175.5,-892.19"/>
<text text-anchor="middle" x="3125" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpdebugtoolbar</text>
</g>
<!-- aiohttpdebugtoolbar&#45;&gt;ahriman_web_web -->
<g id="edge621" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3125,-856C3125,-833.46 3125,-792.71 3125,-757.87"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge622" 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="M1057.47,-1301.9C1080.25,-1284.89 1112.83,-1259.68 1123,-1247.36 1134.46,-1233.48 1139.17,-1229.37 1142,-1211.59"/>
<path fill="none" stroke="black" d="M1142,-1209.59C1149.51,-1162.33 1144.95,-1149.23 1137,-1102.05"/>
<path fill="none" stroke="black" d="M1137,-1100.05C1129.06,-1052.92 1105.72,-1028.65 1137,-992.51"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge623" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1011.37,-1301.97C988.59,-1282.91 955.52,-1249.74 946,-1211.59"/>
</g>
<!-- aiohttpsecurity -->
<g id="node159" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#47c256" stroke="black" points="906,-1651.19 903,-1655.19 882,-1655.19 879,-1651.19 826,-1651.19 826,-1615.19 906,-1615.19 906,-1651.19"/>
<text text-anchor="middle" x="866" y="-1630.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsecurity</text>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers -->
<g id="edge624" 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="M881,-1530.43C915.55,-1419.33 994.36,-1438.79 1077,-1356.9 1113.1,-1321.12 1151.75,-1277.52 1177.64,-1247.47"/>
<polygon fill="#47c256" stroke="black" points="1180.41,-1249.62 1184.26,-1239.75 1175.1,-1245.06 1180.41,-1249.62"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge625" 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="M868.12,-1615.17C870.69,-1595.25 875.41,-1561.31 881,-1532.43"/>
<path fill="none" stroke="black" d="M881,-1530.43C885.89,-1505.17 786.57,-1346.44 782,-1321.13"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge626" 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="M712.33,-1301.86C710.65,-1280.5 708.95,-1243.11 714,-1211.59"/>
</g>
<!-- boto3 -->
<g id="node161" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40c0a9" stroke="black" points="9489,-3036.3 9486,-3040.3 9465,-3040.3 9462,-3036.3 9435,-3036.3 9435,-3000.3 9489,-3000.3 9489,-3036.3"/>
<text text-anchor="middle" x="9462" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">boto3</text>
</g>
<!-- boto3&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge627" 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="M9468.79,-3000.29C9475.82,-2982.03 9486.65,-2952.05 9493,-2925.32"/>
</g>
<!-- cryptography -->
<g id="node162" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#19c2e6" stroke="black" points="3072,-4182.36 3069,-4186.36 3048,-4186.36 3045,-4182.36 2998,-4182.36 2998,-4146.36 3072,-4146.36 3072,-4182.36"/>
<text text-anchor="middle" x="3035" y="-4161.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cryptography</text>
</g>
<!-- cryptography&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge628" 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="M2997.69,-4163.05C2737.32,-4160.77 1196.44,-4145.41 994,-4099.37 835.49,-4063.31 418.47,-3931.35 396,-3833.39"/>
<path fill="none" stroke="black" d="M396,-3831.39C184.91,-3545.25 283.77,-3399.79 237,-3047.3 214.99,-2881.41 218.67,-2838.68 216,-2671.36 207.16,-2117.18 342,-1984.92 342,-1430.67 342,-1430.67 342,-1430.67 342,-1319.13 342,-1080.39 663.7,-941.2 797.1,-893.74"/>
<polygon fill="#19c2e6" stroke="black" points="798.47,-896.97 806.75,-890.35 796.16,-890.36 798.47,-896.97"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge629" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M396,-3831.39C377.85,-3747.22 396,-3723.76 396,-3637.65 396,-3637.65 396,-3637.65 396,-2923.32 396,-2584.07 494,-2505.58 494,-2166.33 494,-2166.33 494,-2166.33 494,-1741.73 494,-1574.14 632.84,-1407.38 689.93,-1345.9"/>
<polygon fill="#19c2e6" stroke="black" points="692.8,-1347.95 697.1,-1338.26 687.7,-1343.15 692.8,-1347.95"/>
</g>
<!-- requests -->
<g id="node169" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06aa" stroke="black" points="8062,-4099.37 8059,-4103.37 8038,-4103.37 8035,-4099.37 8008,-4099.37 8008,-4063.37 8062,-4063.37 8062,-4099.37"/>
<text text-anchor="middle" x="8035" y="-4078.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge630" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3072.12,-4162.6C3239.27,-4159.21 3938.84,-4145.12 4513,-4135.37 5951.3,-4110.92 7720.1,-4086.65 7997.62,-4082.87"/>
<polygon fill="#19c2e6" stroke="black" points="7997.99,-4086.37 8007.94,-4082.73 7997.9,-4079.37 7997.99,-4086.37"/>
</g>
<!-- inflection -->
<g id="node163" class="node">
<title>inflection</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#5382b6" stroke="black" points="3825,-3933.38 3822,-3937.38 3801,-3937.38 3798,-3933.38 3769,-3933.38 3769,-3897.38 3825,-3897.38 3825,-3933.38"/>
<text text-anchor="middle" x="3797" y="-3912.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">inflection</text>
</g>
<!-- inflection&#45;&gt;ahriman_models_aur_package -->
<g id="edge631" class="edge">
<title>inflection&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3801.66,-3897.08C3808.15,-3874.58 3821.12,-3834.47 3839,-3803.4 3841.28,-3799.43 3887.62,-3742.5 3891,-3739.41"/>
<path fill="none" stroke="black" d="M3891,-3737.41C3902.76,-3726 3900.99,-3717.92 3915,-3709.42 3920.43,-3706.12 4079.06,-3670.07 4166.48,-3650.35"/>
<polygon fill="#5382b6" stroke="black" points="4167.28,-3653.76 4176.26,-3648.15 4165.74,-3646.93 4167.28,-3653.76"/>
</g>
<!-- jinja2 -->
<g id="node164" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b4cce" stroke="black" points="900,-2942.32 897,-2946.32 876,-2946.32 873,-2942.32 846,-2942.32 846,-2906.32 900,-2906.32 900,-2942.32"/>
<text text-anchor="middle" x="873" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja2</text>
</g>
<!-- jinja2&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge632" 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="M881,-2829.34C953.67,-2755.63 2640.68,-2780.99 2743,-2765.35 3084.6,-2713.13 3478.53,-2576.69 3623.07,-2523.95"/>
<polygon fill="#3b4cce" stroke="black" points="3624.44,-2527.18 3632.63,-2520.45 3622.04,-2520.6 3624.44,-2527.18"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge633" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M866.48,-2906C823.68,-2791.14 582.6,-2126.45 518,-1560.42 486.13,-1281.15 558.84,-1197.8 700,-954.74 734.79,-894.83 749.88,-883.87 793,-829.64 819.06,-796.88 843.82,-798.48 854,-757.87"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge634" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M868.68,-2906.08C864.62,-2885.32 861.72,-2850.82 881,-2831.34"/>
<path fill="none" stroke="black" d="M881,-2829.34C888.37,-2821.89 824.65,-2466.56 820,-2457.17 810.24,-2437.45 794.13,-2441.62 786,-2421.17 763.1,-2363.58 769.03,-2261.38 875,-1815.5 897.41,-1721.21 994.32,-1436.63 1024.79,-1347.87"/>
<polygon fill="#3b4cce" stroke="black" points="1028.15,-1348.86 1028.09,-1338.27 1021.53,-1346.59 1028.15,-1348.86"/>
</g>
<!-- main -->
<g id="node165" class="node">
<title>main</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#6b2e2e" stroke="black" points="7375,-3552.89 7372,-3556.89 7351,-3556.89 7348,-3552.89 7321,-3552.89 7321,-3516.89 7375,-3516.89 7375,-3552.89"/>
<text text-anchor="middle" x="7348" y="-3532.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">main</text>
</g>
<!-- pkgresources -->
<g id="node167" class="node">
<title>pkgresources</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#8731c4" stroke="black" points="7385,-3451.13 7382,-3455.13 7361,-3455.13 7358,-3451.13 7311,-3451.13 7311,-3415.13 7385,-3415.13 7385,-3451.13"/>
<text text-anchor="middle" x="7348" y="-3430.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pkgresources</text>
</g>
<!-- main&#45;&gt;pkgresources -->
<g id="edge635" class="edge">
<title>main&#45;&gt;pkgresources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7348,-3516.51C7348,-3501.35 7348,-3479.09 7348,-3461.53"/>
<polygon fill="#6b2e2e" stroke="black" points="7351.5,-3461.3 7348,-3451.3 7344.5,-3461.3 7351.5,-3461.3"/>
</g>
<!-- passlib -->
<g id="node166" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#5e3bce" stroke="black" points="5628,-3224.27 5625,-3228.27 5604,-3228.27 5601,-3224.27 5574,-3224.27 5574,-3188.27 5628,-3188.27 5628,-3224.27"/>
<text text-anchor="middle" x="5601" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge636" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5573.78,-3197.72C5550.2,-3191.43 5515.08,-3182.66 5484,-3177.28 5337.75,-3151.96 5299.06,-3161.35 5152,-3141.28 4994.9,-3119.84 4956.75,-3107.16 4800,-3083.3 4501.86,-3037.9 4427.97,-3020.36 4128,-2989.31 3950.22,-2970.91 3394.56,-2937.88 3227.18,-2928.11"/>
<polygon fill="#5e3bce" stroke="black" points="3227.37,-2924.62 3217.19,-2927.53 3226.97,-2931.61 3227.37,-2924.62"/>
</g>
<!-- pkgresources&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge637" class="edge">
<title>pkgresources&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7369.37,-3415.05C7414.37,-3380.26 7523.55,-3301.84 7630,-3271.26 7817.04,-3217.52 8311.16,-3252.53 8505,-3235.26 8581.41,-3228.46 9799.67,-3069.82 9873,-3047.3 9963.06,-3019.64 9979.15,-2996.26 10063,-2953.31 10301.17,-2831.32 10393.03,-2846.91 10595,-2671.36 10804.22,-2489.52 10895.13,-2435.59 10961,-2166.33"/>
<path fill="none" stroke="black" d="M10961,-2164.33C10960.12,-2099.74 11005.06,-2036.66 11038.53,-1998.75"/>
<polygon fill="#8731c4" stroke="black" points="11041.37,-2000.82 11045.47,-1991.06 11036.18,-1996.14 11041.37,-2000.82"/>
</g>
<!-- pkgresources&#45;&gt;passlib -->
<g id="edge638" class="edge">
<title>pkgresources&#45;&gt;passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7310.79,-3431.5C7143.1,-3428.41 6456.77,-3412.72 6249,-3360.36 6156.61,-3337.07 6145.72,-3297.08 6054,-3271.26 5925.58,-3235.11 5887.92,-3255.12 5756,-3235.26 5715.55,-3229.17 5669.45,-3220.64 5638.11,-3214.6"/>
<polygon fill="#8731c4" stroke="black" points="5638.56,-3211.12 5628.08,-3212.66 5637.23,-3218 5638.56,-3211.12"/>
</g>
<!-- pyalpm -->
<g id="node168" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#d12fdb" stroke="black" points="4824,-3933.38 4821,-3937.38 4800,-3937.38 4797,-3933.38 4770,-3933.38 4770,-3897.38 4824,-3897.38 4824,-3933.38"/>
<text text-anchor="middle" x="4797" y="-3912.88" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pyalpm</text>
</g>
<!-- pyalpm&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge639" 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="M4787.65,-3897.24C4772.76,-3869.88 4742.79,-3814.59 4718,-3767.4 4679.08,-3693.31 4690.43,-3659.79 4632,-3599.88 4608.67,-3575.96 4594.66,-3581.05 4566,-3563.88 4509.79,-3530.2 4446.79,-3488.14 4407.26,-3461.21"/>
<polygon fill="#d12fdb" stroke="black" points="4408.94,-3458.12 4398.71,-3455.36 4405,-3463.9 4408.94,-3458.12"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_aur_package -->
<g id="edge640" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4769.9,-3906.57C4738.56,-3897.2 4685.69,-3880.37 4642,-3861.38 4499.74,-3799.56 4340.32,-3707.79 4265.76,-3663.47"/>
<polygon fill="#d12fdb" stroke="black" points="4267.48,-3660.42 4257.1,-3658.3 4263.9,-3666.43 4267.48,-3660.42"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge641" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4823.95,-3897.29C4897.75,-3849.79 5107.53,-3709.98 5256,-3563.88 5375.48,-3446.29 5352.62,-3361.34 5494,-3271.26 5549.27,-3236.04 5578.26,-3264.33 5637,-3235.26 5757.18,-3175.78 5769.52,-3132.58 5873,-3047.3 5903.65,-3022.04 5904.62,-3005.25 5941,-2989.31 6063.6,-2935.6 6109.11,-2981.3 6240,-2953.31 6255.21,-2950.06 6271.54,-2945.36 6286.05,-2940.74"/>
<polygon fill="#d12fdb" stroke="black" points="6287.35,-2944 6295.77,-2937.58 6285.18,-2937.35 6287.35,-2944"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge642" 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="M4810.85,-3897.14C4857.47,-3839.09 5009.31,-3650.05 5072.75,-3571.06"/>
<polygon fill="#d12fdb" stroke="black" points="5075.79,-3572.87 5079.32,-3562.88 5070.33,-3568.49 5075.79,-3572.87"/>
</g>
<!-- requests&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge643" class="edge">
<title>requests&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8062.24,-4077.97C8105.71,-4074.23 8193.46,-4067.07 8268,-4063.37 8872.36,-4033.34 9026.31,-4081.32 9629,-4027.37 9791.12,-4012.85 10353,-4079.15 10353,-3916.38 10353,-3916.38 10353,-3916.38 10353,-3831.39 10353,-3503.41 10640.38,-3528.15 10788,-3235.26 10852.96,-3106.37 10885,-3069.66 10885,-2925.32 10885,-2925.32 10885,-2925.32 10885,-2829.34 10885,-2392.8 10626.51,-1899.38 10395,-1502.43 10309.32,-1355.53 10168.77,-1209.4 10099.39,-1141.45"/>
<polygon fill="#ef06aa" stroke="black" points="10101.7,-1138.81 10092.1,-1134.33 10096.82,-1143.82 10101.7,-1138.81"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge644" class="edge">
<title>requests&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8007.82,-4080.22C7662.43,-4078.28 4138.14,-4057.1 3929,-3999.37"/>
<path fill="none" stroke="black" d="M3929,-3997.37C3821.76,-3967.78 3754.87,-4021.53 3687,-3933.38 3651.76,-3887.61 3673.34,-3859.53 3687,-3803.4 3730.68,-3623.86 3754.51,-3571.57 3878,-3434.13"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge645" class="edge">
<title>requests&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3929,-3997.37C3859.14,-3976.6 3915.08,-3904.93 3929,-3833.39"/>
<path fill="none" stroke="black" d="M3929,-3831.39C3942.57,-3792.83 3898.44,-3766.56 3929,-3739.41"/>
</g>
<!-- requests&#45;&gt;ahriman_core_report_telegram -->
<g id="edge646" class="edge">
<title>requests&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8007.81,-4080.33C7672.78,-4079.88 4347.14,-4074.25 3915,-4027.37 3697.32,-4003.75 3414.18,-4134.35 3435,-3916.38"/>
<path fill="none" stroke="black" d="M3435,-3914.38C3426.56,-3899.82 3471.36,-3694.06 3494,-3599.88 3575.3,-3261.64 3593.45,-3105.53 3891,-2925.32"/>
<path fill="none" stroke="black" d="M3891,-2923.32C3928.9,-2902.7 4246.12,-2892.26 4274,-2859.33 4355.61,-2762.96 4125.82,-2675.5 4211,-2582.27 4270.9,-2516.71 4527.87,-2582.38 4609,-2546.27 4614.34,-2543.89 4619.47,-2540.66 4624.24,-2537.02"/>
<polygon fill="#ef06aa" stroke="black" points="4626.5,-2539.69 4631.93,-2530.59 4622.01,-2534.32 4626.5,-2539.69"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge647" 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="M3435,-3914.38C3500.68,-3745.42 3509.91,-3699.96 3587,-3535.89"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge648" 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="M3929,-3831.39C3989.72,-3658.86 4174.22,-3797.06 4309,-3673.42 4384.16,-3604.48 4378.84,-3565.26 4415,-3469.9 4493.05,-3264.05 4461.22,-3196.73 4535,-2989.31 4556.39,-2929.19 4582.11,-2921.62 4596,-2859.33 4601.61,-2834.18 4604.02,-2825.84 4596,-2801.35 4579.86,-2752.11 4563.07,-2744.57 4527,-2707.36 4508.93,-2688.73 4492.37,-2694.7 4481,-2671.36 4463.66,-2635.77 4454.37,-2611.57 4481,-2582.27 4537.45,-2520.15 4790.47,-2597.45 4857,-2546.27 4890.47,-2520.52 4869.28,-2493.97 4890,-2457.17 4920.51,-2403 4923.06,-2378.55 4977,-2347.63 5053.09,-2304.03 5313.74,-2284.94 5427.81,-2278.53"/>
<polygon fill="#ef06aa" stroke="black" points="5428.26,-2282.01 5438.05,-2277.97 5427.88,-2275.02 5428.26,-2282.01"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge649" 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="M8062.24,-4077.99C8105.71,-4074.29 8193.47,-4067.17 8268,-4063.37 8541.09,-4049.41 9231.49,-4088.58 9498,-4027.37 9615.3,-4000.42 9745,-4036.73 9745,-3916.38 9745,-3916.38 9745,-3916.38 9745,-3635.65 9745,-3473.58 9838.24,-3412.64 9759,-3271.26 9712.38,-3188.08 9446.51,-3126.22 9393,-3047.3 9314.16,-2931.02 9312.71,-2756.09 9317.19,-2673.76"/>
<polygon fill="#ef06aa" stroke="black" points="9320.68,-2673.91 9317.79,-2663.72 9313.7,-2673.49 9320.68,-2673.91"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge650" 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="M8062.24,-4078.02C8105.71,-4074.35 8193.47,-4067.28 8268,-4063.37 8392.67,-4056.82 9270.59,-4060.33 9391,-4027.37 9489.8,-4000.32 9593,-4018.82 9593,-3916.38 9593,-3916.38 9593,-3916.38 9593,-3831.39 9593,-3568.86 9191.08,-3470.7 9040.26,-3443.11"/>
<polygon fill="#ef06aa" stroke="black" points="9040.73,-3439.64 9030.27,-3441.32 9039.5,-3446.53 9040.73,-3439.64"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge651" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8039.05,-4063.28C8046.61,-4026.57 8058.16,-3940.05 8011,-3897.38 7932.67,-3826.51 6272.21,-3831.56 5964.74,-3833.11"/>
<polygon fill="#ef06aa" stroke="black" points="5964.36,-3829.61 5954.38,-3833.17 5964.4,-3836.61 5964.36,-3829.61"/>
</g>
<!-- srcinfo -->
<g id="node170" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b65376" stroke="black" points="6460,-3224.27 6457,-3228.27 6436,-3228.27 6433,-3224.27 6406,-3224.27 6406,-3188.27 6460,-3188.27 6460,-3224.27"/>
<text text-anchor="middle" x="6433" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">srcinfo</text>
</g>
<!-- srcinfo&#45;&gt;ahriman_models_package -->
<g id="edge652" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6426.66,-3188.16C6420.44,-3168.17 6414.02,-3135.05 6430,-3113.29"/>
</g>
</g>
</svg>