unplugged-system/device/google/cuttlefish/host/commands/run_cvd/doc/linkage.svg

531 lines
29 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: %3 Pages: 1 -->
<svg width="1468pt" height="1493pt"
viewBox="0.00 0.00 1468.41 1492.87" 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 1488.87)">
<title>%3</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1488.87 1464.41,-1488.87 1464.41,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_adb_group</title>
<polygon fill="none" stroke="black" points="732.66,-825.87 732.66,-954.87 915.05,-954.87 915.05,-825.87 732.66,-825.87"/>
<text text-anchor="middle" x="823.86" y="-939.67" font-family="Times,serif" font-size="14.00">ADB</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_bluetooth_group</title>
<polygon fill="none" stroke="black" points="759.31,-634.87 759.31,-817.87 1246.77,-817.87 1246.77,-634.87 759.31,-634.87"/>
<text text-anchor="middle" x="1003.04" y="-802.67" font-family="Times,serif" font-size="14.00">Bluetooth</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_vmm_group</title>
<polygon fill="none" stroke="black" points="788.86,-359.87 788.86,-596.87 1452.41,-596.87 1452.41,-359.87 788.86,-359.87"/>
<text text-anchor="middle" x="1120.63" y="-581.67" font-family="Times,serif" font-size="14.00">VMM</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_webrtc_group</title>
<polygon fill="none" stroke="black" points="750.86,-222.87 750.86,-351.87 896.85,-351.87 896.85,-222.87 750.86,-222.87"/>
<text text-anchor="middle" x="823.86" y="-336.67" font-family="Times,serif" font-size="14.00">WebRTC</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_wifi_group</title>
<polygon fill="none" stroke="black" points="779.46,-76.87 779.46,-205.87 1278.62,-205.87 1278.62,-76.87 779.46,-76.87"/>
<text text-anchor="middle" x="1029.04" y="-190.67" font-family="Times,serif" font-size="14.00">Wifi</text>
</g>
<!-- config_server -->
<g id="node1" class="node">
<title>config_server</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1466.87" rx="59.29" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1463.17" font-family="Times,serif" font-size="14.00">config_server</text>
</g>
<!-- console_forwarder -->
<g id="node2" class="node">
<title>console_forwarder</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1412.87" rx="76.89" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1409.17" font-family="Times,serif" font-size="14.00">console_forwarder</text>
</g>
<!-- cvd -->
<g id="node3" class="node">
<title>cvd</title>
<ellipse fill="none" stroke="black" cx="27" cy="-878.87" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-875.17" font-family="Times,serif" font-size="14.00">cvd</text>
</g>
<!-- cvd_status -->
<g id="node4" class="node">
<title>cvd_status</title>
<ellipse fill="none" stroke="black" cx="157.59" cy="-986.87" rx="48.19" ry="18"/>
<text text-anchor="middle" x="157.59" y="-983.17" font-family="Times,serif" font-size="14.00">cvd_status</text>
</g>
<!-- cvd&#45;&gt;cvd_status -->
<g id="edge1" class="edge">
<title>cvd&#45;&gt;cvd_status</title>
<path fill="none" stroke="black" d="M37.12,-895.58C47.72,-913.62 66.76,-942.15 90,-959.87 96,-964.44 102.89,-968.36 109.9,-971.68"/>
<polygon fill="black" stroke="black" points="108.91,-975.07 119.48,-975.84 111.7,-968.65 108.91,-975.07"/>
</g>
<!-- launch_cvd -->
<g id="node7" class="node">
<title>launch_cvd</title>
<ellipse fill="none" stroke="black" cx="157.59" cy="-770.87" rx="51.19" ry="18"/>
<text text-anchor="middle" x="157.59" y="-767.17" font-family="Times,serif" font-size="14.00">launch_cvd</text>
</g>
<!-- cvd&#45;&gt;launch_cvd -->
<g id="edge2" class="edge">
<title>cvd&#45;&gt;launch_cvd</title>
<path fill="none" stroke="black" d="M37.12,-862.15C47.72,-844.11 66.76,-815.58 90,-797.87 95.73,-793.5 102.26,-789.73 108.95,-786.51"/>
<polygon fill="black" stroke="black" points="110.37,-789.7 118.09,-782.45 107.53,-783.31 110.37,-789.7"/>
</g>
<!-- powerwash_cvd -->
<g id="node12" class="node">
<title>powerwash_cvd</title>
<ellipse fill="none" stroke="black" cx="157.59" cy="-932.87" rx="67.69" ry="18"/>
<text text-anchor="middle" x="157.59" y="-929.17" font-family="Times,serif" font-size="14.00">powerwash_cvd</text>
</g>
<!-- cvd&#45;&gt;powerwash_cvd -->
<g id="edge3" class="edge">
<title>cvd&#45;&gt;powerwash_cvd</title>
<path fill="none" stroke="black" d="M50.04,-888.63C61.86,-893.82 76.69,-900.27 90,-905.87 96.34,-908.53 103.03,-911.3 109.63,-914"/>
<polygon fill="black" stroke="black" points="108.61,-917.36 119.19,-917.9 111.25,-910.88 108.61,-917.36"/>
</g>
<!-- restart_cvd -->
<g id="node13" class="node">
<title>restart_cvd</title>
<ellipse fill="none" stroke="black" cx="157.59" cy="-878.87" rx="50.09" ry="18"/>
<text text-anchor="middle" x="157.59" y="-875.17" font-family="Times,serif" font-size="14.00">restart_cvd</text>
</g>
<!-- cvd&#45;&gt;restart_cvd -->
<g id="edge4" class="edge">
<title>cvd&#45;&gt;restart_cvd</title>
<path fill="none" stroke="black" d="M54.02,-878.87C66.49,-878.87 81.96,-878.87 97.09,-878.87"/>
<polygon fill="black" stroke="black" points="97.46,-882.37 107.46,-878.87 97.46,-875.37 97.46,-882.37"/>
</g>
<!-- stop_cvd -->
<g id="node18" class="node">
<title>stop_cvd</title>
<ellipse fill="none" stroke="black" cx="157.59" cy="-824.87" rx="42.49" ry="18"/>
<text text-anchor="middle" x="157.59" y="-821.17" font-family="Times,serif" font-size="14.00">stop_cvd</text>
</g>
<!-- cvd&#45;&gt;stop_cvd -->
<g id="edge5" class="edge">
<title>cvd&#45;&gt;stop_cvd</title>
<path fill="none" stroke="black" d="M50.04,-869.11C61.86,-863.92 76.69,-857.46 90,-851.87 98.61,-848.25 107.89,-844.43 116.7,-840.85"/>
<polygon fill="black" stroke="black" points="118.07,-844.07 126.03,-837.07 115.44,-837.58 118.07,-844.07"/>
</g>
<!-- launcher_monitor_socket -->
<g id="node8" class="node">
<title>launcher_monitor_socket</title>
<polygon fill="none" stroke="black" points="402.19,-896.87 261.19,-896.87 261.19,-860.87 402.19,-860.87 402.19,-896.87"/>
<text text-anchor="middle" x="331.69" y="-875.17" font-family="Times,serif" font-size="14.00">launcher_monitor.sock</text>
</g>
<!-- cvd_status&#45;&gt;launcher_monitor_socket -->
<g id="edge9" class="edge">
<title>cvd_status&#45;&gt;launcher_monitor_socket</title>
<path fill="none" stroke="black" d="M203.1,-970.78C210.64,-967.5 218.26,-963.83 225.19,-959.87 253.32,-943.76 282.32,-920.97 302.78,-903.66"/>
<polygon fill="black" stroke="black" points="201.54,-967.64 193.65,-974.71 204.23,-974.1 201.54,-967.64"/>
<polygon fill="black" stroke="black" points="305.13,-906.25 310.45,-897.08 300.58,-900.93 305.13,-906.25"/>
</g>
<!-- gnss_grpc_proxy -->
<g id="node5" class="node">
<title>gnss_grpc_proxy</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1358.87" rx="71.49" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1355.17" font-family="Times,serif" font-size="14.00">gnss_grpc_proxy</text>
</g>
<!-- kernel_log_monitor -->
<g id="node6" class="node">
<title>kernel_log_monitor</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1304.87" rx="81.49" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1301.17" font-family="Times,serif" font-size="14.00">kernel_log_monitor</text>
</g>
<!-- run_cvd -->
<g id="node14" class="node">
<title>run_cvd</title>
<ellipse fill="none" stroke="black" stroke-width="2" cx="485.63" cy="-851.87" rx="47.39" ry="18"/>
<text text-anchor="start" x="457.13" y="-849.17" font-family="Times,serif" font-size="14.00"> </text>
<text text-anchor="start" x="461.13" y="-849.17" font-family="Times,serif" font-weight="bold" font-size="14.00">run_cvd</text>
<text text-anchor="start" x="510.13" y="-849.17" font-family="Times,serif" font-size="14.00"> </text>
</g>
<!-- launch_cvd&#45;&gt;run_cvd -->
<g id="edge6" class="edge">
<title>launch_cvd&#45;&gt;run_cvd</title>
<path fill="none" stroke="black" d="M195.93,-782.87C215.3,-788.91 239.41,-796.15 261.19,-801.87 319.81,-817.26 387.86,-832.05 433.32,-841.5"/>
<polygon fill="black" stroke="black" points="432.73,-844.95 443.23,-843.55 434.15,-838.1 432.73,-844.95"/>
</g>
<!-- run_cvd_2 -->
<g id="node15" class="node">
<title>run_cvd_2</title>
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="331.69" cy="-774.87" rx="39.79" ry="18"/>
<text text-anchor="middle" x="331.69" y="-771.17" font-family="Times,serif" font-size="14.00">run_cvd</text>
</g>
<!-- launch_cvd&#45;&gt;run_cvd_2 -->
<g id="edge7" class="edge">
<title>launch_cvd&#45;&gt;run_cvd_2</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M208.83,-772.04C231.8,-772.57 258.92,-773.2 281.73,-773.73"/>
<polygon fill="black" stroke="black" points="281.8,-777.23 291.88,-773.97 281.97,-770.23 281.8,-777.23"/>
</g>
<!-- run_cvd_etc -->
<g id="node16" class="node">
<title>run_cvd_etc</title>
<ellipse fill="none" stroke="black" stroke-dasharray="5,2" cx="331.69" cy="-720.87" rx="27" ry="18"/>
<text text-anchor="middle" x="331.69" y="-717.17" font-family="Times,serif" font-size="14.00">...</text>
</g>
<!-- launch_cvd&#45;&gt;run_cvd_etc -->
<g id="edge8" class="edge">
<title>launch_cvd&#45;&gt;run_cvd_etc</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M197.64,-759.52C227.5,-750.85 268.24,-739.01 296.74,-730.73"/>
<polygon fill="black" stroke="black" points="298.02,-734 306.65,-727.85 296.07,-727.28 298.02,-734"/>
</g>
<!-- launcher_monitor_socket&#45;&gt;run_cvd -->
<g id="edge13" class="edge">
<title>launcher_monitor_socket&#45;&gt;run_cvd</title>
<path fill="none" stroke="black" d="M412.32,-864.72C419.08,-863.52 425.81,-862.32 432.28,-861.17"/>
<polygon fill="black" stroke="black" points="411.67,-861.28 402.43,-866.47 412.89,-868.17 411.67,-861.28"/>
<polygon fill="black" stroke="black" points="432.98,-864.6 442.21,-859.41 431.75,-857.71 432.98,-864.6"/>
</g>
<!-- logcat_receiver -->
<g id="node9" class="node">
<title>logcat_receiver</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1250.87" rx="64.99" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1247.17" font-family="Times,serif" font-size="14.00">logcat_receiver</text>
</g>
<!-- metrics -->
<g id="node10" class="node">
<title>metrics</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1196.87" rx="37.09" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1193.17" font-family="Times,serif" font-size="14.00">metrics</text>
</g>
<!-- modem_simulator -->
<g id="node11" class="node">
<title>modem_simulator</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1142.87" rx="76.09" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1139.17" font-family="Times,serif" font-size="14.00">modem_simulator</text>
</g>
<!-- powerwash_cvd&#45;&gt;launcher_monitor_socket -->
<g id="edge10" class="edge">
<title>powerwash_cvd&#45;&gt;launcher_monitor_socket</title>
<path fill="none" stroke="black" d="M211.67,-916.21C227.99,-911.09 246.18,-905.38 263.33,-900"/>
<polygon fill="black" stroke="black" points="210.51,-912.91 202.02,-919.24 212.61,-919.59 210.51,-912.91"/>
<polygon fill="black" stroke="black" points="264.79,-903.21 273.29,-896.88 262.7,-896.53 264.79,-903.21"/>
</g>
<!-- restart_cvd&#45;&gt;launcher_monitor_socket -->
<g id="edge11" class="edge">
<title>restart_cvd&#45;&gt;launcher_monitor_socket</title>
<path fill="none" stroke="black" d="M218.27,-878.87C228.86,-878.87 240.05,-878.87 251.09,-878.87"/>
<polygon fill="black" stroke="black" points="217.91,-875.37 207.91,-878.87 217.91,-882.37 217.91,-875.37"/>
<polygon fill="black" stroke="black" points="251.17,-882.37 261.17,-878.87 251.17,-875.37 251.17,-882.37"/>
</g>
<!-- run_cvd&#45;&gt;config_server -->
<g id="edge16" class="edge">
<title>run_cvd&#45;&gt;config_server</title>
<path fill="none" stroke="black" d="M486.33,-869.96C485.2,-959.99 485.08,-1358.62 569.08,-1439.87 620.45,-1489.56 707.85,-1487.35 765.47,-1478.91"/>
<polygon fill="black" stroke="black" points="766.18,-1482.34 775.51,-1477.34 765.09,-1475.43 766.18,-1482.34"/>
</g>
<!-- run_cvd&#45;&gt;console_forwarder -->
<g id="edge17" class="edge">
<title>run_cvd&#45;&gt;console_forwarder</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M486.61,-869.97C486.89,-954.93 492.63,-1312.94 569.08,-1385.87 617.92,-1432.46 698.51,-1433.16 755.76,-1426.09"/>
<polygon fill="black" stroke="black" points="756.37,-1429.54 765.81,-1424.74 755.43,-1422.6 756.37,-1429.54"/>
</g>
<!-- run_cvd&#45;&gt;gnss_grpc_proxy -->
<g id="edge21" class="edge">
<title>run_cvd&#45;&gt;gnss_grpc_proxy</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M486.95,-869.99C488.74,-949.59 500.16,-1267.23 569.08,-1331.87 618.93,-1378.62 700.83,-1378.83 758.07,-1371.62"/>
<polygon fill="black" stroke="black" points="758.66,-1375.07 768.1,-1370.25 757.72,-1368.14 758.66,-1375.07"/>
</g>
<!-- run_cvd&#45;&gt;kernel_log_monitor -->
<g id="edge22" class="edge">
<title>run_cvd&#45;&gt;kernel_log_monitor</title>
<path fill="none" stroke="black" d="M487.37,-869.92C490.8,-943.74 507.63,-1221.44 569.08,-1277.87 617.8,-1322.61 696,-1324.35 752.73,-1318.03"/>
<polygon fill="black" stroke="black" points="753.2,-1321.49 762.7,-1316.81 752.35,-1314.55 753.2,-1321.49"/>
</g>
<!-- run_cvd&#45;&gt;logcat_receiver -->
<g id="edge23" class="edge">
<title>run_cvd&#45;&gt;logcat_receiver</title>
<path fill="none" stroke="black" d="M487.92,-869.91C493.13,-937.68 515.07,-1175.6 569.08,-1223.87 620.74,-1270.03 703.96,-1269.88 760.93,-1262.76"/>
<polygon fill="black" stroke="black" points="761.45,-1266.22 770.89,-1261.41 760.51,-1259.29 761.45,-1266.22"/>
</g>
<!-- run_cvd&#45;&gt;metrics -->
<g id="edge24" class="edge">
<title>run_cvd&#45;&gt;metrics</title>
<path fill="none" stroke="black" d="M488.68,-870.21C495.93,-931.83 522.54,-1129.74 569.08,-1169.87 627.68,-1220.39 724.42,-1214.55 780,-1205.73"/>
<polygon fill="black" stroke="black" points="780.6,-1209.18 789.88,-1204.06 779.44,-1202.28 780.6,-1209.18"/>
</g>
<!-- run_cvd&#45;&gt;modem_simulator -->
<g id="edge25" class="edge">
<title>run_cvd&#45;&gt;modem_simulator</title>
<path fill="none" stroke="black" d="M486.1,-869.9C485.73,-918.48 492.05,-1052.67 569.08,-1115.87 619.79,-1157.47 696.71,-1159.99 752.58,-1154.71"/>
<polygon fill="black" stroke="black" points="753.17,-1158.17 762.75,-1153.64 752.44,-1151.2 753.17,-1158.17"/>
</g>
<!-- secure_env -->
<g id="node17" class="node">
<title>secure_env</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1088.87" rx="50.09" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1085.17" font-family="Times,serif" font-size="14.00">secure_env</text>
</g>
<!-- run_cvd&#45;&gt;secure_env -->
<g id="edge31" class="edge">
<title>run_cvd&#45;&gt;secure_env</title>
<path fill="none" stroke="black" d="M487.72,-869.86C491.28,-911.39 506.31,-1014.02 569.08,-1061.87 626.3,-1105.49 713.04,-1104.63 768.83,-1098.17"/>
<polygon fill="black" stroke="black" points="769.39,-1101.63 778.87,-1096.91 768.51,-1094.69 769.39,-1101.63"/>
</g>
<!-- tombstone_receiver -->
<g id="node19" class="node">
<title>tombstone_receiver</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-1034.87" rx="80.69" ry="18"/>
<text text-anchor="middle" x="823.86" y="-1031.17" font-family="Times,serif" font-size="14.00">tombstone_receiver</text>
</g>
<!-- run_cvd&#45;&gt;tombstone_receiver -->
<g id="edge33" class="edge">
<title>run_cvd&#45;&gt;tombstone_receiver</title>
<path fill="none" stroke="black" d="M490.32,-869.8C498.24,-903.26 520.25,-974.8 569.08,-1007.87 620.09,-1042.41 690.55,-1047.4 744.28,-1044.74"/>
<polygon fill="black" stroke="black" points="744.68,-1048.22 754.46,-1044.14 744.27,-1041.24 744.68,-1048.22"/>
</g>
<!-- adb_connector -->
<g id="node21" class="node">
<title>adb_connector</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-905.87" rx="62.29" ry="18"/>
<text text-anchor="middle" x="823.86" y="-902.17" font-family="Times,serif" font-size="14.00">adb_connector</text>
</g>
<!-- run_cvd&#45;&gt;adb_connector -->
<g id="edge14" class="edge">
<title>run_cvd&#45;&gt;adb_connector</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M519.89,-864.53C534.74,-869.72 552.59,-875.33 569.08,-878.87 630.1,-891.95 700.8,-898.81 752.06,-902.34"/>
<polygon fill="black" stroke="black" points="751.83,-905.83 762.04,-903 752.3,-898.84 751.83,-905.83"/>
</g>
<!-- socket_vsock_proxy -->
<g id="node22" class="node">
<title>socket_vsock_proxy</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-851.87" rx="83.39" ry="18"/>
<text text-anchor="middle" x="823.86" y="-848.17" font-family="Times,serif" font-size="14.00">socket_vsock_proxy</text>
</g>
<!-- run_cvd&#45;&gt;socket_vsock_proxy -->
<g id="edge32" class="edge">
<title>run_cvd&#45;&gt;socket_vsock_proxy</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M533.38,-851.87C584.17,-851.87 666.59,-851.87 730.52,-851.87"/>
<polygon fill="black" stroke="black" points="730.61,-855.37 740.61,-851.87 730.61,-848.37 730.61,-855.37"/>
</g>
<!-- bt_connector -->
<g id="node23" class="node">
<title>bt_connector</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-768.87" rx="56.59" ry="18"/>
<text text-anchor="middle" x="823.86" y="-765.17" font-family="Times,serif" font-size="14.00">bt_connector</text>
</g>
<!-- run_cvd&#45;&gt;bt_connector -->
<g id="edge15" class="edge">
<title>run_cvd&#45;&gt;bt_connector</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M518.78,-838.96C533.88,-833.21 552.23,-826.66 569.08,-821.87 634.62,-803.2 711.4,-788.08 763.21,-778.83"/>
<polygon fill="black" stroke="black" points="763.99,-782.25 773.22,-777.06 762.77,-775.36 763.99,-782.25"/>
</g>
<!-- netsim -->
<g id="node24" class="node">
<title>netsim</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-714.87" rx="34.39" ry="18"/>
<text text-anchor="middle" x="823.86" y="-711.17" font-family="Times,serif" font-size="14.00">netsim</text>
</g>
<!-- run_cvd&#45;&gt;netsim -->
<g id="edge26" class="edge">
<title>run_cvd&#45;&gt;netsim</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M494.24,-834.15C506.14,-808.85 531.73,-763.09 569.08,-741.87 635.35,-704.21 727.15,-704.97 780.25,-709.52"/>
<polygon fill="black" stroke="black" points="780.05,-713.02 790.33,-710.47 780.7,-706.05 780.05,-713.02"/>
</g>
<!-- root_canal -->
<g id="node25" class="node">
<title>root_canal</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-660.87" rx="46.29" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-657.17" font-family="Times,serif" font-size="14.00">root&#45;canal</text>
</g>
<!-- run_cvd&#45;&gt;root_canal -->
<g id="edge28" class="edge">
<title>run_cvd&#45;&gt;root_canal</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M487.08,-833.71C489.26,-790.28 501.5,-680.56 569.08,-633.87 662.24,-569.5 966.18,-620.62 1078.63,-633.87 1101.1,-636.51 1125.57,-642.02 1145.97,-647.38"/>
<polygon fill="black" stroke="black" points="1145.07,-650.76 1155.63,-649.98 1146.89,-644 1145.07,-650.76"/>
</g>
<!-- root_canal_log_tee -->
<g id="node26" class="node">
<title>root_canal_log_tee</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-660.87" rx="36.29" ry="18"/>
<text text-anchor="middle" x="823.86" y="-657.17" font-family="Times,serif" font-size="14.00">log_tee</text>
</g>
<!-- run_cvd&#45;&gt;root_canal_log_tee -->
<g id="edge29" class="edge">
<title>run_cvd&#45;&gt;root_canal_log_tee</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M489.85,-833.86C497.11,-799.09 518.25,-723.05 569.08,-687.87 631.88,-644.39 725.18,-647.23 779.43,-653.71"/>
<polygon fill="black" stroke="black" points="779.04,-657.19 789.41,-655 779.94,-650.25 779.04,-657.19"/>
</g>
<!-- vmm -->
<g id="node32" class="node">
<title>vmm</title>
<polygon fill="none" stroke="black" points="823.86,-511.87 796.86,-493.87 823.86,-475.87 850.86,-493.87 823.86,-511.87"/>
</g>
<!-- run_cvd&#45;&gt;vmm -->
<g id="edge35" class="edge">
<title>run_cvd&#45;&gt;vmm</title>
<path fill="none" stroke="black" d="M487.58,-833.85C490.89,-788.79 505.52,-669.84 569.08,-600.87 629.83,-534.94 737.73,-508.19 791.12,-498.59"/>
<polygon fill="black" stroke="black" points="791.78,-502.03 801.04,-496.89 790.59,-495.13 791.78,-502.03"/>
</g>
<!-- operator_proxy -->
<g id="node33" class="node">
<title>operator_proxy</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-302.87" rx="64.99" ry="18"/>
<text text-anchor="middle" x="823.86" y="-299.17" font-family="Times,serif" font-size="14.00">operator_proxy</text>
</g>
<!-- run_cvd&#45;&gt;operator_proxy -->
<g id="edge27" class="edge">
<title>run_cvd&#45;&gt;operator_proxy</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M487,-833.86C489.03,-753.25 501.38,-426.41 569.08,-355.87 615.53,-307.46 693.92,-297.46 751.31,-297.55"/>
<polygon fill="black" stroke="black" points="751.37,-301.05 761.41,-297.66 751.45,-294.05 751.37,-301.05"/>
</g>
<!-- webrtc -->
<g id="node34" class="node">
<title>webrtc</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-248.87" rx="34.39" ry="18"/>
<text text-anchor="middle" x="823.86" y="-245.17" font-family="Times,serif" font-size="14.00">webrtc</text>
</g>
<!-- run_cvd&#45;&gt;webrtc -->
<g id="edge36" class="edge">
<title>run_cvd&#45;&gt;webrtc</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M486.39,-833.85C485.56,-745.07 486.73,-355.29 569.08,-275.87 625.82,-221.14 726.28,-229.44 782.28,-239.6"/>
<polygon fill="black" stroke="black" points="781.71,-243.05 792.19,-241.5 783.03,-236.18 781.71,-243.05"/>
</g>
<!-- crosvm_openwrt -->
<g id="node35" class="node">
<title>crosvm_openwrt</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-156.87" rx="77.99" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-153.17" font-family="Times,serif" font-size="14.00">OpenWRT crosvm</text>
</g>
<!-- run_cvd&#45;&gt;crosvm_openwrt -->
<g id="edge18" class="edge">
<title>run_cvd&#45;&gt;crosvm_openwrt</title>
<path fill="none" stroke="black" d="M487.65,-833.68C493.36,-734.56 522.87,-262.34 569.08,-218.87 610.41,-179.98 1022.53,-192.44 1078.63,-183.87 1096.13,-181.19 1114.92,-177.18 1132.05,-173.06"/>
<polygon fill="black" stroke="black" points="1133.04,-176.42 1141.92,-170.63 1131.37,-169.62 1133.04,-176.42"/>
</g>
<!-- crosvm_openwrt_log_tee -->
<g id="node36" class="node">
<title>crosvm_openwrt_log_tee</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-156.87" rx="36.29" ry="18"/>
<text text-anchor="middle" x="823.86" y="-153.17" font-family="Times,serif" font-size="14.00">log_tee</text>
</g>
<!-- run_cvd&#45;&gt;crosvm_openwrt_log_tee -->
<g id="edge19" class="edge">
<title>run_cvd&#45;&gt;crosvm_openwrt_log_tee</title>
<path fill="none" stroke="black" d="M487.57,-833.87C493.02,-732.54 522.01,-236.02 569.08,-188.87 624.31,-133.54 723.59,-139.17 780.22,-148.09"/>
<polygon fill="black" stroke="black" points="779.83,-151.58 790.27,-149.78 780.99,-144.67 779.83,-151.58"/>
</g>
<!-- wmediumd -->
<g id="node37" class="node">
<title>wmediumd</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-102.87" rx="51.19" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-99.17" font-family="Times,serif" font-size="14.00">wmediumd</text>
</g>
<!-- run_cvd&#45;&gt;wmediumd -->
<g id="edge37" class="edge">
<title>run_cvd&#45;&gt;wmediumd</title>
<path fill="none" stroke="black" d="M487.14,-833.71C490.46,-721.76 510.72,-128.36 569.08,-75.87 736.37,74.59 1042.72,-37.24 1151.78,-84.49"/>
<polygon fill="black" stroke="black" points="1150.54,-87.77 1161.11,-88.58 1153.35,-81.36 1150.54,-87.77"/>
</g>
<!-- wmediumd_log_tee -->
<g id="node38" class="node">
<title>wmediumd_log_tee</title>
<ellipse fill="none" stroke="black" cx="823.86" cy="-102.87" rx="36.29" ry="18"/>
<text text-anchor="middle" x="823.86" y="-99.17" font-family="Times,serif" font-size="14.00">log_tee</text>
</g>
<!-- run_cvd&#45;&gt;wmediumd_log_tee -->
<g id="edge38" class="edge">
<title>run_cvd&#45;&gt;wmediumd_log_tee</title>
<path fill="none" stroke="black" d="M487.37,-833.68C491.9,-726.58 517.42,-181.13 569.08,-129.87 624.59,-74.78 724.2,-82.82 780.71,-93.13"/>
<polygon fill="black" stroke="black" points="780.26,-96.6 790.74,-95.06 781.58,-89.73 780.26,-96.6"/>
</g>
<!-- stop_cvd&#45;&gt;launcher_monitor_socket -->
<g id="edge12" class="edge">
<title>stop_cvd&#45;&gt;launcher_monitor_socket</title>
<path fill="none" stroke="black" d="M201.74,-838.41C220.39,-844.26 242.66,-851.25 263.4,-857.75"/>
<polygon fill="black" stroke="black" points="202.77,-835.06 192.18,-835.41 200.68,-841.74 202.77,-835.06"/>
<polygon fill="black" stroke="black" points="262.53,-861.15 273.12,-860.8 264.63,-854.47 262.53,-861.15"/>
</g>
<!-- root_canal_log_tee&#45;&gt;root_canal -->
<g id="edge30" class="edge">
<title>root_canal_log_tee&#45;&gt;root_canal</title>
<path fill="none" stroke="black" d="M870.72,-660.87C941.42,-660.87 1076.19,-660.87 1146.46,-660.87"/>
<polygon fill="black" stroke="black" points="870.36,-657.37 860.36,-660.87 870.36,-664.37 870.36,-657.37"/>
</g>
<!-- crosvm_android -->
<g id="node27" class="node">
<title>crosvm_android</title>
<ellipse fill="none" stroke="black" cx="1375.51" cy="-412.87" rx="68.79" ry="18"/>
<text text-anchor="middle" x="1375.51" y="-409.17" font-family="Times,serif" font-size="14.00">Android crosvm</text>
</g>
<!-- crosvm_android_log_tee -->
<g id="node28" class="node">
<title>crosvm_android_log_tee</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-385.87" rx="36.29" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-382.17" font-family="Times,serif" font-size="14.00">log_tee</text>
</g>
<!-- crosvm_android_log_tee&#45;&gt;crosvm_android -->
<g id="edge40" class="edge">
<title>crosvm_android_log_tee&#45;&gt;crosvm_android</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1237.62,-392.43C1260.99,-395.92 1290.05,-400.26 1315.37,-404.04"/>
<polygon fill="black" stroke="black" points="1238.06,-388.96 1227.65,-390.95 1237.02,-395.88 1238.06,-388.96"/>
</g>
<!-- crosvm_android_restarter -->
<g id="node29" class="node">
<title>crosvm_android_restarter</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-439.87" rx="70.39" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-436.17" font-family="Times,serif" font-size="14.00">process_restarter</text>
</g>
<!-- crosvm_android_restarter&#45;&gt;crosvm_android -->
<g id="edge42" class="edge">
<title>crosvm_android_restarter&#45;&gt;crosvm_android</title>
<path fill="none" stroke="black" d="M1253.61,-430.91C1270.2,-428.44 1288.34,-425.73 1305.41,-423.18"/>
<polygon fill="black" stroke="black" points="1305.94,-426.64 1315.31,-421.7 1304.9,-419.72 1305.94,-426.64"/>
</g>
<!-- gem5 -->
<g id="node30" class="node">
<title>gem5</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-493.87" rx="30.59" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-490.17" font-family="Times,serif" font-size="14.00">gem5</text>
</g>
<!-- qemu -->
<g id="node31" class="node">
<title>qemu</title>
<ellipse fill="none" stroke="black" cx="1192.63" cy="-547.87" rx="37.09" ry="18"/>
<text text-anchor="middle" x="1192.63" y="-544.17" font-family="Times,serif" font-size="14.00">QEMU</text>
</g>
<!-- vmm&#45;&gt;crosvm_android_log_tee -->
<g id="edge43" class="edge">
<title>vmm&#45;&gt;crosvm_android_log_tee</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M843.05,-488.51C899.46,-471.9 1072.43,-420.97 1151.47,-397.69"/>
<polygon fill="black" stroke="black" points="1152.48,-401.04 1161.08,-394.86 1150.5,-394.33 1152.48,-401.04"/>
</g>
<!-- vmm&#45;&gt;crosvm_android_restarter -->
<g id="edge41" class="edge">
<title>vmm&#45;&gt;crosvm_android_restarter</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M846.16,-490.73C898.68,-483 1036.25,-462.74 1121.1,-450.25"/>
<polygon fill="black" stroke="black" points="1121.79,-453.69 1131.17,-448.77 1120.77,-446.76 1121.79,-453.69"/>
</g>
<!-- vmm&#45;&gt;gem5 -->
<g id="edge44" class="edge">
<title>vmm&#45;&gt;gem5</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M850.94,-493.87C914.24,-493.87 1076.35,-493.87 1151.84,-493.87"/>
<polygon fill="black" stroke="black" points="1151.89,-497.37 1161.89,-493.87 1151.89,-490.37 1151.89,-497.37"/>
</g>
<!-- vmm&#45;&gt;qemu -->
<g id="edge45" class="edge">
<title>vmm&#45;&gt;qemu</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M846.16,-497C904.4,-505.58 1067.18,-529.55 1146.73,-541.26"/>
<polygon fill="black" stroke="black" points="1146.52,-544.76 1156.92,-542.76 1147.54,-537.84 1146.52,-544.76"/>
</g>
<!-- crosvm_openwrt_log_tee&#45;&gt;crosvm_openwrt -->
<g id="edge20" class="edge">
<title>crosvm_openwrt_log_tee&#45;&gt;crosvm_openwrt</title>
<path fill="none" stroke="black" d="M870.44,-156.87C931.42,-156.87 1040.43,-156.87 1114.36,-156.87"/>
<polygon fill="black" stroke="black" points="870.36,-153.37 860.36,-156.87 870.36,-160.37 870.36,-153.37"/>
</g>
<!-- wmediumd_log_tee&#45;&gt;wmediumd -->
<g id="edge39" class="edge">
<title>wmediumd_log_tee&#45;&gt;wmediumd</title>
<path fill="none" stroke="black" d="M870.46,-102.87C939.3,-102.87 1069.3,-102.87 1140.99,-102.87"/>
<polygon fill="black" stroke="black" points="870.36,-99.37 860.36,-102.87 870.36,-106.37 870.36,-99.37"/>
</g>
</g>
</svg>