@tscircuit/schematic-trace-solver 0.0.181 → 0.0.182

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
1
  <svg width="1200" height="2016" viewBox="0 0 1200 2016" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on top and Circuit JSON schematic on the bottom">
2
2
  <g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
3
- <rect width="100%" height="100%" fill="white"/><g><polyline data-points="-40.38,-0.2 -39.78,-4" data-type="line" data-label="" points="60.32238600120672,313.99017326092576 89.28540643048018,497.42263597965683" fill="none" stroke="hsl(287, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-34.32,3 -30.6,3" data-type="line" data-label="" points="352.8488923368675,159.52073097146797 532.4196189983622,159.52073097146797" fill="none" stroke="hsl(278, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-29.4,3 -37.62,-0.1" data-type="line" data-label="" points="590.3456598569089,159.52073097146797 193.5522799758644,309.16300318938016" fill="none" stroke="hsl(81, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-40.38,0 -38.22,-4" data-type="line" data-label="" points="60.32238600120672,304.3358331178346 164.58925954659094,497.42263597965683" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-40.38,0 -34,-3.3800000000000003" data-type="line" data-label="" points="60.32238600120672,304.3358331178346 368.29583656581326,467.4941815360744" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-38.22,-4 -34,-3.3800000000000003" data-type="line" data-label="" points="164.58925954659094,497.42263597965683 368.29583656581326,467.4941815360744" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-37.62,0.1 -34,-2.6199999999999997" data-type="line" data-label="" points="193.5522799758644,299.5086630462891 368.29583656581326,430.80768899232817" fill="none" stroke="hsl(271, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-40.38,0.2 -35.76,3" data-type="line" data-label="" points="60.32238600120672,294.6814929747435 283.33764330661165,159.52073097146797" fill="none" stroke="hsl(170, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-40.38,-0.2 -40.580000000000005,-0.2 -40.580000000000005,-4 -39.78,-4" data-type="line" data-label="" points="60.32238600120672,313.99017326092576 50.66804585811565,313.99017326092576 50.66804585811565,497.42263597965683 89.28540643048018,497.42263597965683" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-34.32,3 -30.6,3" data-type="line" data-label="" points="352.8488923368675,159.52073097146797 532.4196189983622,159.52073097146797" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-29.4,3 -29.2,3 -29.2,-0.1 -37.62,-0.1" data-type="line" data-label="" points="590.3456598569089,159.52073097146797 600,159.52073097146797 600,309.16300318938016 193.5522799758644,309.16300318938016" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-38.22,-4 -34,-4 -34,-3.3800000000000003" data-type="line" data-label="" points="164.58925954659094,497.42263597965683 368.29583656581326,497.42263597965683 368.29583656581326,467.4941815360744" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-37.62,0.1 -37.319,0.1 -37.319,0.30100000000000005" data-type="line" data-label="" points="193.5522799758644,299.5086630462891 208.0820618912162,299.5086630462891 208.0820618912162,289.8060512024825" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-35.76,3 -36.06099999999999,3 -36.06099999999999,3.351" data-type="line" data-label="" points="283.33764330661165,159.52073097146797 268.80786139125985,159.52073097146797 268.80786139125985,142.57736402034308" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-34,-2.6199999999999997 -34,0.11899999999999977" data-type="line" data-label="" points="368.29583656581326,430.80768899232817 368.29583656581326,298.5915007326954" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-39" data-y="0" x="60.32238600120684" y="289.85432290319795" width="133.22989397465767" height="28.963020429273342" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-39" data-y="-4" x="89.2854064304803" y="481.01025773640197" width="75.30385311611076" height="32.82475648650973" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-33.447500000000005" data-y="-3" x="346.57357124385817" y="430.80768899232817" width="96.78475993448819" height="36.686492543746226" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-35.04" data-y="3" x="283.33764330661165" y="143.10835272821308" width="69.51124903025584" height="32.824756486509784" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-30" data-y="3" x="532.4196189983624" y="131.04042754934918" width="57.926040858546685" height="56.96060684423759" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="MCP73831T-2ACI/OT" data-x="-38.959999999999994" data-y="-0.43" x="79.63106628738967" y="320.7482113610895" width="98.47426945952907" height="8.688906128782037" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="U_CHARGER" data-x="-39.44" data-y="0.41500000000000004" x="76.73476424446187" y="278.2691147314886" width="57.926040858546685" height="12.067925178863902" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: GND
3
+ <rect width="100%" height="100%" fill="white"/><g><polyline data-points="-40.38,-0.2 -39.78,-4" data-type="line" data-label="" points="60.32238600120672,313.99017326092576 89.28540643048018,497.42263597965683" fill="none" stroke="hsl(287, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-34.32,3 -30.6,3" data-type="line" data-label="" points="352.8488923368675,159.52073097146797 532.4196189983622,159.52073097146797" fill="none" stroke="hsl(278, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-29.4,3 -37.62,-0.1" data-type="line" data-label="" points="590.3456598569089,159.52073097146797 193.5522799758644,309.16300318938016" fill="none" stroke="hsl(81, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-40.38,0 -38.22,-4" data-type="line" data-label="" points="60.32238600120672,304.3358331178346 164.58925954659094,497.42263597965683" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-40.38,0 -34,-3.3800000000000003" data-type="line" data-label="" points="60.32238600120672,304.3358331178346 368.29583656581326,467.4941815360744" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-38.22,-4 -34,-3.3800000000000003" data-type="line" data-label="" points="164.58925954659094,497.42263597965683 368.29583656581326,467.4941815360744" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-37.62,0.1 -34,-2.6199999999999997" data-type="line" data-label="" points="193.5522799758644,299.5086630462891 368.29583656581326,430.80768899232817" fill="none" stroke="hsl(271, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-40.38,0.2 -35.76,3" data-type="line" data-label="" points="60.32238600120672,294.6814929747435 283.33764330661165,159.52073097146797" fill="none" stroke="hsl(170, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-40.38,-0.2 -40.580000000000005,-0.2 -40.580000000000005,-4 -39.78,-4" data-type="line" data-label="" points="60.32238600120672,313.99017326092576 50.66804585811565,313.99017326092576 50.66804585811565,497.42263597965683 89.28540643048018,497.42263597965683" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-34.32,3 -30.6,3" data-type="line" data-label="" points="352.8488923368675,159.52073097146797 532.4196189983622,159.52073097146797" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-29.4,3 -29.2,3 -29.2,-0.1 -37.62,-0.1" data-type="line" data-label="" points="590.3456598569089,159.52073097146797 600,159.52073097146797 600,309.16300318938016 193.5522799758644,309.16300318938016" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-38.22,-4 -34,-4 -34,-3.3800000000000003" data-type="line" data-label="" points="164.58925954659094,497.42263597965683 368.29583656581326,497.42263597965683 368.29583656581326,467.4941815360744" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-37.62,0.1 -37.319,0.1 -37.319,0.30100000000000005" data-type="line" data-label="" points="193.5522799758644,299.5086630462891 208.0820618912162,299.5086630462891 208.0820618912162,289.8060512024825" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-35.76,3 -36.06099999999999,3 -36.06099999999999,3.351" data-type="line" data-label="" points="283.33764330661165,159.52073097146797 268.80786139125985,159.52073097146797 268.80786139125985,142.57736402034308" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-39" data-y="0" x="60.32238600120684" y="289.85432290319795" width="133.22989397465767" height="28.963020429273342" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-39" data-y="-4" x="89.2854064304803" y="481.01025773640197" width="75.30385311611076" height="32.82475648650973" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-33.447500000000005" data-y="-3" x="346.57357124385817" y="430.80768899232817" width="96.78475993448819" height="36.686492543746226" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-35.04" data-y="3" x="283.33764330661165" y="143.10835272821308" width="69.51124903025584" height="32.824756486509784" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-30" data-y="3" x="532.4196189983624" y="131.04042754934918" width="57.926040858546685" height="56.96060684423759" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="MCP73831T-2ACI/OT" data-x="-38.959999999999994" data-y="-0.43" x="79.63106628738967" y="320.7482113610895" width="98.47426945952907" height="8.688906128782037" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="U_CHARGER" data-x="-39.44" data-y="0.41500000000000004" x="76.73476424446187" y="278.2691147314886" width="57.926040858546685" height="12.067925178863902" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: GND
4
4
  globalConnNetId: connectivity_net3" data-x="-40.591" data-y="0" x="40" y="299.5086630462891" width="20.27411430049142" height="9.654340143091076" fill="#00000066" stroke="#000000" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: GND
5
5
  globalConnNetId: connectivity_net3" data-x="-34" data-y="-4.21" x="356.71062839410376" y="497.4226359796568" width="23.170416343418992" height="20.274114300491362" fill="#00000066" stroke="#000000" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: VBAT
6
6
  globalConnNetId: connectivity_net4" data-x="-37.319" data-y="0.511" x="193.6005516765797" y="269.5319369019912" width="28.963020429273" height="20.274114300491306" fill="#ef444466" stroke="#ef4444" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: VBAT
7
- globalConnNetId: connectivity_net4" data-x="-34" data-y="0.3299999999999996" x="353.81432635117665" y="278.2691147314887" width="28.96302042927323" height="20.274114300491362" fill="#ef444466" stroke="#ef4444" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: VBUS
7
+ globalConnNetId: connectivity_net4" data-x="-34" data-y="-2.409" x="353.81432635117665" y="410.4853029911214" width="28.96302042927323" height="20.274114300491306" fill="#ef444466" stroke="#ef4444" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: VBUS
8
8
  globalConnNetId: connectivity_net5" data-x="-40.591" data-y="0.2" x="40" y="289.85432290319795" width="20.27411430049142" height="9.654340143091133" fill="#ef444466" stroke="#ef4444" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="netId: VBUS
9
9
  globalConnNetId: connectivity_net5" data-x="-36.06099999999999" data-y="3.561" x="254.32635117662335" y="122.30324971985173" width="28.963020429273" height="20.274114300491334" fill="#ef444466" stroke="#ef4444" stroke-width="0.020716071428571434"/></g><g><rect data-type="rect" data-label="INLINE netId: CHG_PROG
10
10
  axis: y
@@ -29,7 +29,7 @@ x+" data-x="-29.4" data-y="3" cx="590.3456598569089" cy="159.52073097146797" r="
29
29
  orientation: x-" data-x="-40.38" data-y="0" cx="60.32238600120672" cy="304.3358331178346" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
30
30
  orientation: y-" data-x="-34" data-y="-4" cx="368.29583656581326" cy="497.42263597965683" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
31
31
  orientation: y+" data-x="-37.319" data-y="0.30100000000000005" cx="208.0820618912162" cy="289.8060512024825" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
32
- orientation: y+" data-x="-34" data-y="0.11899999999999977" cx="368.29583656581326" cy="298.5915007326954" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
32
+ orientation: y+" data-x="-34" data-y="-2.6199999999999997" cx="368.29583656581326" cy="430.80768899232817" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
33
33
  orientation: x-" data-x="-40.38" data-y="0.2" cx="60.32238600120672" cy="294.6814929747435" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
34
34
  orientation: y+" data-x="-36.06099999999999" data-y="3.351" cx="268.80786139125985" cy="142.57736402034308" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="inline anchor
35
35
  CHG_PROG" data-x="-40.580000000000005" data-y="-2.1" cx="50.66804585811565" cy="405.7064046202913" r="3" fill="green"/></g><g><circle data-type="point" data-label="inline anchor
@@ -91,7 +91,7 @@ CHG_STAT" data-x="-33.41" data-y="-0.1" cx="396.7761399879323" cy="309.163003189
91
91
  .port-label { fill: rgb(0, 100, 100); }
92
92
  .component-name { fill: rgb(0, 100, 100); }
93
93
 
94
- </style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 134.10868620982365 389.10864382934 L 116.61253171878343 389.10864382934 L 116.61253171878343 721.5355791591 L 186.59714968294384 721.5355791591" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 134.10868620982365 389.10864382934 L 116.61253171878343 389.10864382934 L 116.61253171878343 721.5355791591 L 186.59714968294384 721.5355791591" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 664.2421672883361 109.17017197270002 L 989.6706408216796 109.17017197270002" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 664.2421672883361 109.17017197270002 L 989.6706408216796 109.17017197270002" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 1094.64756776792 109.17017197270002 L 1112.1437222589598 109.17017197270002 L 1112.1437222589598 380.36056658382 L 375.55561818617616 380.36056658382" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1094.64756776792 109.17017197270002 L 1112.1437222589598 109.17017197270002 L 1112.1437222589598 380.36056658382 L 375.55561818617616 380.36056658382" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 323.06715471305597 721.5355791591 L 692.2360144740001 721.5355791591 L 692.2360144740001 667.297500236876" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 323.06715471305597 721.5355791591 L 692.2360144740001 721.5355791591 L 692.2360144740001 667.297500236876" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 375.55561818617616 362.86441209278 L 401.88733069519094 362.86441209278 L 401.88733069519094 345.28077682928483" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 375.55561818617616 362.86441209278 L 401.88733069519094 362.86441209278 L 401.88733069519094 345.28077682928483" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"><path d="M 538.2698549528482 109.17017197270002 L 511.9381424438334 109.17017197270002 L 511.9381424438334 78.46442084092484" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 538.2698549528482 109.17017197270002 L 511.9381424438334 109.17017197270002 L 511.9381424438334 78.46442084092484" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_6__stack1"><path d="M 692.2360144740001 600.812113170924 L 692.2360144740001 361.2022774161312" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 692.2360144740001 600.812113170924 L 692.2360144740001 361.2022774161312" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_6__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="169.10099519190362" y="345.36825760174" width="171.46231401219256" height="52.488463473119964" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="169.10099519190362" y="345.36825760174" width="171.46231401219256" height="52.488463473119964" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="340.5633092040962" y1="380.36056658382" x2="375.55561818617616" y2="380.36056658382" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="373.80600273707216" y="378.610951134716" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="358.05946369513595" y="378.610951134716" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="331.8152319585761" y="380.36056658382" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">STAT</text><line class="component-pin sch-component-pin sch-port-line" x1="169.10099519190362" y1="371.6124893383" x2="135.8583016589282" y2="371.6124893383" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="134.10868620982365" cy="371.6124893383" r="1.749615449104" stroke-width="1.749615449104px"/><rect x="132.35907076071965" y="369.862873889196" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="151.60484070086386" y="369.862873889196" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="177.84907243742373" y="371.6124893383" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">VSS</text><line class="component-pin sch-component-pin sch-port-line" x1="340.5633092040962" y1="362.86441209278" x2="375.55561818617616" y2="362.86441209278" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="373.80600273707216" y="361.114796643676" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="358.05946369513595" y="361.114796643676" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="331.8152319585761" y="362.86441209278" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">VBAT</text><line class="component-pin sch-component-pin sch-port-line" x1="169.10099519190362" y1="354.11633484726" x2="135.8583016589282" y2="354.11633484726" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="134.10868620982365" cy="354.11633484726" r="1.749615449104" stroke-width="1.749615449104px"/><rect x="132.35907076071965" y="352.366719398156" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="151.60484070086386" y="352.366719398156" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="177.84907243742373" y="354.11633484726" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">VDD</text><line class="component-pin sch-component-pin sch-port-line" x1="169.10099519190362" y1="389.10864382934" x2="134.10868620982365" y2="389.10864382934" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="132.35907076071965" y="387.359028380236" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="151.60484070086386" y="387.359028380236" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="177.84907243742373" y="389.10864382934" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">PROG</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="221.5894586650238" y="691.792116524332" width="66.48538706595218" height="59.48692526953596" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="221.5894586650238" y="691.792116524332" width="66.48538706595218" height="59.48692526953596" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="221.5894586650238" y1="721.5355791591" x2="186.59714968294384" y2="721.5355791591" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="184.84753423383984" y="719.785963709996" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="204.09330417398405" y="719.7859637099959" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="230.33753591054392" y="721.5355791591" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="288.074845730976" y1="721.5355791591" x2="323.06715471305597" y2="721.5355791591" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="321.31753926395197" y="719.785963709996" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="305.57100022201575" y="719.7859637099959" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="279.3267684854559" y="721.5355791591" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="652.8696668691596" y="629.6807680811401" width="175.3989487726758" height="8.74807724551988" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="652.8696668691596" y="629.6807680811401" width="175.3989487726758" height="8.74807724551988" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="692.2360144740001" y1="629.6807680811401" x2="692.2360144740001" y2="600.812113170924" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="690.4863990248961" y="599.06249772182" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="690.4863990248955" y="615.2464406260319" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform="rotate(-90 690.4863990248955 615.2464406260319)"></text><text class="pin-number sch-pin-label" x="692.2360144740001" y="638.4288453266599" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="rotate(-90 692.2360144740001 638.4288453266599)">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="692.2360144740001" y1="638.4288453266599" x2="692.2360144740001" y2="667.297500236876" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="690.4863990248961" y="665.547884787772" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="690.4863990248955" y="652.8631727817681" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform="rotate(-90 690.4863990248955 652.8631727817681)"></text><text class="pin-number sch-pin-label" x="692.2360144740001" y="629.6807680811401" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="rotate(-90 692.2360144740001 629.6807680811401)">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component chip sch-component-body" x="573.2621639349281" y="79.42670933793198" width="55.98769437132796" height="59.48692526953607" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="573.2621639349281" y="79.42670933793198" width="55.98769437132796" height="59.48692526953607" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="573.2621639349281" y1="109.17017197270002" x2="538.2698549528482" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_3_0__stack1"><rect x="536.5202395037442" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="555.7660094438884" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="582.0102411804482" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="629.2498583062561" y1="109.17017197270002" x2="664.2421672883361" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_3_1__stack1"><rect x="662.4925518392321" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="646.7460127972959" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="620.501781060736" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component chip sch-component-body" x="1024.6629498037596" y="57.556516224132" width="34.99230898208043" height="103.22731149713604" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="1024.6629498037596" y="57.556516224132" width="34.99230898208043" height="103.22731149713604" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="1024.6629498037596" y1="109.17017197270002" x2="989.6706408216796" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_4_0__stack1"><rect x="987.9210253725756" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="1007.1667953127198" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="1033.4110270492797" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="1059.65525878584" y1="109.17017197270002" x2="1094.64756776792" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_4_1__stack1"><rect x="1092.897952318816" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="1077.1514132768802" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="1050.90718154032" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">cathode</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="375.55561818617616" cy="380.36056658382" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="134.10868620982365" cy="371.6124893383" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="375.55561818617616" cy="362.86441209278" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="134.10868620982365" cy="354.11633484726" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="134.10868620982365" cy="389.10864382934" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="186.59714968294384" cy="721.5355791591" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="323.06715471305597" cy="721.5355791591" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="692.2360144740001" cy="600.812113170924" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="692.2360144740001" cy="667.297500236876" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="538.2698549528482" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="664.2421672883361" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="989.6706408216796" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="1094.64756776792" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
94
+ </style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 134.10868620982365 389.10864382934 L 116.61253171878343 389.10864382934 L 116.61253171878343 721.5355791591 L 186.59714968294384 721.5355791591" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 134.10868620982365 389.10864382934 L 116.61253171878343 389.10864382934 L 116.61253171878343 721.5355791591 L 186.59714968294384 721.5355791591" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 664.2421672883361 109.17017197270002 L 989.6706408216796 109.17017197270002" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 664.2421672883361 109.17017197270002 L 989.6706408216796 109.17017197270002" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 1094.64756776792 109.17017197270002 L 1112.1437222589598 109.17017197270002 L 1112.1437222589598 380.36056658382 L 375.55561818617616 380.36056658382" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1094.64756776792 109.17017197270002 L 1112.1437222589598 109.17017197270002 L 1112.1437222589598 380.36056658382 L 375.55561818617616 380.36056658382" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 323.06715471305597 721.5355791591 L 692.2360144740001 721.5355791591 L 692.2360144740001 667.297500236876" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 323.06715471305597 721.5355791591 L 692.2360144740001 721.5355791591 L 692.2360144740001 667.297500236876" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 375.55561818617616 362.86441209278 L 401.88733069519094 362.86441209278 L 401.88733069519094 345.28077682928483" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 375.55561818617616 362.86441209278 L 401.88733069519094 362.86441209278 L 401.88733069519094 345.28077682928483" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"><path d="M 538.2698549528482 109.17017197270002 L 511.9381424438334 109.17017197270002 L 511.9381424438334 78.46442084092484" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="13.996923592832px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 538.2698549528482 109.17017197270002 L 511.9381424438334 109.17017197270002 L 511.9381424438334 78.46442084092484" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.749615449104px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="169.10099519190362" y="345.36825760174" width="171.46231401219256" height="52.488463473119964" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="169.10099519190362" y="345.36825760174" width="171.46231401219256" height="52.488463473119964" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="340.5633092040962" y1="380.36056658382" x2="375.55561818617616" y2="380.36056658382" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="373.80600273707216" y="378.610951134716" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="358.05946369513595" y="378.610951134716" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="331.8152319585761" y="380.36056658382" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">STAT</text><line class="component-pin sch-component-pin sch-port-line" x1="169.10099519190362" y1="371.6124893383" x2="135.8583016589282" y2="371.6124893383" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="134.10868620982365" cy="371.6124893383" r="1.749615449104" stroke-width="1.749615449104px"/><rect x="132.35907076071965" y="369.862873889196" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="151.60484070086386" y="369.862873889196" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="177.84907243742373" y="371.6124893383" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">VSS</text><line class="component-pin sch-component-pin sch-port-line" x1="340.5633092040962" y1="362.86441209278" x2="375.55561818617616" y2="362.86441209278" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="373.80600273707216" y="361.114796643676" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="358.05946369513595" y="361.114796643676" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="331.8152319585761" y="362.86441209278" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">VBAT</text><line class="component-pin sch-component-pin sch-port-line" x1="169.10099519190362" y1="354.11633484726" x2="135.8583016589282" y2="354.11633484726" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="134.10868620982365" cy="354.11633484726" r="1.749615449104" stroke-width="1.749615449104px"/><rect x="132.35907076071965" y="352.366719398156" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="151.60484070086386" y="352.366719398156" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="177.84907243742373" y="354.11633484726" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">VDD</text><line class="component-pin sch-component-pin sch-port-line" x1="169.10099519190362" y1="389.10864382934" x2="134.10868620982365" y2="389.10864382934" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="132.35907076071965" y="387.359028380236" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="151.60484070086386" y="387.359028380236" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="177.84907243742373" y="389.10864382934" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">PROG</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="221.5894586650238" y="691.792116524332" width="66.48538706595218" height="59.48692526953596" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="221.5894586650238" y="691.792116524332" width="66.48538706595218" height="59.48692526953596" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="221.5894586650238" y1="721.5355791591" x2="186.59714968294384" y2="721.5355791591" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="184.84753423383984" y="719.785963709996" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="204.09330417398405" y="719.7859637099959" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="230.33753591054392" y="721.5355791591" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="288.074845730976" y1="721.5355791591" x2="323.06715471305597" y2="721.5355791591" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="321.31753926395197" y="719.785963709996" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="305.57100022201575" y="719.7859637099959" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="279.3267684854559" y="721.5355791591" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="652.8696668691596" y="629.6807680811401" width="175.3989487726758" height="8.74807724551988" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="652.8696668691596" y="629.6807680811401" width="175.3989487726758" height="8.74807724551988" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="692.2360144740001" y1="629.6807680811401" x2="692.2360144740001" y2="602.5617286200279" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="692.2360144740001" cy="600.812113170924" r="1.749615449104" stroke-width="1.749615449104px"/><rect x="690.4863990248961" y="599.06249772182" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="690.4863990248955" y="615.2464406260319" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform="rotate(-90 690.4863990248955 615.2464406260319)"></text><text class="pin-number sch-pin-label" x="692.2360144740001" y="638.4288453266599" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="rotate(-90 692.2360144740001 638.4288453266599)">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="692.2360144740001" y1="638.4288453266599" x2="692.2360144740001" y2="667.297500236876" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="690.4863990248961" y="665.547884787772" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="690.4863990248955" y="652.8631727817681" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform="rotate(-90 690.4863990248955 652.8631727817681)"></text><text class="pin-number sch-pin-label" x="692.2360144740001" y="629.6807680811401" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="rotate(-90 692.2360144740001 629.6807680811401)">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component chip sch-component-body" x="573.2621639349281" y="79.42670933793198" width="55.98769437132796" height="59.48692526953607" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="573.2621639349281" y="79.42670933793198" width="55.98769437132796" height="59.48692526953607" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="573.2621639349281" y1="109.17017197270002" x2="538.2698549528482" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_3_0__stack1"><rect x="536.5202395037442" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="555.7660094438884" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="582.0102411804482" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="629.2498583062561" y1="109.17017197270002" x2="664.2421672883361" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_3_1__stack1"><rect x="662.4925518392321" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="646.7460127972959" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="620.501781060736" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">cathode</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component chip sch-component-body" x="1024.6629498037596" y="57.556516224132" width="34.99230898208043" height="103.22731149713604" stroke-width="1.749615449104px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="1024.6629498037596" y="57.556516224132" width="34.99230898208043" height="103.22731149713604" fill="transparent"/><line class="component-pin sch-component-pin sch-port-line" x1="1024.6629498037596" y1="109.17017197270002" x2="989.6706408216796" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_4_0__stack1"><rect x="987.9210253725756" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="1007.1667953127198" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="1033.4110270492797" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="start" dominant-baseline="middle" font-size="13.12211586828px" transform="">anode</text><line class="component-pin sch-component-pin sch-port-line" x1="1059.65525878584" y1="109.17017197270002" x2="1094.64756776792" y2="109.17017197270002" stroke-width="1.749615449104px"/><g class="sch-port" data-schematic-port-id="source_port_4_1__stack1"><rect x="1092.897952318816" y="107.42055652359602" width="3.499230898208" height="3.499230898208" opacity="0"/></g><text class="pin-number sch-pin-number" x="1077.1514132768802" y="107.42055652359602" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.12211586828px" transform=""></text><text class="pin-number sch-pin-label" x="1050.90718154032" y="109.17017197270002" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="end" dominant-baseline="middle" font-size="13.12211586828px" transform="">cathode</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="375.55561818617616" cy="380.36056658382" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="134.10868620982365" cy="371.6124893383" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="375.55561818617616" cy="362.86441209278" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="134.10868620982365" cy="354.11633484726" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="134.10868620982365" cy="389.10864382934" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="186.59714968294384" cy="721.5355791591" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="323.06715471305597" cy="721.5355791591" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="692.2360144740001" cy="600.812113170924" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="692.2360144740001" cy="667.297500236876" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="538.2698549528482" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="664.2421672883361" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="989.6706408216796" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="1094.64756776792" cy="109.17017197270002" r="3.499230898208" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
95
95
  M 134.10868620982365,371.6124893383
96
96
  L 129.38472449724284,380.36056658382
97
97
  L 99.38465159660626,380.36056658382
@@ -106,13 +106,13 @@ CHG_STAT" data-x="-33.41" data-y="-0.1" cx="396.7761399879323" cy="309.163003189
106
106
  L 410.63540794071093,340.55681511670406
107
107
  Z
108
108
  " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.749615449104px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="401.88733069519094" y="337.40750730831684" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.746539041935998px" transform="rotate(-90 401.88733069519094 337.40750730831684)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
109
- M 692.2360144740001,361.2022774161312
110
- L 683.4879372284801,356.47831570355044
111
- L 683.4879372284801,326.4782428029138
112
- L 700.98409171952,326.4782428029138
113
- L 700.98409171952,356.47831570355044
109
+ M 692.2360144740001,600.812113170924
110
+ L 683.4879372284801,596.0881514583432
111
+ L 683.4879372284801,566.0880785577067
112
+ L 700.98409171952,566.0880785577067
113
+ L 700.98409171952,596.0881514583432
114
114
  Z
115
- " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.749615449104px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="692.2360144740001" y="353.3290078951632" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.746539041935998px" transform="rotate(-90 692.2360144740001 353.3290078951632)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
115
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.749615449104px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="692.2360144740001" y="592.938843649956" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="15.746539041935998px" transform="rotate(-90 692.2360144740001 592.938843649956)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
116
116
  M 134.10868620982365,354.11633484726
117
117
  L 129.38472449724284,362.86441209278
118
118
  L 99.38465159660626,362.86441209278
@@ -126,6 +126,68 @@ test("leaves a label without a movable connector in place", () => {
126
126
  expect(output.netLabelPlacements[0]).toEqual(label)
127
127
  })
128
128
 
129
+ test("leaves a label in place when its new connector would cross another net", () => {
130
+ const inputProblem: InputProblem = {
131
+ chips: [
132
+ {
133
+ chipId: "U1",
134
+ center: { x: 0, y: 0 },
135
+ width: 2,
136
+ height: 1,
137
+ pins: [{ pinId: "U1.1", x: -0.5, y: 0.2, _facingDirection: "x-" }],
138
+ },
139
+ ],
140
+ directConnections: [],
141
+ netConnections: [],
142
+ availableNetLabelOrientations: {},
143
+ }
144
+ const label: NetLabelPlacement = {
145
+ globalConnNetId: "regular-net",
146
+ netId: "D_PLUS",
147
+ mspConnectionPairIds: [],
148
+ pinIds: ["U1.1"],
149
+ orientation: "x-",
150
+ anchorPoint: { x: -0.5, y: 0.2 },
151
+ center: { x: -0.6, y: 0.2 },
152
+ width: 0.2,
153
+ height: 0.2,
154
+ }
155
+ const crossingTrace: SolvedTracePath = {
156
+ mspPairId: "crossing-trace",
157
+ dcConnNetId: "crossing-net",
158
+ globalConnNetId: "crossing-net",
159
+ pins: [] as any,
160
+ tracePath: [
161
+ { x: -1.2, y: -0.2 },
162
+ { x: -1.2, y: 0.4 },
163
+ ],
164
+ mspConnectionPairIds: ["crossing-trace"],
165
+ pinIds: [],
166
+ }
167
+ const inlineLabel: InlineNetLabelPlacement = {
168
+ globalConnNetId: "inline-net",
169
+ netId: "SWCLK",
170
+ pinIds: ["U1.2"],
171
+ axis: "x",
172
+ anchorPoint: { x: -1.1, y: 0 },
173
+ center: { x: -1.1, y: 0.11 },
174
+ width: 1.2,
175
+ height: 0.12,
176
+ side: "y+",
177
+ }
178
+
179
+ const output = pushAnchoredNetLabelsAwayFromInlineLabels({
180
+ inputProblem,
181
+ traces: [crossingTrace],
182
+ netLabelPlacements: [label],
183
+ inlineNetLabelPlacements: [inlineLabel],
184
+ })
185
+
186
+ expect(output.movedLabelCount).toBe(0)
187
+ expect(output.netLabelPlacements[0]).toEqual(label)
188
+ expect(output.traces).toEqual([crossingTrace])
189
+ })
190
+
129
191
  test("moves a contiguous label row together and shoves an anchored obstacle", () => {
130
192
  const inputProblem: InputProblem = {
131
193
  chips: [