ahriman/docs/ahriman-architecture.svg

5415 lines
517 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 3.0.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="11641pt" height="4201pt"
viewBox="0.00 0.00 11640.56 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 11636.56,-4197.35 11636.56,4 -4,4"/>
<!-- ahriman_application_ahriman -->
<g id="node1" class="node">
<title>ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#723131" stroke="black" cx="3333" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="3333" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3333" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3333" 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="#db0505" stroke="black" cx="2974" cy="-874.19" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2974" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2974" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2974" 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="#993333" stroke="black" cx="1177" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1177" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1177" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1177" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1177" 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="M2927.18,-871.72C2724.67,-865.16 1923.19,-836.89 1675,-793.64 1508.23,-764.58 1317.9,-699.87 1228.5,-667.52"/>
<polygon fill="#db0505" stroke="black" points="1229.47,-664.15 1218.88,-664.02 1227.08,-670.72 1229.47,-664.15"/>
</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="#993333" stroke="black" cx="2478" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2478" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2478" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2478" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2478" 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="M2927.57,-870.92C2849.13,-864.77 2689.16,-842.04 2589,-757.87"/>
<path fill="none" stroke="black" d="M2589,-755.87C2562.35,-733.49 2534.22,-706.18 2512.94,-684.68"/>
<polygon fill="#db0505" stroke="black" points="2515.22,-682.01 2505.71,-677.34 2510.23,-686.92 2515.22,-682.01"/>
</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="#993333" stroke="black" cx="2589" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2589" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2589" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2589" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2589" 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="M2589,-755.87C2571.34,-741.03 2570.73,-715.46 2574.82,-692.98"/>
<polygon fill="#db0505" stroke="black" points="2578.3,-693.43 2576.99,-682.91 2571.46,-691.95 2578.3,-693.43"/>
</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="#732626" stroke="black" cx="4316" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="4316" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4316" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="4316" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="4316" 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="M3019.97,-868.76C3125.39,-858.32 3392.52,-830.27 3614,-793.64 3857.1,-753.44 4144.05,-688.51 4261.63,-661.15"/>
<polygon fill="#db0505" stroke="black" points="4262.53,-664.53 4271.47,-658.85 4260.94,-657.72 4262.53,-664.53"/>
</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="#822b2b" stroke="black" cx="3422" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3422" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3422" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3422" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3422" 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="M3019.69,-868.17C3080.42,-859.94 3189.54,-839.63 3271,-793.64 3319.19,-766.44 3363.42,-720.26 3391.39,-687.26"/>
<polygon fill="#db0505" stroke="black" points="3394.42,-689.1 3398.14,-679.18 3389.04,-684.61 3394.42,-689.1"/>
</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="#993333" stroke="black" cx="2700" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2700" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2700" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2700" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2700" 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="M2955.57,-847.45C2939.19,-824.31 2914.85,-789.25 2895,-757.87"/>
<path fill="none" stroke="black" d="M2895,-755.87C2857.83,-697.12 2816.25,-718.8 2756,-684.1 2752.07,-681.84 2748.03,-679.43 2744,-676.97"/>
<polygon fill="#db0505" stroke="black" points="2745.59,-673.84 2735.25,-671.54 2741.9,-679.79 2745.59,-673.84"/>
</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="#913030" stroke="black" cx="2830" cy="-647.34" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="2830" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2830" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2830" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2830" 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="M2895,-755.87C2881.65,-734.77 2867.24,-711.04 2855.39,-691.25"/>
<polygon fill="#db0505" stroke="black" points="2858.27,-689.25 2850.14,-682.46 2852.26,-692.84 2858.27,-689.25"/>
</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="#732626" stroke="black" cx="909" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="909" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="909" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="909" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="909" 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="M1138,-755.87C1106.79,-749.7 1104.44,-734.36 1076,-720.1 1037.87,-700.99 993.45,-682.06 960.01,-668.44"/>
<polygon fill="#db0505" stroke="black" points="961.03,-665.07 950.45,-664.57 958.4,-671.56 961.03,-665.07"/>
</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="#8a2e2e" stroke="black" cx="721" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="721" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="721" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="721" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="721" 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="M2927.38,-872.47C2736.03,-869.15 1992.28,-852.95 1384,-793.64 1274.04,-782.92 1246.38,-779.32 1138,-757.87"/>
<path fill="none" stroke="black" d="M1138,-755.87C1005.77,-729.71 852.97,-687.06 774.15,-664.12"/>
<polygon fill="#db0505" stroke="black" points="775.03,-660.73 764.45,-661.29 773.07,-667.45 775.03,-660.73"/>
</g>
<!-- ahriman_application_handlers_sign -->
<g id="node22" class="node">
<title>ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3182" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3182" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3182" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3182" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3182" 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="edge10" 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="M3001.48,-850.56C3019.61,-835.18 3043.51,-814 3063,-793.64 3095.57,-759.63 3129.27,-717.75 3152.45,-687.7"/>
<polygon fill="#db0505" stroke="black" points="3155.39,-689.62 3158.7,-679.56 3149.84,-685.36 3155.39,-689.62"/>
</g>
<!-- ahriman_application_handlers_status -->
<g id="node23" class="node">
<title>ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="3071" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3071" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3071" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3071" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3071" 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="edge11" 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="M2996.93,-848.52C3015.48,-826.63 3039.95,-792.78 3049,-757.87"/>
<path fill="none" stroke="black" d="M3049,-755.87C3054.23,-735.7 3059.01,-713.14 3062.76,-693.92"/>
<polygon fill="#db0505" stroke="black" points="3066.24,-694.39 3064.69,-683.91 3059.36,-693.07 3066.24,-694.39"/>
</g>
<!-- ahriman_application_handlers_status_update -->
<g id="node24" class="node">
<title>ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="3302" cy="-647.34" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="3302" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3302" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3302" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3302" 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="edge12" 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="M3020.3,-870.26C3076.96,-864.38 3172.87,-846.72 3234,-793.64 3263.92,-767.66 3281.59,-725.68 3291.38,-693.5"/>
<polygon fill="#db0505" stroke="black" points="3294.75,-694.44 3294.17,-683.86 3288.03,-692.49 3294.75,-694.44"/>
</g>
<!-- ahriman_application_handlers_triggers -->
<g id="node25" class="node">
<title>ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="2960" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2960" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2960" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2960" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2960" 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="edge13" 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="M2895,-755.87C2879.18,-730.86 2898.38,-702.16 2919.93,-680.7"/>
<polygon fill="#db0505" stroke="black" points="2922.44,-683.14 2927.28,-673.72 2917.62,-678.07 2922.44,-683.14"/>
</g>
<!-- ahriman_application_handlers_update -->
<g id="node27" class="node">
<title>ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3641" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3641" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3641" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3641" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3641" 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="edge14" 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="M3020.74,-872.76C3146.45,-870.71 3488.22,-859.11 3576,-793.64 3607.82,-769.91 3624.4,-727.06 3632.82,-694.02"/>
<polygon fill="#db0505" stroke="black" points="3636.26,-694.66 3635.18,-684.12 3629.46,-693.03 3636.26,-694.66"/>
</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="#913030" stroke="black" cx="2947" cy="-991.51" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2947" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2947" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2947" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2947" 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="edge15" 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="M2955.25,-955.28C2958.36,-941.98 2961.92,-926.79 2965.09,-913.25"/>
<polygon fill="#913030" stroke="black" points="2968.56,-913.8 2967.43,-903.26 2961.74,-912.2 2968.56,-913.8"/>
</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="#732626" stroke="black" cx="2947" cy="-1101.05" rx="77.56" ry="36.54"/>
<text text-anchor="middle" x="2947" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2947" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2947" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2947" 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="edge16" 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="M2947,-1064.24C2947,-1056.07 2947,-1047.28 2947,-1038.75"/>
<polygon fill="#732626" stroke="black" points="2950.5,-1038.53 2947,-1028.53 2943.5,-1038.53 2950.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="#ac2b2b" stroke="black" cx="2947" cy="-1210.59" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="2947" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2947" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2947" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2947" 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="edge17" 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="M2947,-1173.78C2947,-1165.61 2947,-1156.82 2947,-1148.29"/>
<polygon fill="#ac2b2b" stroke="black" points="2950.5,-1148.07 2947,-1138.07 2943.5,-1148.07 2950.5,-1148.07"/>
</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="#732626" stroke="black" cx="2391" cy="-1101.05" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="2391" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2391" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2391" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2391" 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="edge18" 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="M2874.6,-1195.58C2771.22,-1175.59 2581.83,-1138.96 2473.27,-1117.96"/>
<polygon fill="#ac2b2b" stroke="black" points="2473.83,-1114.5 2463.35,-1116.04 2472.5,-1121.38 2473.83,-1114.5"/>
</g>
<!-- ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application -->
<g id="edge19" 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="M2463.4,-1086.04C2576,-1064.27 2790.6,-1022.76 2891.71,-1003.2"/>
<polygon fill="#732626" stroke="black" points="2892.56,-1006.6 2901.71,-1001.27 2891.23,-999.73 2892.56,-1006.6"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node7" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="3333" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="3333" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3333" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3333" 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="edge20" 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="M3333,-93.88C3333,-85.84 3333,-76.94 3333,-68.39"/>
<polygon fill="#950303" stroke="black" points="3336.5,-68.23 3333,-58.23 3329.5,-68.23 3336.5,-68.23"/>
</g>
<!-- ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers -->
<g id="edge21" 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="M1173.5,-610.57C1166.19,-531.03 1151.95,-345.63 1177,-335.27"/>
</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="#993333" stroke="black" cx="3183" cy="-334.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3183" y="-348.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3183" y="-337.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3183" y="-326.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3183" 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="edge22" 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="M3208.48,-303.06C3218.5,-290.56 3229.8,-275.69 3239,-261.5 3248.8,-246.4 3242.59,-235.04 3258,-225.74"/>
</g>
<!-- ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers -->
<g id="edge23" 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="M2512.55,-622.3C2519.19,-618.13 2526.2,-614.03 2533,-610.57 2603.82,-574.48 2633.11,-589.52 2700,-546.57"/>
<path fill="none" stroke="black" d="M2700,-544.57C2911.77,-408.61 3046.03,-532.59 3239,-371.04 3252.8,-359.49 3249.64,-351.22 3258,-335.27"/>
<path fill="none" stroke="black" d="M3258,-333.27C3277.11,-289.46 3217.09,-250.45 3258,-225.74"/>
</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="#993333" stroke="black" cx="833" cy="-1429.67" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="833" y="-1443.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="833" y="-1432.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="833" y="-1421.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="833" 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="edge24" 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="M833.14,-1392.76C833.41,-1318.2 834,-1141.11 834,-992.51 834,-992.51 834,-992.51 834,-755.87 834,-690.74 826.18,-669.92 853,-610.57 868.56,-576.13 902.36,-583.78 909,-546.57"/>
<path fill="none" stroke="black" d="M909,-544.57C915.83,-500.76 876.24,-474.69 909,-444.81"/>
</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="#8a2e2e" stroke="black" cx="417" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="417" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="417" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="417" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="417" 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="edge25" 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="M389.44,-1822.59C302.22,-1730.63 38,-1442.04 38,-1321.13 38,-1321.13 38,-1321.13 38,-333.27 38,-164.17 2838.75,-128.97 3275.92,-124.51"/>
<polygon fill="#8a2e2e" stroke="black" points="3276.14,-128.01 3286.1,-124.41 3276.07,-121.01 3276.14,-128.01"/>
</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="#a13535" stroke="black" cx="3183" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3183" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3183" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3183" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3183" 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="edge26" 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="M3218.17,-200.35C3240.59,-185.43 3269.7,-166.07 3293,-150.58"/>
<polygon fill="#a13535" stroke="black" points="3295.23,-153.3 3301.62,-144.84 3291.36,-147.47 3295.23,-153.3"/>
</g>
<!-- ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers -->
<g id="edge27" 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="M2616.12,-617.33C2637.41,-595.78 2668.6,-566.73 2700,-546.57"/>
</g>
<!-- ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers -->
<g id="edge28" 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="M4362.68,-646.13C4679.76,-644.53 6507.26,-631.6 6585,-546.57"/>
<path fill="none" stroke="black" d="M6585,-544.57C6812.26,-296.02 3840.72,-147.59 3389.9,-126.56"/>
<polygon fill="#732626" stroke="black" points="3389.87,-123.06 3379.72,-126.09 3389.55,-130.05 3389.87,-123.06"/>
</g>
<!-- ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers -->
<g id="edge29" 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="M3388.08,-622.05C3381.02,-617.75 3373.45,-613.67 3366,-610.57 3286.08,-577.26 3135.62,-619.69 3182,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers -->
<g id="edge30" 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="M2687.43,-611.52C2681.51,-588.28 2679.6,-559.67 2700,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers -->
<g id="edge31" 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="M2877.1,-621.64C2885.89,-617.58 2895.12,-613.69 2904,-610.57 3023.6,-568.49 3114.08,-653.64 3182,-546.57"/>
<path fill="none" stroke="black" d="M3182,-544.57C3211.86,-497.51 3262.48,-500.37 3258,-444.81"/>
<path fill="none" stroke="black" d="M3258,-442.81C3254.16,-395.17 3235.8,-377.6 3258,-335.27"/>
</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="#a13535" stroke="black" cx="3333" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3333" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3333" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3333" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3333" 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="edge32" 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="M3333,-187.72C3333,-179.48 3333,-170.69 3333,-162.35"/>
<polygon fill="#a13535" stroke="black" points="3336.5,-162.11 3333,-152.11 3329.5,-162.11 3336.5,-162.11"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge33" 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="M905.97,-610.52C905.11,-591.4 905.26,-567.55 909,-546.57"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge34" 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="M744.55,-615.45C777.84,-573.21 842.11,-496.75 909,-444.81"/>
<path fill="none" stroke="black" d="M909,-442.81C1003.84,-356.34 1057.95,-383.21 1177,-335.27"/>
<path fill="none" stroke="black" d="M1177,-333.27C1389.66,-247.64 3044.6,-383.02 3239,-261.5 3254.26,-251.96 3242.59,-235.04 3258,-225.74"/>
<path fill="none" stroke="black" d="M3258,-223.74C3273.41,-214.43 3266.78,-202.79 3277,-187.97 3284.6,-176.94 3293.85,-165.69 3302.63,-155.76"/>
<polygon fill="#8a2e2e" stroke="black" points="3305.43,-157.88 3309.52,-148.11 3300.22,-153.19 3305.43,-157.88"/>
</g>
<!-- ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers -->
<g id="edge35" 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="M3173.16,-610.97C3170.13,-590.62 3170.03,-565.44 3182,-546.57"/>
</g>
<!-- ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers -->
<g id="edge36" 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="M3105.97,-622.9C3130.52,-604.75 3162.36,-577.53 3182,-546.57"/>
</g>
<!-- ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers -->
<g id="edge37" 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="M3260.23,-623.14C3221.11,-599.92 3170.28,-565.05 3182,-546.57"/>
</g>
<!-- ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers -->
<g id="edge38" 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="M2994.55,-622.3C3001.19,-618.13 3008.2,-614.03 3015,-610.57 3085.82,-574.48 3139.42,-613.69 3182,-546.57"/>
</g>
<!-- ahriman_application_handlers_unsafe_commands -->
<g id="node26" class="node">
<title>ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="1079" cy="-443.81" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="1079" y="-457.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1079" y="-446.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1079" y="-435.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1079" 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="edge39" 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="M1098.68,-408.38C1115.65,-382.59 1142.8,-349.42 1177,-335.27"/>
</g>
<!-- ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers -->
<g id="edge40" 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="M3597.57,-633.88C3494.44,-603.01 3244.41,-520.05 3258,-444.81"/>
</g>
<!-- ahriman_application_handlers_users -->
<g id="node28" class="node">
<title>ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="6622" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6622" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6622" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6622" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6622" 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="edge41" 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="M6612.28,-1816.23C6601.32,-1773.58 6585,-1699.18 6585,-1634.19 6585,-1634.19 6585,-1634.19 6585,-755.87 6585,-662.85 6553.12,-633.96 6585,-546.57"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node29" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="6660" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="6660" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6660" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="6660" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="6660" 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="edge42" 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="M6625.58,-199.49C6617.24,-194.79 6608.1,-190.53 6599,-187.97 6438.39,-142.65 3811.52,-126.57 3389.9,-124.27"/>
<polygon fill="#8a2e2e" stroke="black" points="3389.79,-120.77 3379.77,-124.22 3389.76,-127.77 3389.79,-120.77"/>
</g>
<!-- ahriman_application_lock -->
<g id="node30" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="883" cy="-2063.57" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="883" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="883" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="883" 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="edge43" 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="M845.65,-2045.79C762.13,-2008.28 560.24,-1917.6 466.43,-1875.47"/>
<polygon fill="#7a2828" stroke="black" points="467.72,-1872.21 457.16,-1871.3 464.85,-1878.59 467.72,-1872.21"/>
</g>
<!-- ahriman_core -->
<g id="node31" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6926" cy="-4164.36" rx="42.94" ry="18"/>
<text text-anchor="middle" x="6926" y="-4161.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge44" 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="M770,-3914.38C697.83,-3583.42 934.02,-3505.21 1179,-3271.26 1300.51,-3155.22 1352.49,-3149.29 1507,-3083.3 1778.46,-2967.35 1857.63,-2966.9 2144,-2895.33 2221.04,-2876.08 2256.35,-2908.12 2319,-2859.33 2426.92,-2775.29 2360,-2682.58 2453,-2582.27 2474.66,-2558.9 2495.13,-2571.18 2515,-2546.27 2549.05,-2503.58 2575.63,-2364.82 2588,-2311.63 2677.77,-1925.62 2660.14,-1821.47 2726,-1430.67"/>
<path fill="none" stroke="black" d="M2726,-1428.67C2738.56,-1320.42 2779.59,-1302.29 2840,-1211.59"/>
<path fill="none" stroke="black" d="M2840,-1209.59C2849.98,-1194.6 2847.58,-1187.73 2859,-1173.82 2869.57,-1160.95 2882.74,-1148.76 2895.65,-1138.2"/>
<polygon fill="#f91010" stroke="black" points="2897.99,-1140.81 2903.63,-1131.84 2893.63,-1135.34 2897.99,-1140.81"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge45" 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="M694,-3635.65C689.26,-3609.43 1044.61,-3129.57 1104,-3083.3 1275.3,-2949.83 1343.19,-2943.23 1555,-2895.33 1633.24,-2877.64 2207.73,-2901.43 2276,-2859.33 2396.47,-2785.04 2327.96,-2677.12 2433,-2582.27 2462.54,-2555.59 2486.46,-2574.01 2515,-2546.27 2597.72,-2465.85 2587.11,-2420.24 2626,-2311.63 2664.17,-2205.05 2688,-2177.78 2688,-2064.57 2688,-2064.57 2688,-2064.57 2688,-1960.8 2688,-1814.48 2866.7,-1394.3 2927.23,-1256.18"/>
<polygon fill="#f91010" stroke="black" points="2930.57,-1257.29 2931.38,-1246.73 2924.16,-1254.48 2930.57,-1257.29"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge46" 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="M694,-3831.39C645.81,-3760.03 697.17,-3723.7 694,-3637.65"/>
<path fill="none" stroke="black" d="M694,-3635.65C703.97,-3361.9 694,-3293.24 694,-3019.3 694,-3019.3 694,-3019.3 694,-2923.32 694,-2715.59 624.65,-2661.87 660,-2457.17 694.37,-2258.16 682.8,-2175.97 827,-2034.57 929.12,-1934.44 999.47,-1974.7 1114,-1889.03 1288.88,-1758.23 1592.97,-1272.09 1788,-1173.82 1875.92,-1129.51 2156.51,-1111.66 2301.84,-1105.24"/>
<polygon fill="#f91010" stroke="black" points="2302.23,-1108.72 2312.06,-1104.79 2301.92,-1101.73 2302.23,-1108.72"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge47" 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="M304,-1851.27C310.9,-1835.65 310.23,-1830.7 318,-1815.5 370.69,-1712.39 395.98,-1693.56 459,-1596.42 496.57,-1538.51 506.25,-1524.22 544,-1466.43 565.35,-1433.76 569.04,-1424.46 592,-1392.9 793.38,-1116.03 874.62,-1070.51 1076,-793.64 1098.96,-762.08 1101.73,-752.16 1124,-720.1 1131.39,-709.47 1139.61,-698.12 1147.33,-687.66"/>
<polygon fill="#f91010" stroke="black" points="1150.24,-689.61 1153.38,-679.49 1144.62,-685.44 1150.24,-689.61"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge48" 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="M76,-1530.43C20.17,-1428.1 123.14,-1392.53 164,-1283.36 311.18,-890.09 345.48,-714.16 716,-516.58 835.37,-452.93 867.42,-433.99 1000,-407.04 1213.56,-363.64 2803.82,-340.32 3126.12,-336.01"/>
<polygon fill="#f91010" stroke="black" points="3126.22,-339.51 3136.17,-335.87 3126.13,-332.51 3126.22,-339.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge49" 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="M124,-2625.82C89.17,-2391.3 134.89,-2329.62 138,-2092.56 138.34,-2066.79 146.36,-2058.95 138,-2034.57 131.42,-2015.4 116.58,-2017.75 110,-1998.57 99.39,-1967.66 88.95,-1950.04 110,-1925.03 170.42,-1853.26 240.92,-1942.51 318,-1889.03 349.11,-1867.45 339.79,-1846.86 361,-1815.5 632.24,-1414.34 724.84,-1331.54 1029,-954.74 1074.59,-898.26 1078.54,-876.47 1134,-829.64 1207.6,-767.5 1228.87,-748.19 1321,-720.1 1530.2,-656.32 2218.16,-649.11 2421.14,-648.39"/>
<polygon fill="#f91010" stroke="black" points="2421.29,-651.89 2431.28,-648.36 2421.27,-644.89 2421.29,-651.89"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge50" 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="M276,-2923.32C273.26,-2882.53 283.81,-2871.47 276,-2831.34"/>
<path fill="none" stroke="black" d="M276,-2829.34C251.17,-2701.69 215.8,-2675.57 202,-2546.27 197.8,-2506.89 198.08,-2496.58 202,-2457.17 211.99,-2356.72 214.41,-2327.13 262,-2238.1 354.7,-2064.66 774.25,-1727.87 796,-1532.43"/>
<path fill="none" stroke="black" d="M796,-1530.43C796.97,-1510.81 803.51,-1490.28 810.84,-1472.98"/>
<polygon fill="#f91010" stroke="black" points="814.09,-1474.29 814.95,-1463.73 807.69,-1471.44 814.09,-1474.29"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge51" 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="M124,-2062.57C127.39,-2018.36 105.6,-2003.15 124,-1962.8"/>
<path fill="none" stroke="black" d="M124,-1960.8C168.78,-1862.6 257.24,-1932.57 356,-1889.03 361.4,-1886.66 366.92,-1883.91 372.32,-1881.02"/>
<polygon fill="#f91010" stroke="black" points="374.23,-1883.96 381.27,-1876.05 370.83,-1877.84 374.23,-1883.96"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_help -->
<g id="edge52" 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="M6882.73,-4163.35C6336.07,-4163.25 793.18,-4160.28 770,-4082.37"/>
<path fill="none" stroke="black" d="M770,-4080.37C759.74,-4045.86 787.46,-4030.85 770,-3999.37"/>
<path fill="none" stroke="black" d="M770,-3997.37C710.05,-3889.31 606.2,-3985.86 504,-3916.38"/>
<path fill="none" stroke="black" d="M504,-3914.38C418.81,-3856.47 391.36,-3834.61 352,-3739.41"/>
<path fill="none" stroke="black" d="M352,-3737.41C308.77,-3652 276,-3631.61 276,-3535.89 276,-3535.89 276,-3535.89 276,-3111.29 276,-3028.64 289.37,-3006.88 276,-2925.32"/>
<path fill="none" stroke="black" d="M276,-2923.32C262.12,-2850.79 136.3,-2700.63 124,-2627.82"/>
<path fill="none" stroke="black" d="M124,-2625.82C29.41,-2395 104.91,-2313.28 124,-2064.57"/>
<path fill="none" stroke="black" d="M124,-2062.57C120.24,-2031.38 100.83,-2029.23 94,-1998.57 86.89,-1966.67 74.99,-1951.62 94,-1925.03 151.37,-1844.8 253.29,-1937.86 304,-1853.27"/>
<path fill="none" stroke="black" d="M304,-1851.27C332.39,-1800.09 253.98,-1796.17 228,-1743.73"/>
<path fill="none" stroke="black" d="M228,-1741.73C202.02,-1689.28 181.16,-1684.93 152,-1634.19"/>
<path fill="none" stroke="black" d="M152,-1632.19C124.23,-1583.86 102.48,-1581.47 76,-1532.43"/>
<path fill="none" stroke="black" d="M76,-1530.43C28.98,-1443.35 0,-1420.09 0,-1321.13 0,-1321.13 0,-1321.13 0,-755.87 0,-355.75 401.38,-401.44 796,-335.27"/>
<path fill="none" stroke="black" d="M796,-333.27C1262.52,-241.1 2807.99,-227.77 3125.63,-225.99"/>
<polygon fill="#f91010" stroke="black" points="3125.99,-229.49 3135.97,-225.94 3125.95,-222.49 3125.99,-229.49"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge53" 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="M276,-2829.34C265.48,-2663.92 270.57,-2620.29 300,-2457.17 309.03,-2407.14 314.31,-2394.92 333,-2347.63 396.64,-2186.61 431.2,-2154.73 506,-1998.57 575.51,-1853.44 592.46,-1816.93 658,-1669.96 712.58,-1547.56 700.92,-1503.22 777,-1392.9 1024.53,-1033.95 1083.49,-875.17 1491,-720.1 1707.75,-637.63 2312.83,-753.87 2534,-684.1 2538.4,-682.72 2542.78,-680.88 2547.04,-678.76"/>
<polygon fill="#f91010" stroke="black" points="2549.06,-681.64 2556.13,-673.75 2545.68,-675.51 2549.06,-681.64"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge54" 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="M9421,-3997.37C9407.89,-3962.8 9445.09,-3953 9440,-3916.38"/>
<path fill="none" stroke="black" d="M9440,-3914.38C9426.61,-3818.1 8822.88,-3437.9 8735,-3396.36 8378.4,-3227.8 8262.45,-3251.16 7875,-3177.28 7813.16,-3165.49 7642.55,-3181.35 7594,-3141.28 7571.81,-3122.96 7525.48,-2921.25 7513,-2895.33 7469.68,-2805.38 7459.34,-2779.19 7390,-2707.36 7370.73,-2687.4 7354.6,-2694.31 7339,-2671.36 7283.92,-2590.36 7362.17,-2519.99 7287,-2457.17 7183.99,-2371.09 6797.15,-2493.41 6684,-2421.17 6592.1,-2362.5 6509,-2071.84 6509,-1962.8 6509,-1962.8 6509,-1962.8 6509,-1851.27 6509,-1749.04 6449.71,-1735.03 6433,-1634.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge55" 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="M6882.81,-4163.28C6359.39,-4162.25 1255.06,-4148.38 1264,-3999.37"/>
<path fill="none" stroke="black" d="M1264,-3997.37C1250.08,-3979.77 1245.72,-3919.41 1250,-3897.38 1268.66,-3801.48 1289.89,-3773.09 1364,-3709.42 1524.08,-3571.89 1592.26,-3577.17 1774,-3469.9 2019.55,-3324.95 2093.84,-3308.21 2325,-3141.28 2480.3,-3029.13 2556.71,-3026.08 2651,-2859.33 2712.51,-2750.55 2639.25,-2692.04 2699,-2582.27 2710.28,-2561.55 2723.96,-2565.23 2738,-2546.27 2764.17,-2510.94 2746.45,-2484.37 2781,-2457.17 2840.67,-2410.22 2884.01,-2462.04 2948,-2421.17 3355.23,-2161.12 3345.58,-1933.85 3468,-1466.43 3548.49,-1159.13 3672.91,-1055.56 3562,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge56" 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="M276,-2923.32C274.05,-2894.27 285.38,-2888.07 290,-2859.33 306.41,-2757.19 314,-2731.26 314,-2627.82 314,-2627.82 314,-2627.82 314,-2500.72 314,-2376.93 550.92,-2137.96 619,-2034.57 798.02,-1762.7 1203.23,-1039.59 1452,-829.64 1527.97,-765.53 1551.3,-747 1647,-720.1 1860.65,-660.07 2433.41,-751.03 2645,-684.1 2649.39,-682.71 2653.77,-680.87 2658.03,-678.75"/>
<polygon fill="#f91010" stroke="black" points="2660.06,-681.63 2667.13,-673.74 2656.68,-675.5 2660.06,-681.63"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge57" 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="M352,-3737.41C319.54,-3653.93 352,-3625.45 352,-3535.89 352,-3535.89 352,-3535.89 352,-3111.29 352,-2985.72 390,-2956.9 390,-2831.34 390,-2831.34 390,-2831.34 390,-2735.36 390,-2677.04 536.53,-2292.32 558,-2238.1 597.6,-2138.08 598.82,-2093.22 689,-2034.57 735.32,-2004.45 766.11,-2034.61 808,-1998.57 822.12,-1986.43 1085.52,-1408.3 1096,-1392.9 1313.25,-1073.65 1354.93,-951.55 1689,-757.87"/>
<path fill="none" stroke="black" d="M1689,-755.87C1900.16,-646.84 2525.99,-743.87 2756,-684.1 2762.4,-682.44 2768.91,-680.21 2775.28,-677.66"/>
<polygon fill="#f91010" stroke="black" points="2776.65,-680.88 2784.48,-673.75 2773.91,-674.44 2776.65,-680.88"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge58" 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="M1264,-3997.37C1235.34,-3951.02 1294.61,-3933.98 1335,-3897.38 1460.46,-3783.68 2514.27,-3230.77 2658,-3141.28 2721.31,-3101.86 2737.76,-3092.59 2797,-3047.3 3048.62,-2854.93 3089.19,-2779.52 3337,-2582.27 3358.14,-2565.44 3368.59,-2566.94 3386,-2546.27 3729.9,-2137.86 3514.85,-1884.99 3722,-1392.9 3852.34,-1083.27 4019.86,-1074.55 4132,-757.87"/>
<path fill="none" stroke="black" d="M4132,-755.87C4142.12,-663.4 4132,-639.6 4132,-546.57 4132,-546.57 4132,-546.57 4132,-442.81 4132,-288.85 3572.54,-240.56 3389.91,-228.89"/>
<polygon fill="#f91010" stroke="black" points="3389.9,-225.38 3379.7,-228.25 3389.47,-232.37 3389.9,-225.38"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge59" 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="M568,-1100.05C619.5,-914.95 791.27,-749.08 869.53,-681.05"/>
<polygon fill="#f91010" stroke="black" points="871.97,-683.57 877.26,-674.39 867.4,-678.27 871.97,-683.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge60" 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="M228,-1741.73C155.06,-1598.22 508.97,-1251.82 568,-1102.05"/>
<path fill="none" stroke="black" d="M568,-1100.05C581.8,-1051.27 542.04,-1041.75 530,-992.51"/>
<path fill="none" stroke="black" d="M530,-990.51C499.55,-866.04 617.29,-739.51 681.65,-681.32"/>
<polygon fill="#f91010" stroke="black" points="684.09,-683.84 689.22,-674.57 679.43,-678.61 684.09,-683.84"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge61" 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="M1112,-3914.38C1537.63,-3266.03 1973.51,-3426.98 2502,-2859.33 2535.77,-2823.06 2536.16,-2807.63 2562,-2765.35 2611.14,-2684.93 2614.25,-2658.98 2669,-2582.27 2681.27,-2565.08 2688.84,-2564.19 2700,-2546.27 2722.76,-2509.73 2706.79,-2486.83 2738,-2457.17 2771.64,-2425.21 2800.55,-2451.11 2836,-2421.17 3046.68,-2243.29 3410,-1596.86 3410,-1321.13 3410,-1321.13 3410,-1321.13 3410,-1100.05 3410,-929.69 3279.15,-758.21 3215.71,-685.07"/>
<polygon fill="#f91010" stroke="black" points="3218.27,-682.69 3209.05,-677.48 3213.01,-687.3 3218.27,-682.69"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge62" 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="M770,-4080.37C737.06,-3969.63 939.45,-4085.01 1017,-3999.37"/>
<path fill="none" stroke="black" d="M1017,-3997.37C1141.4,-3860 1069.78,-3770.13 1143,-3599.88 1161.86,-3556.03 1168.29,-3545.46 1195,-3505.9 1230.1,-3453.91 1240.3,-3441.36 1284,-3396.36 1343.29,-3335.29 1357.1,-3316.8 1429,-3271.26 1619.78,-3150.43 2180.86,-2999.4 2358,-2859.33 2360.14,-2857.64 2594.64,-2548.64 2596,-2546.27 2753.15,-2272.16 2756.85,-2185.17 2867,-1889.03 2971.52,-1608.04 3001.39,-1537.98 3075,-1247.36 3095.47,-1166.53 3093.46,-1144.56 3116,-1064.28 3135.44,-995.05 3249.89,-823.27 3220,-757.87"/>
<path fill="none" stroke="black" d="M3220,-755.87C3213.14,-745.03 3156.03,-705.33 3114.56,-677.33"/>
<polygon fill="#f91010" stroke="black" points="3116.48,-674.41 3106.23,-671.73 3112.57,-680.21 3116.48,-674.41"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge63" 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="M1017,-3997.37C1054.24,-3956.25 1089.05,-3966.9 1112,-3916.38"/>
<path fill="none" stroke="black" d="M1112,-3914.38C1149.93,-3830.88 1107.71,-3796.66 1136,-3709.42 1167.98,-3610.8 1176.71,-3579.23 1250,-3505.9 1461.09,-3294.7 1572.65,-3318.03 1836,-3177.28 2110.86,-3030.37 2218.8,-3055.47 2461,-2859.33 2571.85,-2769.56 2538.7,-2697.34 2623,-2582.27 2636.94,-2563.24 2647.54,-2564.91 2662,-2546.27 2689.57,-2510.73 2676.27,-2486.93 2710,-2457.17 2743.23,-2427.85 2771.74,-2452.59 2803,-2421.17 2853.87,-2370.06 3258,-1287.55 3258,-1211.59 3258,-1211.59 3258,-1211.59 3258,-1100.05 3258,-950.81 3282.08,-775.15 3294.62,-693.84"/>
<polygon fill="#f91010" stroke="black" points="3298.08,-694.36 3296.16,-683.94 3291.16,-693.28 3298.08,-694.36"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge64" 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="M770,-3997.37C752.54,-3965.9 778.6,-3951.34 770,-3916.38"/>
<path fill="none" stroke="black" d="M770,-3914.38C762.11,-3882.34 740.31,-3885.7 718,-3861.38 706.92,-3849.31 703.59,-3846.68 694,-3833.39"/>
<path fill="none" stroke="black" d="M694,-3831.39C576.07,-3668.09 542,-4155.84 542,-3113.29 542,-3113.29 542,-3113.29 542,-2923.32 542,-2518.05 457.23,-2318.93 746,-2034.57 779.96,-2001.14 809.59,-2028.09 847,-1998.57 859.91,-1988.39 1160.91,-1516.14 1170,-1502.43 1202.47,-1453.47 1207.31,-1438.79 1244,-1392.9 1285.73,-1340.7 1299.4,-1330.26 1347,-1283.36 1452.95,-1178.96 1479.64,-1151.67 1600,-1064.28 1971.85,-794.28 2120.74,-789.57 2575,-720.1 2720.4,-697.87 2765.26,-732.98 2904,-684.1 2908.59,-682.49 2913.18,-680.44 2917.66,-678.13"/>
<polygon fill="#f91010" stroke="black" points="2919.62,-681.05 2926.64,-673.11 2916.2,-674.94 2919.62,-681.05"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge65" 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="M152,-1632.19C34.24,-1407.09 462.13,-763.47 665,-610.57 769.93,-531.48 917.68,-484.41 1005.36,-461.66"/>
<polygon fill="#f91010" stroke="black" points="1006.41,-465.01 1015.23,-459.14 1004.67,-458.22 1006.41,-465.01"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge66" 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="M6882.94,-4163.08C6485.34,-4160.47 3466.77,-4139.34 3384,-4099.37 3375.19,-4095.11 3379.62,-4084.15 3370,-4082.37"/>
<path fill="none" stroke="black" d="M3370,-4080.37C3189.44,-4046.83 2560,-4100.04 2560,-3916.38 2560,-3916.38 2560,-3916.38 2560,-3831.39 2560,-3551.71 3044.33,-3231.91 3180,-3047.3 3208.1,-3009.06 3596.75,-2355.84 3614,-2311.63 3647.52,-2225.72 3866,-1135.68 3866,-1102.05 3866,-1102.05 3866,-1102.05 3866,-873.19 3866,-774.56 3756.49,-704.11 3690.27,-670.52"/>
<polygon fill="#f91010" stroke="black" points="3691.74,-667.34 3681.23,-666.03 3688.62,-673.61 3691.74,-667.34"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_users -->
<g id="edge67" 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="M9440,-3914.38C9417.24,-3692.38 9325.27,-3641.46 9148,-3505.9 9136.53,-3497.12 8697.53,-3276.33 8684,-3271.26 8525.12,-3211.74 8481.74,-3202.79 8314,-3177.28 8239.53,-3165.95 7694.24,-3190.25 7637,-3141.28 7552.11,-3068.64 7632.05,-2996.67 7585,-2895.33 7576.46,-2876.95 7565.04,-2877.94 7557,-2859.33 7535.24,-2808.96 7572.79,-2779.78 7538,-2737.36"/>
<path fill="none" stroke="black" d="M7538,-2735.36C7527.18,-2723.05 7527.89,-2716.06 7514,-2707.36 7460.64,-2673.95 7426.66,-2710.07 7377,-2671.36 7359.57,-2657.78 7363.77,-2647.11 7353,-2627.82"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge68" 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="M9421,-4080.37C9428.27,-4073.81 9426.93,-4068.9 9435,-4063.37 9586.77,-3959.39 9720.26,-4082.5 9828,-3933.38 9884.97,-3854.54 9741.48,-3871.13 9700,-3833.39"/>
<path fill="none" stroke="black" d="M9700,-3831.39C9453,-3594 8853.4,-2966.03 8553,-2801.35 8416.28,-2726.39 8366.39,-2744.69 8215,-2707.36 8141.28,-2689.19 8095.7,-2730.44 8048,-2671.36 7988.2,-2597.3 8014.8,-2546.39 8048,-2457.17 8122.69,-2256.47 8270.29,-2285.6 8363,-2092.56 8388.39,-2039.69 8387,-2021.45 8387,-1962.8 8387,-1962.8 8387,-1962.8 8387,-755.87 8387,-662.85 8296.16,-566.59 8387,-546.57"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge69" 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="M504,-3914.38C441.42,-3868.21 504,-3817.18 504,-3739.41 504,-3739.41 504,-3739.41 504,-2923.32 504,-2574.3 769.26,-2208.22 855.95,-2097.9"/>
<polygon fill="#f91010" stroke="black" points="858.9,-2099.82 862.35,-2089.8 853.41,-2095.48 858.9,-2099.82"/>
</g>
<!-- ahriman_models_aur_package -->
<g id="node109" class="node">
<title>ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="3213" cy="-3636.65" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="3213" y="-3645.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3213" y="-3634.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3213" 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="edge70" 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="M1264,-3997.37C1293.04,-3802.74 2826.56,-3668.7 3152.51,-3642.39"/>
<polygon fill="#f91010" stroke="black" points="3153.01,-3645.86 3162.69,-3641.57 3152.45,-3638.88 3153.01,-3645.86"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node111" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="6667" cy="-2924.32" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="6667" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6667" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6667" 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="edge71" 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="M6967.52,-4159.55C7036.21,-4153.4 7177.85,-4141.38 7298,-4135.37 7356.92,-4132.42 9385.63,-4129.58 9421,-4082.37"/>
<path fill="none" stroke="black" d="M9421,-4080.37C9522.1,-3945.41 8087.94,-3840.53 7936,-3767.4 7876.83,-3738.92 7869.84,-3718.4 7822,-3673.42 7731.85,-3588.65 7708.33,-3567.3 7632,-3469.9 7607.93,-3439.17 7612.67,-3422.85 7584,-3396.36 7559.46,-3373.68 7544.58,-3380.61 7518,-3360.36 7474.23,-3327 7481.98,-3294.3 7432,-3271.26 7312.71,-3216.26 6957.18,-3298.42 6842,-3235.26 6737.95,-3178.21 6701.22,-3136.86 6685,-3019.3"/>
</g>
<!-- ahriman_models_counters -->
<g id="node112" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a32828" stroke="black" cx="6771" cy="-2830.34" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="6771" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6771" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6771" 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="edge72" 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="M9421,-4080.37C9447.72,-4056.25 9437.62,-4031.3 9421,-3999.37"/>
<path fill="none" stroke="black" d="M9421,-3997.37C9391.61,-3940.92 8944.47,-3815.58 8882,-3803.4 8782.9,-3784.08 8065.96,-3809.09 7974,-3767.4 7922.24,-3743.93 7662.27,-3436.45 7622,-3396.36 7564.5,-3339.1 7562.95,-3304.68 7489,-3271.26 7334.01,-3201.21 7270.51,-3285.46 7108,-3235.26 7025.51,-3209.78 6998.72,-3202.65 6938,-3141.28 6895.83,-3098.65 6820.21,-2939.33 6787.18,-2867.21"/>
<polygon fill="#f91010" stroke="black" points="6790.33,-2865.68 6783,-2858.04 6783.97,-2868.59 6790.33,-2865.68"/>
</g>
<!-- ahriman_models_migration_result -->
<g id="node115" class="node">
<title>ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bc2f2f" stroke="black" cx="9573" cy="-3534.89" rx="60.62" ry="28.98"/>
<text text-anchor="middle" x="9573" y="-3543.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9573" y="-3532.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9573" y="-3521.39" 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="edge73" 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="M9700,-3831.39C9660.67,-3792.59 9695.72,-3761.03 9676,-3709.42 9656.43,-3658.2 9622.29,-3604.74 9598.71,-3570.93"/>
<polygon fill="#f91010" stroke="black" points="9601.28,-3568.51 9592.66,-3562.36 9595.56,-3572.54 9601.28,-3568.51"/>
</g>
<!-- ahriman_models_package -->
<g id="node116" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="5896" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5896" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5896" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5896" 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="edge74" 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="M6882.82,-4163.28C6517.05,-4162.53 3949.72,-4155.25 3895,-4099.37 3854.58,-4058.09 3854.4,-4010.48 3895,-3969.38 3953.03,-3910.65 6799.08,-3980.33 6867,-3933.38 6989.33,-3848.82 6978.9,-3721.97 6894,-3599.88 6856.51,-3545.97 6838.85,-3535.02 6780,-3505.9 6717,-3474.72 6683.57,-3510.22 6626,-3469.9 6594.03,-3447.5 6601.89,-3427.22 6578,-3396.36 6531.96,-3336.87 6531.43,-3304.59 6464,-3271.26 6297.63,-3189.03 6213.11,-3320 6048,-3235.26 6033.42,-3227.78 6036.86,-3217.42 6024,-3207.27"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node117" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="7021" cy="-3534.89" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="7021" y="-3543.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7021" y="-3532.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7021" 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="edge75" 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="M6928.59,-4146.25C6941.28,-4062.45 6996.98,-3694.53 7015.21,-3574.15"/>
<polygon fill="#f91010" stroke="black" points="7018.72,-3574.36 7016.75,-3563.94 7011.79,-3573.31 7018.72,-3574.36"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node118" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="5234" cy="-3112.29" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="5234" y="-3120.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5234" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5234" 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="edge76" 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="M3370,-4080.37C3308.54,-4068.95 3460.94,-4057.07 3485,-3999.37"/>
<path fill="none" stroke="black" d="M3485,-3997.37C3496.88,-3968.88 3464.12,-3963.64 3458,-3933.38 3446.54,-3876.76 3436.46,-3857.01 3458,-3803.4 3504.7,-3687.16 3547.62,-3667.61 3653,-3599.88 4132.54,-3291.65 4312.17,-3320.25 4864,-3177.28 4966.91,-3150.62 5088.86,-3131.96 5163.82,-3121.92"/>
<polygon fill="#f91010" stroke="black" points="5164.63,-3125.35 5174.08,-3120.56 5163.71,-3118.41 5164.63,-3125.35"/>
</g>
<!-- ahriman_models_remote_source -->
<g id="node120" class="node">
<title>ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#af1313" stroke="black" cx="5321" cy="-3018.3" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="5321" y="-3026.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5321" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5321" 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="edge77" 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="M3485,-3997.37C3523.86,-3917.91 4820.23,-3305 4902,-3271.26 4988.99,-3235.37 5229.71,-3197.72 5305,-3141.28 5317.03,-3132.26 5316.56,-3126.35 5324,-3113.29"/>
<path fill="none" stroke="black" d="M5324,-3111.29C5330.37,-3094.32 5330.51,-3074.32 5328.68,-3057.32"/>
<polygon fill="#f91010" stroke="black" points="5332.12,-3056.62 5327.33,-3047.17 5325.18,-3057.54 5332.12,-3056.62"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node122" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="3370" cy="-3998.37" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="3370" y="-4006.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3370" y="-3995.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3370" 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="edge78" 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="M3370,-4080.37C3352.14,-4077.05 3352.31,-4056.46 3356.85,-4036.87"/>
<polygon fill="#f91010" stroke="black" points="3360.26,-4037.68 3359.46,-4027.12 3353.5,-4035.87 3360.26,-4037.68"/>
</g>
<!-- ahriman_models_result -->
<g id="node123" class="node">
<title>ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="5934" cy="-2830.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5934" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5934" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5934" 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="edge79" 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="M6966.43,-4158.09C7042.65,-4145.64 7200,-4106.92 7200,-3999.37 7200,-3999.37 7200,-3999.37 7200,-3635.65 7200,-3536.17 7028.51,-3316.66 6940,-3271.26 6786.3,-3192.42 6716.11,-3292.13 6553,-3235.26 6301.84,-3147.7 6051.59,-2937.13 5965.44,-2860.15"/>
<polygon fill="#f91010" stroke="black" points="5967.63,-2857.41 5957.85,-2853.34 5962.95,-2862.62 5967.63,-2857.41"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node133" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="11309" cy="-874.19" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="11309" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11309" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11309" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="11309" 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="edge80" 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="M6967.51,-4159.37C7036.19,-4152.98 7177.81,-4140.6 7298,-4135.37 7965.86,-4106.27 9639.52,-4151.21 10306,-4099.37 10529.4,-4081.99 10609.17,-4136.27 10805,-4027.37 10881.92,-3984.59 10884.63,-3944.7 10913,-3861.38 11062.07,-3423.53 11079.58,-3307.49 11194,-2859.33 11251.35,-2634.73 11307.59,-2579.1 11295,-2347.63 11293.44,-2318.99 11164.22,-1342.8 11183,-1321.13"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node137" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="9865" cy="-991.51" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9865" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9865" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9865" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9865" 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="edge81" 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="M10042,-3914.38C10110.71,-3864.7 10118,-3824.19 10118,-3739.41 10118,-3739.41 10118,-3739.41 10118,-3635.65 10118,-3473.25 10154.9,-3433.35 10145,-3271.26 10136.32,-3129.16 10116.44,-3095.3 10106,-2953.31 10086.25,-2684.77 10120.96,-2615.24 10091,-2347.63 10085.48,-2298.29 10078.81,-2286.77 10069,-2238.1 10024.71,-2018.35 10029.83,-1959.48 9969,-1743.73"/>
<path fill="none" stroke="black" d="M9969,-1741.73C9905.61,-1556.34 9875.59,-1513.21 9837,-1321.13"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node138" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="10939" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10939" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10939" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10939" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10939" 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="edge82" 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="M10791,-3997.37C10955.64,-3882.27 10882.93,-3761.5 10919,-3563.88 10942.81,-3433.44 11107,-2518 11107,-2385.4 11107,-2385.4 11107,-2385.4 11107,-2273.87 11107,-2218.81 11050.21,-1330.88 11078,-1283.36 11094.48,-1255.19 11125.52,-1275.53 11142,-1247.36 11148.72,-1235.87 11144.11,-1087.12 11139,-1064.28 11127.39,-1012.41 11127.26,-993.6 11091,-954.74 11061.96,-923.62 11017.98,-902.46 10984.79,-889.83"/>
<polygon fill="#f91010" stroke="black" points="10985.89,-886.51 10975.3,-886.34 10983.48,-893.08 10985.89,-886.51"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node143" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9080" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9080" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9080" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9080" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9080" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="9080" 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="edge83" 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="M9890,-3914.38C9784.24,-3429.37 9896.18,-3287.74 9797,-2801.35 9725.27,-2449.59 9685.2,-2364.21 9543,-2034.57 9414.82,-1737.46 9357.09,-1675.24 9199,-1392.9 9171.45,-1343.7 9163.86,-1331.79 9135,-1283.36 9067.09,-1169.4 9015.77,-1156.02 8980,-1028.28 8971.19,-996.8 8965.8,-984.18 8980,-954.74 8991.77,-930.33 9015.08,-911.1 9036.24,-897.67"/>
<polygon fill="#f91010" stroke="black" points="9038.1,-900.63 9044.82,-892.45 9034.46,-894.65 9038.1,-900.63"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node146" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9823" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9823" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9823" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9823" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9823" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="9823" 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="edge84" 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="M9890,-3997.37C9917.73,-3926.03 9980.54,-3962.01 10042,-3916.38"/>
<path fill="none" stroke="black" d="M10042,-3914.38C10095.74,-3874.49 9966,-3383.74 9966,-3316.81 9966,-3316.81 9966,-3316.81 9966,-3111.29 9966,-2938.31 9660.53,-1760.91 9607,-1596.42 9550.2,-1421.86 9414.59,-1390.19 9457,-1211.59"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node150" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="10207" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="10207" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10207" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10207" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10207" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="10207" 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="edge85" 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="M10042,-3914.38C10052.58,-3906.7 10055.26,-3904.83 10066,-3897.38 10089.4,-3881.15 10099.52,-3882.15 10119,-3861.38 10339.96,-3625.78 10326.66,-3515.09 10488,-3235.26 10535.91,-3152.17 10561.92,-3137.68 10594,-3047.3 10616.72,-2983.29 10615.72,-2963 10610,-2895.33 10606.43,-2853.11 10601.75,-2843 10594,-2801.35 10586.2,-2759.45 10583.72,-2749.08 10575,-2707.36 10563.36,-2651.69 10560.69,-2637.71 10548,-2582.27 10531.56,-2510.46 10517.73,-2494.32 10509,-2421.17 10505.13,-2388.72 10503.76,-2379.9 10509,-2347.63 10511.7,-2330.99 10517.25,-2328.08 10521,-2311.63 10539.16,-2232.08 10544.36,-2209.62 10535,-2128.56 10530.08,-2085.94 10540.9,-2067.16 10513,-2034.57 10485.25,-2002.16 10455.54,-2027.32 10424,-1998.57 10396.81,-1973.79 10407.71,-1954.74 10386,-1925.03 10372.65,-1906.77 10358.91,-1909.83 10350,-1889.03 10315.55,-1808.63 10359.3,-1184.81 10331,-1102.05"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node151" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="10339" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="10339" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10339" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10339" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10339" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="10339" 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="edge86" 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="M6967.51,-4159.4C7036.19,-4153.04 7177.82,-4140.71 7298,-4135.37 8455.19,-4083.89 8747.97,-4172.33 9904,-4099.37 10299.93,-4074.38 10469.48,-4231.78 10791,-3999.37"/>
<path fill="none" stroke="black" d="M10791,-3997.37C10848.88,-3953.09 10791,-3906.27 10791,-3833.39 10791,-3833.39 10791,-3833.39 10791,-3017.3 10791,-2670.99 10820.36,-2582.9 10788,-2238.1 10747.67,-1808.43 10788.5,-1676.72 10611,-1283.36 10610.47,-1282.19 10497.64,-1138.93 10497,-1137.82 10488.54,-1122.99 10488.6,-1118.18 10483,-1102.05"/>
</g>
<!-- ahriman_web_web -->
<g id="node152" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9804" cy="-545.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9804" y="-554.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9804" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9804" 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="edge87" 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="M6967.52,-4159.44C7036.2,-4153.14 7177.82,-4140.9 7298,-4135.37 7772.45,-4113.54 8963.27,-4154.61 9435,-4099.37 9640.64,-4075.28 9814.99,-4192.36 9890,-3999.37"/>
<path fill="none" stroke="black" d="M9890,-3997.37C9920.17,-3977.75 9899.09,-3951.21 9890,-3916.38"/>
<path fill="none" stroke="black" d="M9890,-3914.38C9883.37,-3889 9874.76,-3885.31 9864,-3861.38 9839.97,-3807.95 9814,-3798 9814,-3739.41 9814,-3739.41 9814,-3739.41 9814,-3635.65 9814,-3025.48 9634.04,-2893.7 9451,-2311.63 9431.64,-2250.07 9408.04,-2081.75 9364,-2034.57 9334.04,-2002.48 9308.72,-2022.65 9272,-1998.57 9000.37,-1820.44 8926.67,-1751.54 8771,-1466.43 8644.64,-1235.01 8594.67,-1177.3 8543,-918.74 8535.24,-879.91 8522.45,-863.49 8543,-829.64 8578.88,-770.55 8624.13,-797.18 8681,-757.87"/>
<path fill="none" stroke="black" d="M8681,-755.87C8853.8,-632.85 8941.77,-705.67 9146,-648.34"/>
<path fill="none" stroke="black" d="M9146,-646.34C9409.24,-572.43 9498.07,-662.4 9757,-574.57 9760.49,-573.38 9764,-571.92 9767.44,-570.28"/>
<polygon fill="#f91010" stroke="black" points="9769.11,-573.36 9776.35,-565.62 9765.87,-567.15 9769.11,-573.36"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node32" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="5324" cy="-3206.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5324" y="-3214.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5324" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5324" y="-3192.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search -->
<g id="edge88" 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="M5285.92,-3203.82C5047.13,-3194.73 3765.05,-3145.78 3725,-3141.28 3498.13,-3115.76 3441.1,-3104.19 3220,-3047.3 3115.94,-3020.52 2866.6,-2915.15 2761,-2895.33 2453.95,-2837.72 2360.91,-2939.66 2059,-2859.33 1914.56,-2820.9 1896.52,-2765.92 1759,-2707.36 1714.38,-2688.37 1696.46,-2698.1 1656,-2671.36 1593.25,-2629.89 1581.01,-2610.58 1542,-2546.27 1470.37,-2428.19 1328,-2100.91 1328,-1962.8 1328,-1962.8 1328,-1962.8 1328,-1851.27 1328,-1440.44 1035.37,-1400.35 986,-992.51"/>
</g>
<!-- ahriman_core_repository_repository_properties -->
<g id="node86" class="node">
<title>ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="4842" cy="-1961.8" rx="77.15" ry="36.54"/>
<text text-anchor="middle" x="4842" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4842" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4842" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4842" 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="edge89" 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="M5287.05,-3198.48C5251.54,-3190.29 5198.21,-3173.42 5163,-3141.28 5109.58,-3092.52 4912.26,-2617.37 4899,-2546.27 4891.74,-2507.34 4876.18,-2489.53 4899,-2457.17 4926.46,-2418.23 4965.44,-2453.99 5000,-2421.17 5088.96,-2336.71 5084.15,-2287.04 5106,-2166.33"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_package -->
<g id="edge90" 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="M5355.57,-3189.82C5452.63,-3142.32 5746.63,-2998.43 5855.17,-2945.3"/>
<polygon fill="#f91010" stroke="black" points="5856.73,-2948.44 5864.18,-2940.9 5853.66,-2942.15 5856.73,-2948.44"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_remote_source -->
<g id="edge91" 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="M5317.18,-3177.69C5313.97,-3158.4 5312.93,-3132.71 5324,-3113.29"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search -->
<g id="edge92" 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="M5362.2,-3203.66C5473.19,-3199.01 5805.27,-3185.42 6081,-3177.28 6171.43,-3174.61 7625.52,-3176.14 7709,-3141.28 7798.61,-3103.86 7788.82,-3048.26 7866,-2989.31 8086.12,-2821.19 8229.47,-2888.05 8402,-2671.36 8458.79,-2600.05 8576,-2230.46 8576,-1853.27 8576,-1853.27 8576,-1853.27 8576,-1319.13 8576,-1160.66 8605.85,-1103.45 8719,-992.51"/>
<path fill="none" stroke="black" d="M8719,-990.51C8807.98,-908.33 8955.67,-884.71 9031.61,-877.92"/>
<polygon fill="#f91010" stroke="black" points="9032.16,-881.39 9041.84,-877.07 9031.58,-874.42 9032.16,-881.39"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node33" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="5820" cy="-3433.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5820" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5820" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5820" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="5820" y="-3414.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_remote_aur -->
<g id="node35" class="node">
<title>ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7144" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="7144" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7144" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7144" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7144" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="7144" 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="edge93" 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="M5857.84,-3427.94C5925.58,-3420.57 6072.06,-3405.25 6196,-3396.36 6526.21,-3372.67 6611.71,-3403.05 6940,-3360.36 6994.41,-3353.28 7055.87,-3339.33 7096.98,-3329.12"/>
<polygon fill="#db0505" stroke="black" points="7097.87,-3332.5 7106.72,-3326.67 7096.16,-3325.71 7097.87,-3332.5"/>
</g>
<!-- ahriman_core_alpm_remote_official -->
<g id="node36" class="node">
<title>ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7238" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="7238" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7238" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7238" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7238" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="7238" 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="edge94" 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="M5857.83,-3427.79C5925.55,-3420.18 6072.01,-3404.49 6196,-3396.36 6306.39,-3389.12 7088.75,-3402.59 7191,-3360.36 7195.16,-3358.64 7199.18,-3356.37 7203,-3353.78"/>
<polygon fill="#db0505" stroke="black" points="7205.19,-3356.51 7211.02,-3347.66 7200.95,-3350.95 7205.19,-3356.51"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb -->
<g id="node37" class="node">
<title>ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="3179" cy="-3315.81" rx="56.64" ry="44.6"/>
<text text-anchor="middle" x="3179" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3179" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3179" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3179" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3179" 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="edge95" 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="M5781.82,-3430.16C5664.53,-3424.18 5299.05,-3406.05 4996,-3396.36 4898.75,-3393.25 3337.9,-3389.29 3245,-3360.36 3238.98,-3358.48 3232.99,-3355.88 3227.23,-3352.87"/>
<polygon fill="#db0505" stroke="black" points="3228.79,-3349.73 3218.36,-3347.84 3225.34,-3355.82 3228.79,-3349.73"/>
</g>
<!-- ahriman_core_alpm_remote_remote -->
<g id="node38" class="node">
<title>ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3292" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="3292" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3292" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3292" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3292" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3292" 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="edge96" 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="M5781.81,-3430.4C5664.49,-3425.13 5298.95,-3408.8 4996,-3396.36 4582.71,-3379.39 4479.18,-3379.98 4066,-3360.36 3791.35,-3347.32 3462.14,-3327.36 3340.36,-3319.82"/>
<polygon fill="#db0505" stroke="black" points="3340.44,-3316.32 3330.24,-3319.2 3340.01,-3323.31 3340.44,-3316.32"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge97" 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="M5781.57,-3431.48C5654.12,-3428.81 5246.89,-3416.03 5130,-3360.36 5094.46,-3343.43 4646.34,-2894.67 4629,-2859.33 4467.9,-2531.03 4773.92,-2423.87 4842,-2064.57"/>
<path fill="none" stroke="black" d="M4842,-2062.57C4843.36,-2045.12 4843.65,-2025.91 4843.5,-2009.04"/>
<polygon fill="#db0505" stroke="black" points="4847,-2008.82 4843.35,-1998.87 4840,-2008.92 4847,-2008.82"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge98" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5844.24,-3404.12C5861.14,-3382.09 5881.46,-3349.71 5886,-3316.81"/>
<path fill="none" stroke="black" d="M5886,-3314.81C5892.53,-3267.46 5852.49,-3241.35 5886,-3207.27"/>
</g>
<!-- ahriman_core_alpm_remote -->
<g id="node34" class="node">
<title>ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b30404" stroke="black" cx="5258" cy="-3315.81" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5258" y="-3329.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5258" y="-3318.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5258" y="-3307.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="5258" 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="edge99" 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="M5220.17,-3309.37C5159.18,-3300.69 5035.28,-3283.45 4930,-3271.26 4508.53,-3222.45 4402.98,-3210.49 3980,-3177.28 3705.27,-3155.71 3629.2,-3204.61 3361,-3141.28 3297.45,-3126.27 3286.27,-3108.42 3226,-3083.3 3123.12,-3040.42 2869.82,-2919.42 2761,-2895.33 2457.71,-2828.2 2362.2,-2942.84 2063,-2859.33 2020.48,-2847.46 1742.41,-2704.29 1713,-2671.36 1487.39,-2418.8 1366,-1561.52 1366,-1430.67 1366,-1430.67 1366,-1430.67 1366,-1319.13 1366,-1108.39 1200.49,-1110 1112,-918.74 1080.56,-850.79 1107.89,-817.03 1062,-757.87"/>
<path fill="none" stroke="black" d="M1062,-755.87C1031.8,-721.97 988.93,-693.01 956.25,-673.72"/>
<polygon fill="#b30404" stroke="black" points="957.73,-670.53 947.33,-668.54 954.22,-676.59 957.73,-670.53"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_package -->
<g id="edge100" 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="M5296.3,-3314.88C5421.91,-3314.15 5817.22,-3304.1 5886,-3207.27"/>
<path fill="none" stroke="black" d="M5886,-3205.27C5937.67,-3132.52 5920.41,-3020.24 5906.49,-2962.47"/>
<polygon fill="#b30404" stroke="black" points="5909.86,-2961.52 5904.03,-2952.68 5903.07,-2963.23 5909.86,-2961.52"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source -->
<g id="edge101" 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="M5250.32,-3279.58C5247.35,-3257.65 5246.91,-3229.49 5258,-3207.27"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search -->
<g id="edge102" 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="M5295.98,-3311.8C5419.56,-3301.94 5821.3,-3269.27 6153,-3235.26 6375.11,-3212.49 6429.34,-3193.8 6652,-3177.28 6774.84,-3168.16 7644.9,-3185.14 7760,-3141.28 7858.47,-3103.75 7851.06,-3042.55 7942,-2989.31 8144.73,-2870.63 8214.86,-2880.59 8436,-2801.35 8483.23,-2784.42 8500.47,-2791.97 8543,-2765.35 8573.63,-2746.18 8574.05,-2732.51 8600,-2707.36 8616.94,-2690.95 8629.34,-2692.89 8639,-2671.36 8767.97,-2384.01 8652,-2277.77 8652,-1962.8 8652,-1962.8 8652,-1962.8 8652,-1851.27 8652,-1755.56 8648.69,-1057.44 8719,-992.51"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge103" 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="M7105.65,-3315.81C6505.9,-3315.81 5906.14,-3315.81 5306.38,-3315.81"/>
<polygon fill="#7a2828" stroke="black" points="5306.22,-3312.31 5296.22,-3315.81 5306.22,-3319.31 5306.22,-3312.31"/>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge104" 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="M7214.96,-3351.55C7206.07,-3362.21 7194.91,-3372.59 7182,-3378.36 7107.24,-3411.77 6526.86,-3380.51 6445,-3378.36 6002.17,-3366.7 5467.38,-3330.61 5306.22,-3319.26"/>
<polygon fill="#7a2828" stroke="black" points="5306.37,-3315.77 5296.15,-3318.55 5305.87,-3322.75 5306.37,-3315.77"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge105" 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="M3212.34,-3352.07C3224.32,-3362.63 3238.7,-3372.81 3254,-3378.36 3303.49,-3396.29 5098.14,-3391.91 5149,-3378.36 5174.16,-3371.65 5199.55,-3357.6 5219.49,-3344.52"/>
<polygon fill="#913030" stroke="black" points="5221.63,-3347.3 5227.96,-3338.8 5217.71,-3341.49 5221.63,-3347.3"/>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge106" 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="M3330.4,-3315.81C3956.69,-3315.81 4582.98,-3315.81 5209.26,-3315.81"/>
<polygon fill="#993333" stroke="black" points="5209.41,-3319.31 5219.41,-3315.81 5209.41,-3312.31 5209.41,-3319.31"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node39" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3700" cy="-3636.65" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3700" y="-3650.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3700" y="-3639.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3700" y="-3628.65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3700" 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="edge107" 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="M3698.1,-3599.53C3696.79,-3551.56 3698.72,-3464.91 3724,-3396.36 3765,-3285.17 3805.82,-3272.77 3876,-3177.28 3888,-3160.95 3893.14,-3158.39 3904,-3141.28 3936.59,-3089.94 3966,-3080.12 3966,-3019.3 3966,-3019.3 3966,-3019.3 3966,-2829.34 3966,-2768.53 3985.63,-2750.99 4028,-2707.36 4051.28,-2683.4 4070.28,-2694.9 4094,-2671.36 4323.89,-2443.32 4184.8,-2223.19 4448,-2034.57 4496.22,-2000.02 4655.21,-1979.64 4755.88,-1969.9"/>
<polygon fill="#993333" stroke="black" points="4756.41,-1973.36 4766.04,-1968.93 4755.75,-1966.39 4756.41,-1973.36"/>
</g>
<!-- ahriman_core_auth -->
<g id="node40" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c70505" stroke="black" cx="10397" cy="-1852.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="10397" y="-1860.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10397" y="-1849.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10397" 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="edge108" 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="M10613,-1741.73C10736.85,-1676.18 10800.71,-1743.47 10920,-1669.96 11070.18,-1577.41 11073.12,-1508.09 11164,-1356.9 11173.27,-1341.47 11171.27,-1334.78 11183,-1321.13"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge109" 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="M10374.47,-1828.3C10317.66,-1769.97 10165.01,-1610.51 10051,-1466.43 10014.23,-1419.97 10008.72,-1405.62 9975,-1356.9 9935.83,-1300.31 9784.41,-1169.31 9799,-1102.05"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge110" 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="M10429.29,-1836.27C10471.92,-1816.23 10549.05,-1779.13 10613,-1743.73"/>
<path fill="none" stroke="black" d="M10613,-1741.73C10637.03,-1728.42 10663.46,-1527.36 10675,-1502.43 10766.44,-1304.92 10837.28,-1283.82 10957,-1102.05"/>
<path fill="none" stroke="black" d="M10957,-1100.05C10997,-1040.64 11102.67,-1059.37 11077,-992.51"/>
<path fill="none" stroke="black" d="M11077,-990.51C11060.26,-946.9 11015.94,-914.87 10982,-895.79"/>
<polygon fill="#c70505" stroke="black" points="10983.64,-892.69 10973.18,-890.98 10980.29,-898.84 10983.64,-892.69"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge111" 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="M10410.18,-1824.95C10429.01,-1783.85 10459.4,-1702.11 10441,-1634.19"/>
<path fill="none" stroke="black" d="M10441,-1632.19C10428.67,-1582.18 10372.77,-1606.62 10350,-1560.42 10345.25,-1550.78 10346.1,-1184.5 10345,-1173.82 10341.67,-1141.49 10342.44,-1132.47 10331,-1102.05"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge112" 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="M10441,-1632.19C10394.93,-1450.06 10514.22,-1396.84 10483,-1211.59"/>
<path fill="none" stroke="black" d="M10483,-1209.59C10475.06,-1162.46 10498.66,-1147.2 10483,-1102.05"/>
<path fill="none" stroke="black" d="M10483,-1100.05C10474.69,-1076.1 10458.97,-1013.65 10445,-992.51"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge113" 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="M10365.6,-1835.39C10336.99,-1820.9 10293.61,-1798.86 10256,-1779.5 9988.24,-1641.61 9896.39,-1646.54 9655,-1466.43 9502.82,-1352.89 9469.46,-1306.35 9382,-1137.82 9270.76,-923.45 8915.05,-718.98 9146,-648.34"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node41" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10339" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10339" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10339" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10339" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="10339" 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="edge114" 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="M10356.24,-1928.83C10363.07,-1916.18 10370.94,-1901.58 10377.93,-1888.62"/>
<polygon fill="#8a2e2e" stroke="black" points="10381.18,-1889.97 10382.84,-1879.51 10375.02,-1886.65 10381.18,-1889.97"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node42" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d92626" stroke="black" cx="10739" cy="-1210.59" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10739" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10739" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10739" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="10739" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">helpers</text>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index -->
<g id="edge115" 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="M10757.64,-1178.43C10794.11,-1117.45 10874.87,-982.42 10915.16,-915.05"/>
<polygon fill="#d92626" stroke="black" points="10918.21,-916.77 10920.34,-906.39 10912.2,-913.18 10918.21,-916.77"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge116" 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="M10704.42,-1194.4C10674.16,-1180.72 10629.34,-1159.48 10592,-1137.82 10461.13,-1061.88 10316.02,-956.75 10247.31,-905.59"/>
<polygon fill="#d92626" stroke="black" points="10249.02,-902.51 10238.92,-899.33 10244.84,-908.12 10249.02,-902.51"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge117" 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="M10714.08,-1182.32C10667.54,-1132.51 10562.74,-1025.45 10459,-954.74 10429.11,-934.36 10415.8,-939.25 10386,-918.74 10382.34,-916.22 10378.69,-913.43 10375.12,-910.52"/>
<polygon fill="#d92626" stroke="black" points="10377.35,-907.82 10367.48,-903.99 10372.8,-913.15 10377.35,-907.82"/>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node43" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="10121" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10121" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10121" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10121" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="10121" 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="edge118" 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="M10156.24,-1947.08C10206.69,-1927.42 10299.41,-1891.29 10353.89,-1870.06"/>
<polygon fill="#822b2b" stroke="black" points="10355.22,-1873.3 10363.27,-1866.41 10352.68,-1866.78 10355.22,-1873.3"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node44" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="10471" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10471" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10471" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10471" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="10471" 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="edge119" 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="M10450.39,-1930.85C10440.97,-1917.16 10429.77,-1900.89 10420.07,-1886.79"/>
<polygon fill="#822b2b" stroke="black" points="10422.8,-1884.59 10414.25,-1878.34 10417.04,-1888.56 10422.8,-1884.59"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node45" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="3779" cy="-3112.29" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="3779" y="-3120.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3779" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3779" y="-3098.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge120" 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="M3767.41,-3084.16C3748.25,-3038.48 3709.74,-2942.99 3686,-2859.33 3652.07,-2739.76 3601.25,-2697.43 3648,-2582.27 3656.39,-2561.59 3674.61,-2566.95 3683,-2546.27 3697.9,-2509.58 3707.39,-2488.37 3683,-2457.17 3642.09,-2404.87 3599.29,-2446.73 3538,-2421.17 3451.56,-2385.14 3421.97,-2380.03 3358,-2311.63 3199.62,-2142.29 2998.13,-1550.79 3030,-1321.13"/>
<path fill="none" stroke="black" d="M3030,-1319.13C3032.7,-1269.46 3085.49,-1254.88 3061,-1211.59"/>
<path fill="none" stroke="black" d="M3061,-1209.59C3051.32,-1192.48 3048.51,-1188.1 3035,-1173.82 3023.44,-1161.6 3009.82,-1149.56 2996.79,-1138.93"/>
<polygon fill="#f91010" stroke="black" points="2998.77,-1136.03 2988.77,-1132.5 2994.39,-1141.49 2998.77,-1136.03"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge121" 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="M3737.19,-3101.8C3710.6,-3095.97 3675.39,-3088.62 3644,-3083.3 3523.77,-3062.9 3490.21,-3077.23 3372,-3047.3 3301.91,-3029.55 3289.88,-3007.87 3220,-2989.31 3119.57,-2962.65 3076.33,-3009.61 2989,-2953.31 2963.1,-2936.62 2977.79,-2910.55 2951,-2895.33 2786.6,-2801.97 2265.4,-2952.69 2101,-2859.33 2074.21,-2844.11 2087.16,-2820.47 2063,-2801.35 2026.29,-2772.28 2002.92,-2791.38 1964,-2765.35 1934.98,-2745.94 1937.78,-2729.77 1911,-2707.36 1888.02,-2688.14 1878.55,-2688.54 1854,-2671.36 1779.46,-2619.22 1737.56,-2625.01 1692,-2546.27 1655.86,-2483.81 1670,-2457.57 1670,-2385.4 1670,-2385.4 1670,-2385.4 1670,-2273.87 1670,-2167.18 1614.7,-2134.89 1651,-2034.57 1659.92,-2009.92 1796.97,-1879 1802,-1853.27"/>
<path fill="none" stroke="black" d="M1802,-1851.27C1820.87,-1756.65 1802,-1730.67 1802,-1634.19 1802,-1634.19 1802,-1634.19 1802,-1428.67 1802,-1332.19 1726.66,-1271.85 1802,-1211.59"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge122" 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="M3821.94,-3103.75C3938.66,-3083.44 4271.62,-3026.56 4550,-2989.31 4930.23,-2938.44 5025.61,-2925.98 5408,-2895.33 5447.2,-2892.19 6087.91,-2887.84 6115,-2859.33 6205.61,-2763.99 6014.72,-2776.02 6005,-2765.35 5908.81,-2659.73 5889.89,-2268.81 5917,-2128.56 5990.21,-1749.82 6239.62,-1764.44 6433,-1430.67"/>
<path fill="none" stroke="black" d="M6433,-1428.67C6453.09,-1328.44 6570.24,-1293.43 6509,-1211.59"/>
<path fill="none" stroke="black" d="M6509,-1209.59C6330.18,-1028.96 4231.98,-1128.98 4246,-875.19"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node84" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="4369" cy="-1742.73" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4369" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4369" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4369" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4369" 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="edge123" 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="M3968,-2500.72C3980.44,-2465.67 3982.54,-2456.56 3994,-2421.17 4049.59,-2249.5 4034.31,-2194.44 4118,-2034.57 4146.45,-1980.22 4158.46,-1968.26 4202,-1925.03 4239.55,-1887.75 4271.88,-1899.84 4297,-1853.27"/>
<path fill="none" stroke="black" d="M4297,-1851.27C4304.46,-1834.88 4306.4,-1830.73 4316,-1815.5 4323.04,-1804.33 4331.26,-1792.64 4339.1,-1782.02"/>
<polygon fill="#f91010" stroke="black" points="4342.09,-1783.87 4345.28,-1773.76 4336.49,-1779.67 4342.09,-1783.87"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node87" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="4134" cy="-1742.73" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="4134" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4134" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4134" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4134" 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="edge124" 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="M3777.01,-3083.18C3771.78,-3002.15 3760.68,-2769.84 3800,-2707.36 3817.8,-2679.09 3841.7,-2694.29 3866,-2671.36 3929.72,-2611.25 3960.76,-2590.02 3968,-2502.72"/>
<path fill="none" stroke="black" d="M3968,-2500.72C4000.72,-2295.52 3976.06,-2240.48 4004,-2034.57 4008.37,-2002.37 4012.22,-1994.79 4018,-1962.8"/>
<path fill="none" stroke="black" d="M4018,-1960.8C4021.03,-1892.17 4066.01,-1824.12 4099.05,-1782.99"/>
<polygon fill="#f91010" stroke="black" points="4101.86,-1785.09 4105.48,-1775.14 4096.44,-1780.66 4101.86,-1785.09"/>
</g>
<!-- ahriman_core_tree -->
<g id="node95" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="1698" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1698" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1698" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1698" 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="edge125" 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="M3739.33,-3098.67C3666.75,-3075.75 3507.58,-3026.24 3372,-2989.31 3202.89,-2943.26 3162.52,-2920.05 2989,-2895.33 2895.42,-2882 2221.2,-2906.01 2139,-2859.33 2112.21,-2844.11 2124.34,-2821.47 2101,-2801.35 2072.08,-2776.42 2053.88,-2787.81 2023,-2765.35 1978.22,-2732.78 1901.32,-2611.01 1854,-2582.27 1802.03,-2550.7 1759.79,-2593.91 1722,-2546.27 1669.49,-2480.08 1707.27,-2250.81 1708,-2166.33"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge126" 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="M3823.34,-3107.73C3941.48,-3098.21 4273.68,-3071.28 4550,-3047.3 5058.27,-3003.17 5674.14,-2946.01 5848.17,-2929.79"/>
<polygon fill="#f91010" stroke="black" points="5848.64,-2933.26 5858.27,-2928.85 5847.99,-2926.29 5848.64,-2933.26"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node46" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bd0404" stroke="black" cx="3447" cy="-2274.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3447" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3447" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3447" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="3447" 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="edge127" 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="M3410,-2164.33C3405.48,-2151.6 3369.9,-1938.23 3367,-1925.03 3345.42,-1826.77 3339.18,-1802.24 3310,-1705.96 3295.06,-1656.64 3291.73,-1644.02 3272,-1596.42 3212.77,-1453.54 3203.47,-1413.57 3120,-1283.36 3097.72,-1248.59 3084.23,-1245.72 3061,-1211.59"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge128" 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="M3435.87,-2238.67C3428.94,-2217.51 3419.55,-2190.15 3410,-2166.33"/>
<path fill="none" stroke="black" d="M3410,-2164.33C3262.07,-1795.27 2976.79,-1886.99 2750,-1560.42 2724.3,-1523.41 2724.19,-1509.81 2712,-1466.43 2694.29,-1403.42 2717.83,-1379.39 2688,-1321.13"/>
<path fill="none" stroke="black" d="M2688,-1319.13C2621.86,-1237.29 2517.85,-1170.88 2452.09,-1133.93"/>
<polygon fill="#bd0404" stroke="black" points="2453.52,-1130.72 2443.08,-1128.92 2450.12,-1136.84 2453.52,-1130.72"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge129" 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="M3472.58,-2243.49C3489.01,-2222.78 3509.86,-2194.17 3524,-2166.33"/>
<path fill="none" stroke="black" d="M3524,-2164.33C3551.5,-2110.16 3539.99,-2088.99 3567,-2034.57 3729.39,-1707.38 3853.77,-1675.74 4032,-1356.9 4146.31,-1152.41 4209.46,-1106.59 4246,-875.19"/>
<path fill="none" stroke="black" d="M4246,-873.19C4248.83,-822.02 4218.27,-800.98 4246,-757.87"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node47" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="4258" cy="-1961.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="4258" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4258" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4258" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="4258" 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="edge130" 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="M3488.61,-2257.9C3624.92,-2205.62 4057.75,-2039.61 4206.9,-1982.4"/>
<polygon fill="#bd0404" stroke="black" points="4208.23,-1985.64 4216.31,-1978.79 4205.72,-1979.11 4208.23,-1985.64"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge131" 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="M3524,-2164.33C3642.81,-1938.9 3942.99,-1810.51 4072.72,-1763.95"/>
<polygon fill="#bd0404" stroke="black" points="4074.25,-1767.12 4082.5,-1760.48 4071.91,-1760.52 4074.25,-1767.12"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree -->
<g id="edge132" 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="M3400.67,-2268.32C3153.95,-2238.8 1996.36,-2100.27 1745.88,-2070.29"/>
<polygon fill="#bd0404" stroke="black" points="1745.99,-2066.78 1735.65,-2069.07 1745.16,-2073.73 1745.99,-2066.78"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge134" 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="M4267.83,-1925.79C4274.57,-1904.21 4284.55,-1876.34 4297,-1853.27"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node48" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="5444" cy="-3636.65" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="5444" y="-3645.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5444" y="-3634.15" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5444" 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="edge135" 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="M4802,-3533.89C4727.82,-3496.14 4685.57,-3528.03 4626,-3469.9 4613.78,-3457.97 4627.35,-3441.61 4612,-3434.13"/>
<path fill="none" stroke="black" d="M4612,-3432.13C4583.4,-3418.19 4579.77,-3407.57 4550,-3396.36 4473.66,-3367.59 4441.59,-3399.49 4370,-3360.36 4321.71,-3333.96 4333.03,-3296.25 4284,-3271.26 4181.63,-3219.08 4128.3,-3291.3 4028,-3235.26 3998.79,-3218.94 4009.85,-3192.38 3980,-3177.28 3854.86,-3114 3466.13,-3219.88 3350,-3141.28 3311.47,-3115.2 3254.18,-2906.99 3243,-2859.33 3233.37,-2818.28 3232.9,-2807.42 3230,-2765.35 3228.23,-2739.64 3226.72,-2732.93 3230,-2707.36 3244.34,-2595.53 3296.28,-2567.28 3272,-2457.17 3208.28,-2168.27 2992,-2149.12 2992,-1853.27 2992,-1853.27 2992,-1853.27 2992,-1741.73 2992,-1562.06 2966.02,-1349.38 2953.54,-1257.56"/>
<polygon fill="#d10505" stroke="black" points="2956.99,-1256.93 2952.16,-1247.49 2950.05,-1257.88 2956.99,-1256.93"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge136" 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="M4498,-3533.89C4468.52,-3527.16 4464.09,-3517.07 4436,-3505.9 4390.55,-3487.81 4377.47,-3487.92 4332,-3469.9 4257.74,-3440.46 4242.17,-3426.02 4168,-3396.36 4123.36,-3378.51 4109.88,-3380.01 4066,-3360.36 3991.01,-3326.77 3982.58,-3295.29 3904,-3271.26 3735,-3219.59 3678.38,-3282.19 3508,-3235.26 3450.51,-3219.43 3444.67,-3192.45 3387,-3177.28 3158.24,-3117.09 3089.3,-3180.29 2856,-3141.28 2600.37,-3098.54 2543.57,-3055.56 2293,-2989.31 2131.88,-2946.71 2093.62,-2926.98 1930,-2895.33 1807.68,-2871.67 1760.52,-2920.54 1652,-2859.33 1633.2,-2848.73 1549.12,-2719.09 1531,-2707.36 1476.69,-2672.24 1440.96,-2711.19 1390,-2671.36 1354.56,-2643.67 1366.56,-2619.95 1342,-2582.27 1330.93,-2565.29 1323.85,-2563.98 1314,-2546.27 1282.86,-2490.28 1214,-2339.93 1214,-2275.87 1214,-2275.87 1214,-2275.87 1214,-2062.57 1214,-1985.19 1203.11,-1966.35 1200,-1889.03 1196.73,-1807.73 1199.2,-1787.32 1200,-1705.96 1203.11,-1388.82 1214,-1309.66 1214,-992.51 1214,-992.51 1214,-992.51 1214,-873.19 1214,-810.11 1199.65,-738.38 1188.82,-693.25"/>
<polygon fill="#d10505" stroke="black" points="1192.21,-692.36 1186.43,-683.48 1185.41,-694.03 1192.21,-692.36"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge137" 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="M5393.59,-3631.71C5283.35,-3622.75 5012.71,-3598.89 4788,-3563.88 4726.16,-3554.25 4710.46,-3552.05 4650,-3535.89"/>
<path fill="none" stroke="black" d="M4650,-3533.89C4618.12,-3525.36 4389.92,-3483.81 4360,-3469.9 4311.27,-3447.23 4312.83,-3418.82 4264,-3396.36 4193.84,-3364.08 4151.33,-3412.1 4094,-3360.36 4078.91,-3346.74 4099.36,-3323.02 4080,-3316.81"/>
<path fill="none" stroke="black" d="M4080,-3314.81C4041.42,-3301.3 4038.22,-3282.77 3999,-3271.26 3800.95,-3213.14 3728.59,-3309.49 3536,-3235.26 3496.69,-3220.11 3500.43,-3192.13 3461,-3177.28 3340.77,-3132 3009.2,-3170.1 2884,-3141.28 2817.97,-3126.08 2808.1,-3102.1 2743,-3083.3 2653.29,-3057.38 2625.4,-3074.27 2536,-3047.3 2474.65,-3028.79 2464.39,-3010.72 2404,-2989.31 2255.02,-2936.5 2216.49,-2923.76 2061,-2895.33 1977.34,-2880.04 1752.84,-2903.23 1680,-2859.33 1653.61,-2843.43 1661.27,-2825.39 1642,-2801.35 1628.04,-2783.94 1621.06,-2782.68 1607,-2765.35 1587.43,-2741.23 1591.87,-2727.23 1568,-2707.36 1537.09,-2681.65 1511.33,-2701.76 1485,-2671.36 1254.89,-2405.76 1290,-1453.47 1290,-1102.05 1290,-1102.05 1290,-1102.05 1290,-544.57 1290,-354.95 2809.98,-337.1 3125.91,-335.44"/>
<polygon fill="#d10505" stroke="black" points="3126.22,-338.94 3136.21,-335.39 3126.19,-331.94 3126.22,-338.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge138" 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="M4080,-3314.81C4047.97,-3304.41 4049.59,-3282.92 4018,-3271.26 3858.84,-3212.55 3799.78,-3286.31 3638,-3235.26 3588.27,-3219.57 3585.94,-3192.28 3536,-3177.28 3306.49,-3108.32 3229.05,-3204.89 2998,-3141.28 2943.2,-3126.19 2938.11,-3100.72 2884,-3083.3 2783.84,-3051.04 2750.16,-3079.55 2650,-3047.3 2595.89,-3029.87 2588.69,-3010.64 2536,-2989.31 2485.57,-2968.91 2462.49,-2986 2419,-2953.31 2394.37,-2934.8 2407.64,-2910.8 2381,-2895.33 2268.56,-2830.04 1920.92,-2898.71 1797,-2859.33 1721.3,-2835.28 1701.9,-2820.77 1645,-2765.35 1622.93,-2743.85 1630.69,-2727.06 1607,-2707.36 1575.14,-2680.88 1545.22,-2704.98 1521,-2671.36 1418.78,-2529.5 1404,-1276.9 1404,-1102.05 1404,-1102.05 1404,-1102.05 1404,-873.19 1404,-774.13 1475.46,-760.3 1566,-720.1 1720.16,-651.66 2246.28,-647.39 2421.05,-647.92"/>
<polygon fill="#d10505" stroke="black" points="2421.06,-651.42 2431.07,-647.95 2421.08,-644.42 2421.06,-651.42"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge139" 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="M5393.85,-3630.84C5313.82,-3623.32 5152.23,-3608.7 5015,-3599.88 4661.15,-3577.14 4569.85,-3607.8 4218,-3563.88 4166.67,-3557.47 3809.36,-3490.7 3762,-3469.9 3685.76,-3436.41 3672.94,-3414.87 3610,-3360.36 3568.4,-3324.33 3574.25,-3293.7 3524,-3271.26 3325.42,-3182.59 2752.78,-3302.64 2546,-3235.26 2502.17,-3220.98 2499.39,-3201.23 2460,-3177.28 2431.45,-3159.92 2422.55,-3158.64 2394,-3141.28 2354.61,-3117.33 2351.34,-3099.01 2308,-3083.3 2160.99,-3029.99 2111.35,-3077.92 1958,-3047.3 1886.78,-3033.07 1711.79,-2981.82 1645,-2953.31 1567.02,-2920.03 1548.31,-2908.16 1479,-2859.33 1394.51,-2799.81 1392.47,-2759.1 1303,-2707.36 1261.02,-2683.09 1236.89,-2702.84 1200,-2671.36 1165.79,-2642.17 1183.72,-2614.16 1152,-2582.27 1128.43,-2558.58 1110.17,-2569.34 1086,-2546.27 882.33,-2351.87 1045.8,-2193.83 962,-1925.03 905.61,-1744.17 772.61,-1720.43 796,-1532.43"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge140" 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="M5394.19,-3630.58C5314.3,-3622.65 5152.5,-3607.45 5015,-3599.88 4866.06,-3591.68 3816.17,-3605.75 3673,-3563.88 3521.52,-3519.58 3479.93,-3484.12 3382,-3360.36 3354.72,-3325.88 3375.83,-3295.28 3339,-3271.26 3291,-3239.95 2364.89,-3242.22 2308,-3235.26 2107.79,-3210.76 2060.05,-3188.69 1864,-3141.28 1709.53,-3103.92 1667.52,-3103.83 1519,-3047.3 1431.32,-3013.92 1409,-3003.91 1330,-2953.31 1295.4,-2931.15 1290.26,-2920.77 1258,-2895.33 1130.13,-2794.48 1082.71,-2786.96 968,-2671.36 854.19,-2556.68 611.37,-2230.96 528,-2092.56 488.79,-2027.46 453.77,-1946.22 433.99,-1897.11"/>
<polygon fill="#d10505" stroke="black" points="437.2,-1895.71 430.24,-1887.73 430.7,-1898.31 437.2,-1895.71"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help -->
<g id="edge141" 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="M5393.85,-3630.87C5313.81,-3623.38 5152.23,-3608.81 5015,-3599.88 4673.57,-3577.66 4582.08,-3628.04 4246,-3563.88 4168,-3548.99 4152.68,-3529.94 4077,-3505.9 4022.71,-3488.65 4008.26,-3487.23 3954,-3469.9 3918.6,-3458.59 3667.18,-3383.37 3638,-3360.36 3601.09,-3331.25 3621.61,-3294.94 3581,-3271.26 3517.27,-3234.1 2991.24,-3244.15 2918,-3235.26 2806.63,-3221.75 2520.95,-3194.13 2422,-3141.28 2390.13,-3124.25 2397.53,-3099.04 2365,-3083.3 2230.6,-3018.27 2176.62,-3080.26 2031,-3047.3 1955.19,-3030.13 1941.01,-3009.68 1866,-2989.31 1785.16,-2967.37 1757.73,-2986.91 1681,-2953.31 1641.1,-2935.85 1640.27,-2916.12 1602,-2895.33 1562.33,-2873.77 1543.73,-2885.59 1507,-2859.33 1479.79,-2839.87 1482.45,-2825.21 1459,-2801.35 1441.77,-2783.81 1435.38,-2781.67 1417,-2765.35 1388.55,-2740.08 1387.19,-2725.98 1354,-2707.36 1303.2,-2678.88 1271.67,-2709.9 1228,-2671.36 1195.72,-2642.88 1208.51,-2621.14 1190,-2582.27 1182.22,-2565.93 1177.63,-2563.1 1171,-2546.27 1131.6,-2446.33 1135.55,-2416.66 1113,-2311.63 980.19,-1693.12 898.38,-1546.48 820,-918.74 811.96,-854.35 732.06,-346.29 796,-335.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge142" 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="M4650,-3533.89C4554.25,-3507.67 4521.67,-3520.06 4436,-3469.9 4395.44,-3446.14 4402.06,-3417.34 4360,-3396.36 4268.2,-3350.56 4212.91,-3423.43 4132,-3360.36 4098.05,-3333.89 4128.87,-3296.51 4094,-3271.26 4018.49,-3216.58 3756.05,-3283.06 3676,-3235.26 3649.55,-3219.47 3664.59,-3192.84 3638,-3177.28 3536.88,-3118.1 3224.94,-3172.46 3112,-3141.28 3057.21,-3126.15 3052.11,-3100.72 2998,-3083.3 2897.84,-3051.04 2864.16,-3079.55 2764,-3047.3 2709.89,-3029.87 2703.82,-3007.6 2650,-2989.31 2567.38,-2961.25 2529.63,-3001.68 2457,-2953.31 2431.36,-2936.23 2445.64,-2910.8 2419,-2895.33 2306.56,-2830.04 1947.44,-2924.63 1835,-2859.33 1808.36,-2843.86 1821.56,-2819.95 1797,-2801.35 1754.65,-2769.27 1725.35,-2797.43 1683,-2765.35 1658.44,-2746.74 1669.06,-2726.61 1645,-2707.36 1609.42,-2678.9 1577.28,-2707.09 1549,-2671.36 1517.36,-2631.39 1518,-2583.19 1518,-1743.73 1518,-1743.73 1518,-1743.73 1518,-1530.43 1518,-1165.75 1360.39,-945.59 1647,-720.1 1724.52,-659.12 2440.02,-714.06 2534,-684.1 2538.39,-682.7 2542.77,-680.85 2547.03,-678.73"/>
<polygon fill="#d10505" stroke="black" points="2549.06,-681.61 2556.12,-673.71 2545.67,-675.48 2549.06,-681.61"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge143" 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="M6476,-3111.29C6674.14,-2911.27 6993.33,-2987.38 6964,-2707.36 6952.16,-2594.32 6994.18,-2534.64 6911,-2457.17 6825.63,-2377.67 6758.25,-2467.06 6651,-2421.17 6579.01,-2390.37 6556.94,-2376.45 6513,-2311.63 6472.24,-2251.51 6429.56,-2070.44 6419,-1998.57 6409.57,-1934.38 6422.22,-1917.24 6433,-1853.27"/>
<path fill="none" stroke="black" d="M6433,-1851.27C6436.52,-1754.85 6447.92,-1729.51 6433,-1634.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge144" 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="M4982,-3432.13C4909.01,-3347.89 4656.89,-3208.88 4550,-3177.28 4458.5,-3150.23 3758.04,-3210.15 3692,-3141.28 3674.16,-3122.68 3691.35,-3109.06 3692,-3083.3 3693.78,-3013.02 3700,-2995.62 3700,-2925.32 3700,-2925.32 3700,-2925.32 3700,-2829.34 3700,-2774.09 3701.09,-2757.64 3724,-2707.36 3732.41,-2688.92 3740.4,-2687.99 3752,-2671.36 3789.5,-2617.63 3810.32,-2608.76 3830,-2546.27 3836.98,-2524.1 3848.73,-2151.56 3852,-2128.56 3876.72,-1954.65 3942,-1919.38 3942,-1743.73 3942,-1743.73 3942,-1743.73 3942,-1319.13 3942,-1115.42 3796.23,-1076.4 3828,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge145" 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="M4650,-3533.89C4584.91,-3515.62 4567.74,-3508.16 4512,-3469.9 4473.25,-3443.3 4478.06,-3417.34 4436,-3396.36 4344.2,-3350.56 4297.5,-3410.49 4208,-3360.36 4162.59,-3334.92 4177.89,-3295.81 4132,-3271.26 4012.03,-3207.08 3960.12,-3267.75 3828,-3235.26 3757.79,-3217.99 3746.62,-3192.8 3676,-3177.28 3561.57,-3152.12 3251.12,-3200.46 3150,-3141.28 3123.41,-3125.72 3137.91,-3099.97 3112,-3083.3 3023.51,-3026.37 2978.16,-3079.55 2878,-3047.3 2823.89,-3029.87 2816.71,-3010.6 2764,-2989.31 2761.93,-2988.48 2459.19,-2895.73 2457,-2895.33 2329.06,-2872.14 1985.44,-2924.63 1873,-2859.33 1846.36,-2843.86 1858.23,-2821.58 1835,-2801.35 1806.82,-2776.8 1790.92,-2784.79 1759,-2765.35 1722.71,-2743.25 1719.29,-2729.46 1683,-2707.36 1651.08,-2687.92 1630.67,-2700.29 1607,-2671.36 1514.24,-2557.98 1539.7,-2494.03 1545,-2347.63 1548.28,-2256.99 1606.43,-779.48 1675,-720.1 1756.53,-649.51 2542.19,-716.68 2645,-684.1 2649.39,-682.71 2653.77,-680.87 2658.03,-678.74"/>
<polygon fill="#d10505" stroke="black" points="2660.06,-681.62 2667.13,-673.73 2656.68,-675.49 2660.06,-681.62"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge146" 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="M5393.74,-3631.14C5261.91,-3618.79 4908.99,-3582.24 4802,-3535.89"/>
<path fill="none" stroke="black" d="M4802,-3533.89C4714.81,-3496.11 4681.13,-3515.93 4598,-3469.9 4554,-3445.53 4557.67,-3417.41 4512,-3396.36 4418.84,-3353.4 4373.5,-3410.49 4284,-3360.36 4238.59,-3334.92 4253.41,-3296.7 4208,-3271.26 4118.5,-3221.13 4079.13,-3261.69 3980,-3235.26 3910.14,-3216.64 3898.68,-3192.5 3828,-3177.28 3696.99,-3149.07 3351.63,-3187.95 3226,-3141.28 3186.17,-3126.48 3188.24,-3101.81 3150,-3083.3 3091.79,-3055.11 3070.12,-3068.46 3009,-3047.3 2948.83,-3026.46 2937.64,-3011.6 2878,-2989.31 2827.04,-2970.27 2811.43,-2973.72 2761,-2953.31 2708.31,-2931.99 2701.93,-2909.94 2647,-2895.33 2490.47,-2853.7 2063.06,-2933.37 1919,-2859.33 1889.74,-2844.29 1896.04,-2824.83 1873,-2801.35 1827.01,-2754.48 1810.19,-2748.49 1759,-2707.36 1667.91,-2634.2 1594,-2619.56 1594,-2502.72 1594,-2502.72 1594,-2502.72 1594,-2164.33 1594,-1892.27 1671.7,-1831.56 1694,-1560.42 1696.11,-1534.73 1694.09,-1528.2 1694,-1502.43 1693.72,-1419.7 1619.23,-802.34 1689,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge147" 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="M4982,-3432.13C4935.24,-3396.06 4949.61,-3365.36 4916,-3316.81"/>
<path fill="none" stroke="black" d="M4916,-3314.81C4884.31,-3269.04 4730.23,-3200.63 4631,-3177.28 4581.97,-3165.74 3759.9,-3177.6 3725,-3141.28 3707.14,-3122.7 3723.94,-3109.04 3725,-3083.3 3727.89,-3012.91 3738,-2995.77 3738,-2925.32 3738,-2925.32 3738,-2925.32 3738,-2829.34 3738,-2772.42 3754.4,-2759.6 3777,-2707.36 3784.27,-2690.57 3789.14,-2687.9 3797,-2671.36 3822.7,-2617.29 3828.51,-2603.22 3847,-2546.27 3950.45,-2227.61 3943.63,-2138.67 4032,-1815.5 4041.22,-1781.79 4208,-1246.53 4208,-1211.59 4208,-1211.59 4208,-1211.59 4208,-1100.05 4208,-944.26 4080,-904.72 4132,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge148" 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="M5393.83,-3631.21C5313.76,-3624.19 5152.13,-3610.24 5015,-3599.88 4779.13,-3582.05 4717.24,-3603.24 4484,-3563.88 4327.72,-3537.5 4290.36,-3520.01 4140,-3469.9 4026.18,-3431.96 3754.17,-3301.24 3638,-3271.26 3516.94,-3240.02 3482.97,-3251.48 3359,-3235.26 3164.73,-3209.84 3116.66,-3199.5 2922,-3177.28 2755.21,-3158.24 2707.95,-3185.48 2546,-3141.28 2487.31,-3125.26 2479.53,-3103.09 2422,-3083.3 2354.31,-3060 2334.55,-3064.27 2265,-3047.3 2103.1,-3007.78 2062.77,-2997.22 1902,-2953.31 1865.53,-2943.35 1607.75,-2878.21 1575,-2859.33 1490.59,-2810.67 1500.01,-2758.38 1417,-2707.36 1375.69,-2681.97 1351.69,-2701.88 1314,-2671.36 1212.88,-2589.5 1207.69,-2543 1162,-2421.17 1125.14,-2322.89 1006.15,-1702.04 986,-1211.59"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge149" 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="M5393.86,-3630.64C5313.85,-3622.83 5152.29,-3607.82 5015,-3599.88 4768.39,-3585.61 4143.25,-3625.34 3904,-3563.88 3848.94,-3549.74 3843.24,-3525.8 3790,-3505.9 3728.21,-3482.8 3702.64,-3503.72 3646,-3469.9 3608.04,-3447.22 3612.65,-3425.03 3579,-3396.36 3556.76,-3377.41 3546.11,-3379.46 3524,-3360.36 3483.95,-3325.76 3492.86,-3293.85 3445,-3271.26 3246.92,-3177.78 2666.19,-3309.16 2460,-3235.26 2420.01,-3220.93 2422.07,-3196.14 2384,-3177.28 2242.75,-3107.3 2196.68,-3113.69 2042,-3083.3 1910.66,-3057.49 1871.26,-3085.57 1743,-3047.3 1687.39,-3030.7 1679.35,-3012.15 1626,-2989.31 1582.96,-2970.89 1567.89,-2976.11 1527,-2953.31 1468.14,-2920.49 1460.14,-2902.03 1408,-2859.33 1367.63,-2826.27 1272.91,-2735.55 1229,-2707.36 1197.21,-2686.96 1182.99,-2692.97 1152,-2671.36 1105.83,-2639.17 1104.97,-2618.62 1062,-2582.27 1041.09,-2564.58 1028.85,-2567.86 1012,-2546.27 964.66,-2485.61 948,-2462.35 948,-2385.4 948,-2385.4 948,-2385.4 948,-2273.87 948,-2167.44 971.63,-2135.88 939,-2034.57 856.91,-1779.68 606,-1800.22 606,-1532.43 606,-1532.43 606,-1532.43 606,-1319.13 606,-1222.65 619.11,-1197.63 606,-1102.05"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge150" 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="M5395.15,-3628.32C5300.97,-3611.58 5093.72,-3561.65 4982,-3434.13"/>
<path fill="none" stroke="black" d="M4982,-3432.13C4895.37,-3368.46 4849.99,-3402.29 4751,-3360.36 4674.98,-3328.15 4663.29,-3305.15 4588,-3271.26 4475.57,-3220.66 4447.82,-3201.84 4327,-3177.28 4256.33,-3162.91 3728.56,-3193.66 3679,-3141.28 3546.33,-3001.03 3647.67,-2893.47 3699,-2707.36 3699.5,-2705.55 3751.17,-2583.97 3752,-2582.27 3760.03,-2565.82 3767.41,-2563.99 3772,-2546.27 3878.29,-2136.09 3794.75,-2006.99 3690,-1596.42 3600.83,-1246.9 3630.99,-1125.06 3424,-829.64 3363.77,-743.68 3326.82,-740.03 3238,-684.1 3234.22,-681.72 3230.3,-679.24 3226.37,-676.75"/>
<polygon fill="#d10505" stroke="black" points="3228.12,-673.72 3217.81,-671.3 3224.36,-679.62 3228.12,-673.72"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge151" 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="M4802,-3533.89C4729.8,-3499.52 4753.56,-3439.13 4686,-3396.36 4633.17,-3362.91 4602.92,-3393.66 4550,-3360.36 4505.95,-3332.64 4520.05,-3295.51 4474,-3271.26 4338.77,-3200.04 4262.48,-3314.86 4132,-3235.26 4105.7,-3219.22 4120.59,-3192.84 4094,-3177.28 3992.49,-3117.89 3646.28,-3227.22 3566,-3141.28 3561.06,-3135.99 3565.81,-3022.81 3569,-2989.31 3573.02,-2947.21 3576.47,-2936.95 3584,-2895.33 3591.58,-2853.4 3593.71,-2842.94 3603,-2801.35 3612.37,-2759.38 3609.48,-2747.07 3626,-2707.36 3633.2,-2690.05 3640.24,-2688.44 3648,-2671.36 3665.17,-2633.58 3656.73,-2619.03 3676,-2582.27 3685.41,-2564.32 3697.42,-2565.44 3704,-2546.27 3716.85,-2508.81 3711.95,-2495.97 3704,-2457.17 3686.31,-2370.84 3573.03,-2177.06 3548,-2092.56 3484.44,-1877.98 3506.61,-1815.72 3462,-1596.42 3426.99,-1424.29 3372,-1387.24 3372,-1211.59 3372,-1211.59 3372,-1211.59 3372,-1100.05 3372,-933.64 3286.4,-910.46 3220,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge152" 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="M4802,-3533.89C4776.05,-3520.68 4812.87,-3498.84 4816,-3469.9 4819.51,-3437.4 4837.14,-3421.28 4816,-3396.36 4752.47,-3321.47 4677.92,-3417.43 4598,-3360.36 4561.4,-3334.22 4585.84,-3298.44 4550,-3271.26 4398.29,-3156.19 4320.47,-3204.42 4132,-3177.28 4070.94,-3168.49 3620.18,-3186.29 3578,-3141.28 3544.61,-3105.64 3627.63,-2751.75 3648,-2707.36 3656.45,-2688.94 3664.93,-2688.35 3676,-2671.36 3700.56,-2633.68 3698.81,-2619.53 3724,-2582.27 3735.66,-2565.01 3746.91,-2565.85 3754,-2546.27 3767.48,-2509.04 3766.18,-2494.85 3754,-2457.17 3747.93,-2438.39 3735.53,-2439.42 3728,-2421.17 3630.53,-2184.94 3638,-2108.82 3638,-1853.27 3638,-1853.27 3638,-1853.27 3638,-1319.13 3638,-1049.21 3724.92,-914.83 3538,-720.1 3483.92,-663.76 3439.15,-711.47 3366,-684.1 3360.93,-682.21 3355.78,-679.96 3350.72,-677.52"/>
<polygon fill="#d10505" stroke="black" points="3352.24,-674.36 3341.74,-672.97 3349.07,-680.61 3352.24,-674.36"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge153" 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="M4612,-3432.13C4583.5,-3417.99 4579.57,-3408.1 4550,-3396.36 4485.47,-3370.74 4454.62,-3400.53 4398,-3360.36 4359.66,-3333.15 4380.74,-3296.38 4341,-3271.26 4233.08,-3203.05 4164.3,-3302.88 4056,-3235.26 4029.86,-3218.94 4044.62,-3192.79 4018,-3177.28 3910.64,-3114.73 3561.06,-3213.57 3460,-3141.28 3284.49,-3015.73 3334,-2543.55 3334,-2385.4 3334,-2385.4 3334,-2385.4 3334,-2273.87 3334,-1727.61 3258.97,-1591.49 3116,-1064.28 3078.14,-924.65 3012.01,-766.33 2979.36,-691.67"/>
<polygon fill="#d10505" stroke="black" points="2982.4,-689.88 2975.17,-682.13 2975.99,-692.69 2982.4,-689.88"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge154" 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="M5393.65,-3631.51C5228.7,-3617.89 4710.82,-3574.76 4636,-3563.88 4574.07,-3554.88 4559.09,-3549.49 4498,-3535.89"/>
<path fill="none" stroke="black" d="M4498,-3533.89C4444.97,-3522.08 4432.25,-3516.69 4379,-3505.9 4285.76,-3487 4255.99,-3506.06 4168,-3469.9 4115.3,-3448.24 4115.1,-3419.42 4063,-3396.36 3996.75,-3367.02 3970.65,-3388.77 3904,-3360.36 3837.87,-3332.16 3836.81,-3295.14 3769,-3271.26 3608.16,-3214.61 3555.1,-3263.93 3387,-3235.26 3281.81,-3217.32 3259.45,-3193.68 3154,-3177.28 2909.31,-3139.23 2834.93,-3213.29 2598,-3141.28 2548.84,-3126.34 2546.27,-3100.9 2498,-3083.3 2411.09,-3051.61 2381.42,-3074.47 2293,-3047.3 2232.91,-3028.83 2224.28,-3007.14 2164,-2989.31 2063.1,-2959.47 2030.63,-2984.06 1930,-2953.31 1872.2,-2935.65 1864.6,-2913.63 1807,-2895.33 1719.25,-2867.46 1682.58,-2905.63 1603,-2859.33 1574.08,-2842.5 1577.39,-2826.21 1555,-2801.35 1515.88,-2757.91 1513.06,-2737.55 1463,-2707.36 1414.95,-2678.39 1386.43,-2705.63 1342,-2671.36 1329.12,-2661.43 1272.85,-2561.02 1266,-2546.27 1172.66,-2345.37 1138,-2286.09 1138,-2064.57 1138,-2064.57 1138,-2064.57 1138,-1741.73 1138,-1353.28 1024,-1263.64 1024,-875.19 1024,-875.19 1024,-875.19 1024,-646.34 1024,-590.72 1043.74,-529.42 1059.56,-489.2"/>
<polygon fill="#d10505" stroke="black" points="1062.9,-490.28 1063.39,-479.7 1056.41,-487.67 1062.9,-490.28"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge155" 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="M5492.66,-3627.78C5543.33,-3619.82 5625.05,-3607.6 5696,-3599.88 5882.55,-3579.57 6380.68,-3638.17 6538,-3535.89"/>
<path fill="none" stroke="black" d="M6538,-3533.89C6547.6,-3527.64 6562.1,-3445.42 6564,-3434.13"/>
<path fill="none" stroke="black" d="M6564,-3432.13C6575.95,-3361.05 6483.99,-3380.36 6450,-3316.81"/>
<path fill="none" stroke="black" d="M6450,-3314.81C6407.4,-3235.18 6413.96,-3178.91 6476,-3113.29"/>
<path fill="none" stroke="black" d="M6476,-3111.29C6519.59,-3041.29 6608.99,-2843.25 6680,-2801.35 6777.06,-2744.07 6857.18,-2850.51 6931,-2765.35 6947.88,-2745.87 6933.68,-2732.99 6931,-2707.36 6928.04,-2679.1 6899.11,-2476.19 6878,-2457.17 6821.06,-2405.88 6606.89,-2447.74 6535,-2421.17 6454.51,-2391.43 6434.64,-2374.29 6376,-2311.63 6311.29,-2242.49 6317.62,-2208.59 6267,-2128.56 6177.45,-1986.96 6188.9,-1918.8 6057,-1815.5 5678.47,-1519.03 4056,-1473.32 4056,-992.51 4056,-992.51 4056,-992.51 4056,-873.19 4056,-846.04 4022.6,-759.84 3968,-720.1 3925.35,-689.07 3778.83,-665.97 3697.14,-655.15"/>
<polygon fill="#d10505" stroke="black" points="3697.4,-651.65 3687.03,-653.83 3696.49,-658.59 3697.4,-651.65"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users -->
<g id="edge156" 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="M6564,-3432.13C6572.18,-3360.3 6549.66,-3332.54 6588,-3271.26 6720.6,-3059.33 6935.45,-3174.47 7052,-2953.31 7155.25,-2757.4 7166.12,-2610.16 7006,-2457.17 6950.91,-2404.53 6715.97,-2477.81 6665,-2421.17 6643.3,-2397.06 6665.16,-2305.2 6679,-2275.87"/>
<path fill="none" stroke="black" d="M6679,-2273.87C6681.07,-2226.11 6642.44,-2197.11 6679,-2166.33"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge157" 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="M6564,-3432.13C6569.58,-3398.96 6577.52,-3392.32 6588,-3360.36 6594.33,-3341.04 6588.34,-3331.87 6602,-3316.81"/>
<path fill="none" stroke="black" d="M6602,-3314.81C6615.66,-3299.75 6602.36,-3286.33 6616,-3271.26 6651.13,-3232.45 6780.98,-3188.99 6832,-3177.28 6879.53,-3166.37 7675.23,-3176.46 7709,-3141.28 7767.3,-3080.53 7857.93,-3117.52 7651,-2801.35 7635.81,-2778.13 7620.36,-2784.2 7600,-2765.35 7575.45,-2742.62 7580.28,-2725.24 7552,-2707.36 7496.97,-2672.57 7452.8,-2720.43 7410,-2671.36 7360.42,-2614.53 7391,-2578.15 7391,-2502.72 7391,-2502.72 7391,-2502.72 7391,-1741.73 7391,-1216.23 7363.59,-867.95 7841,-648.34"/>
<path fill="none" stroke="black" d="M7841,-646.34C8057.75,-528.55 8146.1,-599.66 8387,-546.57"/>
<path fill="none" stroke="black" d="M8387,-544.57C8530.53,-512.95 9615.55,-560.66 9706,-444.81"/>
<path fill="none" stroke="black" d="M9706,-442.81C9802.08,-319.75 7141.64,-239.35 6716.83,-227.31"/>
<polygon fill="#d10505" stroke="black" points="6716.73,-223.8 6706.63,-227.02 6716.53,-230.8 6716.73,-223.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge158" 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="M5393.86,-3630.62C5313.85,-3622.79 5152.29,-3607.77 5015,-3599.88 4762.18,-3585.35 4124.89,-3610.61 3876,-3563.88 3752.77,-3540.74 3718.96,-3531.93 3610,-3469.9 3490.27,-3401.73 3500.61,-3320.68 3372,-3271.26 3176.87,-3196.28 2635.16,-3284.51 2432,-3235.26 2372.87,-3220.93 2365.65,-3196.71 2308,-3177.28 2048.61,-3089.87 1970.76,-3116.78 1706,-3047.3 1621.84,-3025.21 1602.26,-3014.61 1519,-2989.31 1465.32,-2973 1444.99,-2983.97 1398,-2953.31 1323.8,-2904.91 1326.38,-2868.85 1269,-2801.35 1233.47,-2759.55 1231.46,-2742.1 1189,-2707.36 1163.44,-2686.45 1152.26,-2688.46 1124,-2671.36 1037.49,-2619.04 1002.63,-2620.51 934,-2546.27 919,-2530.04 914.23,-2524.41 910,-2502.72"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge159" 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="M5820,-3533.89C5832.31,-3518.73 5833.78,-3497.57 5831.56,-3478.64"/>
<polygon fill="#d10505" stroke="black" points="5835.02,-3478.06 5830.06,-3468.7 5828.09,-3479.11 5835.02,-3478.06"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge160" 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="M7020,-3432.13C7099.44,-3397.28 7697.94,-3282.19 7784,-3271.26 8135.76,-3226.59 8228.56,-3274.16 8581,-3235.26 8819.87,-3208.9 9411,-3097.59 9646,-3047.3 9749.09,-3025.24 9772.11,-3007.2 9876,-2989.31 9960.03,-2974.85 10192.78,-3008.24 10258,-2953.31 10324.21,-2897.56 10290.25,-2849.85 10309,-2765.35 10349.38,-2583.36 10431.99,-2513.55 10347,-2347.63 10334.52,-2323.26 10309.48,-2336.01 10297,-2311.63 10282.1,-2282.55 10294.53,-2270.69 10297,-2238.1 10303.18,-2156.57 10319.52,-2062.63 10329.9,-2008.25"/>
<polygon fill="#d10505" stroke="black" points="10333.38,-2008.72 10331.83,-1998.24 10326.5,-2007.4 10333.38,-2008.72"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge161" 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="M5495.03,-3635.22C5700.68,-3633.13 6468.86,-3621.54 6704,-3563.88 6733.36,-3556.68 6735.92,-3538.94 6766,-3535.89"/>
<path fill="none" stroke="black" d="M6766,-3533.89C6779.84,-3532.48 6768.81,-3514.16 6780,-3505.9 6858.29,-3448.08 6914.19,-3522.62 6996,-3469.9 7012.09,-3459.52 7002.46,-3441.8 7020,-3434.13"/>
<path fill="none" stroke="black" d="M7020,-3432.13C7035.64,-3425.29 7026.73,-3411.8 7034,-3396.36 7041.8,-3379.8 7045.57,-3376.61 7054,-3360.36 7074.24,-3321.32 7060.06,-3295.11 7097,-3271.26 7162.69,-3228.85 8427.81,-3252.85 8504,-3235.26 8564.46,-3221.3 8571.66,-3195.4 8631,-3177.28 8638.62,-3174.95 9189.13,-3084.53 9197,-3083.3 9481.48,-3038.83 9552.1,-3023.51 9838,-2989.31 9880.99,-2984.17 10194.63,-2983.15 10226,-2953.31 10296.26,-2886.49 10257,-2834.32 10257,-2737.36 10257,-2737.36 10257,-2737.36 10257,-2500.72 10257,-2431.85 10269.06,-2406.31 10233,-2347.63 10218.66,-2324.31 10197.43,-2334.9 10183,-2311.63 10148.5,-2256.01 10169.88,-2230.87 10159,-2166.33"/>
<path fill="none" stroke="black" d="M10159,-2164.33C10150.5,-2120.81 10176.06,-2105.49 10159,-2064.57"/>
<path fill="none" stroke="black" d="M10159,-2062.57C10151.36,-2044.24 10143.45,-2023.77 10136.85,-2006.17"/>
<polygon fill="#d10505" stroke="black" points="10140.1,-2004.87 10133.32,-1996.72 10133.54,-2007.31 10140.1,-2004.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge162" 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="M6766,-3533.89C6826.92,-3527.71 6974.67,-3485.03 7034,-3469.9 7154.93,-3439.06 7182.37,-3419.52 7305,-3396.36 7467.54,-3365.65 8621.19,-3258.25 8785,-3235.26 9028.85,-3201.04 9088.92,-3186.34 9331,-3141.28 9669.22,-3078.32 9752,-3053.41 10090,-2989.31 10179.17,-2972.4 10220.44,-3010.39 10291,-2953.31 10502.99,-2781.85 10529.28,-2657.99 10523,-2385.4"/>
<path fill="none" stroke="black" d="M10523,-2383.4C10518.85,-2327.94 10593.31,-2331.13 10587,-2275.87"/>
<path fill="none" stroke="black" d="M10587,-2273.87C10574.88,-2167.67 10615.98,-2127.41 10563,-2034.57 10549.61,-2011.1 10535.29,-2015.22 10514,-1998.57 10511.93,-1996.95 10509.81,-1995.27 10507.68,-1993.56"/>
<polygon fill="#d10505" stroke="black" points="10509.45,-1990.5 10499.48,-1986.91 10505.04,-1995.93 10509.45,-1990.5"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge163" 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="M5820,-3533.89C5852.65,-3507.23 5776.71,-3502.51 5750,-3469.9 5570.99,-3251.3 5474.65,-3202.92 5422,-2925.32"/>
<path fill="none" stroke="black" d="M5422,-2923.32C5418.25,-2839.34 5302.06,-2920.13 5244,-2859.33 5114.82,-2724.07 5202.09,-2625.24 5120,-2457.17 5093.94,-2403.82 5015.68,-2272.1 4967,-2238.1 4905.1,-2194.86 4359,-2122.01 4310,-2064.57"/>
</g>
<!-- ahriman_core_database_data -->
<g id="node50" class="node">
<title>ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a1e1e" stroke="black" cx="7679" cy="-2501.72" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="7679" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7679" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7679" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7679" 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="edge164" 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="M6538,-3533.89C6550.83,-3528.52 6542.74,-3516.28 6552,-3505.9 6679.14,-3363.39 6736.7,-3347.06 6912,-3271.26 6974.14,-3244.39 7004.69,-3274.3 7060,-3235.26 7085.17,-3217.49 7071.23,-3192.53 7098,-3177.28 7174.92,-3133.45 7826.91,-3199.05 7894,-3141.28 7935.87,-3105.23 7918,-3074.55 7918,-3019.3 7918,-3019.3 7918,-3019.3 7918,-2923.32 7918,-2858 7880.49,-2849.17 7836,-2801.35 7818.32,-2782.34 7808.61,-2783.45 7790,-2765.35 7766.02,-2742.02 7768.41,-2727.9 7742,-2707.36 7712.49,-2684.42 7685.99,-2702.95 7666,-2671.36 7642.46,-2634.17 7650.95,-2582.71 7662.02,-2546.44"/>
<polygon fill="#d10505" stroke="black" points="7665.45,-2547.23 7665.19,-2536.64 7658.79,-2545.08 7665.45,-2547.23"/>
</g>
<!-- ahriman_core_database_data_users -->
<g id="node54" class="node">
<title>ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="3632" cy="-2501.72" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="3632" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3632" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3632" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="3632" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="3632" 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="edge165" 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="M4802,-3533.89C4714.82,-3486.41 4713.2,-3443.8 4626,-3396.36 4583.03,-3372.98 4565.43,-3382.86 4522,-3360.36 4461.75,-3329.13 4461.21,-3295.96 4398,-3271.26 4275.38,-3223.36 4219.49,-3298.44 4104,-3235.26 4074.65,-3219.21 4085.8,-3192.49 4056,-3177.28 3946.12,-3121.17 3592.37,-3225.27 3502,-3141.28 3431.02,-3075.31 3472,-3022.22 3472,-2925.32 3472,-2925.32 3472,-2925.32 3472,-2829.34 3472,-2716.27 3550.29,-2601.56 3597.34,-2542.84"/>
<polygon fill="#d10505" stroke="black" points="3600.18,-2544.9 3603.76,-2534.93 3594.74,-2540.49 3600.18,-2544.9"/>
</g>
<!-- ahriman_core_database_migrations -->
<g id="node55" class="node">
<title>ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#813737" stroke="black" cx="7643" cy="-2384.4" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7643" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7643" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7643" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7643" 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="edge166" 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="M6564,-3432.13C6567.06,-3407.8 6693.32,-3282.71 6715,-3271.26 6806.88,-3222.75 6847.13,-3267.21 6946,-3235.26 7000.09,-3217.78 7005.04,-3191.77 7060,-3177.28 7145.61,-3154.7 7794.83,-3205.28 7856,-3141.28 7873.81,-3122.65 7860.21,-3108.72 7856,-3083.3 7834.38,-2952.7 7815.52,-2921.52 7760,-2801.35 7749.8,-2779.28 7721.03,-2724.71 7704,-2707.36 7682.74,-2685.72 7662.6,-2696.76 7646,-2671.36 7598.22,-2598.3 7614.66,-2490.71 7629.64,-2430.48"/>
<polygon fill="#d10505" stroke="black" points="7633.1,-2431.08 7632.21,-2420.52 7626.32,-2429.32 7633.1,-2431.08"/>
</g>
<!-- ahriman_core_database_sqlite -->
<g id="node62" class="node">
<title>ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7571" cy="-2274.87" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="7571" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7571" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7571" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7571" 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="edge167" 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="M6602,-3314.81C6615.88,-3299.95 6600.61,-3284.55 6616,-3271.26 6689.65,-3207.64 6739.55,-3265.68 6832,-3235.26 6886,-3217.5 6891.02,-3191.72 6946,-3177.28 7035.71,-3153.72 7715.84,-3208.26 7780,-3141.28 7831.16,-3087.86 7893.45,-3153.93 7722,-2801.35 7688.9,-2733.29 7646.3,-2738.83 7612,-2671.36 7577.04,-2602.61 7555.49,-2578.28 7571,-2502.72"/>
</g>
<!-- ahriman_core_report_console -->
<g id="node75" class="node">
<title>ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="5612" cy="-2165.33" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5612" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5612" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5612" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5612" y="-2146.33" 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="edge168" 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="M5422,-2923.32C5406.43,-2806.65 5606.52,-2952.08 5679,-2859.33 5694.87,-2839.03 5691.26,-2824.02 5679,-2801.35 5665.11,-2775.65 5645.67,-2784.94 5624,-2765.35 5584.16,-2729.32 5565.91,-2722.01 5548,-2671.36 5490.12,-2507.73 5558.71,-2297.94 5593.79,-2209.11"/>
<polygon fill="#d10505" stroke="black" points="5597.11,-2210.22 5597.59,-2199.64 5590.62,-2207.62 5597.11,-2210.22"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node76" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5476" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5476" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5476" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5476" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5476" 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="edge169" 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="M5422,-2923.32C5407.5,-2878.47 5551.48,-2775.65 5524,-2737.36"/>
<path fill="none" stroke="black" d="M5524,-2735.36C5500.39,-2707.33 5484.26,-2705.9 5472,-2671.36 5457.77,-2631.3 5460.97,-2582.44 5466.4,-2547.65"/>
<polygon fill="#d10505" stroke="black" points="5469.85,-2548.22 5468.06,-2537.78 5462.95,-2547.06 5469.85,-2548.22"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node77" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6006" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6006" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6006" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6006" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="6006" 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="edge170" 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="M5820,-3533.89C5946.28,-3380.35 6064.09,-3413.07 6153,-3235.26 6239.5,-3062.27 6250.87,-2983.55 6186,-2801.35 6161,-2731.12 6118.89,-2734.96 6080,-2671.36 6055.45,-2631.22 6034.67,-2581.5 6021.44,-2546.48"/>
<polygon fill="#d10505" stroke="black" points="6024.69,-2545.16 6017.91,-2537.01 6018.13,-2547.61 6024.69,-2545.16"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node78" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7195" cy="-2501.72" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="7195" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7195" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7195" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="7195" 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="edge171" 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="M6450,-3314.81C6334.94,-3115.43 7292.94,-2966.92 7310,-2737.36"/>
<path fill="none" stroke="black" d="M7310,-2735.36C7308.04,-2720.45 7299.84,-2719.53 7291,-2707.36 7279.08,-2690.97 7274.15,-2688.29 7263,-2671.36 7250.85,-2652.91 7250.75,-2646.53 7239,-2627.82"/>
<path fill="none" stroke="black" d="M7239,-2625.82C7223.99,-2601.91 7213.18,-2572.18 7206.03,-2547.93"/>
<polygon fill="#d10505" stroke="black" points="7209.38,-2546.91 7203.29,-2538.25 7202.65,-2548.82 7209.38,-2546.91"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node79" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5836" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5836" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5836" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5836" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5836" 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="edge172" 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="M5820,-3533.89C5842.24,-3506.49 5786.04,-3502.69 5773,-3469.9 5747.67,-3406.19 5754,-3385.37 5754,-3316.81 5754,-3316.81 5754,-3316.81 5754,-2923.32 5754,-2770.19 5757.32,-2728.43 5803,-2582.27 5806.87,-2569.88 5811.91,-2556.75 5816.88,-2544.8"/>
<polygon fill="#d10505" stroke="black" points="5820.14,-2546.08 5820.83,-2535.51 5813.7,-2543.35 5820.14,-2546.08"/>
</g>
<!-- ahriman_core_report_report_trigger -->
<g id="node80" class="node">
<title>ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="6011" cy="-2165.33" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="6011" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6011" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6011" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="6011" 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="edge173" 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="M5820,-3533.89C5958.59,-3420.73 6084.31,-3561.45 6210,-3434.13"/>
<path fill="none" stroke="black" d="M6210,-3432.13C6235.06,-3406.74 6248,-3148.96 6248,-3113.29 6248,-3113.29 6248,-3113.29 6248,-2923.32 6248,-2818.28 6210.23,-2794.78 6152,-2707.36 6127.74,-2670.95 6103.2,-2670.59 6094,-2627.82"/>
</g>
<!-- ahriman_core_report_telegram -->
<g id="node81" class="node">
<title>ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="6831" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6831" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6831" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6831" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="6831" 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="edge174" 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="M6476,-2923.32C6486.52,-2910.75 6487.26,-2905.64 6500,-2895.33 6525.97,-2874.3 6540.78,-2881.25 6566,-2859.33 6676.12,-2763.61 6768.19,-2614.65 6808.76,-2543.38"/>
<polygon fill="#d10505" stroke="black" points="6811.81,-2545.1 6813.68,-2534.68 6805.71,-2541.66 6811.81,-2545.1"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge175" 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="M4916,-3314.81C4798.84,-3098.35 4691.32,-3088.29 4601,-2859.33 4536.06,-2694.7 4520.51,-2183.02 4652,-2064.57"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node89" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#932424" stroke="black" cx="7352" cy="-3433.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="7352" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7352" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7352" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="7352" 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="edge176" 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="M6766,-3533.89C6811.92,-3529.23 6820.61,-3514.24 6866,-3505.9 7039.81,-3473.94 7090.11,-3510.96 7262,-3469.9 7277.7,-3466.15 7294.27,-3460.18 7308.86,-3454.19"/>
<polygon fill="#d10505" stroke="black" points="7310.29,-3457.39 7318.14,-3450.27 7307.56,-3450.94 7310.29,-3457.39"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node90" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b62020" stroke="black" cx="8293" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8293" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8293" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8293" 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="edge177" 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="M5494.9,-3634.85C5684.31,-3631.51 6347.89,-3616.22 6552,-3563.88 6610.93,-3548.77 6620.09,-3529.88 6676,-3505.9 6716.35,-3488.59 6730.53,-3492.78 6768,-3469.9 6830.76,-3431.57 6841.6,-3413.91 6892,-3360.36 6908.83,-3342.48 6906.18,-3331.3 6926,-3316.81"/>
<path fill="none" stroke="black" d="M6926,-3314.81C6945.65,-3304.7 6932.45,-3284.69 6950,-3271.26 7003.77,-3230.14 7032.23,-3251.27 7098,-3235.26 7203.78,-3209.51 7228.35,-3193.51 7336,-3177.28 7598.41,-3137.71 7678.46,-3219.63 7932,-3141.28 8001.2,-3119.89 8179.89,-3002 8256.86,-2949.99"/>
<polygon fill="#d10505" stroke="black" points="8258.97,-2952.78 8265.29,-2944.28 8255.05,-2946.99 8258.97,-2952.78"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node92" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#931a1a" stroke="black" cx="4882" cy="-2384.4" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4882" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4882" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4882" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="4882" 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="edge178" 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="M4982,-3432.13C4907.93,-3343.37 4979.19,-3281.89 4930,-3177.28 4813.36,-2929.25 4531.84,-2875.12 4650,-2627.82"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node93" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b2222" stroke="black" cx="8946" cy="-1320.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8946" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8946" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8946" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="8946" 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="edge179" 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="M8260,-3111.29C8271.77,-3103.87 8264.08,-3093.05 8274,-3083.3 8342.88,-3015.56 8578.29,-2935.84 8666,-2895.33 8701.77,-2878.81 8714.38,-2881.42 8747,-2859.33 8846.15,-2792.2 8869.35,-2768.03 8940,-2671.36 9023.85,-2556.64 9083,-2527.5 9083,-2385.4 9083,-2385.4 9083,-2385.4 9083,-1960.8 9083,-1765.5 8992.03,-1727.61 8985,-1532.43"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node94" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="4914" cy="-2274.87" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4914" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4914" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4914" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="4914" 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="edge180" 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="M5474.58,-3613.25C5482.54,-3608.23 5491.33,-3603.37 5500,-3599.88 5634.54,-3545.69 5729.84,-3649.5 5820,-3535.89"/>
<path fill="none" stroke="black" d="M5820,-3533.89C5844.57,-3502.92 5161.8,-3383.83 5130,-3360.36 4972.26,-3243.93 4818.41,-2740.25 4790,-2546.27 4784.26,-2507.09 4765.76,-2488.49 4790,-2457.17 4829.06,-2406.71 4889.94,-2471.64 4929,-2421.17 4951.23,-2392.46 4943.9,-2350.41 4933.12,-2318.92"/>
<polygon fill="#d10505" stroke="black" points="4936.41,-2317.71 4929.69,-2309.51 4929.83,-2320.11 4936.41,-2317.71"/>
</g>
<!-- ahriman_core_triggers_trigger -->
<g id="node97" class="node">
<title>ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="6138" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6138" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6138" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6138" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6138" 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="edge181" 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="M6210,-3432.13C6279.22,-3366.81 6324,-3114.48 6324,-3019.3 6324,-3019.3 6324,-3019.3 6324,-2923.32 6324,-2817.36 6274.97,-2799.71 6223,-2707.36 6202.16,-2670.34 6186.85,-2666.81 6170,-2627.82"/>
</g>
<!-- ahriman_core_triggers_trigger_loader -->
<g id="node98" class="node">
<title>ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="6684" cy="-2501.72" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="6684" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6684" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6684" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6684" 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="edge182" 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="M5820,-3533.89C5936.94,-3394.7 6076.09,-3575.59 6224,-3469.9 6268.82,-3437.87 6259.71,-3410.74 6282,-3360.36 6316.99,-3281.26 6313.68,-3256.67 6348,-3177.28 6397.84,-3061.99 6403.78,-3028.09 6476,-2925.32"/>
<path fill="none" stroke="black" d="M6476,-2923.32C6565.43,-2797.11 6636.63,-2626.74 6667.44,-2547.15"/>
<polygon fill="#d10505" stroke="black" points="6670.85,-2548.03 6671.17,-2537.44 6664.31,-2545.52 6670.85,-2548.03"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node100" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9205" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9205" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9205" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9205" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9205" 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="edge183" 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="M6926,-3314.81C6945.69,-3304.77 6931.18,-3282.85 6950,-3271.26 6995.91,-3242.98 7866.16,-3238.24 7920,-3235.26 8089.09,-3225.9 8134.84,-3244.71 8300,-3207.27"/>
<path fill="none" stroke="black" d="M8300,-3205.27C8435.57,-3174.54 8455.16,-3124.24 8588,-3083.3 8665.96,-3059.26 8695.87,-3085.41 8768,-3047.3 8807.59,-3026.38 9025.4,-2798.04 9056,-2765.35 9067.2,-2753.38 9068.46,-2748.99 9080,-2737.36"/>
<path fill="none" stroke="black" d="M9080,-2735.36C9090.91,-2723.12 9091.99,-2718.51 9104,-2707.36 9123.81,-2688.99 9131.74,-2688.05 9153,-2671.36 9158.29,-2667.21 9163.81,-2662.75 9169.19,-2658.31"/>
<polygon fill="#d10505" stroke="black" points="9171.48,-2660.96 9176.93,-2651.88 9167,-2655.58 9171.48,-2660.96"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node101" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="8679" cy="-3433.13" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="8679" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8679" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8679" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8679" 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="edge184" 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="M6766,-3533.89C6842.62,-3526.12 6860.39,-3513.72 6937,-3505.9 7274.83,-3471.42 8358.68,-3442.24 8621.29,-3435.56"/>
<polygon fill="#d10505" stroke="black" points="8621.46,-3439.06 8631.37,-3435.31 8621.29,-3432.06 8621.46,-3439.06"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node102" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="9073" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9073" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9073" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9073" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9073" 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="edge185" 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="M6926,-3314.81C6945.65,-3304.7 6931.26,-3282.97 6950,-3271.26 7017.74,-3228.93 7588.54,-3243.39 7668,-3235.26 7939.14,-3207.51 8013.69,-3222.04 8274,-3141.28 8282.64,-3138.6 8853.87,-2864.9 8861,-2859.33 8887.36,-2838.73 8887.41,-2826.9 8909,-2801.35 8944.58,-2759.22 8952.05,-2747.37 8990,-2707.36 9005.21,-2691.33 9022.78,-2674.29 9037.83,-2660.11"/>
<polygon fill="#d10505" stroke="black" points="9040.54,-2662.37 9045.45,-2652.98 9035.76,-2657.26 9040.54,-2662.37"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node103" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9375" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9375" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9375" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9375" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9375" 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="edge186" 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="M8300,-3205.27C8345.12,-3195.56 8355.47,-3189.4 8400,-3177.28 8460.33,-3160.85 8477.1,-3162.25 8536,-3141.28 8594.84,-3120.33 8604.93,-3103.56 8664,-3083.3 8728.85,-3061.05 8748.64,-3067.98 8814,-3047.3 8922.03,-3013.1 8959.57,-3020.25 9051,-2953.31 9121.34,-2901.82 9110.6,-2860.1 9175,-2801.35 9212.61,-2767.04 9232.32,-2771.59 9270,-2737.36"/>
<path fill="none" stroke="black" d="M9270,-2735.36C9279.88,-2725.57 9275.49,-2718.37 9284,-2707.36 9288.5,-2701.55 9315.35,-2678.26 9338.72,-2658.37"/>
<polygon fill="#d10505" stroke="black" points="9341.12,-2660.92 9346.48,-2651.78 9336.59,-2655.59 9341.12,-2660.92"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node104" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9469" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9469" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9469" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9469" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9469" 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="edge187" 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="M5494.95,-3635.01C5692.55,-3632.15 6408.22,-3618.2 6628,-3563.88 6657.35,-3556.62 6660.57,-3542.82 6690,-3535.89"/>
<path fill="none" stroke="black" d="M6690,-3533.89C6694.06,-3532.93 6822.56,-3472.26 6826,-3469.9 6883.89,-3430.07 6890.26,-3409.99 6940,-3360.36 6978.96,-3321.49 6975.65,-3293.48 7026,-3271.26 7156.99,-3213.47 8173.3,-3261.71 8314,-3235.26 8389.16,-3221.13 8402.93,-3199.84 8476,-3177.28 8536.57,-3158.58 8552.87,-3158.02 8614,-3141.28 8704.08,-3116.6 8724.17,-3100.35 8816,-3083.3 8905.71,-3066.63 9155.33,-3106.21 9225,-3047.3 9311.24,-2974.36 9222.22,-2892.45 9289,-2801.35 9320.64,-2758.19 9373.09,-2787.79 9391,-2737.36"/>
<path fill="none" stroke="black" d="M9391,-2735.36C9398.94,-2707.34 9418.02,-2680.81 9435.32,-2661.1"/>
<polygon fill="#d10505" stroke="black" points="9437.96,-2663.39 9442.08,-2653.63 9432.78,-2658.7 9437.96,-2663.39"/>
</g>
<!-- ahriman_core_upload_upload_trigger -->
<g id="node105" class="node">
<title>ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="8849" cy="-2165.33" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="8849" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8849" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8849" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8849" 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="edge188" 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="M6926,-3314.81C6944.11,-3305.57 6924.09,-3283.92 6940,-3271.26 7013.99,-3212.38 7270.32,-3248.14 7364,-3235.26 7500.27,-3216.53 7531.64,-3195.32 7668,-3177.28 7880.96,-3149.11 7937.99,-3175.9 8150,-3141.28 8199.79,-3133.15 8220.47,-3144.62 8260,-3113.29"/>
<path fill="none" stroke="black" d="M8260,-3111.29C8271.02,-3102.8 8267.73,-3095.71 8274,-3083.3 8295.16,-3041.44 8287.12,-3020.67 8322,-2989.31 8355.27,-2959.41 8375.48,-2972.28 8416,-2953.31 8493.48,-2917.03 8686.27,-2820.12 8752,-2765.35 8777.7,-2743.93 8773.99,-2728.4 8800,-2707.36 8826.89,-2685.61 8851.07,-2700.94 8869,-2671.36 8883.68,-2647.15 8885.05,-2622.7 8855,-2275.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge189" 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="M6690,-3533.89C6719.32,-3526.53 6723.59,-3516.24 6752,-3505.9 6807.53,-3485.68 6828.52,-3498.92 6880,-3469.9 6942.05,-3434.92 6951.45,-3415.13 6997,-3360.36 7027.06,-3324.21 7013.07,-3294.38 7054,-3271.26 7185.14,-3197.2 8264.56,-3277.94 8409,-3235.26 8456.44,-3221.25 8457.59,-3194.39 8504,-3177.28 8599.02,-3142.24 8632.64,-3172.45 8729,-3141.28 8783.46,-3123.66 8788.94,-3098.95 8844,-3083.3 9021.23,-3032.91 9079.77,-3097.68 9257,-3047.3 9312.06,-3031.64 9319.91,-3013.05 9372,-2989.31 9410.45,-2971.79 9430.24,-2983.31 9460,-2953.31 9483.93,-2929.19 9687,-2419.38 9687,-2385.4 9687,-2385.4 9687,-2385.4 9687,-2164.33 9687,-1928.54 9707,-1869.97 9707,-1634.19 9707,-1634.19 9707,-1634.19 9707,-1530.43 9707,-1444.06 9786.5,-1141.18 9799,-1102.05"/>
<path fill="none" stroke="black" d="M9799,-1100.05C9805.36,-1073.98 9820.74,-1048.23 9835.06,-1028.47"/>
<polygon fill="#d10505" stroke="black" points="9837.92,-1030.49 9841.1,-1020.39 9832.31,-1026.3 9837.92,-1030.49"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge190" 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="M6926,-3314.81C6944.09,-3305.53 6924.34,-3284.22 6940,-3271.26 6990.2,-3229.71 7168.15,-3252.46 7231,-3235.26 7293.2,-3218.24 7301.27,-3192.21 7364,-3177.28 7640.28,-3111.5 7729.21,-3220.3 8002,-3141.28 8043.28,-3129.32 8304.05,-2976.85 8340,-2953.31 8375.55,-2930.04 8380.91,-2919.28 8416,-2895.33 8507.92,-2832.61 8553.75,-2846.4 8630,-2765.35 8821.83,-2561.44 8859.94,-2477.17 8912,-2202.1 8955.11,-1974.31 8845.75,-2219.62 8714,-1466.43 8668.65,-1207.19 8648.93,-1136.41 8681,-875.19"/>
</g>
<!-- ahriman_core_database -->
<g id="node49" class="node">
<title>ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="7571" cy="-2165.33" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="7571" y="-2173.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7571" y="-2162.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7571" 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="edge191" 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="M7429,-1960.8C7109.22,-1845.4 7014.2,-1865.98 6678,-1815.5 6318.73,-1761.55 3777.52,-1561.94 3427,-1466.43 3275.91,-1425.27 3248.21,-1386.72 3106,-1321.13"/>
<path fill="none" stroke="black" d="M3106,-1319.13C3065.86,-1300.33 3024.51,-1272.04 2994.05,-1249.19"/>
<polygon fill="#db0505" stroke="black" points="2995.84,-1246.16 2985.75,-1242.91 2991.61,-1251.74 2995.84,-1246.16"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge192" 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="M7429,-1960.8C7397.65,-1951.39 7422.18,-1843.35 7405,-1815.5 7150.48,-1402.92 6961.07,-1381.41 6523,-1173.82 5629.96,-750.63 5343.29,-792.75 4372,-610.57 4124,-564.05 3445.78,-632.09 3244,-480.58 3212.57,-456.99 3197.21,-414.12 3189.78,-381.04"/>
<polygon fill="#db0505" stroke="black" points="3193.18,-380.2 3187.71,-371.12 3186.32,-381.62 3193.18,-380.2"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_users -->
<g id="edge193" 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="M7608.43,-2155.13C7649.12,-2142.62 7709.74,-2115.69 7720,-2064.57"/>
<path fill="none" stroke="black" d="M7720,-2062.57C7746.91,-1928.52 7557.6,-2009.22 7429,-1962.8"/>
<path fill="none" stroke="black" d="M7429,-1960.8C7160.46,-1863.89 6813.29,-1852.96 6678.75,-1852.66"/>
<polygon fill="#db0505" stroke="black" points="6678.67,-1849.16 6668.67,-1852.66 6678.67,-1856.16 6678.67,-1849.16"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_auth -->
<g id="edge194" 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="M7610.83,-2162.25C7752.69,-2154.76 8246.46,-2127.61 8653,-2092.56 8896.13,-2071.59 8955.59,-2052 9199,-2034.57 9628.86,-2003.8 9740.22,-2050.88 10168,-1998.57 10210.43,-1993.39 10257.96,-1983.07 10292.12,-1974.85"/>
<polygon fill="#db0505" stroke="black" points="10293.39,-1978.14 10302.27,-1972.37 10291.73,-1971.34 10293.39,-1978.14"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge195" 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="M7610.16,-2160.97C7725.52,-2151.06 8074.1,-2120.79 8363,-2092.56 8608.95,-2068.52 8669.7,-2054.81 8916,-2034.57 9364.87,-1997.69 9909.3,-1972.16 10072.52,-1964.91"/>
<polygon fill="#db0505" stroke="black" points="10072.88,-1968.4 10082.71,-1964.46 10072.57,-1961.4 10072.88,-1968.4"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge196" 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="M7610.63,-2164.01C7774.67,-2162.32 8416.5,-2152.05 8940,-2092.56 9087.96,-2075.74 9121.88,-2049.9 9270,-2034.57 9516.81,-2009.04 10143.6,-2051.58 10386,-1998.57 10400.22,-1995.46 10415.06,-1990.05 10428.29,-1984.36"/>
<polygon fill="#db0505" stroke="black" points="10429.91,-1987.48 10437.61,-1980.2 10427.05,-1981.08 10429.91,-1987.48"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge197" 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="M7531.36,-2163.64C7379.76,-2160.66 6822.41,-2146.44 6367,-2092.56 6220.86,-2075.26 6187.4,-2049.56 6041,-2034.57 5472.64,-1976.39 5326.63,-2027.05 4756,-1998.57 4595.74,-1990.58 4406.85,-1975.44 4314.54,-1967.67"/>
<polygon fill="#db0505" stroke="black" points="4314.56,-1964.16 4304.3,-1966.81 4313.97,-1971.14 4314.56,-1964.16"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge198" 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="M7532.23,-2159.27C7382.71,-2139.93 6829.06,-2070.06 6371,-2034.57 5823.08,-1992.13 5162.62,-1971.43 4929,-1965.04"/>
<polygon fill="#db0505" stroke="black" points="4928.96,-1961.53 4918.87,-1964.76 4928.77,-1968.53 4928.96,-1961.53"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_status_watcher -->
<g id="edge199" 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="M8349,-2062.57C8360.99,-2055.52 8355.44,-2046.25 8363,-2034.57 8410.52,-1961.16 8802.23,-1492.61 8915.46,-1357.53"/>
<polygon fill="#db0505" stroke="black" points="8918.46,-1359.4 8922.2,-1349.49 8913.09,-1354.9 8918.46,-1359.4"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_tree -->
<g id="edge200" 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="M7531.5,-2162.4C7404.84,-2156.32 6997.42,-2137.36 6660,-2128.56 6142.77,-2115.07 2226.86,-2070.55 1746.3,-2065.11"/>
<polygon fill="#db0505" stroke="black" points="1746.26,-2061.61 1736.22,-2065 1746.18,-2068.61 1746.26,-2061.61"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_views_base -->
<g id="edge201" 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="M7610.74,-2164.63C7753.04,-2164.9 8234.71,-2158.74 8349,-2064.57"/>
<path fill="none" stroke="black" d="M8349,-2062.57C8432,-1994.18 8442.97,-1697.74 8479,-1596.42 8494.27,-1553.48 8491.99,-1538.38 8520,-1502.43 8666.77,-1314.1 8747.45,-1307.92 8945,-1173.82 9024.06,-1120.15 9038.92,-1093.19 9130,-1064.28 9320.39,-1003.84 9379.29,-1048.64 9578,-1028.28 9662.17,-1019.66 9759.89,-1006.89 9816.84,-999.16"/>
<polygon fill="#db0505" stroke="black" points="9817.56,-1002.6 9826.99,-997.78 9816.61,-995.66 9817.56,-1002.6"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_web -->
<g id="edge202" 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="M7720,-2062.57C7768.24,-1822.28 8213.57,-1359.95 8373,-1173.82 8462.36,-1069.5 8479.89,-1035.51 8591,-954.74 8619.62,-933.94 8637.72,-944.47 8662,-918.74 8676.49,-903.38 8672.52,-894.53 8681,-875.19"/>
<path fill="none" stroke="black" d="M8681,-873.19C8688.99,-822.57 8638.84,-787.01 8681,-757.87"/>
</g>
<!-- ahriman_core_database_data&#45;&gt;ahriman_core_database_migrations -->
<g id="edge203" 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="M7668.2,-2466.12C7664.67,-2454.82 7660.7,-2442.11 7656.98,-2430.17"/>
<polygon fill="#7a1e1e" stroke="black" points="7660.24,-2428.88 7653.92,-2420.38 7653.56,-2430.97 7660.24,-2428.88"/>
</g>
<!-- ahriman_core_database_data_package_remotes -->
<g id="node51" class="node">
<title>ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="4974" cy="-2501.72" rx="66.44" ry="44.6"/>
<text text-anchor="middle" x="4974" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4974" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4974" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4974" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="4974" 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="edge204" 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="M5022.69,-2532.24C5045.54,-2544.82 5073.71,-2557.91 5101,-2564.27 5168.99,-2580.1 7549.25,-2590.36 7614,-2564.27 7626.96,-2559.04 7638.79,-2549.86 7648.69,-2540.11"/>
<polygon fill="#822b2b" stroke="black" points="7651.49,-2542.25 7655.88,-2532.61 7646.44,-2537.41 7651.49,-2542.25"/>
</g>
<!-- ahriman_core_database_data_package_statuses -->
<g id="node52" class="node">
<title>ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="7743" cy="-2626.82" rx="67.76" ry="44.6"/>
<text text-anchor="middle" x="7743" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7743" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7743" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7743" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="7743" y="-2602.32" 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="edge205" 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="M7721.51,-2584.49C7714.85,-2571.67 7707.5,-2557.54 7700.82,-2544.69"/>
<polygon fill="#a13535" stroke="black" points="7703.8,-2542.84 7696.09,-2535.59 7697.59,-2546.07 7703.8,-2542.84"/>
</g>
<!-- ahriman_core_database_data_patches -->
<g id="node53" class="node">
<title>ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="726" cy="-2501.72" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="726" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="726" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="726" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="726" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="726" 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="edge206" 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="M767.89,-2505.12C909.34,-2516.41 1382.3,-2552.59 1774,-2564.27 1855.08,-2566.69 7538.77,-2594.59 7614,-2564.27 7626.96,-2559.04 7638.79,-2549.86 7648.69,-2540.11"/>
<polygon fill="#b03a3a" stroke="black" points="7651.49,-2542.25 7655.88,-2532.61 7646.44,-2537.41 7651.49,-2542.25"/>
</g>
<!-- ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data -->
<g id="edge207" 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="M3672.67,-2511.95C3734.77,-2526.99 3857.17,-2554.36 3963,-2564.27 4013.49,-2569 7566.97,-2583.22 7614,-2564.27 7626.96,-2559.04 7638.79,-2549.86 7648.69,-2540.11"/>
<polygon fill="#b03a3a" stroke="black" points="7651.49,-2542.25 7655.88,-2532.61 7646.44,-2537.41 7651.49,-2542.25"/>
</g>
<!-- ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge208" 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="M7621.98,-2352.01C7614.37,-2340.64 7605.66,-2327.64 7597.63,-2315.64"/>
<polygon fill="#813737" stroke="black" points="7600.39,-2313.47 7591.92,-2307.11 7594.58,-2317.37 7600.39,-2313.47"/>
</g>
<!-- ahriman_core_database_operations -->
<g id="node56" class="node">
<title>ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6445" cy="-2626.82" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6445" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6445" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6445" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6445" 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="edge209" 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="M6418.1,-2597.56C6410.61,-2591.39 6402.03,-2585.69 6393,-2582.27 6257.78,-2531 5233.99,-2573.67 5092,-2546.27 5074.09,-2542.81 5055.3,-2536.98 5038.12,-2530.68"/>
<polygon fill="#f91010" stroke="black" points="5039.35,-2527.4 5028.76,-2527.15 5036.88,-2533.95 5039.35,-2527.4"/>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge210" 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="M6476.1,-2600.66C6484.59,-2594.3 6493.95,-2587.74 6503,-2582.27 6535,-2562.95 6552.48,-2572.6 6579,-2546.27 6610.2,-2515.29 6587.13,-2483.96 6622,-2457.17 6765.72,-2346.79 7342.88,-2293.58 7519.43,-2279.67"/>
<polygon fill="#f91010" stroke="black" points="7519.8,-2283.15 7529.5,-2278.88 7519.26,-2276.17 7519.8,-2283.15"/>
</g>
<!-- ahriman_core_database_operations_auth_operations -->
<g id="node57" class="node">
<title>ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="8118" cy="-2501.72" rx="60.62" ry="44.6"/>
<text text-anchor="middle" x="8118" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8118" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8118" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8118" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="8118" y="-2477.22" 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_sqlite -->
<g id="edge211" class="edge">
<title>ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8163.94,-2472.44C8194.22,-2450.01 8225.18,-2417.25 8207,-2385.4"/>
<path fill="none" stroke="black" d="M8207,-2383.4C8149.17,-2282.13 7764.42,-2274.46 7623.02,-2275.13"/>
<polygon fill="#8a2e2e" stroke="black" points="7622.84,-2271.63 7612.87,-2275.19 7622.89,-2278.63 7622.84,-2271.63"/>
</g>
<!-- ahriman_core_database_operations_build_operations -->
<g id="node58" class="node">
<title>ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="7481" cy="-2626.82" rx="61.54" ry="44.6"/>
<text text-anchor="middle" x="7481" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7481" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7481" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7481" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="7481" 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_sqlite -->
<g id="edge212" class="edge">
<title>ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7519.42,-2591.64C7541.08,-2569.04 7564.97,-2537.28 7571,-2502.72"/>
<path fill="none" stroke="black" d="M7571,-2500.72C7581.67,-2439.53 7579.08,-2367.55 7575.59,-2321.82"/>
<polygon fill="#913030" stroke="black" points="7579.06,-2321.31 7574.76,-2311.63 7572.08,-2321.88 7579.06,-2321.31"/>
</g>
<!-- ahriman_core_database_operations_operations -->
<g id="node59" class="node">
<title>ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="8103" cy="-2626.82" rx="45.92" ry="44.6"/>
<text text-anchor="middle" x="8103" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8103" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8103" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8103" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="8103" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge213" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8108.29,-2582.42C8109.32,-2573.96 8110.41,-2565 8111.48,-2556.26"/>
<polygon fill="#e72222" stroke="black" points="8114.97,-2556.49 8112.71,-2546.14 8108.02,-2555.65 8114.97,-2556.49"/>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge214" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8074.16,-2661.71C8062.91,-2672.73 8049.08,-2683.55 8034,-2689.36 7959.57,-2718.08 7753.81,-2701.76 7675,-2689.36 7630.23,-2682.33 7581.71,-2666.68 7544.39,-2652.8"/>
<polygon fill="#e72222" stroke="black" points="7545.26,-2649.38 7534.66,-2649.12 7542.78,-2655.93 7545.26,-2649.38"/>
</g>
<!-- ahriman_core_database_operations_package_operations -->
<g id="node60" class="node">
<title>ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#832020" stroke="black" cx="6310" cy="-2626.82" rx="73.58" ry="44.6"/>
<text text-anchor="middle" x="6310" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6310" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6310" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6310" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="6310" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge215" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8074.16,-2661.71C8062.91,-2672.73 8049.08,-2683.55 8034,-2689.36 7991.68,-2705.69 6444.32,-2702.82 6401,-2689.36 6386.87,-2684.98 6372.99,-2677.55 6360.49,-2669.31"/>
<polygon fill="#e72222" stroke="black" points="6362.29,-2666.3 6352.07,-2663.51 6358.31,-2672.07 6362.29,-2666.3"/>
</g>
<!-- ahriman_core_database_operations_patch_operations -->
<g id="node61" class="node">
<title>ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="8269" cy="-2626.82" rx="64.19" ry="44.6"/>
<text text-anchor="middle" x="8269" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8269" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8269" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8269" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="8269" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_patch_operations -->
<g id="edge216" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8149.04,-2626.82C8164.01,-2626.82 8178.99,-2626.82 8193.97,-2626.82"/>
<polygon fill="#e72222" stroke="black" points="8194.33,-2630.32 8204.33,-2626.82 8194.33,-2623.32 8194.33,-2630.32"/>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge217" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6238.64,-2615.32C6167.27,-2605.23 6054.28,-2590.35 5956,-2582.27 5764.48,-2566.53 5280.43,-2583.99 5092,-2546.27 5074.11,-2542.69 5055.34,-2536.81 5038.16,-2530.51"/>
<polygon fill="#832020" stroke="black" points="5039.38,-2527.23 5028.79,-2526.98 5036.91,-2533.78 5039.38,-2527.23"/>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge218" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6346.12,-2587.71C6408.42,-2524.82 6543.11,-2400.97 6685,-2347.63 6839.25,-2289.66 7352.73,-2278.47 7518.74,-2276.35"/>
<polygon fill="#832020" stroke="black" points="7519.21,-2279.84 7529.17,-2276.22 7519.13,-2272.84 7519.21,-2279.84"/>
</g>
<!-- ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge219" class="edge">
<title>ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8264.73,-2581.97C8258.3,-2531.68 8242.8,-2448.1 8207,-2385.4"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_database -->
<g id="edge220" 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="M7571,-2238.06C7571,-2227.31 7571,-2215.49 7571,-2204.6"/>
<polygon fill="#7a2828" stroke="black" points="7574.5,-2204.5 7571,-2194.5 7567.5,-2204.5 7574.5,-2204.5"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node63" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="7352" cy="-4164.36" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="7352" y="-4172.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7352" y="-4161.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7352" y="-4150.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exceptions</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge221" 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="M7308.01,-4159.09C7238.16,-4152.52 7097.55,-4140.21 6978,-4135.37 6346.28,-4109.76 1917.76,-4155.22 1288,-4099.37 1100.22,-4082.71 1039.97,-4108.89 870,-4027.37 832.83,-4009.54 314,-3577.11 314,-3535.89 314,-3535.89 314,-3535.89 314,-3017.3 314,-2795.34 180.61,-2765.83 148,-2546.27 127.88,-2410.79 128.13,-2373.61 148,-2238.1 159.68,-2158.43 219.85,-2142.59 200,-2064.57"/>
<path fill="none" stroke="black" d="M200,-2062.57C180.37,-2010.4 100.87,-2013.52 124,-1962.8"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search -->
<g id="edge222" 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="M7308.01,-4159.14C7238.16,-4152.65 7097.54,-4140.43 6978,-4135.37 6349.01,-4108.71 1932.03,-4142.05 1313,-4027.37 1048.73,-3978.41 966.8,-3947.16 767,-3767.4 550.68,-3572.77 428,-3498.26 428,-3207.27 428,-3207.27 428,-3207.27 428,-2923.32 428,-2712.32 319.9,-2667.4 338,-2457.17 346.48,-2358.72 349.89,-2333.41 376,-2238.1 381.54,-2217.87 644,-1553.39 644,-1532.43 644,-1532.43 644,-1532.43 644,-1209.59 644,-976.83 857.6,-984.89 909,-757.87"/>
<path fill="none" stroke="black" d="M909,-755.87C911.24,-735.83 911.58,-713.56 911.24,-694.51"/>
<polygon fill="#f91010" stroke="black" points="914.73,-694.2 910.99,-684.29 907.74,-694.38 914.73,-694.2"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge223" 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="M7308.01,-4159.16C7238.15,-4152.7 7097.53,-4140.53 6978,-4135.37 5608.96,-4076.2 5264.16,-4155.54 3895,-4099.37 3667.52,-4090.03 3611.3,-4076.48 3384,-4063.37 3028.68,-4042.86 2939.36,-4047.15 2584,-4027.37 1954.26,-3992.3 1778.02,-4093.64 1168,-3933.38 914.38,-3866.76 732,-3798.11 732,-3535.89 732,-3535.89 732,-3535.89 732,-2923.32 732,-2753.84 687.7,-2715.28 675,-2546.27 672.03,-2506.78 651.44,-2489 675,-2457.17 739.97,-2369.4 866.22,-2485.45 910,-2385.4"/>
<path fill="none" stroke="black" d="M910,-2383.4C928.71,-2338.94 927.26,-2211.37 910,-2166.33"/>
<path fill="none" stroke="black" d="M910,-2164.33C901.87,-2144.48 895.44,-2121.42 890.91,-2102.48"/>
<polygon fill="#f91010" stroke="black" points="894.31,-2101.65 888.64,-2092.7 887.49,-2103.23 894.31,-2101.65"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge224" 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="M7356.29,-4135.48C7364.2,-4078.01 7378.03,-3942.61 7352,-3833.39"/>
<path fill="none" stroke="black" d="M7352,-3831.39C7304.7,-3681.55 7296.93,-3639.36 7214,-3505.9 7202.86,-3487.96 7192.75,-3488.62 7183,-3469.9 7166.78,-3438.75 7157.03,-3400.47 7151.33,-3369.98"/>
<polygon fill="#f91010" stroke="black" points="7154.75,-3369.19 7149.55,-3359.96 7147.86,-3370.42 7154.75,-3369.19"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge225" 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="M7352,-3831.39C7342.52,-3791.62 7359.27,-3779.64 7352,-3739.41"/>
<path fill="none" stroke="black" d="M7352,-3737.41C7342.04,-3682.26 7288.26,-3548.63 7252,-3505.9 7232.86,-3483.33 7210.18,-3495.87 7196,-3469.9 7177.19,-3435.44 7192.31,-3391.93 7209.43,-3360.12"/>
<polygon fill="#f91010" stroke="black" points="7212.68,-3361.49 7214.53,-3351.05 7206.58,-3358.05 7212.68,-3361.49"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge226" 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="M3909,-4080.37C3812.51,-4060.37 3789.83,-4020.09 3743,-3933.38 3699.88,-3853.55 3695.61,-3744.78 3697.23,-3683.86"/>
<polygon fill="#f91010" stroke="black" points="3700.73,-3683.9 3697.56,-3673.79 3693.73,-3683.66 3700.73,-3683.9"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge227" 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="M10943,-3997.37C10942.09,-3898 11081.12,-3931.79 11095,-3833.39"/>
<path fill="none" stroke="black" d="M11095,-3831.39C11094.74,-3801.24 10905,-3667.8 10905,-3637.65 10905,-3637.65 10905,-3637.65 10905,-3314.81 10905,-3118.43 10766.11,-2639.03 10692,-2457.17 10671.05,-2405.77 10661.64,-2394.57 10632,-2347.63 10621.46,-2330.95 10616.43,-2328.39 10606,-2311.63 10596.49,-2296.35 10588.96,-2293.76 10587,-2275.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge228" 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="M3909,-3997.37C3894.76,-3674.41 3910.31,-3591.84 3952,-3271.26 3960.24,-3207.87 4026.36,-2757.51 4066,-2707.36 4089.68,-2677.41 4121.24,-2702.02 4144,-2671.36 4289.23,-2475.79 4093.52,-2336.75 4220,-2128.56 4245.48,-2086.61 4338.04,-2104.84 4310,-2064.57"/>
<path fill="none" stroke="black" d="M4310,-2062.57C4297.63,-2045.03 4286.3,-2024.18 4277.4,-2006.08"/>
<polygon fill="#f91010" stroke="black" points="4280.47,-2004.39 4272.97,-1996.9 4274.16,-2007.43 4280.47,-2004.39"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration -->
<g id="edge229" 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="M7307.54,-4161.92C7159.11,-4155.94 6690,-4126.96 6690,-3999.37 6690,-3999.37 6690,-3999.37 6690,-3831.39 6690,-3710 5754.67,-3653.52 5504.77,-3640.6"/>
<polygon fill="#f91010" stroke="black" points="5504.94,-3637.1 5494.78,-3640.09 5504.58,-3644.09 5504.94,-3637.1"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge230" 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="M7396.62,-4162.98C7726.71,-4160.08 9780.25,-4140.47 9904,-4099.37 9916.41,-4095.25 9922.93,-4094.41 9928,-4082.37"/>
<path fill="none" stroke="black" d="M9928,-4080.37C9990.37,-3932.26 9417.12,-3837.13 9260,-3803.4 9129.36,-3775.35 8170.48,-3839.53 8058,-3767.4 7954.41,-3700.97 7912.95,-3341.64 7812,-3271.26 7689.16,-3185.63 7616.46,-3289.8 7477,-3235.26 7240.91,-3142.94 7225.67,-3042.12 7019,-2895.33 6995.78,-2878.84 6985.97,-2879.63 6966,-2859.33 6944.39,-2837.36 6953.7,-2818.35 6928,-2801.35 6852.67,-2751.52 6810.28,-2802.6 6728,-2765.35 6608.98,-2711.45 6619.84,-2629.45 6498,-2582.27 6386.06,-2538.92 6076.57,-2570.53 5959,-2546.27 5932.11,-2540.72 5903.12,-2530.67 5880.04,-2521.62"/>
<polygon fill="#f91010" stroke="black" points="5881.11,-2518.28 5870.53,-2517.82 5878.52,-2524.78 5881.11,-2518.28"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge231" 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="M3909,-4080.37C3891.33,-4076.95 3911.66,-4017.18 3909,-3999.37"/>
<path fill="none" stroke="black" d="M3909,-3997.37C3901.76,-3948.83 3842.07,-3976.71 3819,-3933.38 3778.47,-3857.26 3814,-3825.65 3814,-3739.41 3814,-3739.41 3814,-3739.41 3814,-3635.65 3814,-3583.52 3893.18,-3225.07 3914,-3177.28 3921.78,-3159.42 3928.52,-3157.7 3939,-3141.28 3943.38,-3134.41 4525.82,-2134.84 4531,-2128.56 4571.27,-2079.72 4583.37,-2066.54 4638,-2034.57 4677.28,-2011.58 4725.11,-1994.27 4764.57,-1982.42"/>
<polygon fill="#f91010" stroke="black" points="4765.81,-1985.7 4774.42,-1979.52 4763.83,-1978.99 4765.81,-1985.7"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge232" 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="M7352,-3533.89C7349.25,-3516.46 7348.68,-3497.11 7349,-3480.12"/>
<polygon fill="#f91010" stroke="black" points="7352.51,-3479.99 7349.31,-3469.89 7345.51,-3479.78 7352.51,-3479.99"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge233" 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="M7396.7,-4162.9C7794.81,-4158.74 10720.07,-4127.27 10805,-4099.37 10817.42,-4095.29 10817.51,-4088.59 10829,-4082.37"/>
<path fill="none" stroke="black" d="M10829,-4080.37C10873.37,-4056.33 10838.94,-4006.73 10805,-3969.38 10769.55,-3930.38 10741.69,-3950.96 10692,-3933.38 10468.06,-3854.19 10194,-3976.94 10194,-3739.41 10194,-3739.41 10194,-3739.41 10194,-3635.65 10194,-3333.05 10079.04,-3275.24 9980,-2989.31 9965.46,-2947.34 9964.42,-2935.75 9946,-2895.33 9912.83,-2822.53 9271.67,-1711.47 9251,-1634.19"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge234" 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="M9928,-4080.37C9957.93,-4004 9951.72,-3964.1 9904,-3897.38 9849.19,-3820.76 9805.49,-3825.86 9714,-3803.4 9625.98,-3781.79 8152.51,-3825.56 8083,-3767.4 8050.74,-3740.41 8029.65,-3432.42 8008,-3396.36 7962.96,-3321.35 7936.46,-3305.62 7856,-3271.26 7731.69,-3218.17 7680.75,-3282.24 7554,-3235.26 7410.14,-3181.94 7156.08,-2866.12 7017,-2801.35 6927.98,-2759.89 6873.39,-2829.46 6799,-2765.35 6766.62,-2737.44 6759.07,-2620.52 6740,-2582.27 6733.2,-2568.64 6724.24,-2554.74 6715.49,-2542.45"/>
<polygon fill="#f91010" stroke="black" points="6718.21,-2540.24 6709.49,-2534.23 6712.56,-2544.37 6718.21,-2540.24"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge235" 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="M10080,-3914.38C10075.07,-3836.77 10080,-3817.18 10080,-3739.41 10080,-3739.41 10080,-3739.41 10080,-3533.89 10080,-3373.77 9928,-3367.38 9928,-3207.27 9928,-3207.27 9928,-3207.27 9928,-3111.29 9928,-2965.87 9357.81,-2878.93 9391,-2737.36"/>
</g>
<!-- ahriman_core_util -->
<g id="node106" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c70505" stroke="black" cx="4640" cy="-3832.39" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4640" y="-3840.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4640" y="-3829.89" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4640" 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="edge236" 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="M3909,-3997.37C3888.23,-3858.2 4424.78,-3837.14 4591.39,-3833.96"/>
<polygon fill="#f91010" stroke="black" points="4591.88,-3837.45 4601.82,-3833.77 4591.75,-3830.45 4591.88,-3837.45"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result -->
<g id="edge237" 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="M7396.63,-4163.36C7730.22,-4163.21 9824.2,-4159.9 9942,-4099.37 10032.6,-4052.81 10101.7,-4015.91 10080,-3916.38"/>
<path fill="none" stroke="black" d="M10080,-3914.38C10065.62,-3814.43 9837.89,-3652.99 9752,-3599.88 9716.34,-3577.82 9671.98,-3561.9 9636.35,-3551.45"/>
<polygon fill="#f91010" stroke="black" points="9637.12,-3548.03 9626.54,-3548.65 9635.2,-3554.76 9637.12,-3548.03"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge238" 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="M7352,-3737.41C7344.81,-3648.13 7365.99,-3624.35 7352,-3535.89"/>
<path fill="none" stroke="black" d="M7352,-3533.89C7346.15,-3499.09 7317.66,-3502.83 7305,-3469.9 7273.17,-3387.07 7349.19,-3332.52 7285,-3271.26 7230.99,-3219.72 6680.57,-3269.07 6614,-3235.26 6536.28,-3195.78 6563.24,-3130.57 6490,-3083.3 6311.26,-2967.93 6050.67,-2936.44 5944.11,-2928.16"/>
<polygon fill="#f91010" stroke="black" points="5944.22,-2924.66 5933.99,-2927.4 5943.7,-2931.64 5944.22,-2924.66"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths -->
<g id="edge239" 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="M7308,-4159.24C7238.15,-4152.89 7097.52,-4140.87 6978,-4135.37 6637.31,-4119.69 4242.95,-4151.59 3909,-4082.37"/>
<path fill="none" stroke="black" d="M3909,-4080.37C3716.99,-4040.57 3663.36,-4065.44 3471,-4027.37 3457.99,-4024.79 3444.19,-4021.41 3431.12,-4017.9"/>
<polygon fill="#f91010" stroke="black" points="3431.85,-4014.47 3421.28,-4015.19 3430,-4021.22 3431.85,-4014.47"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_result -->
<g id="edge240" 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="M7396.59,-4162.84C7695.6,-4159.27 9398.24,-4137.27 9435,-4099.37 9475.22,-4057.89 9462.17,-4020.37 9435,-3969.38 9403.9,-3911.02 9250.96,-3823.65 9188,-3803.4 9063.55,-3763.38 8131.48,-3820.46 8012,-3767.4 8009.05,-3766.09 7853.24,-3602.2 7851,-3599.88 7810.63,-3558.03 7802.24,-3545.85 7760,-3505.9 7644.25,-3396.42 7627,-3350.86 7489,-3271.26 7357.02,-3195.14 6964.49,-3136.54 6841,-3047.3 6772.13,-2997.53 6800.23,-2934.84 6725,-2895.33 6578.45,-2818.37 6139.48,-2907.1 5981,-2859.33 5977.47,-2858.27 5973.94,-2856.88 5970.47,-2855.3"/>
<polygon fill="#f91010" stroke="black" points="5972.04,-2852.17 5961.54,-2850.73 5968.85,-2858.4 5972.04,-2852.17"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge241" 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="M10829,-4080.37C10837.57,-4075.63 10835.66,-4069.84 10843,-4063.37 10865.47,-4043.55 10874.78,-4043.54 10900,-4027.37 10919.2,-4015.06 10941.22,-4022.11 10943,-3999.37"/>
<path fill="none" stroke="black" d="M10943,-3997.37C10953.65,-3861.16 10826.31,-3872.49 10739,-3767.4 10592.55,-3591.14 10205.25,-3159.87 10106,-2953.31 9986.12,-2703.83 10033.73,-2614.71 9961,-2347.63 9840.01,-1903.35 9782.87,-1800.1 9658,-1356.9 9612.64,-1195.91 9454.1,-1118.58 9564,-992.51"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge242" 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="M11095,-3831.39C11208.26,-3115.46 11585,-3000.7 11585,-2275.87 11585,-2275.87 11585,-2275.87 11585,-1428.67 11585,-1182.62 11573,-1121.24 11573,-875.19 11573,-875.19 11573,-875.19 11573,-755.87 11573,-627.36 11446.36,-646.61 11323,-610.57 11179.22,-568.55 10096.08,-550.73 9852.53,-547.23"/>
<polygon fill="#f91010" stroke="black" points="9852.27,-543.73 9842.23,-547.09 9852.18,-550.73 9852.27,-543.73"/>
</g>
<!-- ahriman_core_formatters -->
<g id="node64" class="node">
<title>ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="2396" cy="-2384.4" rx="43.68" ry="28.98"/>
<text text-anchor="middle" x="2396" y="-2392.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2396" y="-2381.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2396" y="-2370.9" 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="edge243" 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="M1784,-2273.87C1752.09,-2238.28 1775.75,-2213.4 1784,-2166.33"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge244" 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="M2352.01,-2382.03C2225.39,-2377.14 1863.98,-2356.27 1784,-2275.87"/>
<path fill="none" stroke="black" d="M1784,-2273.87C1761.08,-2250.82 1773.83,-2234.37 1770,-2202.1 1768.2,-2186.91 1770.18,-2078.56 1764,-2064.57"/>
<path fill="none" stroke="black" d="M1764,-2062.57C1756.42,-2049.58 1756.2,-2044.61 1745,-2034.57 1656.15,-1954.97 782.61,-1650.97 796,-1532.43"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge245" 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="M2574,-2273.87C2607.46,-2233.79 2626.04,-2234.47 2667,-2202.1 3074.76,-1879.83 3194.61,-1819.51 3576,-1466.43 3894.04,-1172 4011.49,-1122.36 4246,-757.87"/>
<path fill="none" stroke="black" d="M4246,-755.87C4257.36,-732.27 4273.06,-707.66 4286.71,-687.95"/>
<polygon fill="#950303" stroke="black" points="4289.73,-689.73 4292.61,-679.54 4284,-685.71 4289.73,-689.73"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge246" 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="M2574,-2273.87C2638.19,-2196.5 3591.4,-854.01 3562,-757.87"/>
<path fill="none" stroke="black" d="M3562,-755.87C3546.94,-715.45 3506.11,-686.96 3472.41,-669.51"/>
<polygon fill="#950303" stroke="black" points="3473.63,-666.21 3463.12,-664.88 3470.51,-672.48 3473.63,-666.21"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge247" 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="M2574,-2273.87C2597.64,-2244.43 2619.07,-1633.33 2627,-1596.42 2633.35,-1566.87 2646.71,-1562.47 2650,-1532.43"/>
<path fill="none" stroke="black" d="M2650,-1530.43C2648.44,-1501.35 2640.43,-1495.21 2636,-1466.43 2590.27,-1169.69 2588.57,-1093.58 2575,-793.64 2573.52,-760.99 2554.27,-745.37 2575,-720.1 2627.03,-656.7 2678.23,-710.16 2756,-684.1 2761.95,-682.11 2768.04,-679.75 2774.04,-677.2"/>
<polygon fill="#950303" stroke="black" points="2775.65,-680.32 2783.38,-673.07 2772.82,-673.92 2775.65,-680.32"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search -->
<g id="edge248" 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="M1764,-2062.57C1615.21,-1658.82 1602.33,-1542.22 1380,-1173.82 1259.76,-974.59 1199.35,-945.72 1062,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status -->
<g id="edge249" 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="M2650,-1530.43C2654.32,-1473.78 2815.69,-1099.82 2860,-1064.28 2911.12,-1023.27 2956.77,-1074.74 3003,-1028.28 3034.4,-996.72 3048.88,-758.34 3049,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge250" 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="M2433.99,-2369.54C2474.14,-2353.05 2536.69,-2321.85 2574,-2275.87"/>
<path fill="none" stroke="black" d="M2574,-2273.87C2636.35,-2197.01 2498,-2163.53 2498,-2064.57 2498,-2064.57 2498,-2064.57 2498,-1209.59 2498,-1144.46 2521.02,-1114.04 2479,-1064.28 2215.01,-751.64 1968.41,-969.64 1599,-793.64 1409.8,-703.5 1210.67,-551.31 1123.86,-481.63"/>
<polygon fill="#950303" stroke="black" points="1125.8,-478.7 1115.81,-475.15 1121.41,-484.15 1125.8,-478.7"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users -->
<g id="edge251" 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="M2439.87,-2383.82C2654.76,-2385.47 3617.52,-2387.99 4401,-2311.63 4607.06,-2291.55 4654.78,-2256.55 4861,-2238.1 4960.57,-2229.18 6574.84,-2254.45 6660,-2202.1 6675.33,-2192.67 6666.97,-2179.72 6679,-2166.33"/>
<path fill="none" stroke="black" d="M6679,-2164.33C6747,-2088.67 6686.71,-1959.58 6648.21,-1894.04"/>
<polygon fill="#950303" stroke="black" points="6651.08,-1892.01 6642.94,-1885.22 6645.07,-1895.6 6651.08,-1892.01"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_core_report_console -->
<g id="edge252" 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="M2439.82,-2383.28C2637.08,-2382.35 3462.46,-2374.69 4136,-2311.63 4360.51,-2290.62 4413.86,-2262.74 4638,-2238.1 4661.29,-2235.54 5370.61,-2183.88 5563.82,-2169.83"/>
<polygon fill="#950303" stroke="black" points="5564.23,-2173.31 5573.95,-2169.09 5563.72,-2166.33 5564.23,-2173.31"/>
</g>
<!-- ahriman_core_formatters_aur_printer -->
<g id="node65" class="node">
<title>ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="2338" cy="-2501.72" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="2338" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2338" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2338" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2338" y="-2482.72" 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="edge253" 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="M2354.78,-2467.37C2362.02,-2452.96 2370.51,-2436.08 2377.9,-2421.39"/>
<polygon fill="#913030" stroke="black" points="2381.2,-2422.61 2382.57,-2412.11 2374.95,-2419.47 2381.2,-2422.61"/>
</g>
<!-- ahriman_core_formatters_build_printer -->
<g id="node66" class="node">
<title>ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="2979" cy="-2501.72" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="2979" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2979" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2979" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2979" y="-2482.72" 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="edge254" 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="M2948.28,-2473.16C2939.93,-2466.98 2930.55,-2461.1 2921,-2457.17 2836.24,-2422.34 2565.42,-2398.25 2449.49,-2389.29"/>
<polygon fill="#a13535" stroke="black" points="2449.66,-2385.79 2439.42,-2388.52 2449.13,-2392.77 2449.66,-2385.79"/>
</g>
<!-- ahriman_core_formatters_configuration_printer -->
<g id="node67" class="node">
<title>ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="1958" cy="-2501.72" rx="73.58" ry="36.54"/>
<text text-anchor="middle" x="1958" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1958" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1958" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1958" y="-2482.72" 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="edge255" 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="M2004.79,-2473.23C2016.34,-2467.27 2028.89,-2461.48 2041,-2457.17 2144.63,-2420.36 2272.36,-2400.35 2342.89,-2391.37"/>
<polygon fill="#a13535" stroke="black" points="2343.38,-2394.83 2352.87,-2390.12 2342.51,-2387.89 2343.38,-2394.83"/>
</g>
<!-- ahriman_core_formatters_package_printer -->
<g id="node68" class="node">
<title>ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="2851" cy="-2501.72" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="2851" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2851" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2851" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2851" y="-2482.72" 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="edge256" 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="M2795.21,-2486.58C2705.84,-2463.93 2531.97,-2419.86 2446.25,-2398.14"/>
<polygon fill="#913030" stroke="black" points="2447.04,-2394.73 2436.49,-2395.67 2445.32,-2401.52 2447.04,-2394.73"/>
</g>
<!-- ahriman_core_formatters_printer -->
<g id="node69" class="node">
<title>ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="1820" cy="-2501.72" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="1820" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1820" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1820" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1820" y="-2482.72" 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="edge257" 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="M1848.96,-2473.15C1856.87,-2466.97 1865.81,-2461.09 1875,-2457.17 1958.56,-2421.52 2227.02,-2397.93 2342.43,-2389.19"/>
<polygon fill="#b03a3a" stroke="black" points="2342.74,-2392.68 2352.46,-2388.44 2342.22,-2385.7 2342.74,-2392.68"/>
</g>
<!-- ahriman_core_formatters_status_printer -->
<g id="node70" class="node">
<title>ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="3100" cy="-2501.72" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="3100" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3100" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3100" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="3100" y="-2482.72" 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="edge258" 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="M3066.4,-2473.01C3057.34,-2466.84 3047.21,-2461 3037,-2457.17 2929.68,-2417 2584.25,-2395.19 2450.04,-2388.06"/>
<polygon fill="#a13535" stroke="black" points="2450.15,-2384.56 2439.98,-2387.53 2449.79,-2391.55 2450.15,-2384.56"/>
</g>
<!-- ahriman_core_formatters_string_printer -->
<g id="node71" class="node">
<title>ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="2454" cy="-2501.72" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="2454" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2454" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2454" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2454" y="-2482.72" 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="edge259" 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="M2436.91,-2466.75C2429.73,-2452.47 2421.37,-2435.84 2414.08,-2421.36"/>
<polygon fill="#b03a3a" stroke="black" points="2417.1,-2419.56 2409.47,-2412.2 2410.84,-2422.7 2417.1,-2419.56"/>
</g>
<!-- ahriman_core_formatters_update_printer -->
<g id="node72" class="node">
<title>ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="2219" cy="-2501.72" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="2219" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2219" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2219" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2219" y="-2482.72" 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="edge260" 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="M2256.77,-2474.73C2265.36,-2468.9 2274.47,-2462.79 2283,-2457.17 2307.06,-2441.35 2334.31,-2424.03 2356.02,-2410.37"/>
<polygon fill="#993333" stroke="black" points="2358.05,-2413.23 2364.65,-2404.94 2354.32,-2407.3 2358.05,-2413.23"/>
</g>
<!-- ahriman_core_formatters_user_printer -->
<g id="node73" class="node">
<title>ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="2098" cy="-2501.72" rx="48.17" ry="36.54"/>
<text text-anchor="middle" x="2098" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2098" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2098" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2098" y="-2482.72" 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="edge261" 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="M2129.19,-2473.68C2137.23,-2467.64 2146.12,-2461.69 2155,-2457.17 2216.33,-2425.95 2293.51,-2405.97 2343.77,-2395.22"/>
<polygon fill="#993333" stroke="black" points="2344.69,-2398.6 2353.76,-2393.13 2343.25,-2391.75 2344.69,-2398.6"/>
</g>
<!-- ahriman_core_report -->
<g id="node74" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#9f0404" stroke="black" cx="5994" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5994" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5994" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5994" 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="edge262" 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="M5648.63,-2154.76C5718.68,-2136.47 5871.5,-2096.56 5948.19,-2076.53"/>
<polygon fill="#8a2e2e" stroke="black" points="5949.25,-2079.87 5958.04,-2073.96 5947.48,-2073.1 5949.25,-2079.87"/>
</g>
<!-- ahriman_core_report_email&#45;&gt;ahriman_core_report -->
<g id="edge263" 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="M5472.1,-2465.06C5466.04,-2389.43 5464.1,-2212.95 5565,-2128.56 5621.97,-2080.9 5845.88,-2068.69 5945.62,-2065.6"/>
<polygon fill="#822b2b" stroke="black" points="5945.83,-2069.09 5955.73,-2065.3 5945.63,-2062.1 5945.83,-2069.09"/>
</g>
<!-- ahriman_core_report_html&#45;&gt;ahriman_core_report -->
<g id="edge264" 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="M5986.21,-2469.72C5950.05,-2408.85 5881.41,-2270.55 5931,-2166.33"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report -->
<g id="edge265" 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="M7146.99,-2483.92C7117.85,-2474.45 7079.71,-2463.31 7045,-2457.17 6928.32,-2436.54 6624.4,-2461.56 6513,-2421.17 6304.91,-2345.73 6299.5,-2242.95 6110,-2128.56 6079.03,-2109.86 6068.44,-2110.46 6037,-2092.56 6034.99,-2091.41 6032.94,-2090.21 6030.89,-2088.97"/>
<polygon fill="#7a2828" stroke="black" points="6032.27,-2085.71 6021.92,-2083.42 6028.58,-2091.66 6032.27,-2085.71"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report -->
<g id="edge266" 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="M5841.42,-2464.85C5851.97,-2401.71 5878.93,-2267.82 5931,-2166.33"/>
<path fill="none" stroke="black" d="M5931,-2164.33C5941.19,-2140.67 5956.57,-2116.18 5969.58,-2097.39"/>
<polygon fill="#822b2b" stroke="black" points="5972.46,-2099.37 5975.36,-2089.18 5966.74,-2095.34 5972.46,-2099.37"/>
</g>
<!-- ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report -->
<g id="edge267" 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="M6004.91,-2128.59C6003.47,-2120.17 6001.94,-2111.15 6000.49,-2102.63"/>
<polygon fill="#8a2e2e" stroke="black" points="6003.9,-2101.81 5998.77,-2092.54 5997,-2102.99 6003.9,-2101.81"/>
</g>
<!-- ahriman_core_report_telegram&#45;&gt;ahriman_core_report -->
<g id="edge268" 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="M6805.62,-2474.09C6797.75,-2467.42 6788.61,-2461.06 6779,-2457.17 6674.28,-2414.86 6369.96,-2477.4 6272,-2421.17 6237.84,-2401.57 6098.6,-2157.6 6072,-2128.56 6059.24,-2114.63 6043.39,-2101.08 6029.32,-2090.06"/>
<polygon fill="#822b2b" stroke="black" points="6031.34,-2087.2 6021.27,-2083.88 6027.07,-2092.75 6031.34,-2087.2"/>
</g>
<!-- ahriman_core_repository -->
<g id="node82" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="4369" cy="-1531.43" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="4369" y="-1539.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4369" y="-1528.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4369" 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="edge269" 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="M4327.25,-1525.57C4243.93,-1515.71 4051.15,-1492.12 3890,-1466.43 3802.51,-1452.49 3184.8,-1361.61 3106,-1321.13"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge270" 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="M4411.45,-1529.55C4627.69,-1524.99 5628.49,-1502.83 6447,-1466.43 7436.19,-1422.45 8644.1,-1341.66 8897.85,-1324.42"/>
<polygon fill="#db0505" stroke="black" points="8898.11,-1327.91 8907.85,-1323.74 8897.64,-1320.92 8898.11,-1327.91"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node83" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="4369" cy="-1852.27" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4369" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4369" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4369" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4369" 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="edge271" 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="M4369,-1815.46C4369,-1807.29 4369,-1798.5 4369,-1789.97"/>
<polygon fill="#b42d2d" stroke="black" points="4372.5,-1789.75 4369,-1779.75 4365.5,-1789.75 4372.5,-1789.75"/>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge272" 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="M4330.98,-1833.87C4292.86,-1816.42 4233.72,-1789.36 4190.19,-1769.44"/>
<polygon fill="#b42d2d" stroke="black" points="4191.42,-1766.15 4180.87,-1765.18 4188.51,-1772.52 4191.42,-1766.15"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node85" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="4369" cy="-1633.19" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4369" y="-1647.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4369" y="-1636.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4369" y="-1625.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4369" 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="edge273" 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="M4369,-1705.92C4369,-1697.75 4369,-1688.96 4369,-1680.43"/>
<polygon fill="#7a2828" stroke="black" points="4372.5,-1680.21 4369,-1670.21 4365.5,-1680.21 4372.5,-1680.21"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_repository -->
<g id="edge274" 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="M4369,-1596.17C4369,-1587.93 4369,-1579.14 4369,-1570.8"/>
<polygon fill="#8a2e2e" stroke="black" points="4372.5,-1570.56 4369,-1560.56 4365.5,-1570.56 4372.5,-1570.56"/>
</g>
<!-- ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge275" 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="M4773.22,-1945.17C4677.59,-1923.43 4506.59,-1884.55 4420.92,-1865.07"/>
<polygon fill="#732626" stroke="black" points="4421.68,-1861.65 4411.15,-1862.85 4420.13,-1868.48 4421.68,-1861.65"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge276" class="edge">
<title>ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4180.71,-1720.35C4221.56,-1701.66 4280.62,-1674.63 4321.66,-1655.85"/>
<polygon fill="#822b2b" stroke="black" points="4323.27,-1658.96 4330.91,-1651.62 4320.36,-1652.6 4323.27,-1658.96"/>
</g>
<!-- ahriman_core_sign -->
<g id="node88" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="7244" cy="-2736.36" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7244" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7244" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7244" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge277" 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="M7201,-2625.82C7191.6,-2601.48 7189.8,-2572.39 7190.48,-2548.61"/>
<polygon fill="#ce3b3b" stroke="black" points="7193.99,-2548.57 7190.93,-2538.43 7186.99,-2548.26 7193.99,-2548.57"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge278" 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="M7233.04,-2708.47C7224.24,-2686.76 7211.65,-2655.39 7201,-2627.82"/>
<path fill="none" stroke="black" d="M7201,-2625.82C7198.7,-2619.86 7050.76,-2459.93 7045,-2457.17 6938.1,-2406.07 6623.43,-2464.14 6513,-2421.17 6272.26,-2327.52 6316.49,-2136.19 6079,-2034.57 5974.16,-1989.71 5194.33,-1969.93 4929.62,-1964.46"/>
<polygon fill="#ce3b3b" stroke="black" points="4929.36,-1960.95 4919.29,-1964.25 4929.21,-1967.95 4929.36,-1960.95"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge279" 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="M7374.01,-3402.64C7381.96,-3390.25 7389.96,-3375.27 7394,-3360.36 7404.36,-3322.14 7406.19,-3308.93 7394,-3271.26 7383.02,-3237.35 7310.98,-3175.19 7300,-3141.28 7257.55,-3010.12 7328.58,-2968.19 7312,-2831.34"/>
<path fill="none" stroke="black" d="M7312,-2829.34C7303.86,-2789.27 7306.97,-2778.13 7310,-2737.36"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge280" 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="M7313.92,-3426.69C7254.36,-3418.45 7135.45,-3403.05 7034,-3396.36 6983.46,-3393.02 5253.19,-3388.38 5211,-3360.36 5048.53,-3252.45 4899.96,-2740.57 4883,-2546.27 4879.56,-2506.82 4862.68,-2491.16 4883,-2457.17 4900.35,-2428.16 4925.43,-2444.4 4950,-2421.17 4962.06,-2409.77 5101.32,-2182.25 5106,-2166.33"/>
<path fill="none" stroke="black" d="M5106,-2164.33C5115.42,-2113.98 4984.63,-2036.46 4903.69,-1993.73"/>
<polygon fill="#932424" stroke="black" points="4905.05,-1990.49 4894.57,-1988.95 4901.8,-1996.69 4905.05,-1990.49"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge281" 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="M8328.76,-2913.96C8366.68,-2901.89 8424.54,-2876.82 8450,-2831.34"/>
<path fill="none" stroke="black" d="M8450,-2829.34C8462.56,-2806.9 8031.88,-2690.76 8015,-2671.36 7771,-2390.92 7841,-2225 7841,-1853.27 7841,-1853.27 7841,-1853.27 7841,-873.19 7841,-773.26 7751.36,-692.52 7841,-648.34"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge282" 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="M8328.69,-2913.95C8423.79,-2887.73 8688.33,-2806.58 8869,-2671.36 9275.54,-2367.12 8783.27,-2695.43 9709,-1173.82 9739.8,-1123.2 9745.79,-1108.71 9785,-1064.28 9798.13,-1049.41 9814.15,-1034.51 9828.39,-1022.17"/>
<polygon fill="#b62020" stroke="black" points="9830.76,-1024.75 9836.1,-1015.6 9826.22,-1019.43 9830.76,-1024.75"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge283" 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="M8450,-2829.34C8492.74,-2770.8 8548.62,-2816.47 8600,-2765.35 8632.06,-2733.45 8630.16,-2715.72 8639,-2671.36 8646.74,-2632.53 8640.89,-2621.82 8639,-2582.27 8621.87,-2224.25 8579.13,-2137.51 8562,-1779.5 8549.13,-1510.61 8511.27,-1438.18 8562,-1173.82 8588.93,-1033.51 8658.71,-1016.32 8681,-875.19"/>
</g>
<!-- ahriman_core_status -->
<g id="node91" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6423" cy="-2274.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6423" y="-2283.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6423" y="-2272.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6423" y="-2261.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge284" 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="M6392.82,-2256.65C6333.6,-2223.97 6197.07,-2153.95 6072,-2128.56 5831.29,-2079.68 1896.56,-2098.03 1651,-2092.56 1385.03,-2086.63 1067.46,-2072.95 940.03,-2067.2"/>
<polygon fill="#f91010" stroke="black" points="939.89,-2063.69 929.74,-2066.73 939.57,-2070.68 939.89,-2063.69"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge285" 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="M6417.42,-2245.96C6405.39,-2193.95 6371.62,-2083.09 6295,-2034.57 6179.87,-1961.67 5226.21,-1960.68 4929.65,-1962.17"/>
<polygon fill="#f91010" stroke="black" points="4929.37,-1958.67 4919.38,-1962.22 4929.4,-1965.67 4929.37,-1958.67"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge286" 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="M6460.67,-2269.12C6523.31,-2261.41 6652.9,-2246.19 6763,-2238.1 7475.12,-2185.73 7670.03,-2264.78 8363,-2092.56 8484.28,-2062.42 8520.84,-2062.86 8628,-1998.57 9150.98,-1684.84 9105.54,-1370.42 9633,-1064.28 9691.89,-1030.1 9768.82,-1010.48 9817.58,-1000.65"/>
<polygon fill="#f91010" stroke="black" points="9818.4,-1004.06 9827.55,-998.7 9817.06,-997.19 9818.4,-1004.06"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge287" 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="M6427.34,-2245.79C6439.16,-2166.89 6471,-1936.41 6471,-1743.73 6471,-1743.73 6471,-1743.73 6471,-1428.67 6471,-1300.47 8542.85,-752.05 8667,-720.1 8872.62,-667.19 8921.89,-641.13 9132,-610.57 9269.67,-590.54 9623.99,-615.32 9757,-574.57 9760.52,-573.49 9764.05,-572.09 9767.52,-570.5"/>
<polygon fill="#f91010" stroke="black" points="9769.15,-573.6 9776.45,-565.92 9765.95,-567.37 9769.15,-573.6"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge288" 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="M4843.54,-2382.94C4577.36,-2379.41 2981.78,-2352.44 1694,-2202.1 1407.09,-2168.6 1067.26,-2102.18 937.26,-2075.77"/>
<polygon fill="#931a1a" stroke="black" points="937.66,-2072.28 927.16,-2073.71 936.26,-2079.14 937.66,-2072.28"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge289" 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="M4870.81,-2348.78C4853.35,-2290.03 4823.46,-2167.23 4842,-2064.57"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge290" 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="M4895.17,-2339.14C4896.97,-2333.08 4898.83,-2326.86 4900.63,-2320.79"/>
<polygon fill="#931a1a" stroke="black" points="4891.8,-2338.2 4892.3,-2348.79 4898.51,-2340.2 4891.8,-2338.2"/>
<polygon fill="#931a1a" stroke="black" points="4904.11,-2321.37 4903.61,-2310.79 4897.4,-2319.37 4904.11,-2321.37"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge291" 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="M8959,-1209.59C9005.78,-1134.22 9637.65,-1028.62 9817.53,-999.94"/>
<polygon fill="#8b2222" stroke="black" points="9818.16,-1003.39 9827.48,-998.36 9817.06,-996.47 9818.16,-1003.39"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge292" 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="M8944.13,-1283.38C8944.45,-1261.51 8947.54,-1233.61 8959,-1211.59"/>
<path fill="none" stroke="black" d="M8959,-1209.59C8985.06,-1159.5 8816.39,-1072.27 8781,-1028.28 8730.06,-964.95 8649.01,-949.9 8681,-875.19"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge294" 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="M1728.77,-2046.32C1756.01,-2029.68 1792.84,-2000.87 1802,-1962.8"/>
<path fill="none" stroke="black" d="M1802,-1960.8C1813.18,-1914.34 1792.84,-1900.17 1802,-1853.27"/>
</g>
<!-- ahriman_core_triggers -->
<g id="node96" class="node">
<title>ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#cc0a0a" stroke="black" cx="6139" cy="-2384.4" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6139" y="-2392.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6139" y="-2381.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6139" 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="edge295" 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="M6139.41,-2354.97C6139.01,-2332.94 6136.84,-2301.9 6129,-2275.87"/>
<path fill="none" stroke="black" d="M6129,-2273.87C6118.61,-2239.38 6088.37,-2212.2 6061.1,-2193.79"/>
<polygon fill="#cc0a0a" stroke="black" points="6062.68,-2190.64 6052.39,-2188.12 6058.86,-2196.51 6062.68,-2190.64"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge296" 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="M6129,-2273.87C6096.32,-2165.36 6131.95,-2102.16 6041,-2034.57 5952.43,-1968.75 5190.6,-1962.71 4929.43,-1962.59"/>
<polygon fill="#cc0a0a" stroke="black" points="4929.24,-1959.09 4919.24,-1962.59 4929.23,-1966.09 4929.24,-1959.09"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge297" 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="M6176.54,-2378.48C6337.47,-2357.57 6985.2,-2275.5 7520,-2238.1 7978.27,-2206.04 8094.99,-2237.68 8553,-2202.1 8633.62,-2195.83 8726.06,-2183.89 8785.89,-2175.54"/>
<polygon fill="#cc0a0a" stroke="black" points="8786.52,-2178.98 8795.93,-2174.13 8785.54,-2172.05 8786.52,-2178.98"/>
</g>
<!-- ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers -->
<g id="edge298" 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="M6138.31,-2464.87C6138.42,-2451.82 6138.55,-2437.04 6138.67,-2423.78"/>
<polygon fill="#993333" stroke="black" points="6142.17,-2423.58 6138.76,-2413.55 6135.17,-2423.52 6142.17,-2423.58"/>
</g>
<!-- ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers -->
<g id="edge299" 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="M6630.89,-2499.73C6538.29,-2496.37 6342.69,-2481.98 6191,-2421.17 6184.93,-2418.74 6178.86,-2415.49 6173.12,-2411.95"/>
<polygon fill="#8a2e2e" stroke="black" points="6174.7,-2408.8 6164.42,-2406.2 6170.84,-2414.64 6174.7,-2408.8"/>
</g>
<!-- ahriman_core_upload -->
<g id="node99" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a90404" stroke="black" cx="9317" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9317" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9317" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9317" 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="edge300" 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="M9240.8,-2613.26C9313.63,-2587.17 9471.97,-2527.48 9469,-2502.72"/>
<path fill="none" stroke="black" d="M9469,-2500.72C9463.36,-2453.67 9420.35,-2462.96 9398,-2421.17 9342.83,-2318 9328.45,-2283.27 9332,-2166.33"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload -->
<g id="edge301" 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="M8712.1,-3406.58C8795.8,-3343.12 9024.51,-3176.71 9239,-3083.3 9295.15,-3058.85 9317.19,-3074.61 9372,-3047.3 9387.24,-3039.7 9484.9,-2968.29 9493,-2953.31 9532.31,-2880.65 9537.78,-2661.96 9516,-2582.27 9505.17,-2542.66 9471.59,-2543.7 9469,-2502.72"/>
</g>
<!-- ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload -->
<g id="edge302" 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="M9099.62,-2599.74C9163.92,-2533.91 9323.1,-2352.92 9332,-2166.33"/>
<path fill="none" stroke="black" d="M9332,-2164.33C9331.24,-2143.65 9327.99,-2120.82 9324.71,-2102.22"/>
<polygon fill="#913030" stroke="black" points="9328.14,-2101.56 9322.89,-2092.36 9321.26,-2102.83 9328.14,-2101.56"/>
</g>
<!-- ahriman_core_upload_s3&#45;&gt;ahriman_core_upload -->
<g id="edge303" 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="M9401.64,-2600.13C9430.36,-2571.15 9471.69,-2525.15 9469,-2502.72"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload -->
<g id="edge304" 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="M9470.19,-2589.96C9470.71,-2565.38 9470.85,-2532.05 9469,-2502.72"/>
</g>
<!-- ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload -->
<g id="edge305" 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="M8902,-2156.22C8975.5,-2144.54 9112.29,-2121.19 9227,-2092.56 9242.09,-2088.79 9258.39,-2083.96 9272.91,-2079.38"/>
<polygon fill="#8a2e2e" stroke="black" points="9274.19,-2082.64 9282.64,-2076.26 9272.05,-2075.98 9274.19,-2082.64"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge306" 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="M4601.82,-3829.02C4520.68,-3824.02 4325.08,-3812.13 4161,-3803.4 3827.31,-3785.65 3739.25,-3824.46 3410,-3767.4 3401.16,-3765.87 3106.57,-3680.45 3101,-3673.42 3070.72,-3635.17 3095.56,-3612.64 3094,-3563.88 3085.85,-3308.65 3065.17,-3243.04 3094,-2989.31 3121.19,-2750.04 3248.64,-2692.16 3196,-2457.17 3156.83,-2282.33 3095.63,-2256.79 3024,-2092.56 2936.24,-1891.34 2840,-1853.71 2840,-1634.19 2840,-1634.19 2840,-1634.19 2840,-1428.67 2840,-1332.19 2789.26,-1293.65 2840,-1211.59"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge307" 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="M4601.83,-3828.8C4520.72,-3823.36 4325.15,-3810.69 4161,-3803.4 4029.4,-3797.56 3102.55,-3803.97 2976,-3767.4 2663.82,-3677.19 2638.33,-3538.27 2346,-3396.36 2208.25,-3329.49 2168.91,-3323.56 2025,-3271.26 1855.26,-3209.57 1806.3,-3211.7 1640,-3141.28 1471.98,-3070.12 1416.67,-3068.31 1275,-2953.31 1165.61,-2864.52 1165.86,-2815.05 1075,-2707.36 1013.64,-2634.64 988.61,-2624.19 934,-2546.27 921.32,-2528.17 912.87,-2524.63 910,-2502.72"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge308" 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="M4678.22,-3830.42C4933.84,-3823.34 6396.97,-3774.04 6780,-3563.88 6809.33,-3547.79 6799.07,-3522.7 6828,-3505.9 6908.37,-3459.22 6956.4,-3521.05 7034,-3469.9 7066.59,-3448.42 7059.32,-3428.12 7082,-3396.36 7091.35,-3383.27 7101.97,-3369.33 7111.75,-3356.83"/>
<polygon fill="#c70505" stroke="black" points="7114.6,-3358.88 7118.04,-3348.85 7109.1,-3354.54 7114.6,-3358.88"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge309" 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="M4678.25,-3831.11C4961.18,-3828.85 6720.45,-3811.93 6804,-3739.41"/>
<path fill="none" stroke="black" d="M6804,-3737.41C6888,-3664.51 6813.45,-3576.97 6899,-3505.9 6959.41,-3455.71 7002.14,-3505.79 7072,-3469.9 7087.08,-3462.15 7157.58,-3394.97 7201.72,-3352.21"/>
<polygon fill="#c70505" stroke="black" points="7204.35,-3354.53 7209.1,-3345.05 7199.48,-3349.51 7204.35,-3354.53"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge310" 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="M4603.06,-3824.96C4539.7,-3813.84 4406.28,-3790.04 4294,-3767.4 4089.67,-3726.2 3847.14,-3671.36 3746.91,-3648.43"/>
<polygon fill="#c70505" stroke="black" points="3747.63,-3645.01 3737.1,-3646.19 3746.06,-3651.83 3747.63,-3645.01"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge311" 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="M4601.78,-3829.56C4481.86,-3823.57 4102.46,-3802.95 3790,-3767.4 3620.25,-3748.09 3579.04,-3734.15 3410,-3709.42 3352.94,-3701.07 3193.53,-3714.44 3153,-3673.42 3054.42,-3573.63 3121.91,-3500.34 3113,-3360.36 3088.77,-2979.51 3276.51,-2911.84 3386,-2546.27 3409.28,-2468.53 3428.36,-2375.87 3438.67,-2321.69"/>
<polygon fill="#c70505" stroke="black" points="3442.14,-2322.18 3440.55,-2311.7 3435.26,-2320.88 3442.14,-2322.18"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge312" 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="M4633.14,-3803.49C4628.19,-3784.97 4620.84,-3760.32 4612,-3739.41"/>
<path fill="none" stroke="black" d="M4612,-3737.41C4513.88,-3505.38 4232,-3568.74 4232,-3316.81 4232,-3316.81 4232,-3316.81 4232,-2923.32 4232,-2731.7 4420.59,-2221.05 4310,-2064.57"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge313" 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="M4601.82,-3829C4520.69,-3823.96 4325.09,-3811.99 4161,-3803.4 3906.15,-3790.07 3221.68,-3829.78 3020,-3673.42 2669.85,-3401.94 2767.37,-3179.81 2537,-2801.35 2479.23,-2706.44 2405.37,-2598.83 2365.88,-2542.29"/>
<polygon fill="#c70505" stroke="black" points="2368.67,-2540.18 2360.07,-2533.99 2362.94,-2544.19 2368.67,-2540.18"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge314" 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="M4675.72,-3821.63C4740.36,-3804.11 4881.17,-3766.62 5001,-3739.41"/>
<path fill="none" stroke="black" d="M5001,-3737.41C5044.24,-3727.59 5014.57,-3679.86 5001,-3637.65"/>
<path fill="none" stroke="black" d="M5001,-3635.65C4970.42,-3540.55 4846.28,-3645.01 4788,-3563.88 4772.97,-3542.95 4779.21,-3530.12 4788,-3505.9 4890.13,-3224.57 4985.21,-3174.92 5220,-2989.31 5293.28,-2931.38 5318.84,-2923.21 5408,-2895.33 5461.78,-2878.52 5622.09,-2901.91 5659,-2859.33 5675.88,-2839.86 5674.15,-2822.19 5659,-2801.35 5628.5,-2759.4 5591.16,-2794.11 5548,-2765.35 5534.36,-2756.26 5533.79,-2750.5 5524,-2737.36"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge315" 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="M4678.36,-3830.95C5060.14,-3826.48 8164.13,-3789.53 8205,-3767.4 8218.22,-3760.24 8211.6,-3747.91 8224,-3739.41"/>
<path fill="none" stroke="black" d="M8224,-3737.41C8263.14,-3710.59 8190.92,-3684.84 8186,-3637.65"/>
<path fill="none" stroke="black" d="M8186,-3635.65C8181.89,-3596.21 8149.26,-3600.05 8133,-3563.88 8078.5,-3442.63 8170.36,-3359.58 8071,-3271.26 8005.45,-3213 7760.61,-3264.7 7678,-3235.26 7634.58,-3219.79 7633.18,-3198 7592,-3177.28 7549.06,-3155.67 7523.94,-3175.32 7490,-3141.28 7408.24,-3059.28 7445.81,-3003.32 7404,-2895.33 7371.22,-2810.66 7383.87,-2775.62 7324,-2707.36 7303.24,-2683.7 7284.93,-2693.95 7263,-2671.36 7247.61,-2655.51 7250.75,-2646.53 7239,-2627.82"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_telegram -->
<g id="edge316" 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="M4678.24,-3831.48C4961.48,-3831.96 6728.4,-3832.36 6956,-3767.4 7035.67,-3744.66 7049.57,-3721.56 7117,-3673.42 7177.66,-3630.11 7206.39,-3628.23 7244,-3563.88 7277.13,-3507.19 7317.96,-3328.05 7285,-3271.26 7268.81,-3243.37 7246.43,-3256.32 7222,-3235.26 7181.73,-3200.55 7176.42,-3186.21 7148,-3141.28 7130.22,-3113.16 6918.6,-2681.64 6851.37,-2544.34"/>
<polygon fill="#c70505" stroke="black" points="6854.5,-2542.79 6846.96,-2535.35 6848.22,-2545.87 6854.5,-2542.79"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_executor -->
<g id="edge317" 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="M4612,-3635.65C4645.12,-3220.37 4434.64,-3121.26 4482,-2707.36 4516.89,-2402.4 4496.24,-2306.83 4638,-2034.57 4641.13,-2028.57 4806.98,-1856.45 4801,-1853.27"/>
<path fill="none" stroke="black" d="M4801,-1851.27C4673.76,-1788.47 4506.84,-1760.43 4422.59,-1749.6"/>
<polygon fill="#c70505" stroke="black" points="4422.85,-1746.1 4412.49,-1748.33 4421.98,-1753.05 4422.85,-1746.1"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge318" 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="M4612,-3635.65C4617.68,-3568.42 4720.36,-3424.9 4740,-3360.36 4760.05,-3294.47 4764,-3276.14 4764,-3207.27 4764,-3207.27 4764,-3207.27 4764,-3017.3 4764,-2670.97 5220,-2731.74 5220,-2385.4 5220,-2385.4 5220,-2385.4 5220,-2062.57 5220,-1969.16 5215.44,-1945.55 5201,-1853.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge319" 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="M4611.64,-3812.96C4504.38,-3742.54 4126.42,-3488.11 4066,-3360.36 4049.07,-3324.56 4043.03,-3303.52 4066,-3271.26 4094.37,-3231.42 4136.06,-3270.49 4170,-3235.26 4180.64,-3224.22 4325.74,-2721.76 4331,-2707.36 4379.04,-2575.94 4496.79,-2241.8 4579,-2128.56 4604.35,-2093.64 4617.63,-2090.65 4652,-2064.57"/>
<path fill="none" stroke="black" d="M4652,-2062.57C4687.93,-2031.65 4735.07,-2006.83 4773.41,-1989.67"/>
<polygon fill="#c70505" stroke="black" points="4775.2,-1992.71 4782.95,-1985.48 4772.39,-1986.3 4775.2,-1992.71"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge320" 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="M6804,-3737.41C6846.1,-3700.87 6847.45,-3682.89 6880,-3637.65"/>
<path fill="none" stroke="black" d="M6880,-3635.65C6916.79,-3584.52 6886.24,-3543.19 6937,-3505.9 6995.56,-3462.88 7191.49,-3487.47 7262,-3469.9 7277.66,-3465.99 7294.23,-3459.99 7308.82,-3454.01"/>
<polygon fill="#c70505" stroke="black" points="7310.24,-3457.21 7318.1,-3450.1 7307.52,-3450.76 7310.24,-3457.21"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge321" 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="M4612,-3737.41C4594.73,-3696.57 4612,-3681.99 4612,-3637.65"/>
<path fill="none" stroke="black" d="M4612,-3635.65C4612,-3566.46 4419.49,-3115.53 4408,-3047.3 4403.72,-3021.88 4401.49,-3014.25 4408,-2989.31 4476.9,-2725.33 4539.09,-2666.55 4714,-2457.17 4763.26,-2398.21 4831.44,-2340.41 4874.12,-2306.47"/>
<polygon fill="#c70505" stroke="black" points="4876.36,-2309.16 4882.04,-2300.21 4872.02,-2303.66 4876.36,-2309.16"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_tree -->
<g id="edge322" 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="M4601.83,-3828.84C4520.71,-3823.47 4325.14,-3810.93 4161,-3803.4 4040.95,-3797.89 3194.83,-3802.86 3080,-3767.4 3005.55,-3744.41 2996.83,-3716.65 2932,-3673.42 2753.29,-3554.25 2714.18,-3516.33 2536,-3396.36 2299.26,-3236.96 2201.11,-3246.78 1997,-3047.3 1804.37,-2859.02 1735.29,-2803.69 1656,-2546.27 1644.34,-2508.43 1652.69,-2496.63 1656,-2457.17 1664.25,-2358.77 1674.67,-2335.13 1693,-2238.1 1699.05,-2206.08 1707.33,-2198.91 1708,-2166.33"/>
<path fill="none" stroke="black" d="M1708,-2164.33C1706.78,-2143.9 1704.57,-2121.19 1702.54,-2102.61"/>
<polygon fill="#c70505" stroke="black" points="1706,-2102.02 1701.4,-2092.47 1699.04,-2102.8 1706,-2102.02"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge323" 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="M8186,-3635.65C8185.69,-3632.2 8912.51,-2955.72 8915,-2953.31 8970.11,-2900 9004.95,-2900.99 9037,-2831.34"/>
<path fill="none" stroke="black" d="M9037,-2829.34C9055.78,-2788.3 9049.97,-2771.04 9080,-2737.36"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge324" 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="M4678.37,-3830.85C5061.94,-3825.41 8192.99,-3780.63 8238,-3767.4 8331.06,-3740.06 8552.13,-3548.09 8641.02,-3468.53"/>
<polygon fill="#c70505" stroke="black" points="8643.59,-3470.93 8648.7,-3461.65 8638.92,-3465.72 8643.59,-3470.93"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge325" 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="M8186,-3635.65C8153.68,-3367.61 8875.6,-2974.86 9004,-2737.36"/>
<path fill="none" stroke="black" d="M9004,-2735.36C9016.35,-2711.37 9032.54,-2685.9 9046.13,-2665.77"/>
<polygon fill="#c70505" stroke="black" points="9049.04,-2667.73 9051.78,-2657.49 9043.25,-2663.78 9049.04,-2667.73"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge326" 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="M8224,-3737.41C8273.93,-3707.26 8578.22,-3433.72 8623,-3396.36 8741.39,-3297.57 8757.64,-3252.93 8892,-3177.28 8896.69,-3174.64 9253.62,-3051.48 9257,-3047.3 9326.23,-2961.52 9256.98,-2906.83 9289,-2801.35 9303.66,-2753.06 9330.69,-2701.74 9350.55,-2667.55"/>
<polygon fill="#c70505" stroke="black" points="9353.64,-2669.2 9355.69,-2658.81 9347.6,-2665.66 9353.64,-2669.2"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_aur_package -->
<g id="edge327" 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="M4601.8,-3829.19C4505.14,-3823.24 4243.26,-3804.7 4028,-3767.4 3920.73,-3748.81 3897.09,-3729.05 3790,-3709.42 3602.86,-3675.1 3378.53,-3652.41 3273.2,-3642.83"/>
<polygon fill="#c70505" stroke="black" points="3273.35,-3639.33 3263.08,-3641.92 3272.72,-3646.3 3273.35,-3639.33"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge328" 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="M4678.56,-3830.98C4961.91,-3827.85 6714.02,-3806.93 6818,-3767.4 6872.19,-3746.8 6968.42,-3629.92 7018,-3599.88 7053.79,-3578.19 7081.75,-3598.67 7105,-3563.88 7119.32,-3542.45 7122.06,-3525.21 7105,-3505.9 7062.16,-3457.39 6869.38,-3506.49 6816,-3469.9 6643.99,-3351.97 6683.93,-3227.86 6685,-3019.3"/>
<path fill="none" stroke="black" d="M6685,-3017.3C6682.53,-2999.42 6678.82,-2979.75 6675.41,-2963.21"/>
<polygon fill="#c70505" stroke="black" points="6678.82,-2962.43 6673.34,-2953.36 6671.97,-2963.87 6678.82,-2962.43"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_counters -->
<g id="edge329" 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="M4678.55,-3830.97C4965.67,-3827.76 6762.76,-3806.13 6870,-3767.4 7022.39,-3712.37 7182.11,-3657.14 7124,-3505.9 7065.91,-3354.72 6957.45,-3377.49 6880,-3235.26 6812.79,-3111.84 6784.91,-2944.25 6775.3,-2869.76"/>
<polygon fill="#c70505" stroke="black" points="6778.73,-2868.95 6774.01,-2859.46 6771.78,-2869.82 6778.73,-2868.95"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge330" 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="M5001,-3737.41C5083.79,-3711.65 6494.2,-3628.51 6552,-3563.88 6569.18,-3544.67 6562.81,-3529.29 6552,-3505.9 6445.09,-3274.53 6239.01,-3345.52 6134,-3113.29"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_description -->
<g id="edge331" 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="M6880,-3635.65C6891.18,-3620.11 6889.86,-3612.79 6904,-3599.88 6920.9,-3584.44 6942.19,-3571.39 6961.97,-3561.17"/>
<polygon fill="#c70505" stroke="black" points="6963.56,-3564.29 6970.93,-3556.68 6960.42,-3558.03 6963.56,-3564.29"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge332" 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="M5001,-3635.65C4952.63,-3440.25 5126.96,-3226.78 5201.63,-3146.37"/>
<polygon fill="#c70505" stroke="black" points="5204.24,-3148.69 5208.53,-3139.01 5199.14,-3143.91 5204.24,-3148.69"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_remote_source -->
<g id="edge333" 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="M5001,-3635.65C4977.85,-3545.1 5159.93,-3349.53 5211,-3271.26 5230.28,-3241.71 5242.24,-3238.85 5258,-3207.27"/>
<path fill="none" stroke="black" d="M5258,-3205.27C5281.29,-3160.67 5299.1,-3157.01 5324,-3113.29"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_web_views_index -->
<g id="edge334" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4678.22,-3830.92C5062.06,-3826.13 8209.33,-3786.3 8303,-3767.4 8541.62,-3719.26 10134.14,-3087.87 10337,-2953.31 10544.51,-2815.67 10581.33,-2751.74 10722,-2546.27 10851.46,-2357.17 10880.24,-2304.67 10967,-2092.56 10983.5,-2052.22 10988.35,-2041.65 10995,-1998.57 11019.25,-1841.48 10917.04,-1414.41 11007,-1283.36 11031.15,-1248.18 11072.15,-1282.74 11096,-1247.36 11120.13,-1211.57 11108.08,-1073.46 11077,-992.51"/>
</g>
<!-- ahriman_models -->
<g id="node107" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="7469" cy="-3998.37" rx="50.75" ry="18"/>
<text text-anchor="middle" x="7469" y="-3995.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge335" 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="M7519.49,-3996.61C7875.29,-3991.19 9999.45,-3957.95 10285,-3933.38 10499.93,-3914.9 10587.12,-3983.43 10765,-3861.38 10827.43,-3818.55 11394.83,-2738.92 11429,-2671.36 11517.37,-2496.66 11623,-2471.65 11623,-2275.87 11623,-2275.87 11623,-2275.87 11623,-1960.8 11623,-1864.33 11614.33,-1839.82 11623,-1743.73"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application -->
<g id="edge336" 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="M1378,-3737.41C1353.53,-3679.93 1362.75,-3660.81 1349,-3599.88 1293.38,-3353.47 1257.04,-3296.55 1216,-3047.3 1165.47,-2740.45 1161.05,-2652.18 1224,-2347.63 1238.07,-2279.59 1602.54,-1218.21 1656,-1173.82 1847.88,-1014.51 2666.11,-995.12 2890.11,-992.81"/>
<polygon fill="#f91010" stroke="black" points="2890.36,-996.31 2900.32,-992.71 2890.29,-989.31 2890.36,-996.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge337" 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="M2828,-3533.89C2883.41,-3395.09 2898.75,-3356.44 2908,-3207.27"/>
<path fill="none" stroke="black" d="M2908,-3205.27C2900.76,-3151.19 2883.95,-3136.93 2894,-3083.3 2927.01,-2907.12 2963.11,-2869.28 3040,-2707.36 3067.42,-2649.62 3067.86,-2629.45 3111,-2582.27 3129.97,-2561.53 3149.95,-2571.17 3163,-2546.27 3181.38,-2511.19 3172.39,-2495.64 3163,-2457.17 3146.13,-2388.07 2894.47,-1955.05 2868,-1889.03 2806.56,-1735.8 2793.34,-1694.89 2764,-1532.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge338" 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="M7442.28,-3983.01C7430.84,-3977.62 7417.11,-3972.14 7404,-3969.38 7274.25,-3942.12 2763.56,-3935.95 2631,-3933.38 2389.15,-3928.69 2324.73,-3961.08 2087,-3916.38"/>
<path fill="none" stroke="black" d="M2087,-3914.38C1973.24,-3892.99 1934.83,-3914.55 1832,-3861.38 1514.7,-3697.33 1538.65,-3519.42 1365,-3207.27"/>
<path fill="none" stroke="black" d="M1365,-3205.27C1286.25,-3087.62 1213,-3066.9 1213,-2925.32 1213,-2925.32 1213,-2925.32 1213,-2829.34 1213,-2660.61 1250.87,-2621.77 1288,-2457.17 1341.65,-2219.37 1333.37,-2152.52 1421,-1925.03 1437.15,-1883.1 1765.75,-1238.13 1802,-1211.59"/>
<path fill="none" stroke="black" d="M1802,-1209.59C1877.6,-1148.39 2157.4,-1119.2 2302.47,-1107.92"/>
<polygon fill="#f91010" stroke="black" points="2302.98,-1111.39 2312.68,-1107.14 2302.44,-1104.41 2302.98,-1111.39"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge339" 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="M7442.28,-3983C7430.84,-3977.61 7417.11,-3972.13 7404,-3969.38 7079.69,-3901.5 1763.05,-4007.05 1440,-3933.38 1236.65,-3887.01 878.32,-3573.03 870,-3563.88 756.46,-3439.09 759.1,-3384.28 680,-3235.26 571.17,-3030.22 542.07,-2979.3 452,-2765.35 451.75,-2764.75 200.2,-2065.18 200,-2064.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge340" 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="M7912,-3831.39C7916.63,-3757.71 8189.4,-3822.97 8238,-3767.4 8254.97,-3748 8241.68,-3734.92 8238,-3709.42 8230.76,-3659.19 8148.23,-3303.45 8109,-3271.26 8040,-3214.65 7790.16,-3272.39 7709,-3235.26 7675.28,-3219.84 7680.84,-3196.29 7649,-3177.28 7603.75,-3150.25 7574.73,-3177.03 7536,-3141.28 7382.72,-2999.76 7491.54,-2866.8 7357,-2707.36 7337.92,-2684.75 7317.68,-2695.81 7301,-2671.36 7246.27,-2591.16 7331.34,-2520.8 7258,-2457.17 7151.07,-2364.41 6737.15,-2503.51 6622,-2421.17 6513.8,-2343.81 6424.52,-1986 6433,-1853.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge341" 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="M3833,-3914.38C3698.15,-3868.79 3684.87,-3801.13 3622,-3673.42 3470.6,-3365.84 3434,-3268.15 3434,-2925.32 3434,-2925.32 3434,-2925.32 3434,-2829.34 3434,-2714.32 3458.62,-2684.67 3511,-2582.27 3520.11,-2564.46 3527.6,-2563.36 3538,-2546.27 3560.85,-2508.71 3559.57,-2495.57 3581,-2457.17 3590.25,-2440.6 3595.05,-2437.92 3604,-2421.17 3725.17,-2194.42 3714,-2110.36 3714,-1853.27 3714,-1853.27 3714,-1853.27 3714,-1741.73 3714,-1353.28 3770.39,-1259.34 3828,-875.19"/>
<path fill="none" stroke="black" d="M3828,-873.19C3830.72,-793.26 3585.1,-702.09 3474.64,-665.17"/>
<polygon fill="#f91010" stroke="black" points="3475.62,-661.8 3465.02,-661.98 3473.41,-668.45 3475.62,-661.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_search -->
<g id="edge342" 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="M1302,-3831.39C1261.55,-3785.98 1285.04,-3750.28 1240,-3709.42 1207.48,-3679.92 1181.64,-3701.64 1148,-3673.42 1116.78,-3647.23 974.38,-3397.21 957,-3360.36 793.68,-3014.02 758,-2920.07 675,-2546.27 586.98,-2149.88 720,-1438.46 720,-1430.67 720,-1430.67 720,-1430.67 720,-1209.59 720,-1038.65 937.38,-1043.92 910,-875.19"/>
<path fill="none" stroke="black" d="M910,-873.19C905.67,-822.12 897.68,-807.86 909,-757.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge343" 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="M7442.28,-3983C7430.84,-3977.61 7417.11,-3972.13 7404,-3969.38 7259.07,-3938.99 2221.07,-3935.92 2073,-3933.38 1797.83,-3928.68 1712.1,-4011.91 1454,-3916.38"/>
<path fill="none" stroke="black" d="M1454,-3914.38C1382.21,-3887.81 1358.14,-3885.43 1302,-3833.39"/>
<path fill="none" stroke="black" d="M1302,-3831.39C1216.08,-3751.76 1171.49,-3758.53 1091,-3673.42 971.05,-3546.59 656,-3193.87 656,-3019.3 656,-3019.3 656,-3019.3 656,-2923.32 656,-2645.57 556.6,-2587.91 528,-2311.63 527.65,-2308.26 526.2,-1454.63 530,-1430.67"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge344" 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="M2908,-3205.27C2914.47,-2815.45 3220,-2775.28 3220,-2385.4 3220,-2385.4 3220,-2385.4 3220,-2164.33 3220,-1974.37 3296,-1933.69 3296,-1743.73 3296,-1743.73 3296,-1743.73 3296,-1632.19 3296,-1534.67 3257.78,-847.77 3220,-757.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge345" 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="M7442.28,-3983.03C7430.83,-3977.64 7417.1,-3972.16 7404,-3969.38 7015.77,-3887.24 4215.61,-4021.61 3833,-3916.38"/>
<path fill="none" stroke="black" d="M3833,-3914.38C3764.42,-3895.52 3736.41,-3907.19 3682,-3861.38 3566.16,-3763.87 3574.34,-3703.6 3516,-3563.88 3404.73,-3297.41 3396,-3214.09 3396,-2925.32 3396,-2925.32 3396,-2925.32 3396,-2829.34 3396,-2562.3 3529.29,-2503.84 3503,-2238.1 3490.72,-2113.93 3448,-2087.57 3448,-1962.8 3448,-1962.8 3448,-1962.8 3448,-1741.73 3448,-1628.18 3481.52,-818 3424,-720.1 3421.82,-716.39 3385.38,-695.19 3352.89,-676.78"/>
<polygon fill="#f91010" stroke="black" points="3354.29,-673.55 3343.86,-671.68 3350.85,-679.65 3354.29,-673.55"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge346" 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="M1193,-3314.81C1166.13,-3278.59 1154.38,-3273.21 1130,-3235.26 1079.3,-3156.34 1068.44,-3134.55 1034,-3047.3 874.58,-2643.44 859.73,-2525.51 827,-2092.56 825.06,-2066.86 814.82,-2057.28 827,-2034.57 895.84,-1906.21 1100,-1998.92 1100,-1853.27 1100,-1853.27 1100,-1853.27 1100,-1741.73 1100,-1539.15 1536.85,-1169.43 1710,-1064.28 2186.01,-775.19 2399.73,-920.48 2904,-684.1 2908.28,-682.1 2912.62,-679.82 2916.9,-677.4"/>
<polygon fill="#f91010" stroke="black" points="2918.71,-680.4 2925.55,-672.3 2915.16,-674.37 2918.71,-680.4"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_users -->
<g id="edge347" 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="M7950,-3914.38C7991.04,-3878.56 7957.79,-3835.22 8002,-3803.4 8125.39,-3714.61 8259.14,-3869.37 8338,-3739.41"/>
<path fill="none" stroke="black" d="M8338,-3737.41C8341.6,-3731.48 8165.25,-3275.78 8160,-3271.26 8134.4,-3249.22 7590.72,-3164.3 7566,-3141.28 7529.21,-3107.03 7468.91,-2747.01 7438,-2707.36 7418.64,-2682.54 7398.93,-2693.95 7377,-2671.36 7361.61,-2655.51 7362.91,-2647.57 7353,-2627.82"/>
<path fill="none" stroke="black" d="M7353,-2625.82C7319.84,-2557.76 7378.92,-2514.09 7329,-2457.17 7131.22,-2231.71 6666.03,-2575.5 6679,-2275.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge348" 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="M1378,-3737.41C1290.66,-3552.81 1308.26,-3485.39 1193,-3316.81"/>
<path fill="none" stroke="black" d="M1193,-3314.81C1151.63,-3250.92 981.49,-2743.76 958,-2671.36 933.95,-2597.24 925.16,-2579.16 910,-2502.72"/>
<path fill="none" stroke="black" d="M910,-2500.72C894.49,-2451.87 889.45,-2432.36 910,-2385.4"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge349" 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="M7532,-3737.41C7522.93,-3601.87 7586.27,-3533.82 7494,-3434.13"/>
<path fill="none" stroke="black" d="M7494,-3432.13C7396.24,-3334.17 7315.75,-3420.28 7191,-3360.36 7186.94,-3358.41 7182.99,-3355.99 7179.22,-3353.29"/>
<polygon fill="#f91010" stroke="black" points="7181.29,-3350.46 7171.26,-3347.03 7176.96,-3355.97 7181.29,-3350.46"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge350" 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="M7494,-3432.13C7481,-3418.08 7485.65,-3407.39 7470,-3396.36 7416.79,-3358.84 7389.17,-3382.65 7328,-3360.36 7312.48,-3354.7 7296.06,-3347.23 7281.56,-3340.08"/>
<polygon fill="#f91010" stroke="black" points="7282.84,-3336.81 7272.34,-3335.45 7279.7,-3343.07 7282.84,-3336.81"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge351" 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="M2788,-3831.39C2747.03,-3620.77 2990.51,-3649.44 3108,-3469.9 3128.84,-3438.04 3146.82,-3399.08 3159.47,-3368.44"/>
<polygon fill="#f91010" stroke="black" points="3162.86,-3369.39 3163.39,-3358.8 3156.38,-3366.75 3162.86,-3369.39"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge352" 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="M7442.28,-3983.03C7430.83,-3977.64 7417.1,-3972.15 7404,-3969.38 7014.26,-3886.99 4209.24,-4013.36 3819,-3933.38 3630.84,-3894.82 3553.29,-3905.69 3420,-3767.4 3313.38,-3656.78 3294.42,-3464.04 3291.8,-3370.63"/>
<polygon fill="#f91010" stroke="black" points="3295.3,-3370.47 3291.57,-3360.55 3288.3,-3370.63 3295.3,-3370.47"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge353" 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="M3947,-3914.38C3919.79,-3864.87 3920.3,-3847.52 3885,-3803.4 3841.11,-3748.55 3778.16,-3696.38 3738.18,-3665.7"/>
<polygon fill="#f91010" stroke="black" points="3740.09,-3662.76 3730.02,-3659.48 3735.86,-3668.33 3740.09,-3662.76"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge354" 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="M7519.45,-3996.57C7796.08,-3992.03 9123.03,-3968.57 9302,-3933.38 9354.29,-3923.1 9707.36,-3796.51 9752,-3767.4 9838.76,-3710.83 9825.35,-3653.43 9914,-3599.88 9962.75,-3570.43 9987.67,-3592.36 10037,-3563.88 10150.39,-3498.4 10162,-3457.31 10250,-3360.36 10283.85,-3323.07 10286.53,-3308.89 10320,-3271.26 10398.74,-3182.75 10415.79,-3156.42 10509,-3083.3 10533.17,-3064.33 10552.26,-3073.67 10568,-3047.3 10624.04,-2953.39 10592.41,-2909.31 10575,-2801.35 10558.07,-2696.37 10488.41,-2431.47 10423,-2347.63 10405.03,-2324.6 10382.95,-2336.74 10368,-2311.63 10338.26,-2261.69 10336.77,-2091.57 10337.92,-2008.79"/>
<polygon fill="#f91010" stroke="black" points="10341.42,-2008.72 10338.08,-1998.67 10334.42,-2008.61 10341.42,-2008.72"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge355" 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="M9738,-3635.65C9749.46,-3620.31 9749.34,-3614.24 9762,-3599.88 9869.19,-3478.3 9936.94,-3487.87 10037,-3360.36 10122.55,-3251.34 10087.87,-3186.81 10180,-3083.3 10248.76,-3006.04 10324.42,-3044.61 10373,-2953.31 10501.68,-2711.5 10382.1,-2592.33 10259,-2347.63 10238.32,-2306.53 10167.82,-2211.49 10159,-2166.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge356" 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="M7519.66,-3997.03C7840.66,-3994.66 9585.83,-3978.93 9814,-3916.38"/>
<path fill="none" stroke="black" d="M9814,-3914.38C9862.67,-3901.04 9823.15,-3851.63 9838,-3803.4 9851.25,-3760.34 9847.63,-3744.42 9876,-3709.42 9948.88,-3619.48 10000,-3634.14 10092,-3563.88 10346.43,-3369.56 10406.33,-3306.66 10594,-3047.3 10658.24,-2958.51 10713,-2940.93 10713,-2831.34 10713,-2831.34 10713,-2831.34 10713,-2625.82 10713,-2545.96 10708.32,-2512.77 10651,-2457.17 10614.68,-2421.95 10581.98,-2453.43 10543,-2421.17 10528.97,-2409.56 10524.36,-2403.57 10523,-2385.4"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge357" 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="M7442.28,-3983.02C7430.83,-3977.63 7417.1,-3972.14 7404,-3969.38 7174.15,-3920.97 3408.9,-3963.92 3176,-3933.38 2999.43,-3910.23 2819.57,-4008.65 2788,-3833.39"/>
<path fill="none" stroke="black" d="M2788,-3831.39C2750.1,-3792.47 2767.72,-3762.34 2780,-3709.42 2796.88,-3636.68 3338.35,-2569.38 3372,-2502.72"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge358" 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="M3947,-3914.38C3920.98,-3872.44 4018.73,-3882.57 4023,-3833.39"/>
<path fill="none" stroke="black" d="M4023,-3831.39C4038.62,-3651.59 3880.36,-3645.34 3838,-3469.9 3817.28,-3384.08 3821.14,-3357.92 3838,-3271.26 3846.6,-3227.04 3853.51,-3216.32 3876,-3177.28 3886.12,-3159.71 3895.59,-3159.72 3904,-3141.28 3926.91,-3091 3928,-3074.55 3928,-3019.3 3928,-3019.3 3928,-3019.3 3928,-2829.34 3928,-2771.24 3941.21,-2754.62 3975,-2707.36 3989.5,-2687.09 4004.1,-2692.05 4018,-2671.36 4119.37,-2520.5 4084.3,-2453.67 4122,-2275.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_configuration -->
<g id="edge359" 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="M7441.57,-3983.05C7430.25,-3977.8 7416.79,-3972.42 7404,-3969.38 7338.04,-3953.74 6850.09,-3972.88 6795,-3933.38 6707.68,-3870.78 6791.39,-3771.92 6704,-3709.42 6605.88,-3639.24 5744.12,-3636.69 5505.19,-3637.35"/>
<polygon fill="#f91010" stroke="black" points="5504.94,-3633.85 5494.95,-3637.38 5504.96,-3640.85 5504.94,-3633.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data -->
<g id="edge360" 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="M7519.36,-3996.41C7776.34,-3990.92 8927.19,-3959.25 8868,-3833.39"/>
<path fill="none" stroke="black" d="M8868,-3831.39C8879.7,-3745.22 8576.93,-3709.54 8528,-3637.65"/>
<path fill="none" stroke="black" d="M8528,-3635.65C8463.43,-3564.98 8452,-3529.85 8452,-3434.13 8452,-3434.13 8452,-3434.13 8452,-3314.81 8452,-3200.89 8431.52,-3153.75 8342,-3083.3 8280.63,-3034.99 8234.45,-3091.41 8170,-3047.3 8116.19,-3010.47 8062.49,-2840.03 8010,-2801.35 7945.68,-2753.94 7880.21,-2807.52 7842,-2737.36"/>
<path fill="none" stroke="black" d="M7842,-2735.36C7810.62,-2674.2 7858.81,-2639 7820,-2582.27 7808.13,-2564.91 7761.96,-2540.67 7725.65,-2523.52"/>
<polygon fill="#f91010" stroke="black" points="7726.73,-2520.16 7716.18,-2519.1 7723.77,-2526.5 7726.73,-2520.16"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge361" 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="M4270,-3635.65C4295.12,-3485.45 4391.21,-3488.17 4474,-3360.36 4628.91,-3121.18 4606.86,-3021.33 4788,-2801.35 4825.83,-2755.4 4987.55,-2687.17 4992,-2627.82"/>
<path fill="none" stroke="black" d="M4992,-2625.82C4992.54,-2602.7 4989.48,-2577.4 4985.74,-2555.77"/>
<polygon fill="#f91010" stroke="black" points="4989.15,-2555.01 4983.92,-2545.8 4982.27,-2556.26 4989.15,-2555.01"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge362" 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="M7950,-3914.38C8059.75,-3759 8219.65,-3904.05 8352,-3767.4 8471.98,-3643.53 8376.36,-3277.79 8352,-3177.28 8341.31,-3133.16 8347.22,-3111.94 8312,-3083.3 8248.71,-3031.81 8199.66,-3092.88 8132,-3047.3 8023.45,-2974.16 8076.66,-2877.22 7970,-2801.35 7916.95,-2763.61 7883.33,-2799.66 7828,-2765.35 7814.07,-2756.71 7816.07,-2748.44 7804,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge363" 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="M1454,-3914.38C1376.64,-3879.69 1432.51,-3804.35 1378,-3739.41"/>
<path fill="none" stroke="black" d="M1378,-3737.41C1370.03,-3723.09 1366.74,-3719.73 1354,-3709.42 1328.03,-3688.39 1312.26,-3696.39 1288,-3673.42 1121.73,-3515.99 1105.13,-3446.59 1017,-3235.26 979,-3144.14 985.72,-3115.83 965,-3019.3"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_migrations -->
<g id="edge364" 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="M8528,-3635.65C8469.35,-3567.96 8528,-3523.69 8528,-3434.13 8528,-3434.13 8528,-3434.13 8528,-3314.81 8528,-3194.1 8465.03,-3174.54 8386,-3083.3 8330.41,-3019.12 8304.85,-3014.52 8246,-2953.31 8146.18,-2849.49 8144.35,-2801.09 8035,-2707.36 7986.42,-2665.72 7951.9,-2680.09 7915,-2627.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge365" 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="M8868,-3737.41C8862.1,-3648.04 8868,-3625.45 8868,-3535.89 8868,-3535.89 8868,-3535.89 8868,-3432.13 8868,-3265.67 8585.16,-2915.49 8464,-2801.35 8401.73,-2742.68 8373.85,-2742.86 8296,-2707.36 8253.02,-2687.77 8230.48,-2703.65 8196,-2671.36 8180.58,-2656.93 8193.59,-2640.88 8177,-2627.82"/>
<path fill="none" stroke="black" d="M8177,-2625.82C8160.7,-2612.39 8166.97,-2601.39 8158,-2582.27 8153.52,-2572.72 8148.59,-2562.62 8143.77,-2552.93"/>
<polygon fill="#f91010" stroke="black" points="8146.8,-2551.17 8139.19,-2543.8 8140.54,-2554.31 8146.8,-2551.17"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge366" 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="M8338,-3737.41C8437.03,-3545.09 8309.55,-3456.6 8198,-3271.26 8121.35,-3143.91 7835.54,-2897.27 7722,-2801.35 7660.57,-2749.45 7584.53,-2696.37 7534.49,-2662.82"/>
<polygon fill="#f91010" stroke="black" points="7536.33,-2659.84 7526.07,-2657.2 7532.44,-2665.66 7536.33,-2659.84"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge367" 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="M7570,-3432.13C7543.3,-3341.79 7515.28,-3315.28 7432,-3271.26 7303.9,-3203.56 7235.1,-3304.82 7108,-3235.26 7060.88,-3209.47 7065.51,-3183.27 7032,-3141.28 6998.84,-3099.72 6987.61,-3091.45 6958,-3047.3 6940.52,-3021.23 6845.05,-2818.86 6819,-2801.35 6714.51,-2731.1 6655.82,-2809.74 6538,-2765.35 6494.86,-2749.09 6491.25,-2731.54 6452,-2707.36 6426.71,-2691.79 6398.26,-2675.6 6373.49,-2661.92"/>
<polygon fill="#f91010" stroke="black" points="6375,-2658.76 6364.55,-2657 6371.63,-2664.89 6375,-2658.76"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge368" 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="M2332,-3432.13C2370.39,-3095.01 2349.76,-2684.66 2341.17,-2548.82"/>
<polygon fill="#f91010" stroke="black" points="2344.66,-2548.53 2340.52,-2538.77 2337.67,-2548.97 2344.66,-2548.53"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge369" 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="M2598,-3831.39C2561.75,-3456.25 2539.04,-3331.04 2698,-2989.31 2778.09,-2817.14 2898.85,-2625.46 2952.13,-2543.49"/>
<polygon fill="#f91010" stroke="black" points="2955.15,-2545.26 2957.67,-2534.97 2949.28,-2541.44 2955.15,-2545.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge370" 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="M2087,-3914.38C2011.29,-3896.64 2093.8,-3816.88 2087,-3739.41"/>
<path fill="none" stroke="black" d="M2087,-3737.41C2088.64,-3642.44 2043.51,-3406.05 2011,-3316.81"/>
<path fill="none" stroke="black" d="M2011,-3314.81C1981.88,-3258.66 1922.7,-3291.1 1893,-3235.26 1880.9,-3212.51 1888.94,-3202.73 1893,-3177.28 1920.68,-3003.68 1955.34,-2966.35 2016,-2801.35 2030.38,-2762.24 2099.89,-2667.44 2087,-2627.82"/>
<path fill="none" stroke="black" d="M2087,-2625.82C2074.8,-2588.31 2042.78,-2557.64 2013.7,-2536.3"/>
<polygon fill="#f91010" stroke="black" points="2015.38,-2533.2 2005.2,-2530.25 2011.32,-2538.9 2015.38,-2533.2"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge371" 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="M7442.28,-3983.01C7430.84,-3977.62 7417.11,-3972.14 7404,-3969.38 7152.27,-3916.46 3022.44,-4000.06 2774,-3933.38 2687.11,-3910.06 2608.02,-3922.8 2598,-3833.39"/>
<path fill="none" stroke="black" d="M2598,-3831.39C2522.64,-3712.49 2484,-3676.66 2484,-3535.89 2484,-3535.89 2484,-3535.89 2484,-3314.81 2484,-3092.82 2631.26,-3073.68 2689,-2859.33 2702.45,-2809.39 2677.64,-2665.56 2713,-2627.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge372" 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="M2087,-3914.38C1613.44,-3806.99 1479.64,-3331.53 1693,-2895.33 1778.1,-2721.35 2023.32,-2821.01 2037,-2627.82"/>
<path fill="none" stroke="black" d="M2037,-2625.82C2001.85,-2553.72 1945.81,-2583.95 1875,-2546.27 1869.36,-2543.27 1863.71,-2539.66 1858.31,-2535.83"/>
<polygon fill="#f91010" stroke="black" points="1860.16,-2532.84 1850.05,-2529.68 1855.98,-2538.46 1860.16,-2532.84"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge373" 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="M2598,-3831.39C2595.94,-3770.12 2706.87,-3645.33 2748,-3599.88 2778.55,-3566.12 2823.54,-3581.2 2828,-3535.89"/>
<path fill="none" stroke="black" d="M2828,-3533.89C2830.79,-3504.91 2817.13,-3498.84 2814,-3469.9 2810.49,-3437.4 2813.79,-3429.04 2814,-3396.36 2814.89,-3257.21 2797.72,-3220.96 2818,-3083.3 2843.34,-2911.31 2853.98,-2865.58 2926,-2707.36 2953.44,-2647.08 2963.38,-2632.11 3007,-2582.27 3021.67,-2565.51 3039.92,-2549.13 3056.36,-2535.64"/>
<polygon fill="#f91010" stroke="black" points="3058.68,-2538.26 3064.26,-2529.26 3054.29,-2532.82 3058.68,-2538.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge374" 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="M2087,-3737.41C2056.2,-3566.89 2309.04,-3605.88 2332,-3434.13"/>
<path fill="none" stroke="black" d="M2332,-3432.13C2342.31,-3362.52 2285.72,-2871.04 2276,-2801.35 2263.41,-2711.1 2241.88,-2606.77 2229.19,-2548.39"/>
<polygon fill="#f91010" stroke="black" points="2232.56,-2547.41 2227.01,-2538.38 2225.72,-2548.9 2232.56,-2547.41"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge375" 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="M2011,-3314.81C1981.5,-3230.24 2011,-3202.85 2011,-3113.29 2011,-3113.29 2011,-3113.29 2011,-2923.32 2011,-2804.41 2080.7,-2788.53 2101,-2671.36 2108.11,-2630.31 2106.39,-2582.8 2103.46,-2548.69"/>
<polygon fill="#f91010" stroke="black" points="2106.93,-2548.19 2102.52,-2538.55 2099.96,-2548.83 2106.93,-2548.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_console -->
<g id="edge376" 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="M7494,-3432.13C7477.15,-3415.25 7474.45,-3408.64 7454,-3396.36 7414.22,-3372.47 7393.63,-3387.51 7356,-3360.36 7314.94,-3330.73 7330.28,-3293.92 7285,-3271.26 7165.31,-3211.37 6202.16,-3292.12 6081,-3235.26 5848.14,-3125.98 5869.16,-2993.37 5698,-2801.35 5685.07,-2786.84 5587.96,-2689.51 5581,-2671.36 5566.81,-2634.4 5578.12,-2621.76 5581,-2582.27 5591.03,-2444.99 5622.32,-2413.46 5626,-2275.87"/>
<path fill="none" stroke="black" d="M5626,-2273.87C5624.98,-2253.46 5622.31,-2231.04 5619.57,-2211.97"/>
<polygon fill="#f91010" stroke="black" points="5623.03,-2211.42 5618.1,-2202.04 5616.11,-2212.45 5623.03,-2211.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge377" 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="M7442.27,-3983.09C7430.82,-3977.71 7417.09,-3972.21 7404,-3969.38 7254.92,-3937.14 4791.34,-3992.21 4659,-3916.38"/>
<path fill="none" stroke="black" d="M4659,-3914.38C4626.36,-3895.68 4611.84,-3893.95 4593,-3861.38 4565.53,-3813.89 4574,-3794.27 4574,-3739.41 4574,-3739.41 4574,-3739.41 4574,-3635.65 4574,-3571.74 4603.05,-3560.66 4636,-3505.9 4651.06,-3480.86 4930.46,-3105.88 4949,-3083.3 5126.49,-2867.05 5358.63,-2623.85 5443.3,-2536.33"/>
<polygon fill="#f91010" stroke="black" points="5445.88,-2538.7 5450.32,-2529.08 5440.85,-2533.83 5445.88,-2538.7"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge378" 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="M7646,-3635.65C7562.44,-3482.49 7649.57,-3361.09 7500,-3271.26 7365.56,-3190.52 7283.92,-3315.2 7149,-3235.26 7105.36,-3209.41 6918.29,-2901.43 6890,-2859.33 6872.81,-2833.76 6877.6,-2818.49 6852,-2801.35 6781.31,-2754.02 6739.28,-2804.98 6664,-2765.35 6611.45,-2737.68 6608.69,-2715.55 6569,-2671.36 6535.17,-2633.7 6542.6,-2606.24 6498,-2582.27 6418.02,-2539.29 6178.24,-2571.44 6091,-2546.27 6075.86,-2541.9 6060.24,-2534.77 6046.59,-2527.53"/>
<polygon fill="#f91010" stroke="black" points="6047.93,-2524.28 6037.48,-2522.54 6044.56,-2530.42 6047.93,-2524.28"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge379" 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="M7912,-3831.39C7908.64,-3582.39 8093.49,-3455.55 7926,-3271.26 7869.55,-3209.14 7626.97,-3268.75 7550,-3235.26 7535.57,-3228.98 7453.93,-3153.49 7444,-3141.28 7434.96,-3130.16 7436.26,-3124.99 7428,-3113.29"/>
<path fill="none" stroke="black" d="M7428,-3111.29C7369.3,-3030.5 7413.02,-2983.43 7366,-2895.33 7348.48,-2862.5 7319.41,-2867.81 7312,-2831.34"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge380" 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="M7519.67,-3996.32C7631.1,-3992.86 7892.12,-3978.2 7950,-3916.38"/>
<path fill="none" stroke="black" d="M7950,-3914.38C7960.91,-3902.73 7729.58,-3753.46 7722,-3739.41"/>
<path fill="none" stroke="black" d="M7722,-3737.41C7686.55,-3694.39 7676.1,-3684.56 7646,-3637.65"/>
<path fill="none" stroke="black" d="M7646,-3635.65C7594.31,-3555.08 7606.76,-3522.51 7570,-3434.13"/>
<path fill="none" stroke="black" d="M7570,-3432.13C7553.47,-3404.95 7536.18,-3411.13 7508,-3396.36 7474.9,-3379 7464.05,-3379.59 7432,-3360.36 7375.04,-3326.18 7374.37,-3294.12 7312,-3271.26 7194.71,-3228.26 6861.22,-3294.06 6751,-3235.26 6582.94,-3145.61 6640.42,-3012.19 6490,-2895.33 6460.21,-2872.19 5889.69,-2657.17 5866,-2627.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge381" 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="M7798,-3314.81C7686.7,-3218.81 7597.34,-3319.65 7477,-3235.26 7341.35,-3140.13 7404.72,-3040.01 7324,-2895.33 7317.52,-2883.72 7259.72,-2810.41 7250,-2801.35 7229.17,-2781.93 7219.1,-2783.31 7197,-2765.35 7044.01,-2641.03 7054.4,-2545.17 6878,-2457.17 6786.59,-2411.58 6750.88,-2442.6 6651,-2421.17 6469.52,-2382.24 6416.07,-2390.39 6248,-2311.63 6196.41,-2287.46 6191.44,-2268.09 6143,-2238.1 6116.83,-2221.89 6086.74,-2205.37 6061.9,-2192.28"/>
<polygon fill="#f91010" stroke="black" points="6063.49,-2189.16 6053.01,-2187.61 6060.24,-2195.36 6063.49,-2189.16"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_telegram -->
<g id="edge382" 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="M7912,-3831.39C7911.79,-3794.75 7874.59,-3801.02 7860,-3767.4 7779.5,-3581.97 7922.82,-3475.82 7798,-3316.81"/>
<path fill="none" stroke="black" d="M7798,-3314.81C7652.28,-3190.2 7537.99,-3334.6 7374,-3235.26 7211.74,-3136.97 7355.4,-2978.76 7236,-2831.34"/>
<path fill="none" stroke="black" d="M7236,-2829.34C7196.81,-2788.56 7171.99,-2798.27 7126,-2765.35 7005.32,-2678.97 6982.21,-2647.83 6874,-2546.27 6870.69,-2543.16 6867.28,-2539.87 6863.9,-2536.55"/>
<polygon fill="#f91010" stroke="black" points="6866.16,-2533.87 6856.61,-2529.3 6861.23,-2538.83 6866.16,-2533.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge383" 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="M3947,-3914.38C3941.84,-3906.07 3952.96,-3902.96 3961,-3897.38 4032.82,-3847.54 4098.65,-3906.23 4147,-3833.39"/>
<path fill="none" stroke="black" d="M4147,-3831.39C4265.42,-3653.01 4068.57,-3573.27 4046,-3360.36 4041.83,-3320.98 4041.42,-3310.59 4046,-3271.26 4108.19,-2736.62 4261.81,-2627.19 4324,-2092.56 4332.62,-2018.47 4326.02,-1998.65 4314,-1925.03 4308.72,-1892.68 4283.42,-1883.1 4297,-1853.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge384" 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="M7442.27,-3983.05C7430.83,-3977.66 7417.1,-3972.17 7404,-3969.38 7104.14,-3905.52 4946.1,-3991.12 4645,-3933.38 4523,-3909.99 4384,-3957.61 4384,-3833.39 4384,-3833.39 4384,-3833.39 4384,-3635.65 4384,-3629.49 4572.42,-3240.85 4575,-3235.26 4594.18,-3193.73 4599.37,-3183.5 4617,-3141.28 4742.7,-2840.25 4666.84,-2701.5 4883,-2457.17 4905.4,-2431.86 4923.04,-2441.56 4950,-2421.17 5048.3,-2346.84 5074.46,-2316.62 5120,-2202.1 5149.4,-2128.15 5213.11,-1931.92 5201,-1853.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge385" 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="M7442.28,-3983.04C7430.83,-3977.65 7417.1,-3972.17 7404,-3969.38 7239.11,-3934.37 4538.51,-3937.77 4370,-3933.38 4275.96,-3930.94 3996.59,-3996.33 3947,-3916.38"/>
<path fill="none" stroke="black" d="M3947,-3914.38C3935.87,-3896.44 3662.04,-3692.51 3653,-3673.42 3574.96,-3508.54 3650.41,-3432.88 3735,-3271.26 3760.3,-3222.92 3775.16,-3215.61 3814,-3177.28 3831.98,-3159.53 3844.35,-3162.54 3858,-3141.28 3888.28,-3094.12 3890,-3075.35 3890,-3019.3 3890,-3019.3 3890,-3019.3 3890,-2829.34 3890,-2771.71 3905.76,-2757.6 3934,-2707.36 3944.07,-2689.46 3954.73,-2690.17 3963,-2671.36 3985.64,-2619.89 3974.87,-2602.05 3982,-2546.27 3989.09,-2490.82 3990.58,-2476.9 3995,-2421.17 3998.85,-2372.57 3998.48,-2360.33 4001,-2311.63 4002,-2292.26 4014.01,-1981.79 4018,-1962.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge386" 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="M7478.12,-3980.62C7499.27,-3939.75 7548.63,-3831.51 7532,-3739.41"/>
<path fill="none" stroke="black" d="M7532,-3737.41C7522.92,-3682.11 7464.73,-3551.39 7432,-3505.9 7420.42,-3489.79 7404.66,-3474.69 7390.19,-3462.53"/>
<polygon fill="#f91010" stroke="black" points="7392.27,-3459.71 7382.32,-3456.09 7387.84,-3465.13 7392.27,-3459.71"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge387" 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="M8868,-3831.39C8850.6,-3794.4 8878.32,-3778.97 8868,-3739.41"/>
<path fill="none" stroke="black" d="M8868,-3737.41C8785.87,-3422.73 8768.59,-3314.63 8540,-3083.3 8478.07,-3020.62 8386.95,-2970.47 8334.44,-2944.57"/>
<polygon fill="#f91010" stroke="black" points="8335.94,-2941.41 8325.41,-2940.17 8332.87,-2947.7 8335.94,-2941.41"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge388" 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="M4147,-3831.39C4190.36,-3739.07 4244.67,-3736.45 4270,-3637.65"/>
<path fill="none" stroke="black" d="M4270,-3635.65C4310.78,-3158.68 4420.34,-3047.84 4650,-2627.82"/>
<path fill="none" stroke="black" d="M4650,-2625.82C4691.99,-2543.1 4705.85,-2521.18 4773,-2457.17 4792.95,-2438.16 4818.54,-2421.01 4839.92,-2408.25"/>
<polygon fill="#f91010" stroke="black" points="4841.93,-2411.13 4848.79,-2403.06 4838.39,-2405.09 4841.93,-2411.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge389" 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="M9510,-3111.29C9509.54,-2998.71 9526.63,-2971.52 9536,-2859.33 9539.48,-2817.62 9540.67,-2807.18 9542,-2765.35 9542.82,-2739.59 9542.72,-2733.12 9542,-2707.36 9540.44,-2651.7 9545.19,-2637.01 9535,-2582.27 9521.23,-2508.3 9502.75,-2493.77 9483,-2421.17 9436.8,-2251.32 9481.58,-2188.95 9397,-2034.57 9353.13,-1954.5 9292.52,-1970.86 9252,-1889.03 9215.77,-1815.87 9229.15,-1787.22 9237,-1705.96 9240.13,-1673.61 9262.83,-1664.46 9251,-1634.19"/>
<path fill="none" stroke="black" d="M9251,-1632.19C9183.27,-1507.11 9050.46,-1397.94 8984.74,-1348.8"/>
<polygon fill="#f91010" stroke="black" points="8986.42,-1345.69 8976.3,-1342.55 8982.25,-1351.31 8986.42,-1345.69"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge390" 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="M4023,-3831.39C4044.56,-3488.7 4308,-3456.66 4308,-3113.29 4308,-3113.29 4308,-3113.29 4308,-2923.32 4308,-2823.46 4314.18,-2790.16 4370,-2707.36 4402.14,-2659.69 4693.97,-2379.24 4742,-2347.63 4779.8,-2322.76 4827.63,-2303.65 4863.25,-2291.42"/>
<polygon fill="#f91010" stroke="black" points="4864.6,-2294.66 4872.96,-2288.16 4862.37,-2288.03 4864.6,-2294.66"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge391" 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="M1365,-3205.27C1292.07,-3055.45 1251.09,-2611.47 1314,-2457.17 1385.72,-2281.27 1578.4,-2141.36 1660.32,-2087.97"/>
<polygon fill="#f91010" stroke="black" points="1662.32,-2090.84 1668.82,-2082.48 1658.52,-2084.96 1662.32,-2090.84"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge392" 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="M7722,-3737.41C7655.73,-3600.67 7762.91,-3533.75 7698,-3396.36 7688.06,-3375.32 7673.29,-3379.46 7660,-3360.36 7635.42,-3325.02 7656.8,-3296.6 7622,-3271.26 7550.93,-3219.51 7305.8,-3276.22 7228,-3235.26 7131.94,-3184.69 7133.64,-3136.66 7072,-3047.3 7027.93,-2983.41 7037.24,-2953.62 6986,-2895.33 6968.39,-2875.3 6957.3,-2877.73 6938,-2859.33 6913.78,-2836.25 6918.54,-2818.81 6890,-2801.35 6827.08,-2762.86 6791.37,-2803.09 6728,-2765.35 6635.41,-2710.2 6662.57,-2635.73 6569,-2582.27 6503.99,-2545.13 6284.25,-2518.08 6186.08,-2507.56"/>
<polygon fill="#f91010" stroke="black" points="6186.44,-2504.08 6176.12,-2506.5 6185.7,-2511.04 6186.44,-2504.08"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge393" 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="M7950,-3914.38C7977.18,-3885.36 7911.57,-3873.15 7912,-3833.39"/>
<path fill="none" stroke="black" d="M7912,-3831.39C7912.47,-3787.91 7866,-3800.67 7838,-3767.4 7794.68,-3715.92 7760,-3704.93 7760,-3637.65 7760,-3637.65 7760,-3637.65 7760,-3533.89 7760,-3408.99 7765.58,-3337.99 7660,-3271.26 7527.82,-3187.71 7447.12,-3310.44 7310,-3235.26 7094.2,-3116.95 7177.17,-2927.73 6966,-2801.35 6888.5,-2754.97 6831.84,-2827.17 6766,-2765.35 6704.92,-2707.99 6748.8,-2661.31 6721,-2582.27 6716.73,-2570.14 6711.26,-2557.36 6705.83,-2545.67"/>
<polygon fill="#f91010" stroke="black" points="6708.96,-2544.11 6701.52,-2536.57 6702.64,-2547.11 6708.96,-2544.11"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge394" 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="M9134,-3635.65C9122.78,-3592.75 9145.2,-3578.79 9134,-3535.89"/>
<path fill="none" stroke="black" d="M9134,-3533.89C9093.57,-3378.96 8982,-3367.38 8982,-3207.27 8982,-3207.27 8982,-3207.27 8982,-3111.29 8982,-3056.04 8988.48,-3041.71 9006,-2989.31 9016.02,-2959.34 9037.34,-2956.92 9037,-2925.32"/>
<path fill="none" stroke="black" d="M9037,-2923.32C9035.05,-2882.49 9019.99,-2868.51 9037,-2831.34"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge395" 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="M7519.54,-3996.5C7805.5,-3991.35 9210.48,-3963.73 9288,-3916.38"/>
<path fill="none" stroke="black" d="M9288,-3914.38C9297.67,-3908.48 9278.51,-3903.54 9269,-3897.38 9235.92,-3875.99 9216.48,-3888.6 9188,-3861.38 9177.94,-3851.77 9179.58,-3846.14 9174,-3833.39"/>
<path fill="none" stroke="black" d="M9174,-3831.39C9159.53,-3798.33 9143.65,-3797.68 9124,-3767.4 9042.73,-3642.16 9002.92,-3615.05 8968,-3469.9 8891.75,-3152.97 8854.79,-3027.17 9004,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge396" 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="M9174,-3831.39C9143.66,-3748.47 9209.82,-3725.57 9218,-3637.65"/>
<path fill="none" stroke="black" d="M9218,-3635.65C9249.67,-3507.98 9160.23,-3178.64 9153,-3047.3 9151.58,-3021.56 9146.47,-3014.24 9153,-2989.31 9161.27,-2957.75 9184.37,-2957.62 9189,-2925.32"/>
<path fill="none" stroke="black" d="M9189,-2923.32C9197.98,-2833.62 9205.94,-2800.79 9270,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge397" 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="M9271,-3533.89C9311.01,-3410.36 9333.02,-3383.1 9399,-3271.26 9442.6,-3197.35 9517.65,-3198.76 9510,-3113.29"/>
<path fill="none" stroke="black" d="M9510,-3111.29C9493.59,-3003.39 9368.09,-3052.24 9322,-2953.31 9287.36,-2878.97 9390.34,-2739.7 9391,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge398" 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="M9134,-3533.89C9095.5,-3209.5 9085.88,-3109.6 9194,-2801.35 9227.34,-2706.3 9296.42,-2672.67 9252,-2582.27 9202.85,-2482.25 8856.14,-2387.3 8855,-2275.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_util -->
<g id="edge399" 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="M4659,-3914.38C4644.37,-3906 4639.13,-3888.41 4637.76,-3871.77"/>
<polygon fill="#f91010" stroke="black" points="4641.25,-3871.46 4637.36,-3861.61 4634.26,-3871.74 4641.25,-3871.46"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge400" 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="M7519.7,-3997.51C7770.47,-3997.88 8903.16,-3995.81 9828,-3933.38 10034.28,-3919.46 10753,-4040.15 10753,-3833.39 10753,-3833.39 10753,-3833.39 10753,-3635.65 10753,-3425.25 11196.1,-3045.04 11295,-2859.33 11374.89,-2709.33 11433,-2672.67 11433,-2502.72 11433,-2502.72 11433,-2502.72 11433,-1960.8 11433,-1529.02 11486.76,-1403.38 11354,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge401" 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="M9402,-3831.39C9503.34,-3762.43 9574.87,-3825.62 9662,-3739.41"/>
<path fill="none" stroke="black" d="M9662,-3737.41C9737.31,-3662.89 9733.71,-3373.36 9762,-3271.26 9837.24,-2999.73 9920.82,-2949.31 9967,-2671.36 9973.49,-2632.3 9969.69,-2621.78 9967,-2582.27 9939.16,-2173.96 9872.77,-2078.06 9842,-1669.96 9830.34,-1515.34 9838.91,-1476.17 9837,-1321.13"/>
<path fill="none" stroke="black" d="M9837,-1319.13C9816.13,-1223.43 9775.79,-1197.2 9799,-1102.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge402" 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="M9814,-3914.38C9841.87,-3908.09 9848.4,-3904.77 9876,-3897.38 9937.23,-3881 9953.55,-3880.46 10014,-3861.38 10242.38,-3789.3 10334.69,-3826.33 10519,-3673.42 10836.51,-3409.99 10867.73,-3260.26 10965,-2859.33 11015.84,-2649.76 11069,-2601.05 11069,-2385.4 11069,-2385.4 11069,-2385.4 11069,-1960.8 11069,-1815.47 11053,-1779.52 11053,-1634.19 11053,-1634.19 11053,-1634.19 11053,-1530.43 11053,-1453.22 11046.78,-1434.08 11045,-1356.9 11044.25,-1324.22 11027.9,-1311.21 11045,-1283.36 11063.52,-1253.21 11097.48,-1277.5 11116,-1247.36 11158.58,-1178.02 11136.04,-1143.14 11116,-1064.28 11107.06,-1029.09 11091.28,-1025.89 11077,-992.51"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node140" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10433" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="10433" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10433" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10433" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10433" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="10433" 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="edge403" 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="M9814,-3914.38C10085.08,-3850.82 10637.75,-3367.55 10800,-3141.28 10906.23,-2993.14 10934.57,-2945.24 10964,-2765.35 11021.33,-2414.99 10964.71,-1500.19 10825,-1173.82 10774.73,-1056.4 10746.59,-1023.58 10639,-954.74 10588.82,-922.63 10523.65,-900.19 10480.19,-887.52"/>
<polygon fill="#f91010" stroke="black" points="10481.02,-884.11 10470.44,-884.73 10479.1,-890.84 10481.02,-884.11"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node141" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9917" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9917" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9917" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9917" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9917" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="9917" 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="edge404" 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="M9288,-3914.38C9296.55,-3909.62 9294.68,-3903.88 9302,-3897.38 9341.48,-3862.37 9358.38,-3863.08 9402,-3833.39"/>
<path fill="none" stroke="black" d="M9402,-3831.39C9527.22,-3746.18 9452.12,-3648.57 9503,-3505.9 9657.52,-3072.58 9803.16,-2997.85 9891,-2546.27 9933.66,-2326.93 9729.54,-1780.86 9693,-1560.42 9670.13,-1422.44 9668.12,-1387.04 9661,-1247.36 9659.34,-1214.71 9652.35,-1205.34 9661,-1173.82 9692.69,-1058.3 9729.45,-1035.41 9818,-954.74 9838.78,-935.81 9848.08,-936.34 9870,-918.74 9873.46,-915.96 9876.98,-912.99 9880.47,-909.96"/>
<polygon fill="#f91010" stroke="black" points="9882.84,-912.53 9887.98,-903.26 9878.19,-907.3 9882.84,-912.53"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node142" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10011" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="10011" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10011" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10011" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10011" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="10011" 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="edge405" 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="M9662,-3737.41C9691.54,-3712.9 9698.29,-3705.07 9720,-3673.42 9730.07,-3658.74 9727.83,-3652.25 9738,-3637.65"/>
<path fill="none" stroke="black" d="M9738,-3635.65C9765.12,-3596.72 9759.4,-3580.34 9776,-3535.89"/>
<path fill="none" stroke="black" d="M9776,-3533.89C9858.03,-3314.2 9914.85,-3272.56 9980,-3047.3 10027.06,-2884.55 10017.92,-2838.91 10043,-2671.36 10064.41,-2528.33 10089.87,-2491.59 10076,-2347.63 10074.44,-2331.41 10071.34,-2327.77 10069,-2311.63 10000.91,-1841.36 9989.69,-1721.99 9967,-1247.36 9965.44,-1214.71 9962.16,-1206.14 9967,-1173.82 9971.94,-1140.82 9977.64,-1133.42 9989,-1102.05"/>
<path fill="none" stroke="black" d="M9989,-1100.05C9998.94,-1042 10004.78,-974.69 10007.92,-928.96"/>
<polygon fill="#f91010" stroke="black" points="10011.42,-929.18 10008.59,-918.97 10004.43,-928.71 10011.42,-929.18"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge406" 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="M9174,-3831.39C9140.44,-3750.12 9156.25,-3722.71 9134,-3637.65"/>
<path fill="none" stroke="black" d="M9134,-3635.65C9045.2,-3362.38 9045.53,-3267.1 9119,-2989.31 9158.16,-2841.23 9196.21,-2814.02 9252,-2671.36 9280.82,-2597.68 9309,-2581.84 9309,-2502.72 9309,-2502.72 9309,-2502.72 9309,-2383.4 9309,-2181.44 9137,-2164.76 9137,-1962.8 9137,-1962.8 9137,-1962.8 9137,-1632.19 9137,-1415.82 9078.66,-1362.63 8973,-1173.82 8942.5,-1119.32 8929.24,-1108.36 8885,-1064.28 8848.76,-1028.17 8779.28,-1041.19 8795,-992.51"/>
</g>
<!-- ahriman_web_views_status_ahriman -->
<g id="node145" class="node">
<title>ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="9635" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9635" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9635" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9635" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9635" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="9635" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge407" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9218,-3635.65C9233.26,-3587.82 9257.28,-3584.18 9271,-3535.89"/>
<path fill="none" stroke="black" d="M9271,-3533.89C9303.2,-3420.56 9193.29,-3381.44 9235,-3271.26 9301.77,-3094.89 9431.14,-3121.73 9516,-2953.31 9615.23,-2756.37 9555.42,-2675.46 9524,-2457.17 9467.08,-2061.75 9423.87,-1962.97 9265,-1596.42 9239.23,-1536.97 9226.54,-1525.08 9199,-1466.43 9174.61,-1414.5 8953.71,-1033.36 8994,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge408" 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="M9288,-3914.38C9314.03,-3898.48 9459.76,-3425.09 9470,-3396.36 9604.8,-3017.95 9707.74,-2941.95 9777,-2546.27 9783.83,-2507.26 9783.24,-2496.28 9777,-2457.17 9761.13,-2357.79 9528.92,-1691.17 9495,-1596.42 9489.21,-1580.25 9485.71,-1576.93 9481,-1560.42 9438.39,-1410.97 9410.36,-1359.82 9457,-1211.59"/>
<path fill="none" stroke="black" d="M9457,-1209.59C9467.05,-1156.75 9527.75,-1032.24 9564,-992.51"/>
<path fill="none" stroke="black" d="M9564,-990.51C9629.36,-915.52 9690.52,-969.61 9776,-918.74 9779.81,-916.47 9783.58,-913.85 9787.22,-911.04"/>
<polygon fill="#f91010" stroke="black" points="9789.47,-913.73 9794.96,-904.67 9785.02,-908.33 9789.47,-913.73"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node147" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10109" cy="-874.19" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="10109" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10109" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10109" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10109" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="10109" 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="edge409" 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="M9776,-3533.89C9782.19,-3520.72 9783.86,-3517.22 9793,-3505.9 9807.61,-3487.79 9815.34,-3487.1 9831,-3469.9 9977.97,-3308.48 9992.88,-3249.86 10134,-3083.3 10170.6,-3040.1 10180.31,-3029.69 10220,-2989.31 10236.31,-2972.72 10246.62,-2973.61 10258,-2953.31 10389.66,-2718.52 10317.56,-2610.38 10259,-2347.63 10240.47,-2264.51 10197,-2251.49 10197,-2166.33 10197,-2166.33 10197,-2166.33 10197,-1632.19 10197,-1596.65 10213.23,-1024.12 10197,-992.51"/>
<path fill="none" stroke="black" d="M10197,-990.51C10182.69,-963.47 10162.15,-936.12 10144.51,-914.85"/>
<polygon fill="#f91010" stroke="black" points="10147.02,-912.41 10137.91,-907.01 10141.67,-916.92 10147.02,-912.41"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node148" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9729" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9729" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9729" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9729" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9729" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="9729" 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="edge410" 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="M9174,-3831.39C9167.6,-3815.19 9448.05,-3286.76 9456,-3271.26 9485.77,-3213.26 9503.56,-3203.19 9524,-3141.28 9577.01,-2980.68 9569.85,-2933.96 9583,-2765.35 9600,-2547.42 9535,-2494.46 9535,-2275.87 9535,-2275.87 9535,-2275.87 9535,-2164.33 9535,-1844.55 9399.18,-1783.8 9360,-1466.43 9332.13,-1240.73 9208.39,-1124.25 9360,-954.74 9408,-901.07 9616.53,-948.71 9682,-918.74 9686.09,-916.87 9690.07,-914.5 9693.86,-911.83"/>
<polygon fill="#f91010" stroke="black" points="9696.1,-914.53 9701.83,-905.62 9691.79,-909 9696.1,-914.53"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge411" 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="M9288,-3914.38C9296.55,-3909.62 9293.89,-3902.86 9302,-3897.38 9346.04,-3867.65 9367.44,-3882.94 9416,-3861.38 9462.6,-3840.69 9467.55,-3822.07 9515,-3803.4 9583.23,-3776.55 9612.27,-3803.66 9676,-3767.4 9764.95,-3716.79 9760.97,-3671.58 9834,-3599.88 9895.29,-3539.71 9916.35,-3530.71 9977,-3469.9 10186.53,-3259.77 10256.44,-3213.02 10400,-2953.31 10433.44,-2892.83 10436.9,-2870.35 10433,-2801.35 10424.32,-2647.65 10415.83,-2609.56 10394,-2457.17 10386.99,-2408.26 10396.11,-2392.31 10375,-2347.63 10365.98,-2328.54 10352.95,-2330.76 10344,-2311.63 10284.21,-2183.89 10310.69,-2138.37 10292,-1998.57 10270.43,-1837.23 10255,-1796.97 10255,-1634.19 10255,-1634.19 10255,-1634.19 10255,-1319.13 10255,-1268.02 10344.46,-1151.35 10331,-1102.05"/>
<path fill="none" stroke="black" d="M10331,-1100.05C10310.27,-1039.42 10257.07,-1052.66 10235,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge412" 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="M9814,-3914.38C9877.83,-3898.2 9979.97,-3754.47 10028,-3709.42 10426.71,-3335.4 10724.83,-3371.12 10917,-2859.33 10973.03,-2710.11 10955,-2662.11 10955,-2502.72 10955,-2502.72 10955,-2502.72 10955,-2383.4 10955,-2268.31 10936.19,-2240.39 10909,-2128.56 10885.79,-2033.08 10691.96,-1371.72 10649,-1283.36 10597.19,-1176.77 10574.2,-1154.19 10497,-1064.28 10481.84,-1046.63 10472,-1047.57 10459,-1028.28 10449.46,-1014.12 10454.41,-1006.75 10445,-992.51"/>
</g>
<!-- ahriman_models_action -->
<g id="node108" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="6613" cy="-2165.33" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6613" y="-2173.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6613" y="-2162.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6613" y="-2151.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge413" 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="M6650.66,-2158.95C6790.18,-2139.24 7290.95,-2070.2 7706,-2034.57 7857.77,-2021.55 10295.36,-1922.36 10444,-1889.03 10695.12,-1832.73 10764.91,-1811.26 10980,-1669.96 10985.2,-1666.54 11296.6,-1362.1 11300,-1356.9 11347.54,-1284.08 11338.02,-1255.07 11369,-1173.82 11475.47,-894.63 11549.24,-838.93 11611,-546.57"/>
<path fill="none" stroke="black" d="M11611,-544.57C11616.68,-451.73 11611,-428.3 11611,-335.27 11611,-335.27 11611,-335.27 11611,-223.74 11611,-114.34 4120.2,-37.75 3390.07,-30.55"/>
<polygon fill="#e72222" stroke="black" points="3389.84,-27.05 3379.81,-30.45 3389.77,-34.04 3389.84,-27.05"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge414" 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="M6547,-1960.8C6523.39,-1795.78 6598.98,-1351.92 6509,-1211.59"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge415" 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="M6601.06,-2137.65C6584.84,-2099.72 6556.73,-2027.61 6547,-1962.8"/>
<path fill="none" stroke="black" d="M6547,-1960.8C6529.63,-1897.94 6469.49,-1930.32 6419,-1889.03 6286.13,-1780.39 6311.25,-1689.43 6167,-1596.42 5413.72,-1110.7 5066,-1356.62 4232,-1028.28 3947.52,-916.28 3908.76,-811.47 3617,-720.1 3509.45,-686.42 3472.76,-720.2 3366,-684.1 3360.8,-682.35 3355.54,-680.17 3350.38,-677.75"/>
<polygon fill="#e72222" stroke="black" points="3351.75,-674.53 3341.24,-673.21 3348.63,-680.8 3351.75,-674.53"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_users -->
<g id="edge416" 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="M6547,-1960.8C6542.87,-1931.91 6561.7,-1904.97 6581.52,-1885.29"/>
<polygon fill="#e72222" stroke="black" points="6583.97,-1887.79 6588.83,-1878.37 6579.16,-1882.7 6583.97,-1887.79"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search -->
<g id="edge417" 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="M3170.93,-3620.21C3102.37,-3595.22 2962.1,-3544.78 2842,-3505.9 2572.19,-3418.55 1886.83,-3234.54 1619,-3141.28 1429.69,-3075.36 1366.36,-3077.5 1209,-2953.31 869.65,-2685.5 820.45,-2520.03 756,-2092.56 724.42,-1883.08 807.37,-1847.51 904,-1502.43 908.53,-1486.27 990.87,-1227.65 986,-1211.59"/>
<path fill="none" stroke="black" d="M986,-1209.59C955.09,-1118.19 1002,-1087.65 986,-992.51"/>
<path fill="none" stroke="black" d="M986,-990.51C966.2,-932.41 919.83,-935.78 910,-875.19"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge418" 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="M3260.83,-3626.12C3390.02,-3600.86 3757.06,-3532.37 4066,-3505.9 4863.68,-3437.55 5067.88,-3518.59 5867,-3469.9 6345.48,-3440.74 6466.46,-3434.85 6940,-3360.36 6994.2,-3351.83 7055.7,-3338.14 7096.87,-3328.39"/>
<polygon fill="#d10505" stroke="black" points="7097.71,-3331.79 7106.63,-3326.06 7096.09,-3324.98 7097.71,-3331.79"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge419" 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="M3262.67,-3630.03C3466.4,-3607.06 4238.8,-3520.83 4484,-3505.9 5286.67,-3457.02 5490.85,-3526.65 6293,-3469.9 6343.13,-3466.35 7145.41,-3381.51 7191,-3360.36 7195.08,-3358.46 7199.05,-3356.08 7202.84,-3353.41"/>
<polygon fill="#d10505" stroke="black" points="7205.08,-3356.1 7210.81,-3347.18 7200.77,-3350.58 7205.08,-3356.1"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge420" 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="M3233,-3533.89C3219.48,-3491.43 3242.24,-3478.68 3243,-3434.13"/>
<path fill="none" stroke="black" d="M3243,-3432.13C3243.44,-3406.49 3231.24,-3381.21 3217.38,-3360.88"/>
<polygon fill="#d10505" stroke="black" points="3220.04,-3358.58 3211.37,-3352.49 3214.35,-3362.66 3220.04,-3358.58"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge421" 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="M3243,-3432.13C3243.43,-3407.12 3253.36,-3381.31 3264.16,-3360.47"/>
<polygon fill="#d10505" stroke="black" points="3267.3,-3362.02 3268.99,-3351.56 3261.15,-3358.68 3267.3,-3362.02"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge422" 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="M3225.73,-3608.56C3233.52,-3588.26 3240.66,-3559.96 3233,-3535.89"/>
<path fill="none" stroke="black" d="M3233,-3533.89C3204.55,-3444.54 3154.64,-3444.37 3113,-3360.36 3035.98,-3204.94 3080.06,-3138.75 2992,-2989.31 2866.51,-2776.35 2830.91,-2698.96 2613,-2582.27 2525.66,-2535.5 2483.63,-2586.3 2393,-2546.27 2387.08,-2543.65 2381.24,-2540.25 2375.72,-2536.49"/>
<polygon fill="#d10505" stroke="black" points="2377.46,-2533.43 2367.31,-2530.36 2373.33,-2539.08 2377.46,-2533.43"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search -->
<g id="edge423" 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="M3263,-3630.54C3627.77,-3593.3 5865.82,-3364.73 5900,-3360.36 6432.54,-3292.29 6559.87,-3231.42 7094,-3177.28 7413.21,-3144.92 7500.35,-3204.03 7815,-3141.28 7928.86,-3118.57 8692.89,-2828.98 8790,-2765.35 8815.24,-2748.81 8872.46,-2697.23 8888,-2671.36 8956.05,-2558.15 8969,-2517.5 8969,-2385.4 8969,-2385.4 8969,-2385.4 8969,-1741.73 8969,-1534.16 8766,-1528.69 8766,-1321.13 8766,-1321.13 8766,-1321.13 8766,-1209.59 8766,-1112.25 8764.47,-1084.93 8795,-992.51"/>
<path fill="none" stroke="black" d="M8795,-990.51C8825.06,-897.44 8958.1,-878.52 9031.3,-875.29"/>
<polygon fill="#d10505" stroke="black" points="9031.78,-878.77 9041.65,-874.92 9031.53,-871.78 9031.78,-878.77"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node110" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db2f2f" stroke="black" cx="10430" cy="-2274.87" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="10430" y="-2283.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10430" y="-2272.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="10430" y="-2261.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_settings</text>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge424" 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="M10443.54,-2246.71C10461.8,-2206.42 10489.96,-2128.65 10471,-2064.57"/>
<path fill="none" stroke="black" d="M10471,-2062.57C10469.39,-2056.93 10416.21,-2017.96 10377.86,-1990.43"/>
<polygon fill="#db2f2f" stroke="black" points="10379.6,-1987.37 10369.44,-1984.4 10375.53,-1993.06 10379.6,-1987.37"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge425" 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="M10390.43,-2255.08C10330.13,-2224.27 10216.25,-2157.07 10159,-2064.57"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge426" 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="M10471,-2062.57C10465.95,-2045.51 10464.96,-2026.09 10465.57,-2008.94"/>
<polygon fill="#db2f2f" stroke="black" points="10469.08,-2008.77 10466.14,-1998.6 10462.1,-2008.39 10469.08,-2008.77"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge427" 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="M6716.04,-2922.85C6911.47,-2920.64 7653.66,-2909.26 8262,-2859.33 8599.45,-2831.63 8721.11,-2928.12 9018,-2765.35 9047.34,-2749.26 9041.15,-2729.77 9066,-2707.36 9087.42,-2688.05 9101.57,-2693.56 9120,-2671.36 9147.5,-2638.24 9123.43,-2607.92 9158,-2582.27 9159.03,-2581.5 10630.77,-2421.54 10632,-2421.17 10733.95,-2390.54 10755.3,-2368.95 10845,-2311.63 11025.66,-2196.19 11094.78,-2178.09 11212,-1998.57 11247.34,-1944.45 11426.27,-1527.66 11447,-1466.43 11500.42,-1308.63 11486.96,-1261.58 11535,-1102.05"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge428" 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="M5410,-2500.72C5373.69,-2346.62 5305.97,-1945.07 5215,-1815.5 5078.13,-1620.55 4991.78,-1611.45 4780,-1502.43 4645.22,-1433.06 4604.83,-1426.42 4457,-1392.9 4325.6,-1363.1 4280.54,-1408.3 4156,-1356.9 4106.97,-1336.66 4105.43,-1313.81 4062,-1283.36 3782.1,-1087.06 3687.81,-1074.44 3410,-875.19"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge429" 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="M6621.01,-2914.13C6585.42,-2907.48 6534.8,-2899.04 6490,-2895.33 6012.95,-2855.84 2654.18,-2937.97 2182,-2859.33 1921.37,-2815.92 1853.49,-2791.18 1618,-2671.36 1531.88,-2627.55 944.9,-2256.43 910,-2166.33"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge430" 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="M6671.27,-2895.38C6677.31,-2866.46 6691.38,-2822.6 6723,-2801.35 6799.51,-2749.91 7462.31,-2786.7 7552,-2765.35 7581.41,-2758.35 7586.16,-2749.14 7614,-2737.36"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge431" 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="M6636.12,-2901.63C6612.02,-2884.01 6578.31,-2857.82 6552,-2831.34"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge432" 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="M6620.99,-2914.4C6585.38,-2907.89 6534.76,-2899.51 6490,-2895.33 5949.01,-2844.79 5809.7,-2901.65 5268,-2859.33 4607.83,-2807.75 4446.18,-2760.31 3790,-2671.36 3777.92,-2669.73 2932.46,-2550.45 2921,-2546.27 2913.34,-2543.48 2905.63,-2539.77 2898.26,-2535.7"/>
<polygon fill="#e50505" stroke="black" points="2899.54,-2532.39 2889.14,-2530.38 2896.02,-2538.44 2899.54,-2532.39"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge433" 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="M6620.99,-2914.44C6585.38,-2907.96 6534.75,-2899.59 6490,-2895.33 6247.85,-2872.29 5632.55,-2916 5396,-2859.33 5336.84,-2845.16 5330.26,-2818.87 5272,-2801.35 4953.19,-2705.49 4120.72,-2620.45 3790,-2582.27 3598.61,-2560.17 3549.16,-2570.32 3358,-2546.27 3290.61,-2537.79 3213.92,-2524.36 3161.79,-2514.65"/>
<polygon fill="#e50505" stroke="black" points="3162.17,-2511.16 3151.7,-2512.76 3160.88,-2518.04 3162.17,-2511.16"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge434" 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="M6620.98,-2914.47C6585.37,-2908.01 6534.75,-2899.64 6490,-2895.33 6377.34,-2884.47 5572.83,-2910.75 5472,-2859.33 5269.99,-2756.31 5347.54,-2581.66 5158,-2457.17 5138.83,-2444.58 5002.83,-2412.62 4929.16,-2395.93"/>
<polygon fill="#e50505" stroke="black" points="4929.72,-2392.46 4919.19,-2393.67 4928.18,-2399.29 4929.72,-2392.46"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge435" 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="M6715.99,-2922.24C6925.98,-2917.41 7751.07,-2896.41 8008,-2859.33 8115.76,-2843.78 8139.47,-2823.79 8246,-2801.35 8335.23,-2782.55 8369.22,-2811.28 8448,-2765.35 8476.9,-2748.5 8468.43,-2726.31 8496,-2707.36 8537.36,-2678.95 8568.02,-2707.33 8603,-2671.36 8680.79,-2591.39 8846.85,-1812.79 8879,-1705.96 8893.85,-1656.61 8888.98,-1639.67 8917,-1596.42 8939.56,-1561.59 8981.96,-1573.81 8985,-1532.43"/>
<path fill="none" stroke="black" d="M8985,-1530.43C8983.37,-1485.32 8964.95,-1475.79 8966,-1430.67"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge436" 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="M6620.98,-2914.49C6585.37,-2908.03 6534.75,-2899.67 6490,-2895.33 6435.5,-2890.04 5548.06,-2893.15 5505,-2859.33 5449.8,-2815.97 5493.69,-2770 5462,-2707.36 5452.85,-2689.28 5441.92,-2690.03 5434,-2671.36 5404.43,-2601.67 5421.81,-2577.5 5410,-2502.72"/>
<path fill="none" stroke="black" d="M5410,-2500.72C5370.02,-2315.27 5088,-2282.39 4967.92,-2276.85"/>
<polygon fill="#e50505" stroke="black" points="4967.98,-2273.35 4957.85,-2276.43 4967.69,-2280.34 4967.98,-2273.35"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge437" 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="M6693.51,-2899.87C6707.22,-2887.75 6724.07,-2872.84 6738.55,-2860.04"/>
<polygon fill="#e50505" stroke="black" points="6741.15,-2862.41 6746.32,-2853.17 6736.51,-2857.17 6741.15,-2862.41"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge438" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6715.92,-2923.17C6866.66,-2922.08 7337.11,-2914.22 7722,-2859.33 7909.22,-2832.63 7954.11,-2813.45 8137,-2765.35 8277.47,-2728.4 8346.21,-2772.98 8450,-2671.36 8458.76,-2662.79 8984.7,-1000.49 8994,-992.51"/>
<path fill="none" stroke="black" d="M8994,-990.51C9032.78,-951.19 9058.7,-964.83 9113,-954.74 9217.07,-935.39 9490.98,-961.08 9588,-918.74 9592.13,-916.94 9596.12,-914.62 9599.93,-911.99"/>
<polygon fill="#e50505" stroke="black" points="9602.14,-914.7 9607.92,-905.82 9597.87,-909.16 9602.14,-914.7"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge439" 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="M6715.93,-2922.66C6938.54,-2919.43 7857.07,-2903.6 8141,-2859.33 8150.81,-2857.8 8476.97,-2769.48 8486,-2765.35 8527.91,-2746.15 8532.54,-2731.19 8572,-2707.36 8600.94,-2689.89 8614.21,-2694.34 8639,-2671.36 8778.17,-2542.36 8773.36,-2475.53 8869,-2311.63 8887.65,-2279.68 8889.48,-2270.12 8908,-2238.1 9057.29,-1979.94 9182.44,-1956.52 9265,-1669.96 9274.05,-1638.55 9272.61,-1628.2 9265,-1596.42 9249.92,-1533.41 9214.08,-1529.45 9199,-1466.43 9191.39,-1434.65 9192.31,-1424.89 9199,-1392.9 9238.73,-1202.8 9198.29,-1075.23 9374,-992.51"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node113" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="6865" cy="-2736.36" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="6865" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6865" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6865" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge440" 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="M6794.24,-2806.6C6805.69,-2795.39 6819.7,-2781.69 6832.22,-2769.44"/>
<polygon fill="#a32828" stroke="black" points="6834.69,-2771.91 6839.39,-2762.42 6829.79,-2766.91 6834.69,-2771.91"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge441" 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="M6809.93,-2828.05C7016.45,-2821.14 7976.47,-2787.9 8035,-2765.35 8073.02,-2750.7 8068.65,-2723.65 8106,-2707.36 8212.93,-2660.74 8279.48,-2749.62 8366,-2671.36 8439.47,-2604.91 8442.11,-2332.86 8471,-2238.1 8546.51,-1990.45 8757.31,-1352.15 8945,-1173.82 9075.05,-1050.25 9114.4,-1013.2 9284,-954.74 9451.91,-896.85 9519.73,-990.96 9682,-918.74 9686.11,-916.91 9690.1,-914.57 9693.9,-911.93"/>
<polygon fill="#a32828" stroke="black" points="9696.12,-914.63 9701.89,-905.74 9691.84,-909.09 9696.12,-914.63"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge442" 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="M6865.58,-2707.35C6864.96,-2674.77 6859.81,-2620.57 6835,-2582.27 6819.92,-2558.98 6801.53,-2567.78 6784,-2546.27 6770.66,-2529.9 6783.5,-2512.91 6765,-2502.72"/>
<path fill="none" stroke="black" d="M6765,-2500.72C6746.81,-2490 6763.46,-2469.05 6746,-2457.17 6698.75,-2425.04 5775.1,-2423.4 5718,-2421.17 5418.67,-2409.53 5059.15,-2393.44 4930.61,-2387.62"/>
<polygon fill="#c82323" stroke="black" points="4930.47,-2384.11 4920.33,-2387.15 4930.16,-2391.1 4930.47,-2384.11"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge443" 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="M6765,-2500.72C6746.81,-2490 6763.36,-2469.2 6746,-2457.17 6683.17,-2413.64 6135.13,-2427.99 6059,-2421.17 5636.68,-2383.36 5130.22,-2308.78 4967.26,-2284.05"/>
<polygon fill="#c82323" stroke="black" points="4967.44,-2280.54 4957.03,-2282.49 4966.39,-2287.46 4967.44,-2280.54"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge444" 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="M6920.16,-2729.81C6985.98,-2723.4 7099.41,-2713.01 7197,-2707.36 7260.54,-2703.69 8294.45,-2713.67 8342,-2671.36 8364.78,-2651.1 8417.74,-2158.59 8423,-2128.56 8447.48,-1988.76 8447.88,-1952.21 8486,-1815.5 8584.53,-1462.13 8542.35,-1294.46 8828,-1064.28 8952.28,-964.13 9013.27,-984.9 9170,-954.74 9282,-933.19 9577.34,-964.07 9682,-918.74 9686.13,-916.95 9690.13,-914.64 9693.94,-912.01"/>
<polygon fill="#c82323" stroke="black" points="9696.15,-914.73 9701.94,-905.85 9691.88,-909.18 9696.15,-914.73"/>
</g>
<!-- ahriman_models_migration -->
<g id="node114" class="node">
<title>ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="7986" cy="-2736.36" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="7986" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7986" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7986" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration</text>
</g>
<!-- ahriman_models_migration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge445" 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="M7964.46,-2711.86C7947.26,-2691.39 7924.52,-2660 7915,-2627.82"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_data -->
<g id="edge446" 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="M9535.19,-3511.98C9341.71,-3400.24 8459.76,-2895.31 8160,-2801.35 8091.22,-2779.79 7877.51,-2800.09 7842,-2737.36"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations -->
<g id="edge447" 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="M9546.86,-3508.43C9431.68,-3398.19 8953.39,-2960.34 8464,-2801.35 8408.18,-2783.21 7980.33,-2804.93 7937,-2765.35 7891.3,-2723.6 7932.56,-2687.18 7915,-2627.82"/>
<path fill="none" stroke="black" d="M7915,-2625.82C7881.84,-2516.68 7759.62,-2441.69 7690.83,-2407.12"/>
<polygon fill="#bc2f2f" stroke="black" points="7692.01,-2403.8 7681.5,-2402.51 7688.92,-2410.08 7692.01,-2403.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge448" 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="M5858,-2920.85C5717.84,-2911.6 5234.56,-2878.64 5168,-2859.33 4658.71,-2711.62 4528.45,-2634.78 4108,-2311.63 3566.45,-1895.42 3609.37,-1599.21 3075,-1173.82 3055.38,-1158.2 3031.92,-1143.98 3010.48,-1132.39"/>
<polygon fill="#950303" stroke="black" points="3011.9,-1129.19 3001.43,-1127.59 3008.62,-1135.37 3011.9,-1129.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge449" 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="M1746,-2273.87C1749.22,-2223.28 1775.25,-2216.26 1784,-2166.33"/>
<path fill="none" stroke="black" d="M1784,-2164.33C1799.52,-2075.75 1780.96,-2050.23 1802,-1962.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge450" 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="M6172,-2829.34C6243.74,-2689.52 6231.27,-2281.6 6267,-2128.56 6293.35,-2015.7 6420.69,-1749.42 6433,-1634.19"/>
<path fill="none" stroke="black" d="M6433,-1632.19C6426.51,-1542.86 6388.93,-1508.64 6433,-1430.67"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge451" 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="M5106,-2500.72C5093.61,-2482.42 5100.26,-2469.62 5082,-2457.17 4979.41,-2387.26 4910.23,-2487.05 4805,-2421.17 4581.36,-2281.17 4698.89,-2070.85 4479,-1925.03 4405.19,-1876.09 4347.92,-1949.28 4283,-1889.03 4221.34,-1831.82 4272.49,-1781.26 4235,-1705.96 4165.56,-1566.49 4018,-1586.46 4018,-1430.67 4018,-1430.67 4018,-1430.67 4018,-873.19 4018,-663.2 3791.69,-721.2 3585,-684.1 3548.59,-677.57 3507.95,-668.66 3476.36,-661.36"/>
<polygon fill="#950303" stroke="black" points="3476.97,-657.91 3466.44,-659.05 3475.39,-664.73 3476.97,-657.91"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge452" 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="M5857.86,-2920.79C5727.02,-2911.95 5301.26,-2881.75 5244,-2859.33 5179.61,-2834.12 5162.52,-2819.88 5120,-2765.35 5092.08,-2729.55 5092.24,-2715.08 5080,-2671.36 5054.06,-2578.74 5118.23,-2523.95 5049,-2457.17 4995.43,-2405.5 4780.24,-2458.76 4716,-2421.17 4482.2,-2284.38 4581.71,-2083.48 4362,-1925.03 4317.87,-1893.21 4282.14,-1928.79 4245,-1889.03 4187.94,-1827.96 4254.19,-1771.24 4202,-1705.96 4179.16,-1677.39 4158.56,-1690.06 4128,-1669.96 3825.18,-1470.77 3718.2,-1434.52 3510,-1137.82 3492.06,-1112.26 3432.77,-896.56 3410,-875.19"/>
<path fill="none" stroke="black" d="M3410,-873.19C3334.09,-802.58 3324.03,-771.51 3234,-720.1 3190.06,-695.02 3171.58,-706.08 3126,-684.1 3121.97,-682.16 3117.87,-679.97 3113.84,-677.65"/>
<polygon fill="#950303" stroke="black" points="3115.51,-674.57 3105.13,-672.43 3111.91,-680.58 3115.51,-674.57"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge453" 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="M5847.93,-2920.33C5665.06,-2908.91 5020.92,-2868.24 4978,-2859.33 4855.23,-2833.85 4827.4,-2814.38 4712,-2765.35 4430.25,-2645.64 4382.74,-2564.38 4096,-2457.17 4035.82,-2434.68 4016.59,-2442.53 3956,-2421.17 3881.43,-2394.89 3869.18,-2372.14 3794,-2347.63 3694,-2315.04 3572.79,-2293.97 3503.31,-2283.57"/>
<polygon fill="#950303" stroke="black" points="5847.85,-2923.83 5858.05,-2920.96 5848.28,-2916.85 5847.85,-2923.83"/>
<polygon fill="#950303" stroke="black" points="3503.44,-2280.05 3493.03,-2282.05 3502.41,-2286.98 3503.44,-2280.05"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge454" 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="M5857.74,-2922.56C5759.53,-2919.89 5501.52,-2908.3 5434,-2859.33 5273.04,-2742.6 5349.73,-2621.65 5238,-2457.17 5163.92,-2348.12 5143.24,-2317.51 5038,-2238.1 4805.07,-2062.33 4450.47,-1992.14 4314.12,-1970.67"/>
<polygon fill="#950303" stroke="black" points="4314.33,-1967.16 4303.91,-1969.09 4313.26,-1974.08 4314.33,-1967.16"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge455" 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="M5934.07,-2921.61C6057.57,-2915.76 6445.99,-2894.92 6566,-2859.33 6619.36,-2843.51 6623.23,-2815.72 6677,-2801.35 7053.01,-2700.82 7173.26,-2855.07 7552,-2765.35 7581.42,-2758.38 7586.16,-2749.14 7614,-2737.36"/>
<path fill="none" stroke="black" d="M7614,-2735.36C7647.3,-2721.23 7678.63,-2695.54 7702.07,-2672.81"/>
<polygon fill="#950303" stroke="black" points="7704.75,-2675.07 7709.39,-2665.55 7699.82,-2670.1 7704.75,-2675.07"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge456" 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="M5934.23,-2923.13C6025.57,-2921.76 6262.92,-2912.88 6452,-2859.33 6510.54,-2842.75 6516.95,-2815.97 6576,-2801.35 6737.54,-2761.35 7169.69,-2827.65 7324,-2765.35 7371.9,-2746.01 7415.15,-2705.55 7444.06,-2673.5"/>
<polygon fill="#950303" stroke="black" points="7446.72,-2675.77 7450.73,-2665.97 7441.48,-2671.13 7446.72,-2675.77"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge457" 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="M6172,-2829.34C6200.37,-2773.37 6242.05,-2714.78 6272.18,-2675.29"/>
<polygon fill="#950303" stroke="black" points="6275.1,-2677.22 6278.42,-2667.16 6269.55,-2672.96 6275.1,-2677.22"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge458" 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="M5857.94,-2920.99C5673,-2909.68 4876.59,-2860.91 4864,-2859.33 4420.5,-2803.62 4310.99,-2774.24 3876,-2671.36 3734.83,-2637.98 3704.91,-2607.16 3562,-2582.27 3446.79,-2562.2 3146.6,-2587.05 3037,-2546.27 3030.5,-2543.85 3024.11,-2540.46 3018.08,-2536.62"/>
<polygon fill="#950303" stroke="black" points="3019.77,-2533.53 3009.55,-2530.74 3015.8,-2539.29 3019.77,-2533.53"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge459" 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="M5857.85,-2920.69C5779.06,-2915.33 5592.63,-2903 5436,-2895.33 5004.22,-2874.2 4893.26,-2910.48 4464,-2859.33 3769.16,-2776.54 3571.26,-2804.75 2921,-2546.27 2913.52,-2543.3 2905.95,-2539.53 2898.68,-2535.45"/>
<polygon fill="#950303" stroke="black" points="2900.07,-2532.21 2889.68,-2530.17 2896.53,-2538.25 2900.07,-2532.21"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge460" 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="M5857.86,-2920.52C5779.09,-2914.85 5592.68,-2901.96 5436,-2895.33 4765.74,-2866.95 4595.27,-2918.2 3927,-2859.33 3377,-2810.88 3237.58,-2792.93 2699,-2671.36 2510.67,-2628.86 2457.28,-2629.34 2283,-2546.27 2276.41,-2543.13 2269.74,-2539.36 2263.31,-2535.37"/>
<polygon fill="#950303" stroke="black" points="2265.03,-2532.32 2254.73,-2529.84 2261.24,-2538.2 2265.03,-2532.32"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_console -->
<g id="edge461" 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="M5891.99,-2895.26C5888.19,-2875.99 5881.06,-2850.52 5868,-2831.34"/>
<path fill="none" stroke="black" d="M5868,-2829.34C5858.77,-2815.8 5856.8,-2811.58 5844,-2801.35 5817.29,-2779.99 5803.52,-2785.64 5776,-2765.35 5706.3,-2713.96 5662.41,-2710.9 5638,-2627.82"/>
<path fill="none" stroke="black" d="M5638,-2625.82C5632.68,-2611.3 5632.81,-2363.07 5632,-2347.63 5630.32,-2315.67 5626.87,-2307.86 5626,-2275.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge462" 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="M5867.83,-2904.31C5829.27,-2878.8 5757.35,-2833.03 5692,-2801.35 5620.1,-2766.49 5573.11,-2800.38 5524,-2737.36"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge463" 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="M5934.23,-2920.79C5986.17,-2915.84 6080.3,-2901.34 6148,-2859.33 6161.92,-2850.69 6165.57,-2846.41 6172,-2831.34"/>
<path fill="none" stroke="black" d="M6172,-2829.34C6178.43,-2814.27 6160.93,-2811.41 6148,-2801.35 6097.49,-2762.04 6045.59,-2795.57 6019,-2737.36"/>
<path fill="none" stroke="black" d="M6019,-2735.36C5991.52,-2675.2 5993.84,-2596.99 5999.1,-2548.33"/>
<polygon fill="#950303" stroke="black" points="6002.61,-2548.45 6000.3,-2538.11 5995.66,-2547.63 6002.61,-2548.45"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge464" 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="M5868,-2829.34C5805.49,-2735.92 5798.88,-2693.65 5814,-2582.27 5815.58,-2570.63 5818.4,-2558.29 5821.51,-2546.88"/>
<polygon fill="#950303" stroke="black" points="5824.91,-2547.72 5824.3,-2537.15 5818.18,-2545.8 5824.91,-2547.72"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge465" 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="M6019,-2735.36C6007.78,-2708.16 6074.91,-2678.58 6080,-2671.36 6091.71,-2654.75 6097.59,-2647.83 6094,-2627.82"/>
<path fill="none" stroke="black" d="M6094,-2625.82C6092.24,-2615.98 6010.23,-2285.83 6011,-2275.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_telegram -->
<g id="edge466" 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="M5933.96,-2920.39C6001.71,-2914.35 6147.27,-2897.74 6264,-2859.33 6486.85,-2786.01 6710.59,-2606.78 6795.42,-2534.11"/>
<polygon fill="#950303" stroke="black" points="6797.9,-2536.59 6803.19,-2527.41 6793.33,-2531.29 6797.9,-2536.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge467" 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="M5857.87,-2922.26C5765.01,-2918.95 5530.3,-2906.06 5470,-2859.33 5312.63,-2737.37 5263.98,-2172.09 5120,-2034.57 5086.75,-2002.81 5063.2,-2020.9 5023,-1998.57 4976.32,-1972.65 4972.47,-1954.59 4928,-1925.03 4874,-1889.15 4857.61,-1884.86 4801,-1853.27"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge468" 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="M5258,-2829.34C5147.71,-2754.25 5200.65,-2672.7 5158,-2546.27 5151.5,-2527.01 5152.82,-2521.04 5144,-2502.72"/>
<path fill="none" stroke="black" d="M5144,-2500.72C5129.59,-2483.96 5138.28,-2469.59 5120,-2457.17 5014.37,-2385.47 4927.91,-2508.74 4835,-2421.17 4800.24,-2388.41 4760.41,-2046.14 4756,-1998.57 4752.98,-1966.03 4734.81,-1949.92 4756,-1925.03 4820.95,-1848.78 5181.72,-1951.56 5201,-1853.27"/>
<path fill="none" stroke="black" d="M5201,-1851.27C5204.75,-1831.36 4603.53,-1689.04 4420.94,-1646.3"/>
<polygon fill="#950303" stroke="black" points="4421.57,-1642.85 4411.04,-1643.98 4419.98,-1649.67 4421.57,-1642.85"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge469" 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="M5857.71,-2921.53C5729.45,-2915.23 5320.27,-2892.68 5272,-2859.33 5260.56,-2851.42 5269.57,-2839.06 5258,-2831.34"/>
<path fill="none" stroke="black" d="M5258,-2829.34C5236.82,-2815.2 5102.03,-2694.77 5092,-2671.36 5076.39,-2634.97 5088.56,-2621.72 5092,-2582.27 5095.12,-2546.51 5123.96,-2533.81 5106,-2502.72"/>
<path fill="none" stroke="black" d="M5106,-2500.72C5088,-2474.41 5078.5,-2469.27 5049,-2457.17 4781.38,-2347.47 4424,-2565.1 4424,-2275.87 4424,-2275.87 4424,-2275.87 4424,-2164.33 4424,-2047.28 4401.05,-2003.29 4314,-1925.03 4276.69,-1891.49 4246.88,-1919.49 4207,-1889.03 4191.78,-1877.42 4192.35,-1869.97 4183,-1853.27"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge470" 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="M5144,-2500.72C5134.41,-2480.81 5137.18,-2471.07 5120,-2457.17 5112.37,-2451 4995.41,-2417.36 4928.35,-2398.41"/>
<polygon fill="#950303" stroke="black" points="4929.01,-2394.96 4918.44,-2395.61 4927.11,-2401.7 4929.01,-2394.96"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge471" 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="M5934.08,-2921.19C6025.23,-2916.13 6263.18,-2903.26 6462,-2895.33 6594.07,-2890.07 7522.72,-2891.18 7651,-2859.33 7678.39,-2852.53 7679.94,-2834.35 7708,-2831.34"/>
<path fill="none" stroke="black" d="M7708,-2829.34C7721.83,-2827.85 7710.58,-2809.29 7722,-2801.35 7783.12,-2758.87 7982.96,-2784.05 8055,-2765.35 8119,-2748.73 8128.47,-2725.7 8192,-2707.36 8287.62,-2679.77 8332.83,-2730.33 8413,-2671.36 8421.1,-2665.41 8570.04,-2356.38 8575,-2347.63 8632.04,-2247.15 8649.18,-2223.53 8715,-2128.56 8726.39,-2112.12 8733.1,-2110.47 8742,-2092.56 8793.03,-1989.85 8842.63,-1703.37 8884,-1596.42 8913.65,-1519.76 8964.09,-1512.83 8966,-1430.67"/>
<path fill="none" stroke="black" d="M8966,-1428.67C8965.34,-1407.91 8961.6,-1385.27 8957.52,-1366.13"/>
<polygon fill="#950303" stroke="black" points="8960.9,-1365.19 8955.31,-1356.19 8954.07,-1366.71 8960.9,-1365.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge472" 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="M5258,-2829.34C5228.76,-2799.74 5244,-2488.83 5217,-2457.17 5177.82,-2411.23 5139.42,-2449.32 5086,-2421.17 5031.82,-2392.63 4979.54,-2344.61 4947.13,-2311.64"/>
<polygon fill="#950303" stroke="black" points="4949.6,-2309.16 4940.12,-2304.43 4944.58,-2314.04 4949.6,-2309.16"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge473" 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="M5858.17,-2920.38C5779.58,-2914.41 5592.92,-2900.97 5436,-2895.33 5345.66,-2892.08 2262.52,-2900.42 2182,-2859.33 2153.42,-2844.75 2163.2,-2822.41 2139,-2801.35 2113.79,-2779.42 2098.14,-2787.36 2073,-2765.35 1997.14,-2698.92 2023.81,-2636.81 1939,-2582.27 1872.58,-2539.56 1816.98,-2605.72 1765,-2546.27 1685.7,-2455.57 1746,-2396.34 1746,-2275.87"/>
<path fill="none" stroke="black" d="M1746,-2273.87C1749.22,-2223.28 1707.56,-2217.02 1708,-2166.33"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge474" 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="M6172,-2829.34C6183.47,-2802.47 6160.36,-2794.37 6157,-2765.35 6154.04,-2739.75 6154.92,-2733.05 6157,-2707.36 6159.9,-2671.66 6180.46,-2662.08 6170,-2627.82"/>
<path fill="none" stroke="black" d="M6170,-2625.82C6159.27,-2600.99 6151.48,-2571.73 6146.28,-2547.98"/>
<polygon fill="#950303" stroke="black" points="6149.69,-2547.22 6144.2,-2538.16 6142.85,-2548.67 6149.69,-2547.22"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge475" 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="M5933.77,-2918.97C5990.25,-2911.59 6099.33,-2893.92 6186,-2859.33 6336.36,-2799.33 6372.9,-2774.11 6498,-2671.36 6539.36,-2637.4 6539.5,-2618.38 6579,-2582.27 6597.53,-2565.33 6619.47,-2548.3 6638.49,-2534.36"/>
<polygon fill="#950303" stroke="black" points="6640.68,-2537.09 6646.72,-2528.39 6636.57,-2531.43 6640.68,-2537.09"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge476" 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="M5934.08,-2921.09C6025.22,-2915.84 6263.15,-2902.56 6462,-2895.33 7148.84,-2870.35 7323.44,-2920.56 8008,-2859.33 8075.32,-2853.31 8542.37,-2776.68 8609,-2765.35 8836.65,-2726.62 8901.37,-2745.68 9120,-2671.36 9134.8,-2666.34 9150.22,-2659.11 9163.8,-2651.98"/>
<polygon fill="#950303" stroke="black" points="9165.73,-2654.91 9172.88,-2647.09 9162.42,-2648.75 9165.73,-2654.91"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge477" 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="M5934.08,-2921.12C6025.23,-2915.92 6263.16,-2902.75 6462,-2895.33 6780.1,-2883.47 7579.43,-2908.05 7894,-2859.33 7985.46,-2845.17 8003.15,-2818.99 8094,-2801.35 8249.25,-2771.21 8291.85,-2790.38 8448,-2765.35 8666.44,-2730.33 8923.19,-2666.58 9026.5,-2639.98"/>
<polygon fill="#950303" stroke="black" points="9027.49,-2643.34 9036.3,-2637.45 9025.74,-2636.56 9027.49,-2643.34"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge478" 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="M5934.08,-2921.06C6025.22,-2915.72 6263.14,-2902.29 6462,-2895.33 6850.73,-2881.72 7826.67,-2912.43 8212,-2859.33 8313.87,-2845.29 8334.38,-2817.12 8436,-2801.35 8725.42,-2756.43 8810.58,-2839.2 9094,-2765.35 9185.42,-2741.53 9282.33,-2686.59 9335.07,-2653.81"/>
<polygon fill="#950303" stroke="black" points="9337.16,-2656.63 9343.77,-2648.35 9333.44,-2650.7 9337.16,-2656.63"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge479" 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="M5934.08,-2921.04C6025.22,-2915.67 6263.14,-2902.15 6462,-2895.33 7295.44,-2866.73 7505.52,-2908.59 8338,-2859.33 8759.78,-2834.37 8886.88,-2909.61 9284,-2765.35 9318.87,-2752.68 9392.98,-2694.48 9422,-2671.36 9426.24,-2667.99 9430.57,-2664.32 9434.8,-2660.59"/>
<polygon fill="#950303" stroke="black" points="9437.18,-2663.15 9442.27,-2653.86 9432.5,-2657.95 9437.18,-2663.15"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge480" 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="M5934.08,-2921.16C6025.23,-2916.06 6263.17,-2903.09 6462,-2895.33 6741.9,-2884.41 7446.25,-2908.61 7722,-2859.33 7801.41,-2845.14 7814.9,-2817.17 7894,-2801.35 8006.71,-2778.8 8307.75,-2817.86 8410,-2765.35 8439.76,-2750.06 8429.68,-2725.17 8458,-2707.36 8514.21,-2672.02 8549.93,-2711.27 8603,-2671.36 8690.92,-2605.26 8668.04,-2550.04 8727,-2457.17 8758.76,-2407.15 8768.73,-2395.97 8803,-2347.63 8825.78,-2315.5 8858.53,-2315.1 8855,-2275.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge481" 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="M5934.1,-2920.9C6040.39,-2913.93 6349.09,-2892.17 6604,-2859.33 6644.56,-2854.11 6690.35,-2846.29 6723.71,-2840.25"/>
<polygon fill="#950303" stroke="black" points="6724.44,-2843.67 6733.65,-2838.44 6723.18,-2836.79 6724.44,-2843.67"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_result -->
<g id="edge482" 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="M5907.2,-2896.22C5910.91,-2887.24 5915.1,-2877.09 5919.05,-2867.54"/>
<polygon fill="#950303" stroke="black" points="5922.3,-2868.82 5922.88,-2858.25 5915.83,-2866.15 5922.3,-2868.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge483" 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="M7708,-2829.34C7721.83,-2827.81 7710.46,-2809.12 7722,-2801.35 7806.68,-2744.32 8080.08,-2786.3 8180,-2765.35 8304.36,-2739.27 8352.64,-2753.01 8450,-2671.36 8473.93,-2651.3 8472.66,-2682.45 8767,-2092.56 8795.02,-2036.39 9191.73,-1109.74 9235,-1064.28 9282.93,-1013.91 9311.05,-1022.03 9374,-992.51"/>
<path fill="none" stroke="black" d="M9374,-990.51C9445.41,-954.84 9471.46,-968.97 9550,-954.74 9650.08,-936.61 9684.53,-963.22 9776,-918.74 9780.05,-916.77 9783.99,-914.34 9787.76,-911.63"/>
<polygon fill="#950303" stroke="black" points="9790.03,-914.3 9795.71,-905.36 9785.69,-908.81 9790.03,-914.3"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge484" 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="M6640,-3432.13C6624.05,-3404.5 6640.78,-3392.26 6641,-3360.36 6641.28,-3320.76 6663.92,-3303.55 6641,-3271.26 6612.93,-3231.72 6566.07,-3274.81 6538,-3235.26 6434.03,-3088.78 6678.62,-2958.75 6552,-2831.34"/>
<path fill="none" stroke="black" d="M6552,-2829.34C6506.41,-2782.87 6475.28,-2790.73 6438,-2737.36"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge485" 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="M6964.69,-3515.48C6953.88,-3512.14 6942.62,-3508.8 6932,-3505.9 6803.1,-3470.61 6703.87,-3551.52 6640,-3434.13"/>
<path fill="none" stroke="black" d="M6640,-3432.13C6605.45,-3368.63 6669.24,-3320.16 6616,-3271.26 6522.86,-3185.7 6161.18,-3291.71 6048,-3235.26 6033.34,-3227.95 6034.16,-3220.13 6024,-3207.27"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge486" 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="M5295.97,-3109.66C5476.04,-3104.98 6014.78,-3091.31 6462,-3083.3 7689.91,-3061.3 7997.5,-3085.88 9225,-3047.3 9329.8,-3044 11023.18,-3012.11 11110,-2953.31 11149.83,-2926.34 11471,-2214.43 11471,-2166.33 11471,-2166.33 11471,-2166.33 11471,-2062.57 11471,-1919.86 11450.77,-1874.01 11509,-1743.73"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge487" 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="M5179.35,-3098.11C5127.81,-3085.55 5048.47,-3065.85 4980,-3047.3 4690.56,-2968.88 4605.08,-2983.23 4332,-2859.33 4030.18,-2722.39 4003.26,-2599.63 3704,-2457.17 3657.93,-2435.25 3641.87,-2441.32 3595,-2421.17 3500.45,-2380.54 3458.37,-2389.43 3391,-2311.63 3352.66,-2267.36 3026.82,-1379.61 3030,-1321.13"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge488" 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="M5226.33,-3083.18C5222.72,-3063.64 5221.55,-3037.87 5234,-3019.3"/>
<path fill="none" stroke="black" d="M5234,-3017.3C5257.84,-2981.75 5192.13,-2983.72 5162,-2953.31 5047.13,-2837.38 4978.22,-2790.44 4992,-2627.82"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge489" 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="M5188.93,-3092.16C5104.98,-3055.19 4921.37,-2967.91 4791,-2859.33 4434.81,-2562.67 4344.46,-2439.69 4202,-1998.57 4181.98,-1936.59 4216.1,-1909.36 4183,-1853.27"/>
<path fill="none" stroke="black" d="M4183,-1851.27C4170.75,-1831.48 4159.74,-1808.11 4151.27,-1788.22"/>
<polygon fill="#e50505" stroke="black" points="4154.4,-1786.65 4147.32,-1778.77 4147.94,-1789.34 4154.4,-1786.65"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge490" 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="M5295.45,-3107.55C5692.47,-3083.42 7889.92,-2949.83 8244.64,-2928.26"/>
<polygon fill="#e50505" stroke="black" points="8245.07,-2931.74 8254.83,-2927.64 8244.64,-2924.76 8245.07,-2931.74"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_package -->
<g id="edge491" 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="M5234,-3017.3C5242.66,-3004.39 5241.45,-2996.95 5255,-2989.31 5306.32,-2960.38 5707.48,-2935.72 5847.76,-2927.9"/>
<polygon fill="#e50505" stroke="black" points="5848,-2931.4 5857.8,-2927.35 5847.62,-2924.41 5848,-2931.4"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_remote_source -->
<g id="edge492" 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="M5258.7,-3085.17C5268.41,-3074.9 5279.68,-3063 5289.93,-3052.15"/>
<polygon fill="#e50505" stroke="black" points="5292.51,-3054.52 5296.84,-3044.85 5287.43,-3049.71 5292.51,-3054.52"/>
</g>
<!-- ahriman_models_property -->
<g id="node119" class="node">
<title>ahriman_models_property</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="2229" cy="-2830.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2229" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2229" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="2229" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">property</text>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge493" 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="M2243,-2735.36C2240.62,-2665.29 2251.61,-2645.92 2281,-2582.27 2287.72,-2567.72 2297.23,-2553.09 2306.55,-2540.42"/>
<polygon fill="#f91010" stroke="black" points="2309.38,-2542.48 2312.63,-2532.39 2303.8,-2538.25 2309.38,-2542.48"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge494" 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="M2087,-2735.36C2059.81,-2696.05 2101.79,-2673.27 2087,-2627.82"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge495" 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="M2266.25,-2823.03C2354.39,-2806.34 2578.42,-2753.42 2713,-2627.82"/>
<path fill="none" stroke="black" d="M2713,-2625.82C2728.11,-2609.69 2722.22,-2598.7 2737,-2582.27 2754.37,-2562.96 2777.29,-2545.83 2798.01,-2532.45"/>
<polygon fill="#f91010" stroke="black" points="2800.14,-2535.25 2806.74,-2526.96 2796.41,-2529.32 2800.14,-2535.25"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge496" 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="M2198.13,-2813.01C2160.88,-2792.71 2101.41,-2758.19 2087,-2737.36"/>
<path fill="none" stroke="black" d="M2087,-2735.36C2057.01,-2692.01 2033.28,-2680.39 2037,-2627.82"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge497" 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="M2181,-2625.82C2171.38,-2599.17 2180.58,-2568.75 2192.34,-2544.82"/>
<polygon fill="#f91010" stroke="black" points="2195.6,-2546.14 2197.12,-2535.66 2189.39,-2542.9 2195.6,-2546.14"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge498" 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="M2235.73,-2801.73C2239.53,-2783.55 2243.45,-2759.16 2243,-2737.36"/>
<path fill="none" stroke="black" d="M2243,-2735.36C2242.31,-2702.29 2221.43,-2700.07 2205,-2671.36 2194.02,-2652.18 2188.51,-2648.6 2181,-2627.82"/>
<path fill="none" stroke="black" d="M2181,-2625.82C2169.77,-2594.73 2148.96,-2563.89 2130.99,-2540.86"/>
<polygon fill="#f91010" stroke="black" points="2133.49,-2538.38 2124.52,-2532.74 2128.02,-2542.74 2133.49,-2538.38"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge499" 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="M5276.83,-2999.65C5267.38,-2996.07 5257.4,-2992.45 5248,-2989.31 5047.66,-2922.56 4989.35,-2931.77 4791,-2859.33 4472.78,-2743.11 4386,-2721.41 4096,-2546.27 4040.95,-2513.03 4040.55,-2483.76 3982,-2457.17 3904.54,-2422 3875.45,-2445.74 3794,-2421.17 3683.89,-2387.97 3561.08,-2331.69 3495.14,-2299.8"/>
<polygon fill="#af1313" stroke="black" points="3496.35,-2296.5 3485.83,-2295.27 3493.29,-2302.79 3496.35,-2296.5"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge500" 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="M5287.37,-2994.79C5246.76,-2966.49 5177.96,-2914.85 5130,-2859.33 5090.85,-2814.01 4989.47,-2687.66 4992,-2627.82"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge501" 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="M5377.56,-3013.63C5621.86,-2996.61 6568.32,-2918.52 6438,-2737.36"/>
<path fill="none" stroke="black" d="M6438,-2735.36C6419.26,-2708.53 6392.2,-2684.47 6367.78,-2665.95"/>
<polygon fill="#af1313" stroke="black" points="6369.73,-2663.04 6359.61,-2659.88 6365.55,-2668.66 6369.73,-2663.04"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_models_package -->
<g id="edge502" 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="M5375.09,-3008.65C5487.11,-2990.73 5742.79,-2949.83 5848.7,-2932.89"/>
<polygon fill="#af1313" stroke="black" points="5849.45,-2936.31 5858.77,-2931.28 5848.35,-2929.4 5849.45,-2936.31"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node121" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="6048" cy="-2830.34" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="6048" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6048" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6048" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_settings</text>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge503" 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="M6015.52,-2806.23C6000.16,-2794.67 5981.96,-2780.04 5967,-2765.35 5928.48,-2727.51 5920.27,-2716.08 5890,-2671.36 5877.61,-2653.06 5879.59,-2645.25 5866,-2627.82"/>
<path fill="none" stroke="black" d="M5866,-2625.82C5848.51,-2604.16 5840.98,-2573.83 5837.84,-2548.69"/>
<polygon fill="#c24747" stroke="black" points="5841.31,-2548.21 5836.78,-2538.64 5834.35,-2548.95 5841.31,-2548.21"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge504" 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="M3307.04,-3997.47C2975.23,-3997.73 1437.21,-3995.54 1235,-3933.38 1205.74,-3924.39 790.91,-3660.01 770,-3637.65"/>
<path fill="none" stroke="black" d="M770,-3635.65C563.86,-3410.39 200,-2690.75 200,-2385.4 200,-2385.4 200,-2385.4 200,-2273.87 200,-2180.84 227.3,-2153.49 200,-2064.57"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge505" 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="M770,-3635.65C760.58,-3623.83 618,-3128.4 618,-3113.29 618,-3113.29 618,-3113.29 618,-2923.32 618,-2732.79 474.3,-2727.01 414,-2546.27 391.12,-2477.7 390,-2457.69 390,-2385.4 390,-2385.4 390,-2385.4 390,-2062.57 390,-1977.07 453.55,-1972.29 473,-1889.03 512.1,-1721.71 423.95,-1665.55 478,-1502.43 490.39,-1465.04 523,-1469.43 530,-1430.67"/>
<path fill="none" stroke="black" d="M530,-1428.67C545.74,-1315.99 512.07,-1279.58 554,-1173.82 568.52,-1137.2 611.75,-1141.02 606,-1102.05"/>
<path fill="none" stroke="black" d="M606,-1100.05C595.63,-1042.45 543.91,-1049.36 530,-992.51"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge506" 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="M3396,-3914.38C3462.3,-3799.26 3592.91,-3705.24 3659.25,-3662.5"/>
<polygon fill="#e50505" stroke="black" points="3661.24,-3665.39 3667.79,-3657.06 3657.48,-3659.49 3661.24,-3665.39"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge507" 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="M3307.14,-3994.85C3049.05,-3984.43 2083.77,-3944.7 2073,-3933.38 2061.97,-3921.79 2066.9,-3912.17 2073,-3897.38 2175.16,-3649.72 2329.41,-3678.11 2498,-3469.9 2691.74,-3230.61 2675.78,-3121.21 2885,-2895.33 3025.7,-2743.43 3061.94,-2703.21 3230,-2582.27 3288.72,-2540.02 3339.09,-2567.14 3372,-2502.72"/>
<path fill="none" stroke="black" d="M3372,-2500.72C3398.53,-2437.17 3370.03,-2411.42 3396,-2347.63 3400.73,-2336.02 3407.66,-2324.48 3414.9,-2314.16"/>
<polygon fill="#e50505" stroke="black" points="3417.94,-2315.94 3421.02,-2305.8 3412.29,-2311.81 3417.94,-2315.94"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge508" 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="M3306.9,-3997.63C3177.54,-3996.99 2887.81,-3989.17 2809,-3933.38 2727.07,-3875.4 2753.76,-3806.3 2780,-3709.42 2794.24,-3656.84 2802.81,-3643.83 2835,-3599.88 2848.56,-3581.37 2856.46,-3580.76 2872,-3563.88 2900.53,-3532.89 3076.66,-3292.56 3113,-3271.26 3148.07,-3250.71 3804.61,-3170.36 3833,-3141.28 3871.33,-3102.02 3852,-3074.17 3852,-3019.3 3852,-3019.3 3852,-3019.3 3852,-2923.32 3852,-2826.75 3829.88,-2792.21 3876,-2707.36 3888.07,-2685.17 3904.14,-2691.03 3920,-2671.36 3981.95,-2594.54 4103.83,-2372.87 4122,-2275.87"/>
<path fill="none" stroke="black" d="M4122,-2273.87C4133.1,-2169.84 4194.19,-2060.52 4230.61,-2003.26"/>
<polygon fill="#e50505" stroke="black" points="4233.77,-2004.83 4236.24,-1994.53 4227.88,-2001.04 4233.77,-2004.83"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration -->
<g id="edge509" 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="M3396,-3914.38C3470.43,-3801.18 4463.51,-3725.83 4598,-3709.42 4617.53,-3707.03 5193.28,-3658.68 5383.59,-3642.71"/>
<polygon fill="#e50505" stroke="black" points="5384.03,-3646.19 5393.7,-3641.87 5383.44,-3639.21 5384.03,-3646.19"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge510" 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="M3375.95,-3969.18C3380.1,-3953.03 3386.6,-3932.78 3396,-3916.38"/>
<path fill="none" stroke="black" d="M3396,-3914.38C3444.15,-3830.35 3426.94,-3796.17 3470,-3709.42 3495.8,-3657.45 3501.61,-3642.48 3541,-3599.88 3601.11,-3534.87 4672.45,-2729.16 4922.24,-2541.57"/>
<polygon fill="#e50505" stroke="black" points="4924.54,-2544.22 4930.43,-2535.42 4920.33,-2538.63 4924.54,-2544.22"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge511" 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="M3420.06,-3980.74C3436.14,-3976.14 3454.15,-3971.77 3471,-3969.38 3844.64,-3916.55 6490.52,-3959.03 6867,-3933.38 7327.78,-3902 7439.23,-3856.6 7898,-3803.4 7973.47,-3794.65 8179.52,-3815.9 8238,-3767.4 8357.03,-3668.68 8338,-3588.77 8338,-3434.13 8338,-3434.13 8338,-3434.13 8338,-3314.81 8338,-3261.43 8315.76,-3116.54 8274,-3083.3 8202.66,-3026.5 8150.11,-3094.35 8072,-3047.3 7953.21,-2975.74 7980.83,-2896.56 7880,-2801.35 7859.56,-2782.05 7848.88,-2784.17 7828,-2765.35 7815.83,-2754.37 7815.63,-2748.9 7804,-2737.36"/>
<path fill="none" stroke="black" d="M7804,-2735.36C7788.67,-2719.01 7775.69,-2698.11 7765.71,-2679.09"/>
<polygon fill="#e50505" stroke="black" points="7768.7,-2677.25 7761.05,-2669.93 7762.46,-2680.43 7768.7,-2677.25"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge512" 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="M3307.09,-3997.37C2984.02,-3997.09 1519.12,-3992.55 1326,-3933.38 1125.34,-3871.9 1108.4,-3759.34 1032,-3563.88 962.38,-3385.76 965.13,-3332 951,-3141.28 949.1,-3115.58 948.23,-3108.92 951,-3083.3 954.13,-3054.35 969.83,-3048.01 965,-3019.3"/>
<path fill="none" stroke="black" d="M965,-3017.3C954.69,-2986.34 944.55,-2982 929,-2953.31 861.68,-2829.06 837.11,-2801.5 782,-2671.36 765.74,-2632.97 751.04,-2588.11 740.78,-2554.31"/>
<polygon fill="#e50505" stroke="black" points="744.11,-2553.21 737.88,-2544.64 737.4,-2555.23 744.11,-2553.21"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_tree -->
<g id="edge513" 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="M3307.11,-3994.92C3177.24,-3989.88 2869.96,-3978.11 2612,-3969.38 2546.9,-3967.18 1498.92,-3961.17 1440,-3933.38 1248.17,-3842.9 1216.48,-3760.92 1138,-3563.88 1078.55,-3414.63 1079,-3367.92 1079,-3207.27 1079,-3207.27 1079,-3207.27 1079,-3111.29 1079,-3037.51 1039.47,-3026.19 1028,-2953.31 1011.48,-2848.39 986.95,-2744.03 1048,-2582.27 1116.26,-2401.4 1162.3,-2357.94 1314,-2238.1 1421.27,-2153.35 1576.53,-2099.87 1652.57,-2077.16"/>
<polygon fill="#e50505" stroke="black" points="1653.72,-2080.47 1662.33,-2074.28 1651.74,-2073.75 1653.72,-2080.47"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_util -->
<g id="edge514" 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="M3421.26,-3981.41C3437.08,-3976.96 3454.65,-3972.5 3471,-3969.38 3619.4,-3941.11 3660.77,-3962.56 3809,-3933.38 3865.31,-3922.3 3876.61,-3908.02 3933,-3897.38 4177.58,-3851.26 4476.24,-3838.08 4591.46,-3834.58"/>
<polygon fill="#e50505" stroke="black" points="4591.82,-3838.07 4601.71,-3834.28 4591.61,-3831.07 4591.82,-3838.07"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge515" 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="M3421.71,-3981.5C3544.08,-3944.53 3861.59,-3852.13 4133,-3803.4 4508.84,-3735.93 4606.68,-3743.57 4987,-3709.42 5216.41,-3688.82 5279.1,-3723.16 5504,-3673.42 5593.22,-3653.69 5608.99,-3627.8 5696,-3599.88 5756.36,-3580.51 5787.37,-3606.81 5834,-3563.88 5916.55,-3487.87 5870.66,-3427.97 5886,-3316.81"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application -->
<g id="edge516" 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="M5315,-1960.8C5268.11,-1909.24 5302.89,-1867.07 5256,-1815.5 5185.19,-1737.61 5143.47,-1745.71 5046,-1705.96 4994.84,-1685.09 4979.14,-1688.25 4927,-1669.96 4738.15,-1603.69 4697.12,-1570.75 4509,-1502.43 4208.65,-1393.36 3237.74,-1084.67 2999.94,-1009.27"/>
<polygon fill="#d10505" stroke="black" points="3000.74,-1005.86 2990.15,-1006.17 2998.62,-1012.53 3000.74,-1005.86"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge517" 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="M5912.5,-2806.13C5897.32,-2788.52 5877.67,-2763.03 5866,-2737.36"/>
<path fill="none" stroke="black" d="M5866,-2735.36C5850.83,-2702 5833.41,-2702.45 5814,-2671.36 5781.54,-2619.39 5771.32,-2605.61 5756,-2546.27 5709.09,-2364.61 5822.99,-2265.74 5695,-2128.56 5569.3,-1993.83 5441.81,-2096.48 5315,-1962.8"/>
<path fill="none" stroke="black" d="M5315,-1960.8C5261.9,-1903.13 5277.54,-1862.77 5215,-1815.5 5054.04,-1693.84 4972.49,-1744.48 4785,-1669.96 4619.13,-1604.03 4592.73,-1547.41 4420,-1502.43 4224.12,-1451.43 4163.09,-1512.52 3966,-1466.43 3624.84,-1386.66 3567.38,-1281.59 3234,-1173.82 3165.17,-1151.57 3085.2,-1132.07 3027.18,-1119.04"/>
<polygon fill="#d10505" stroke="black" points="3027.86,-1115.61 3017.34,-1116.84 3026.34,-1122.44 3027.86,-1115.61"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge518" 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="M5904.18,-2812.19C5897.02,-2808.39 5889.33,-2804.54 5882,-2801.35 5764.28,-2750.1 5706.06,-2770.12 5624,-2671.36 5558.75,-2592.84 5608.54,-2533.74 5541,-2457.17 5473.18,-2380.29 5432.78,-2386.7 5338,-2347.63 5179.05,-2282.12 5133.57,-2280.69 4967,-2238.1 4671.36,-2162.5 4584.65,-2191.57 4296,-2092.56 3921.12,-1963.96 2920.24,-1642.28 2688,-1321.13"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge519" 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="M5866,-2735.36C5847.63,-2688.11 5834.29,-2678.12 5828,-2627.82"/>
<path fill="none" stroke="black" d="M5828,-2625.82C5823.11,-2586.75 5797.9,-2584.63 5789,-2546.27 5774.6,-2484.19 5808,-2276.58 5808,-2275.87 5808,-2275.87 5808,-2275.87 5808,-2164.33 5808,-1806.09 5462.32,-1872.2 5145,-1705.96 4795.4,-1522.8 4694.27,-1498.53 4314,-1392.9 4228.66,-1369.19 4201.71,-1385.82 4118,-1356.9 4051.57,-1333.94 4041.71,-1313.04 3978,-1283.36 3939.7,-1265.51 3927.48,-1266.88 3890,-1247.36 3529.92,-1059.83 3130.38,-773.55 3002.07,-679.48"/>
<polygon fill="#d10505" stroke="black" points="3003.79,-676.4 2993.66,-673.3 2999.65,-682.04 3003.79,-676.4"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_console -->
<g id="edge520" 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="M5903.83,-2812.54C5873.82,-2795.27 5827.03,-2766.81 5790,-2737.36"/>
<path fill="none" stroke="black" d="M5790,-2735.36C5725.23,-2683.85 5661.33,-2707.21 5638,-2627.82"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_email -->
<g id="edge521" 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="M5904.73,-2811.62C5897.49,-2807.8 5889.62,-2804.08 5882,-2801.35 5804.39,-2773.5 5774.52,-2800.65 5700,-2765.35 5601.61,-2718.74 5530.06,-2606.02 5496.8,-2544.5"/>
<polygon fill="#d10505" stroke="black" points="5499.77,-2542.63 5491.98,-2535.44 5493.59,-2545.91 5499.77,-2542.63"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_html -->
<g id="edge522" 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="M5866,-2735.36C5841.77,-2682.08 5904.05,-2672.37 5942,-2627.82"/>
<path fill="none" stroke="black" d="M5942,-2625.82C5945.01,-2622.28 5967.62,-2578.33 5985.12,-2543.95"/>
<polygon fill="#d10505" stroke="black" points="5988.26,-2545.49 5989.67,-2534.99 5982.02,-2542.32 5988.26,-2545.49"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge523" 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="M5962.39,-2810.62C5968.37,-2807.2 5974.76,-2803.91 5981,-2801.35 6008.72,-2789.98 6891.95,-2576.02 7134.12,-2517.44"/>
<polygon fill="#d10505" stroke="black" points="7135.26,-2520.77 7144.15,-2515.01 7133.61,-2513.96 7135.26,-2520.77"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report -->
<g id="edge524" 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="M5828,-2625.82C5824.52,-2600.21 5826.1,-2571.4 5828.74,-2548.1"/>
<polygon fill="#d10505" stroke="black" points="5832.22,-2548.49 5829.97,-2538.14 5825.27,-2547.63 5832.22,-2548.49"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge525" 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="M5828,-2625.82C5822.21,-2583.23 5861.51,-2583.49 5883,-2546.27 5949.47,-2431.11 5987.84,-2406.8 6011,-2275.87"/>
<path fill="none" stroke="black" d="M6011,-2273.87C6012.55,-2253.76 6012.79,-2231.48 6012.55,-2212.44"/>
<polygon fill="#d10505" stroke="black" points="6016.05,-2212.16 6012.38,-2202.23 6009.05,-2212.28 6016.05,-2212.16"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_telegram -->
<g id="edge526" 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="M5958.12,-2807.49C6022.38,-2749.5 6195.01,-2595.23 6227,-2582.27 6441.3,-2495.45 6523.24,-2608.25 6746,-2546.27 6761.19,-2542.04 6776.81,-2534.95 6790.46,-2527.71"/>
<polygon fill="#d10505" stroke="black" points="6792.49,-2530.58 6799.57,-2522.7 6789.12,-2524.45 6792.49,-2530.58"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_repository_executor -->
<g id="edge527" 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="M5790,-2735.36C5574.06,-2563.63 5836.81,-2339.52 5659,-2128.56 5654.97,-2123.77 4806.55,-1856.16 4801,-1853.27"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge528" 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="M5942,-2625.82C5964.38,-2599.54 6045,-2553.09 6095.61,-2525.38"/>
<polygon fill="#d10505" stroke="black" points="6097.58,-2528.29 6104.69,-2520.43 6094.23,-2522.15 6097.58,-2528.29"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge529" 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="M5944.67,-2802.27C5967.34,-2748.92 6025.88,-2631.16 6118,-2582.27 6204.19,-2536.53 6492.01,-2514.12 6620.78,-2506.19"/>
<polygon fill="#d10505" stroke="black" points="6621.12,-2509.67 6630.89,-2505.58 6620.7,-2502.69 6621.12,-2509.67"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge530" 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="M5961.24,-2809.93C5967.46,-2806.42 5974.24,-2803.27 5981,-2801.35 6200.54,-2738.85 7809.09,-2798.01 8035,-2765.35 8190.16,-2742.91 8235.88,-2743.64 8375,-2671.36 8452.64,-2631.03 8459.64,-2602.1 8527,-2546.27 8633.08,-2458.35 8658.24,-2434.73 8765,-2347.63 8804.64,-2315.29 8854.19,-2327.02 8855,-2275.87"/>
<path fill="none" stroke="black" d="M8855,-2273.87C8853.19,-2253.75 8851.84,-2231.47 8850.88,-2212.43"/>
<polygon fill="#d10505" stroke="black" points="8854.37,-2212.04 8850.39,-2202.22 8847.37,-2212.37 8854.37,-2212.04"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node124" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db2f2f" stroke="black" cx="8144" cy="-3738.41" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="8144" y="-3746.91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8144" y="-3735.91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8144" y="-3724.91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign_settings</text>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge531" 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="M8182.76,-3718.7C8191.55,-3715.1 8200.96,-3711.74 8210,-3709.42 8830.08,-3550.31 9036.51,-3768.77 9643,-3563.88 9777.87,-3518.32 9793.1,-3468.19 9916,-3396.36 10014.78,-3338.62 10035.96,-3316.62 10141,-3271.26 10569.16,-3086.38 10775.27,-3242.69 11141,-2953.31 11175.41,-2926.09 11547,-2319.74 11547,-2275.87 11547,-2275.87 11547,-2275.87 11547,-1960.8 11547,-1858.58 11606.01,-1844.53 11623,-1743.73"/>
<path fill="none" stroke="black" d="M11623,-1741.73C11632.2,-1649.16 11608.87,-1624.37 11623,-1532.43"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge532" 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="M8135.36,-3709.62C8124.88,-3675.48 8107.03,-3615.72 8094,-3563.88 8061.56,-3434.86 8130.91,-3359.1 8031,-3271.26 7959.15,-3208.09 7686.79,-3279.57 7602,-3235.26 7572.35,-3219.77 7581.43,-3196.42 7554,-3177.28 7514.58,-3149.77 7491.66,-3168.45 7452,-3141.28 7438.48,-3132.02 7437.45,-3126.68 7428,-3113.29"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge533" 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="M8101.7,-3721.21C7965.21,-3668.95 7537.27,-3505.07 7397.01,-3451.36"/>
<polygon fill="#db2f2f" stroke="black" points="7398,-3448 7387.41,-3447.69 7395.5,-3454.53 7398,-3448"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node125" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="5582" cy="-2830.34" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="5582" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5582" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5582" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge534" 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="M5566.6,-2801.82C5555.62,-2783.03 5540.01,-2757.91 5524,-2737.36"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node126" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="9391" cy="-2924.32" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="9391" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9391" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9391" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_settings</text>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge535" 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="M9385.58,-2895.33C9379.57,-2858.14 9372.94,-2790.89 9391,-2737.36"/>
</g>
<!-- ahriman_models_user -->
<g id="node127" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b80909" stroke="black" cx="7604" cy="-2830.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7604" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7604" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7604" y="-2816.84" 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="edge536" 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="M7587.19,-2804.1C7574.33,-2785.24 7555.82,-2759.09 7538,-2737.36"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge537" 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="M7638.15,-2816.7C7654.78,-2811.07 7675.19,-2804.92 7694,-2801.35 7906.79,-2760.92 7968.08,-2810.07 8180,-2765.35 8301.86,-2739.63 8334.66,-2731.01 8444,-2671.36 8469.43,-2657.49 9242.99,-2045.06 9270,-2034.57 9418.11,-1977.05 9914.7,-1965.54 10072.46,-1963.32"/>
<polygon fill="#b80909" stroke="black" points="10072.84,-1966.81 10082.79,-1963.18 10072.74,-1959.81 10072.84,-1966.81"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge538" 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="M7638.2,-2816.96C7654.84,-2811.39 7675.25,-2805.21 7694,-2801.35 7768.63,-2785.96 7982.05,-2820.14 8035,-2765.35 8063.34,-2736.02 8032.26,-2619.9 8048,-2582.27 8053.77,-2568.48 8062.93,-2555.43 8072.74,-2544.04"/>
<polygon fill="#b80909" stroke="black" points="8075.51,-2546.2 8079.61,-2536.43 8070.31,-2541.51 8075.51,-2546.2"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge539" 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="M7565.61,-2827.86C7451.75,-2823.49 7105.92,-2810.41 6819,-2801.35 5903.45,-2772.44 3607.31,-2789.86 2699,-2671.36 2453,-2639.27 2379.54,-2651.76 2155,-2546.27 2148.94,-2543.42 2142.91,-2539.85 2137.17,-2535.99"/>
<polygon fill="#b80909" stroke="black" points="2139.17,-2533.11 2128.99,-2530.16 2135.11,-2538.81 2139.17,-2533.11"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge540" 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="M7565.88,-2827.04C7476.97,-2821.1 7258.76,-2803 7197,-2765.35 7110.9,-2712.86 7135.62,-2652.23 7063,-2582.27 6991.52,-2513.41 6972.21,-2488.41 6878,-2457.17 6712.04,-2402.14 6265.32,-2444.22 6092,-2421.17 5942.62,-2401.31 5909.97,-2370.39 5761,-2347.63 5463.49,-2302.19 5102.47,-2283.6 4967.93,-2277.92"/>
<polygon fill="#b80909" stroke="black" points="4968.02,-2274.43 4957.88,-2277.51 4967.73,-2281.42 4968.02,-2274.43"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node128" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="10166" cy="-2924.32" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="10166" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10166" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="10166" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_access</text>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_ahriman -->
<g id="edge541" 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="M10214.96,-2916.11C10334.73,-2896.34 10647.31,-2831.7 10848,-2671.36 10946.88,-2592.37 11445.66,-1853.29 11509,-1743.73"/>
<path fill="none" stroke="black" d="M11509,-1741.73C11542.27,-1641.16 11604.17,-1636.67 11623,-1532.43"/>
<path fill="none" stroke="black" d="M11623,-1530.43C11657.33,-1241.19 11583.37,-1165.14 11611,-875.19"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge542" 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="M10219,-2383.4C10263.47,-2266.1 10415.39,-2410.99 10492,-2311.63 10523.15,-2271.23 10560.81,-2140.83 10485,-2034.57 10459.02,-1998.16 10430.6,-2019.4 10391,-1998.57 10386.45,-1996.18 10381.82,-1993.46 10377.29,-1990.62"/>
<polygon fill="#f91010" stroke="black" points="10379.05,-1987.59 10368.76,-1985.05 10375.22,-1993.45 10379.05,-1987.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge543" 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="M10121,-2062.57C10118.25,-2045.14 10117.68,-2025.79 10118,-2008.8"/>
<polygon fill="#f91010" stroke="black" points="10121.51,-2008.67 10118.31,-1998.57 10114.51,-2008.46 10121.51,-2008.67"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge544" 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="M10117.32,-2915.37C9928.01,-2884.68 9222.46,-2772.41 8638,-2707.36 8540.06,-2696.46 8276.19,-2728.65 8196,-2671.36 8178.82,-2659.09 8193.92,-2640.45 8177,-2627.82"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge545" 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="M10115.07,-2920.97C9998.92,-2915.67 9705.53,-2902.7 9460,-2895.33 9263.83,-2889.44 7887.73,-2890.78 7694,-2859.33 7678.51,-2856.82 7662,-2852.26 7647.41,-2847.54"/>
<polygon fill="#f91010" stroke="black" points="7648.24,-2844.13 7637.65,-2844.27 7646.02,-2850.77 7648.24,-2844.13"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge546" 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="M10210.67,-2910.34C10246.06,-2899.18 10296.15,-2881.42 10337,-2859.33 10453.13,-2796.54 10480.12,-2770.76 10567,-2671.36 10656.31,-2569.2 10669.62,-2535.96 10742,-2421.17 10884.44,-2195.29 11220.18,-1611.73 11300,-1356.9 11334.38,-1247.14 11320.8,-1214.49 11345,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge547" 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="M10121,-2164.33C10108.35,-2121.83 10127.92,-2108.36 10121,-2064.57"/>
<path fill="none" stroke="black" d="M10121,-2062.57C10115.49,-2027.71 10088.24,-2030.86 10074,-1998.57 10047.43,-1938.32 10044.21,-1919.12 10045,-1853.27"/>
<path fill="none" stroke="black" d="M10045,-1851.27C10044.12,-1792.75 9984.88,-1800.06 9969,-1743.73"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge548" 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="M10202.35,-2903.96C10271.01,-2866.13 10421.94,-2776.78 10523,-2671.36 10601.37,-2589.62 10584.68,-2540.84 10661,-2457.17 10678.5,-2437.99 10690.48,-2441.2 10707,-2421.17 10741.79,-2378.99 10745.23,-2363.34 10763,-2311.63 10799.15,-2206.43 10803,-2175.8 10803,-2064.57 10803,-2064.57 10803,-2064.57 10803,-1741.73 10803,-1676.59 10804.86,-1659.25 10822,-1596.42 10852.45,-1484.79 10888.38,-1466.98 10924,-1356.9 10944.39,-1293.89 10948.31,-1277.24 10957,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge549" 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="M10219,-2829.34C10221.24,-2824.26 10497.14,-2550.25 10501,-2546.27 10538.87,-2507.19 10540.53,-2488.54 10585,-2457.17 10617.53,-2434.23 10638.76,-2449.22 10667,-2421.17 10821.06,-2268.18 10765,-1998.91 10765,-1743.73 10765,-1743.73 10765,-1743.73 10765,-1632.19 10765,-1428.25 10871.81,-1358.82 10786,-1173.82 10721.57,-1034.92 10557.18,-937.22 10477.56,-896.43"/>
<polygon fill="#f91010" stroke="black" points="10478.78,-893.13 10468.28,-891.74 10475.62,-899.38 10478.78,-893.13"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge550" 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="M10045,-1851.27C10036.41,-1786.37 10037.17,-1769.38 10021,-1705.96 9959.97,-1466.65 9819.58,-1417.28 9861,-1173.82 9872.5,-1106.25 9899.4,-1095.65 9912,-1028.28 9918.1,-995.66 9919.44,-958.47 9919.21,-928.91"/>
<polygon fill="#f91010" stroke="black" points="9922.71,-928.74 9919.07,-918.79 9915.71,-928.84 9922.71,-928.74"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge551" 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="M10045,-1851.27C10043.87,-1776.03 10176.03,-1605.72 10159,-1532.43"/>
<path fill="none" stroke="black" d="M10159,-1530.43C10154.77,-1491.36 10124.88,-1495.1 10098,-1466.43 10083.2,-1450.66 10077.44,-1448.36 10065,-1430.67"/>
<path fill="none" stroke="black" d="M10065,-1428.67C10059.45,-1420.77 10019.33,-1365.96 10016,-1356.9 9976.7,-1249.99 9953.03,-1210.12 9989,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge552" 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="M10144.69,-2897.84C10108.06,-2853.44 10031.84,-2758.31 9977,-2671.36 9902.68,-2553.54 9457.46,-1685.42 9396,-1560.42 9279.73,-1323.96 9151.1,-1036.07 9101.3,-923.53"/>
<polygon fill="#f91010" stroke="black" points="9104.39,-921.88 9097.15,-914.15 9097.99,-924.71 9104.39,-921.88"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge553" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10156.38,-2895.63C10119.78,-2791.63 9983.18,-2415.59 9824,-2128.56 9684.42,-1876.86 9625.41,-1828.35 9455,-1596.42 9443,-1580.08 9437.12,-1577.98 9427,-1560.42 9404.51,-1521.38 9401.94,-1509.59 9389,-1466.43 9323.43,-1247.67 9192.66,-1127.52 9342,-954.74 9414.26,-871.14 9488.33,-966.43 9588,-918.74 9592.06,-916.8 9596.01,-914.38 9599.79,-911.69"/>
<polygon fill="#f91010" stroke="black" points="9602.05,-914.36 9607.74,-905.43 9597.72,-908.86 9602.05,-914.36"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge554" 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="M10219,-2829.34C10284.51,-2643.23 10150.01,-2570.25 10219,-2385.4"/>
<path fill="none" stroke="black" d="M10219,-2383.4C10236.58,-2345.41 10177.22,-2348.83 10158,-2311.63 10127.41,-2252.43 10140.02,-2230.2 10121,-2166.33"/>
<path fill="none" stroke="black" d="M10121,-2164.33C10065.15,-2032.82 10010.74,-2020.59 9955,-1889.03 9839.89,-1617.39 9823.1,-1539.92 9785,-1247.36 9774.49,-1166.67 9776.94,-1145.25 9785,-1064.28 9789.67,-1017.33 9800.71,-964.78 9809.7,-927.01"/>
<polygon fill="#f91010" stroke="black" points="9813.11,-927.8 9812.05,-917.26 9806.3,-926.16 9813.11,-927.8"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge555" 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="M10065,-1428.67C9967.44,-1265.86 10045.98,-1026.08 10087.45,-924.04"/>
<polygon fill="#f91010" stroke="black" points="10090.76,-925.18 10091.34,-914.6 10084.29,-922.51 10090.76,-925.18"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge556" 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="M10184.19,-2897.1C10195.76,-2879.29 10210.16,-2854.8 10219,-2831.34"/>
<path fill="none" stroke="black" d="M10219,-2829.34C10262.15,-2714.8 10067.45,-2428.48 10031,-2311.63 10005.95,-2231.33 10020.72,-2203.74 9983,-2128.56 9866.06,-1895.47 9769.77,-1881.29 9617,-1669.96 9594.13,-1638.33 9591.89,-1628.03 9569,-1596.42 9525.62,-1536.48 9496.28,-1533.48 9465,-1466.43 9389.42,-1304.42 9397.66,-1225.94 9474,-1064.28 9499.3,-1010.7 9501.61,-988.94 9550,-954.74 9599.66,-919.64 9628.83,-948.25 9682,-918.74 9685.88,-916.59 9689.69,-914.05 9693.36,-911.29"/>
<polygon fill="#f91010" stroke="black" points="9695.58,-914 9701.14,-904.99 9691.17,-908.56 9695.58,-914"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge557" 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="M10159,-1530.43C10107.17,-1294.61 10311.79,-1221.42 10235,-992.51"/>
<path fill="none" stroke="black" d="M10235,-990.51C10227.62,-970.41 10221.62,-947.62 10217.09,-927.64"/>
<polygon fill="#f91010" stroke="black" points="10220.49,-926.79 10214.93,-917.78 10213.66,-928.3 10220.49,-926.79"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge558" 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="M10219,-2829.34C10314.67,-2630.7 10368.14,-2586.09 10547,-2457.17 10580.28,-2433.19 10601.19,-2448.26 10632,-2421.17 10660.44,-2396.18 10654.63,-2379.55 10675,-2347.63 10685.48,-2331.21 10694.18,-2330.22 10700,-2311.63 10721.18,-2243.99 10672.28,-2074.13 10665,-2034.57 10612.37,-1748.74 10609.98,-1674.73 10539,-1392.9 10518.4,-1311.11 10497.02,-1294.75 10483,-1211.59"/>
</g>
<!-- ahriman_models_user_identity -->
<g id="node129" class="node">
<title>ahriman_models_user_identity</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="11036" cy="-1210.59" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="11036" y="-1219.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11036" y="-1208.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="11036" y="-1197.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_identity</text>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge559" 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="M11051.74,-1182.63C11080.67,-1134.22 11145.7,-1030.57 11215,-954.74 11230.24,-938.06 11248.93,-921.59 11265.61,-908"/>
<polygon fill="#ce3b3b" stroke="black" points="11268,-910.57 11273.61,-901.58 11263.62,-905.11 11268,-910.57"/>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login -->
<g id="edge560" 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="M10994.75,-1193.59C10843.52,-1134.94 10326.52,-934.28 10292,-918.74 10278.24,-912.54 10263.52,-905.25 10250.27,-898.42"/>
<polygon fill="#ce3b3b" stroke="black" points="10251.84,-895.3 10241.35,-893.79 10248.61,-901.51 10251.84,-895.3"/>
</g>
<!-- ahriman_version -->
<g id="node130" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="10653" cy="-2274.87" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="10653" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10653" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge561" 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="M10666.25,-2254.77C10727.09,-2167.29 10986.44,-1796.38 11213,-1502.43 11264.01,-1436.26 11279.53,-1421.92 11332,-1356.9 11422.94,-1244.21 11491.75,-1240.25 11535,-1102.05"/>
<path fill="none" stroke="black" d="M11535,-1100.05C11549.5,-995.56 11594.55,-979.39 11611,-875.19"/>
<path fill="none" stroke="black" d="M11611,-873.19C11623.54,-728.57 11601.42,-691.42 11611,-546.57"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge562" 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="M10619.74,-2264.33C10587.42,-2255.58 10536.8,-2243.22 10492,-2238.1 9625.17,-2138.94 7434.09,-2289.56 6566,-2202.1 6395.28,-2184.9 6357.73,-2145.65 6187,-2128.56 5685.49,-2078.34 2154.89,-2103.74 1651,-2092.56 1385.03,-2086.66 1067.46,-2072.97 940.03,-2067.2"/>
<polygon fill="#e72222" stroke="black" points="939.89,-2063.69 929.74,-2066.73 939.57,-2070.68 939.89,-2063.69"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_index -->
<g id="edge563" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10651,-2062.57C10616.63,-1921 10727,-1889.4 10727,-1743.73 10727,-1743.73 10727,-1743.73 10727,-1632.19 10727,-1543.28 10795.29,-1543.86 10839,-1466.43 10854.34,-1439.26 10950.08,-1242.02 10957,-1211.59"/>
<path fill="none" stroke="black" d="M10957,-1209.59C10963.27,-1162.2 10930.31,-1141.7 10957,-1102.05"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge564" 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="M10655.73,-2253.6C10660.19,-2215.81 10667.02,-2132.28 10651,-2064.57"/>
<path fill="none" stroke="black" d="M10651,-2062.57C10639.41,-2021.7 10609.54,-2029.1 10580,-1998.57 10550.27,-1967.85 10554.65,-1947.04 10518,-1925.03 10452.53,-1885.73 10417.07,-1925.54 10350,-1889.03 9995.95,-1696.3 9863.16,-1619.82 9709,-1247.36 9664.57,-1140.01 9692.3,-1000.16 9712.83,-926.21"/>
<polygon fill="#e72222" stroke="black" points="9716.3,-926.8 9715.67,-916.23 9709.57,-924.89 9716.3,-926.8"/>
</g>
<!-- ahriman_web -->
<g id="node131" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="9706" cy="-545.57" rx="41.59" ry="18"/>
<text text-anchor="middle" x="9706" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.web</text>
</g>
<!-- ahriman_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge565" 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="M9700.29,-527.74C9694.12,-506.12 9687.45,-468.57 9706,-444.81"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node132" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="10749" cy="-647.34" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="10749" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10749" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10749" 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="edge566" 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="M10717.01,-624.87C10707.14,-619.25 10695.97,-613.85 10685,-610.57 10527.06,-563.25 10012.88,-550.27 9852.34,-547.33"/>
<polygon fill="#c82323" stroke="black" points="9852.34,-543.83 9842.28,-547.15 9852.22,-550.83 9852.34,-543.83"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge567" 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="M11309,-837.35C11309,-814.59 11309,-784.5 11309,-757.87"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node134" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="10844" cy="-756.87" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="10844" y="-770.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10844" y="-759.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10844" y="-748.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="10844" 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="edge568" 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="M10911.14,-754.07C11043.48,-748.78 11324.05,-728.13 11309,-648.34"/>
<path fill="none" stroke="black" d="M11309,-646.34C11295.15,-572.89 10108.71,-551.1 9852.44,-547.24"/>
<polygon fill="#913030" stroke="black" points="9852.38,-543.74 9842.33,-547.09 9852.28,-550.74 9852.38,-543.74"/>
</g>
<!-- ahriman_web_routes -->
<g id="node135" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9804" cy="-647.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9804" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9804" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9804" 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="edge569" 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="M9804,-618.28C9804,-607.97 9804,-596.12 9804,-585.05"/>
<polygon fill="#732626" stroke="black" points="9807.5,-584.76 9804,-574.76 9800.5,-584.76 9807.5,-584.76"/>
</g>
<!-- ahriman_web_views -->
<g id="node136" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="9804" cy="-756.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9804" y="-765.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9804" y="-754.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9804" y="-743.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge570" 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="M9804,-727.62C9804,-715.02 9804,-700 9804,-686.43"/>
<polygon fill="#f91010" stroke="black" points="9807.5,-686.4 9804,-676.4 9800.5,-686.4 9807.5,-686.4"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge571" 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="M9902.91,-986.44C10066.14,-968.91 10709.02,-899.89 10890.85,-880.36"/>
<polygon fill="#950303" stroke="black" points="10891.35,-883.83 10900.91,-879.28 10890.6,-876.87 10891.35,-883.83"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge572" 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="M9903.27,-988.22C10008.48,-981.46 10299.97,-959.46 10386,-918.74 10390.07,-916.81 10394.03,-914.41 10397.8,-911.72"/>
<polygon fill="#950303" stroke="black" points="10400.06,-914.4 10405.77,-905.48 10395.74,-908.9 10400.06,-914.4"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge573" 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="M9879.9,-957.46C9884.73,-946.75 9890.19,-934.64 9895.41,-923.07"/>
<polygon fill="#950303" stroke="black" points="9898.6,-924.5 9899.52,-913.95 9892.22,-921.63 9898.6,-924.5"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge574" 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="M9896.04,-969.44C9915.92,-955.6 9942.01,-936.79 9964,-918.74 9967.43,-915.92 9970.93,-912.93 9974.4,-909.88"/>
<polygon fill="#950303" stroke="black" points="9976.79,-912.44 9981.9,-903.16 9972.12,-907.23 9976.79,-912.44"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge575" 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="M9826.93,-986.45C9736.37,-976.63 9501.15,-950.04 9306,-918.74 9244.01,-908.8 9172.98,-894.66 9127.36,-885.21"/>
<polygon fill="#950303" stroke="black" points="9127.96,-881.76 9117.46,-883.16 9126.54,-888.62 9127.96,-881.76"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge576" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9828.39,-980.58C9790.05,-969.19 9728.97,-948.22 9682,-918.74 9678.24,-916.38 9674.51,-913.7 9670.9,-910.85"/>
<polygon fill="#950303" stroke="black" points="9673.11,-908.14 9663.19,-904.42 9668.63,-913.52 9673.11,-908.14"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge577" 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="M9852.63,-956.53C9849.03,-946.67 9845.03,-935.68 9841.16,-925.05"/>
<polygon fill="#950303" stroke="black" points="9844.37,-923.63 9837.66,-915.43 9837.79,-926.03 9844.37,-923.63"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge578" 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="M9901.91,-980.98C9942.07,-969.67 10007.3,-948.54 10058,-918.74 10062.11,-916.32 10066.21,-913.56 10070.2,-910.63"/>
<polygon fill="#950303" stroke="black" points="10072.44,-913.33 10078.2,-904.44 10068.16,-907.79 10072.44,-913.33"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge579" 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="M9835.73,-967.73C9818.16,-953.86 9795.52,-935.62 9776,-918.74 9772.64,-915.84 9769.19,-912.78 9765.76,-909.69"/>
<polygon fill="#950303" stroke="black" points="9768.06,-907.05 9758.3,-902.92 9763.35,-912.23 9768.06,-907.05"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge580" 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="M9903.03,-987.42C9961.42,-981.35 10075.26,-964.26 10160,-918.74 10163.91,-916.64 10167.74,-914.14 10171.43,-911.41"/>
<polygon fill="#950303" stroke="black" points="10173.62,-914.13 10179.23,-905.14 10169.24,-908.67 10173.62,-914.13"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge581" 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="M9902.93,-987.2C9973.59,-980.25 10129.5,-961.1 10254,-918.74 10268.28,-913.88 10283.15,-906.97 10296.39,-900.09"/>
<polygon fill="#950303" stroke="black" points="10298.09,-903.15 10305.26,-895.35 10294.79,-896.97 10298.09,-903.15"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge582" 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="M10946.06,-837.81C10950.8,-802.6 10951.38,-749.68 10920,-720.1 10880.57,-682.95 10061.32,-656.02 9852.24,-649.74"/>
<polygon fill="#732626" stroke="black" points="9852.28,-646.24 9842.18,-649.43 9852.07,-653.23 9852.28,-646.24"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node139" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="9353" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9353" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9353" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9353" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9353" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge583" 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="M9377.05,-845.26C9383.82,-839.09 9391.65,-833.31 9400,-829.64 9496.75,-787.19 9914.2,-853.84 9870,-757.87"/>
<path fill="none" stroke="black" d="M9870,-755.87C9858.05,-729.93 9841.16,-702.52 9827.45,-681.87"/>
<polygon fill="#c24747" stroke="black" points="9830.28,-679.8 9821.8,-673.45 9824.47,-683.71 9830.28,-679.8"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge584" 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="M10405.76,-842.91C10399.74,-837.75 10393.04,-832.98 10386,-829.64 10281.39,-780.05 9918.43,-863.03 9870,-757.87"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge585" 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="M9901.77,-833.32C9892.96,-810.94 9881.4,-782.62 9870,-757.87"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge586" 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="M9981.8,-845.34C9975.99,-840.03 9969.87,-834.59 9964,-829.64 9923.79,-795.79 9891.99,-805.62 9870,-757.87"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge587" 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="M9116.9,-861.73C9238.5,-823.96 9626.43,-703.48 9759.05,-662.3"/>
<polygon fill="#732626" stroke="black" points="9760.37,-665.55 9768.89,-659.24 9758.3,-658.86 9760.37,-665.55"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node144" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="9447" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9447" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9447" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9447" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9447" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge588" 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="M9471.1,-845.39C9477.88,-839.21 9485.69,-833.4 9494,-829.64 9639.36,-764.05 9718.62,-882.57 9851,-793.64 9865.94,-783.61 9877.53,-774.22 9870,-757.87"/>
</g>
<!-- ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes -->
<g id="edge589" class="edge">
<title>ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9662.69,-843.09C9668.63,-837.97 9675.19,-833.18 9682,-829.64 9761.39,-788.46 9907.41,-839.11 9870,-757.87"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge590" 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="M9849.95,-842.04C9866.75,-818.65 9882.93,-785.95 9870,-757.87"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge591" 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="M10078.18,-843.99C10071.8,-838.8 10064.91,-833.74 10058,-829.64 9981.09,-783.99 9907.41,-839.11 9870,-757.87"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge592" 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="M9757.44,-844.34C9763.31,-839.11 9769.65,-833.96 9776,-829.64 9819.46,-800.08 9891.99,-805.62 9870,-757.87"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node149" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="9541" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9541" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9541" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9541" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9541" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge593" 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="M9565.19,-845.59C9571.97,-839.41 9579.75,-833.54 9588,-829.64 9704.92,-774.36 9924.1,-875.34 9870,-757.87"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge594" 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="M10179.21,-843.27C10173.28,-838.13 10166.75,-833.29 10160,-829.64 10043.16,-766.58 9925.54,-878.48 9870,-757.87"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge595" 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="M10310.35,-844.68C10303.21,-838.91 10295.23,-833.45 10287,-829.64 10201.68,-790.12 9909.34,-843.28 9870,-757.87"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge596" 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="M9776.28,-525.55C9742.95,-501.57 9693,-461.46 9706,-444.81"/>
</g>
<!-- aioauthclient -->
<g id="node153" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b67b53" stroke="black" points="10622.5,-2402.4 10619.5,-2406.4 10598.5,-2406.4 10595.5,-2402.4 10551.5,-2402.4 10551.5,-2366.4 10622.5,-2366.4 10622.5,-2402.4"/>
<text text-anchor="middle" x="10587" 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="edge597" 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="M10588.2,-2366.2C10589.4,-2344.91 10590.62,-2307.59 10587,-2275.87"/>
</g>
<!-- aiohttp -->
<g id="node154" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#f9c806" stroke="black" points="10413,-1549.43 10410,-1553.43 10389,-1553.43 10386,-1549.43 10359,-1549.43 10359,-1513.43 10413,-1513.43 10413,-1549.43"/>
<text text-anchor="middle" x="10386" 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="edge598" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10525,-1428.67C10558.42,-1381.85 10557.68,-1363.11 10597,-1321.13"/>
<path fill="none" stroke="black" d="M10597,-1319.13C10768.99,-1135.49 10760.83,-799.73 10752.56,-686.66"/>
<polygon fill="#f9c806" stroke="black" points="10756.03,-686.12 10751.77,-676.42 10749.05,-686.67 10756.03,-686.12"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge599" 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="M10825,-1428.67C10834.26,-1426.05 11156.31,-1362.69 11164,-1356.9 11178.38,-1346.07 11170.81,-1334.38 11183,-1321.13"/>
<path fill="none" stroke="black" d="M11183,-1319.13C11195.19,-1305.88 11191.5,-1297.98 11202,-1283.36 11227.09,-1248.4 11245.49,-1248.86 11267,-1211.59"/>
<path fill="none" stroke="black" d="M11267,-1209.59C11267.46,-1208.79 11344.81,-1102.95 11345,-1102.05"/>
<path fill="none" stroke="black" d="M11345,-1100.05C11355.09,-1053.16 11368.75,-1038.15 11354,-992.51"/>
<path fill="none" stroke="black" d="M11354,-990.51C11346.26,-966.57 11336.19,-940.41 11327.54,-919.06"/>
<polygon fill="#f9c806" stroke="black" points="11330.7,-917.55 11323.68,-909.62 11324.22,-920.2 11330.7,-917.55"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge600" 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="M10597,-1319.13C10619.31,-1296.45 10629.7,-1295.74 10659,-1283.36 10713.04,-1260.52 10742.54,-1286.77 10786,-1247.36 10837.39,-1200.75 10843,-1171.42 10843,-1102.05 10843,-1102.05 10843,-1102.05 10843,-990.51 10843,-925.74 10843.39,-850.82 10843.69,-803.89"/>
<polygon fill="#f9c806" stroke="black" points="10847.19,-803.76 10843.75,-793.74 10840.19,-803.72 10847.19,-803.76"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge601" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10273,-990.51C10230.07,-932.72 10303.17,-882.23 10254,-829.64 10135.42,-702.82 9942.63,-915.57 9870,-757.87"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge602" 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="M10386.37,-1513.09C10386.1,-1492.28 10383.29,-1456.89 10369,-1430.67"/>
<path fill="none" stroke="black" d="M10369,-1428.67C10315.32,-1330.16 10223.97,-1413.31 10127,-1356.9 9997.99,-1281.85 9915.35,-1115.09 9881.92,-1035.89"/>
<polygon fill="#f9c806" stroke="black" points="9884.97,-1034.11 9877.9,-1026.22 9878.51,-1036.8 9884.97,-1034.11"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge603" 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="M10445,-1319.13C10462.85,-1284.01 10484.85,-1284.83 10497,-1247.36 10522.09,-1169.95 10510.22,-1144.57 10497,-1064.28 10488.89,-1014.99 10469.62,-961.27 10454.34,-923.73"/>
<polygon fill="#f9c806" stroke="black" points="10457.4,-921.97 10450.35,-914.07 10450.93,-924.65 10457.4,-921.97"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge604" 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="M10369,-1428.67C10354.5,-1400.75 10083.53,-974.45 10059,-954.74 10023.8,-926.46 10002.38,-942.52 9964,-918.74 9960.23,-916.4 9956.49,-913.74 9952.87,-910.9"/>
<polygon fill="#f9c806" stroke="black" points="9955.08,-908.19 9945.15,-904.48 9950.6,-913.57 9955.08,-908.19"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge605" 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="M10369,-1428.67C10346.97,-1386.25 10380.02,-1367.63 10369,-1321.13"/>
<path fill="none" stroke="black" d="M10369,-1319.13C10359.73,-1280.02 10337.78,-1279.75 10314,-1247.36 10278.78,-1199.39 10268.64,-1188.22 10237,-1137.82 10212.24,-1098.37 10169.08,-986.48 10135,-954.74 10107.36,-928.99 10089.34,-939.83 10058,-918.74 10054.32,-916.26 10050.64,-913.5 10047.06,-910.6"/>
<polygon fill="#f9c806" stroke="black" points="10049.29,-907.9 10039.4,-904.09 10044.76,-913.24 10049.29,-907.9"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge606" 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="M10358.82,-1526.86C10257.27,-1513.51 9905.77,-1467.28 9903,-1466.43 9712.2,-1407.88 9668.64,-1369.76 9511,-1247.36 9473.37,-1218.14 9469.89,-1203.97 9433,-1173.82 9411.52,-1156.26 9403.83,-1154.94 9382,-1137.82 9283.06,-1060.2 9173.07,-961.06 9117.11,-909.63"/>
<polygon fill="#f9c806" stroke="black" points="9119.3,-906.9 9109.58,-902.7 9114.56,-912.05 9119.3,-906.9"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge607" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10358.76,-1525.25C10275.34,-1508.73 10017.25,-1452.68 9823,-1356.9 9709.84,-1301.1 9417.9,-1140.38 9360,-1028.28 9345,-999.24 9338.77,-979.59 9360,-954.74 9426.64,-876.75 9495.71,-963.54 9588,-918.74 9592.05,-916.77 9595.99,-914.34 9599.76,-911.64"/>
<polygon fill="#f9c806" stroke="black" points="9602.03,-914.31 9607.71,-905.37 9597.7,-908.81 9602.03,-914.31"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge608" 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="M10369,-1428.67C10344.89,-1381.96 10312.81,-1393.41 10275,-1356.9 10108.67,-1196.3 10126.86,-1097.51 9945,-954.74 9915.92,-931.91 9900.57,-939.54 9870,-918.74 9866.33,-916.24 9862.66,-913.47 9859.09,-910.56"/>
<polygon fill="#f9c806" stroke="black" points="9861.32,-907.86 9851.44,-904.04 9856.78,-913.19 9861.32,-907.86"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge609" 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="M10369,-1319.13C10341.74,-1157.35 10274.03,-1137.36 10197,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge610" 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="M10369,-1428.67C10333.19,-1357.62 10271.25,-1400.95 10205,-1356.9 10087.44,-1278.73 10051.25,-1256.63 9975,-1137.82 9928.52,-1065.4 9975.02,-1013.34 9912,-954.74 9866.21,-912.16 9830.78,-948.88 9776,-918.74 9772.11,-916.6 9768.29,-914.07 9764.62,-911.32"/>
<polygon fill="#f9c806" stroke="black" points="9766.81,-908.59 9756.83,-905.03 9762.41,-914.04 9766.81,-908.59"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge611" 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="M10369,-1428.67C10350.84,-1393.71 10398.47,-1389.2 10421,-1356.9 10431.95,-1341.19 10436.94,-1338.49 10445,-1321.13"/>
<path fill="none" stroke="black" d="M10445,-1319.13C10465.32,-1275.38 10460.76,-1147.64 10445,-1102.05"/>
<path fill="none" stroke="black" d="M10445,-1100.05C10420.07,-1038.94 10369.29,-1065.81 10315,-1028.28 10294.83,-1014.33 10287.62,-1012.19 10273,-992.51"/>
<path fill="none" stroke="black" d="M10273,-990.51C10257.17,-969.2 10242.24,-943.75 10230.59,-922.19"/>
<polygon fill="#f9c806" stroke="black" points="10233.6,-920.39 10225.81,-913.21 10227.42,-923.68 10233.6,-920.39"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge612" 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="M10445,-1100.05C10429.39,-1054.88 10471.35,-1032.38 10445,-992.51"/>
<path fill="none" stroke="black" d="M10445,-990.51C10425.33,-960.75 10397.99,-931.21 10376,-909.48"/>
<polygon fill="#f9c806" stroke="black" points="10378.37,-906.9 10368.77,-902.42 10373.48,-911.91 10378.37,-906.9"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge613" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10413.14,-1517.85C10444.6,-1501.91 10495.84,-1471.52 10525,-1430.67"/>
<path fill="none" stroke="black" d="M10525,-1428.67C10602.55,-1320.01 10562.41,-934.66 10480,-829.64 10317.85,-622.99 9977.6,-565.55 9851.95,-551.06"/>
<polygon fill="#f9c806" stroke="black" points="9852.2,-547.56 9841.88,-549.94 9851.43,-554.52 9852.2,-547.56"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node156" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#69b03a" stroke="black" points="11155,-1338.13 11152,-1342.13 11131,-1342.13 11128,-1338.13 11087,-1338.13 11087,-1302.13 11155,-1302.13 11155,-1338.13"/>
<text text-anchor="middle" x="11121" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge614" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10413.22,-1525.27C10482.52,-1511.91 10671.01,-1474.2 10825,-1430.67"/>
<path fill="none" stroke="black" d="M10825,-1428.67C10916.51,-1402.79 11020.32,-1362.43 11077.46,-1339.22"/>
<polygon fill="#f9c806" stroke="black" points="11078.96,-1342.39 11086.9,-1335.37 11076.32,-1335.9 11078.96,-1342.39"/>
</g>
<!-- aiohttpsession -->
<g id="node158" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db86e" stroke="black" points="11291,-1338.13 11288,-1342.13 11267,-1342.13 11264,-1338.13 11211,-1338.13 11211,-1302.13 11291,-1302.13 11291,-1338.13"/>
<text text-anchor="middle" x="11251" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge615" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10413.33,-1529.08C10519.27,-1522.94 10911.19,-1491.8 11197,-1356.9 11204.65,-1353.28 11212.47,-1348.71 11219.69,-1344.04"/>
<polygon fill="#f9c806" stroke="black" points="11222.12,-1346.63 11228.47,-1338.15 11218.22,-1340.82 11222.12,-1346.63"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node155" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#a2b653" stroke="black" points="8652.5,-892.19 8649.5,-896.19 8628.5,-896.19 8625.5,-892.19 8551.5,-892.19 8551.5,-856.19 8652.5,-856.19 8652.5,-892.19"/>
<text text-anchor="middle" x="8602" 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="edge616" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8608.88,-856.15C8620.07,-830.68 8644.67,-782.99 8681,-757.87"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge617" 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="M11145.01,-1301.85C11167.27,-1285.3 11197.97,-1260.89 11205,-1247.36 11257.42,-1146.38 11278,-1095.18 11229,-992.51"/>
<path fill="none" stroke="black" d="M11229,-990.51C11218.87,-974.26 11220.41,-966.1 11205,-954.74 11139.25,-906.28 11044,-887.12 10987.11,-879.7"/>
<polygon fill="#69b03a" stroke="black" points="10987.3,-876.2 10976.95,-878.45 10986.44,-883.15 10987.3,-876.2"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge618" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11229,-990.51C11190.91,-929.42 11219.24,-895.64 11248,-829.64 11264.73,-791.27 11309,-799.74 11309,-757.87"/>
<path fill="none" stroke="black" d="M11309,-755.87C11308.93,-708.08 11317.86,-695.3 11309,-648.34"/>
</g>
<!-- aiohttpsecurity -->
<g id="node157" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#47c247" stroke="black" points="10911,-1651.19 10908,-1655.19 10887,-1655.19 10884,-1651.19 10831,-1651.19 10831,-1615.19 10911,-1615.19 10911,-1651.19"/>
<text text-anchor="middle" x="10871" 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="edge619" 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="M10865.66,-1615.18C10846.62,-1554.52 10781.66,-1347.53 10752.9,-1255.88"/>
<polygon fill="#47c247" stroke="black" points="10756.16,-1254.56 10749.82,-1246.07 10749.48,-1256.66 10756.16,-1254.56"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge620" 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="M10888.14,-1614.87C10912.91,-1589.9 10960.22,-1542.37 11001,-1502.43 11051.2,-1453.27 11061.24,-1438.14 11115,-1392.9 11135.68,-1375.5 11146.33,-1377.34 11164,-1356.9 11175.77,-1343.28 11170.81,-1334.38 11183,-1321.13"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge621" 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="M11249.82,-1301.85C11249.09,-1279.49 11250.58,-1240.03 11267,-1211.59"/>
</g>
<!-- boto3 -->
<g id="node159" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40c0a6" stroke="black" points="9216,-3036.3 9213,-3040.3 9192,-3040.3 9189,-3036.3 9162,-3036.3 9162,-3000.3 9216,-3000.3 9216,-3036.3"/>
<text text-anchor="middle" x="9189" 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="edge622" 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="M9187.56,-3000.25C9186.33,-2981.7 9185.29,-2951.25 9189,-2925.32"/>
</g>
<!-- cryptography -->
<g id="node160" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#19bde6" stroke="black" points="9616,-4182.36 9613,-4186.36 9592,-4186.36 9589,-4182.36 9542,-4182.36 9542,-4146.36 9616,-4146.36 9616,-4182.36"/>
<text text-anchor="middle" x="9579" 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="edge623" 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="M11133,-3831.39C11131.35,-3782.67 11358.56,-3033.1 11380,-2989.31 11388.68,-2971.59 11396.61,-2970.67 11406,-2953.31 11448.32,-2875.03 11454.43,-2851.93 11475,-2765.35 11502.2,-2650.84 11509,-2620.42 11509,-2502.72 11509,-2502.72 11509,-2502.72 11509,-2062.57 11509,-2000.22 11482.21,-1564.47 11476,-1502.43 11466.21,-1404.59 11459.86,-1380.56 11445,-1283.36 11437.54,-1234.59 11436.91,-1222.15 11427,-1173.82 11406.74,-1075.04 11412.87,-1045.04 11368,-954.74 11361.04,-940.73 11351.57,-926.63 11342.26,-914.27"/>
<polygon fill="#19bde6" stroke="black" points="11344.76,-911.78 11335.87,-906.01 11339.22,-916.06 11344.76,-911.78"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge624" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9616.12,-4162.6C9812.27,-4158.45 10723.48,-4137.25 10843,-4099.37 11009.71,-4046.52 11166.39,-4005.06 11133,-3833.39"/>
<path fill="none" stroke="black" d="M11133,-3831.39C11127.61,-3802.78 11122.13,-3796.35 11119,-3767.4 11116.23,-3741.78 11117.62,-3735.15 11119,-3709.42 11129.46,-3513.84 11118.59,-3461.29 11166,-3271.26 11191.97,-3167.17 11219.36,-3148.12 11256,-3047.3 11305.48,-2911.13 11357,-2882.24 11357,-2737.36 11357,-2737.36 11357,-2737.36 11357,-2500.72 11357,-2164.28 11357,-2080.17 11357,-1743.73 11357,-1743.73 11357,-1743.73 11357,-1632.19 11357,-1522.32 11337.96,-1494.01 11295,-1392.9 11288.17,-1376.83 11278.14,-1360.13 11269.38,-1346.89"/>
<polygon fill="#19bde6" stroke="black" points="11272.08,-1344.64 11263.57,-1338.33 11266.28,-1348.57 11272.08,-1344.64"/>
</g>
<!-- requests -->
<g id="node165" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06c0" stroke="black" points="8053,-4099.37 8050,-4103.37 8029,-4103.37 8026,-4099.37 7999,-4099.37 7999,-4063.37 8053,-4063.37 8053,-4099.37"/>
<text text-anchor="middle" x="8026" y="-4078.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge625" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9541.76,-4161.42C9329.58,-4150.35 8275.22,-4095.36 8063.18,-4084.31"/>
<polygon fill="#19bde6" stroke="black" points="8063.34,-4080.81 8053.17,-4083.78 8062.98,-4087.8 8063.34,-4080.81"/>
</g>
<!-- inflection -->
<g id="node161" class="node">
<title>inflection</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#537bb6" stroke="black" points="3241,-3933.38 3238,-3937.38 3217,-3937.38 3214,-3933.38 3185,-3933.38 3185,-3897.38 3241,-3897.38 3241,-3933.38"/>
<text text-anchor="middle" x="3213" 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="edge626" 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="M3213,-3897.07C3213,-3853.2 3213,-3736.84 3213,-3675.98"/>
<polygon fill="#537bb6" stroke="black" points="3216.5,-3675.64 3213,-3665.64 3209.5,-3675.64 3216.5,-3675.64"/>
</g>
<!-- jinja2 -->
<g id="node162" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b3bce" stroke="black" points="11101,-2942.32 11098,-2946.32 11077,-2946.32 11074,-2942.32 11047,-2942.32 11047,-2906.32 11101,-2906.32 11101,-2942.32"/>
<text text-anchor="middle" x="11074" 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="edge627" 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="M11046.73,-2922.12C10741.31,-2908.65 7972.64,-2786.05 7937,-2765.35 7853.5,-2716.85 7901.59,-2633.92 7820,-2582.27 7814.08,-2578.52 7416.39,-2529.71 7258.55,-2510.45"/>
<polygon fill="#3b3bce" stroke="black" points="7258.85,-2506.97 7248.5,-2509.23 7258.01,-2513.91 7258.85,-2506.97"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge628" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11281,-2383.4C11303.46,-2058.62 11403.33,-1992.57 11447,-1669.96 11485.29,-1387.11 11467.22,-1313.64 11473,-1028.28 11473.66,-995.6 11484.04,-985.5 11473,-954.74 11448.68,-886.95 11416.21,-884.88 11370,-829.64 11343.14,-797.54 11309.06,-799.74 11309,-757.87"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge629" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11087.68,-2906.2C11097.14,-2893.74 11109.51,-2876.19 11118,-2859.33 11143.06,-2809.6 11277.81,-2441 11281,-2385.4"/>
<path fill="none" stroke="black" d="M11281,-2383.4C11279.5,-2347.75 11254.76,-2345.96 11245,-2311.63 11157.7,-2004.66 11229.3,-1911.89 11181,-1596.42 11166.93,-1504.52 11140.68,-1397.34 11128.09,-1348.22"/>
<polygon fill="#3b3bce" stroke="black" points="11131.44,-1347.19 11125.55,-1338.38 11124.66,-1348.94 11131.44,-1347.19"/>
</g>
<!-- passlib -->
<g id="node163" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#763bce" stroke="black" points="7700,-3130.29 7697,-3134.29 7676,-3134.29 7673,-3130.29 7646,-3130.29 7646,-3094.29 7700,-3094.29 7700,-3130.29"/>
<text text-anchor="middle" x="7673" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge630" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7669.4,-3094.12C7661.62,-3057.45 7642.4,-2968.82 7623,-2895.33 7620.68,-2886.54 7618,-2877.12 7615.39,-2868.29"/>
<polygon fill="#763bce" stroke="black" points="7618.72,-2867.22 7612.51,-2858.64 7612.02,-2869.22 7618.72,-2867.22"/>
</g>
<!-- pyalpm -->
<g id="node164" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b82fdb" stroke="black" points="6858,-3933.38 6855,-3937.38 6834,-3937.38 6831,-3933.38 6804,-3933.38 6804,-3897.38 6858,-3897.38 6858,-3933.38"/>
<text text-anchor="middle" x="6831" 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="edge631" 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="M6838.27,-3897.27C6844.93,-3881.06 6854.69,-3855.92 6861,-3833.39"/>
<path fill="none" stroke="black" d="M6861,-3831.39C6912.36,-3648.07 6561.34,-3509.58 6552,-3505.9 6543.99,-3502.74 6030.09,-3453.98 5868.25,-3438.68"/>
<polygon fill="#b82fdb" stroke="black" points="5868.39,-3435.18 5858.11,-3437.72 5867.73,-3442.15 5868.39,-3435.18"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_aur_package -->
<g id="edge632" 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="M6803.79,-3914.09C6580.93,-3911.6 5052.67,-3893.52 4593,-3861.38 4232.79,-3836.2 4141.93,-3828.25 3786,-3767.4 3594.32,-3734.63 3370.34,-3678.71 3268.48,-3652.29"/>
<polygon fill="#b82fdb" stroke="black" points="3269.28,-3648.88 3258.72,-3649.75 3267.51,-3655.66 3269.28,-3648.88"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge633" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6861,-3831.39C6875.03,-3785.39 6909.82,-3786.8 6918,-3739.41"/>
<path fill="none" stroke="black" d="M6918,-3737.41C6941.82,-3599.33 6822.51,-3580.66 6704,-3505.9 6658.34,-3477.09 6638.61,-3488.68 6588,-3469.9 6328.77,-3373.68 6195.15,-3424.44 6024,-3207.27"/>
<path fill="none" stroke="black" d="M6024,-3205.27C5959.86,-3122.32 5974.16,-3083.95 5929,-2989.31 5924.52,-2979.92 5919.46,-2969.87 5914.68,-2960.58"/>
<polygon fill="#b82fdb" stroke="black" points="5917.73,-2958.87 5910.02,-2951.6 5911.52,-2962.09 5917.73,-2958.87"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge634" 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="M6918,-3737.41C6924.01,-3673.58 6964.2,-3609.26 6992.56,-3570.99"/>
<polygon fill="#b82fdb" stroke="black" points="6995.53,-3572.86 6998.77,-3562.77 6989.95,-3568.64 6995.53,-3572.86"/>
</g>
<!-- requests&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge635" 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="M7998.86,-4080.33C7550.7,-4079.62 1698.35,-4067.86 1369,-3933.38 1324.41,-3915.18 1307.73,-3905.32 1288,-3861.38 1257.06,-3792.49 1312.44,-3764.59 1364,-3709.42 1601.53,-3455.26 1633.09,-3344.75 1938,-3177.28 1993.18,-3146.97 2019.68,-3171.32 2075,-3141.28 2095.46,-3130.17 2371.35,-2878.19 2385,-2859.33 2464.13,-2750.07 2422.81,-2686.06 2509,-2582.27 2526.96,-2560.64 2543.04,-2567.89 2561,-2546.27 2599.92,-2499.41 2594.9,-2477.94 2617,-2421.17 2654.23,-2325.54 2666.05,-2301.89 2690,-2202.1 2715.09,-2097.52 2726,-2070.35 2726,-1962.8 2726,-1962.8 2726,-1962.8 2726,-1741.73 2726,-1647.18 2776.69,-1626.11 2764,-1532.43"/>
<path fill="none" stroke="black" d="M2764,-1530.43C2754.88,-1483.87 2718.12,-1477.45 2726,-1430.67"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge636" 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="M7418,-3533.89C7396.94,-3475.89 7441.88,-3440.73 7399,-3396.36 7333.8,-3328.9 7275.09,-3401.95 7191,-3360.36 7187.13,-3358.44 7183.35,-3356.11 7179.73,-3353.52"/>
<polygon fill="#ef06c0" stroke="black" points="7181.61,-3350.55 7171.58,-3347.12 7177.29,-3356.05 7181.61,-3350.55"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge637" 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="M7494,-3737.41C7500.46,-3689.38 7437.34,-3402.46 7432,-3396.36 7399.81,-3359.52 7373.2,-3379.04 7328,-3360.36 7312.74,-3354.05 7296.38,-3346.41 7281.86,-3339.31"/>
<polygon fill="#ef06c0" stroke="black" points="7283.13,-3336.03 7272.61,-3334.74 7280.03,-3342.3 7283.13,-3336.03"/>
</g>
<!-- requests&#45;&gt;ahriman_core_report_telegram -->
<g id="edge638" 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="M8024.24,-4063.06C8012.87,-3954.96 7945.93,-3373.59 7812,-3271.26 7693.36,-3180.62 7606.05,-3312.04 7478,-3235.26 7434.66,-3209.27 7439.44,-3184.94 7414,-3141.28 7352.67,-3036.02 7361.74,-2995.9 7293,-2895.33 7280.75,-2877.41 7274.4,-2875.57 7260,-2859.33 7249.13,-2847.07 7247.64,-2842.87 7236,-2831.34"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge639" 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="M7390,-3997.37C7328.47,-3991.51 7489.43,-3801.05 7494,-3739.41"/>
<path fill="none" stroke="black" d="M7494,-3737.41C7495.93,-3689.59 7425.47,-3583.16 7418,-3535.89"/>
<path fill="none" stroke="black" d="M7418,-3533.89C7409.78,-3511.24 7395.45,-3488.63 7382.25,-3470.68"/>
<polygon fill="#ef06c0" stroke="black" points="7384.7,-3468.13 7375.88,-3462.26 7379.12,-3472.35 7384.7,-3468.13"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge640" 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="M7998.97,-4080.38C7623.92,-4080.41 3472,-4075.32 3472,-3833.39 3472,-3833.39 3472,-3833.39 3472,-3635.65 3472,-3584.69 4051.54,-2991.75 4085,-2953.31 4102.71,-2932.97 4379.76,-2602.13 4398,-2582.27 4451.16,-2524.38 4465.22,-2510.45 4523,-2457.17 4578.3,-2406.19 4585.48,-2382.75 4652,-2347.63 4719.2,-2312.16 4805.59,-2292.91 4860.4,-2283.52"/>
<polygon fill="#ef06c0" stroke="black" points="4861.3,-2286.91 4870.59,-2281.82 4860.15,-2280.01 4861.3,-2286.91"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge641" 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="M8053.44,-4079.99C8195.94,-4077.85 8852.61,-4066.04 9052,-4027.37 9241.76,-3990.56 9356.14,-4028.08 9454,-3861.38 9539.76,-3715.31 9784.29,-4393.63 9235,-3271.26 9157.13,-3112.14 9045.45,-3102.27 9037,-2925.32"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge642" 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="M8053.24,-4079.36C8230.51,-4072.52 9215.61,-4030.29 9302,-3933.38 9360.89,-3867.32 9265.36,-3863.26 9188,-3803.4 9019,-3672.63 8810.87,-3525.96 8722.25,-3464.15"/>
<polygon fill="#ef06c0" stroke="black" points="8724,-3461.1 8713.8,-3458.26 8720,-3466.85 8724,-3461.1"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge643" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7998.97,-4079.41C7886.67,-4075.24 7460.48,-4057.53 7409,-4027.37 7396.03,-4019.76 7404.97,-4000.8 7390,-3999.37"/>
<path fill="none" stroke="black" d="M7390,-3997.37C7119.82,-3971.68 7051.26,-3977.89 6780,-3969.38 6720.72,-3967.52 4687.63,-3974.62 4645,-3933.38 4628.79,-3917.7 4627.73,-3892.22 4630.62,-3870.91"/>
<polygon fill="#ef06c0" stroke="black" points="4634.11,-3871.29 4632.31,-3860.85 4627.21,-3870.13 4634.11,-3871.29"/>
</g>
<!-- srcinfo -->
<g id="node166" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b6537b" stroke="black" points="6144,-3224.27 6141,-3228.27 6120,-3228.27 6117,-3224.27 6090,-3224.27 6090,-3188.27 6144,-3188.27 6144,-3224.27"/>
<text text-anchor="middle" x="6117" 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="edge644" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6123.69,-3188.03C6130.02,-3169.59 6138.01,-3139.45 6134,-3113.29"/>
<path fill="none" stroke="black" d="M6134,-3111.29C6119.57,-3017.12 6005.76,-2962.95 5940.89,-2939.43"/>
<polygon fill="#b6537b" stroke="black" points="5941.9,-2936.08 5931.3,-2936.05 5939.57,-2942.68 5941.9,-2936.08"/>
</g>
</g>
</svg>