@tscircuit/schematic-trace-solver 0.0.148 → 0.0.150

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.
Files changed (164) hide show
  1. package/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
  2. package/dist/index.d.ts +31 -2
  3. package/dist/index.js +127 -46
  4. package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +115 -6
  5. package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
  6. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
  7. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
  8. package/lib/types/InputProblem.ts +27 -1
  9. package/package.json +8 -1
  10. package/site/examples/example51.page.tsx +4 -0
  11. package/tests/assets/example51.json +5102 -0
  12. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
  13. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
  14. package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
  15. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
  16. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
  17. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
  18. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
  19. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
  20. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
  21. package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
  22. package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
  23. package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
  24. package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
  25. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
  26. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
  27. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
  28. package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
  29. package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
  30. package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
  31. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
  32. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
  33. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
  34. package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
  35. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
  36. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
  37. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
  38. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
  39. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
  40. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
  41. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
  42. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
  43. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
  44. package/tests/examples/__snapshots__/example01.snap.svg +44 -5
  45. package/tests/examples/__snapshots__/example02.snap.svg +51 -5
  46. package/tests/examples/__snapshots__/example03.snap.svg +86 -5
  47. package/tests/examples/__snapshots__/example04.snap.svg +30 -5
  48. package/tests/examples/__snapshots__/example05.snap.svg +30 -5
  49. package/tests/examples/__snapshots__/example06.snap.svg +30 -5
  50. package/tests/examples/__snapshots__/example07.snap.svg +58 -5
  51. package/tests/examples/__snapshots__/example08.snap.svg +37 -5
  52. package/tests/examples/__snapshots__/example09.snap.svg +149 -5
  53. package/tests/examples/__snapshots__/example10.snap.svg +65 -5
  54. package/tests/examples/__snapshots__/example11.snap.svg +51 -5
  55. package/tests/examples/__snapshots__/example12.snap.svg +51 -5
  56. package/tests/examples/__snapshots__/example13.snap.svg +72 -5
  57. package/tests/examples/__snapshots__/example14.snap.svg +79 -5
  58. package/tests/examples/__snapshots__/example15.snap.svg +86 -5
  59. package/tests/examples/__snapshots__/example16.snap.svg +51 -5
  60. package/tests/examples/__snapshots__/example17.snap.svg +51 -5
  61. package/tests/examples/__snapshots__/example18.snap.svg +58 -5
  62. package/tests/examples/__snapshots__/example19.snap.svg +44 -5
  63. package/tests/examples/__snapshots__/example20.snap.svg +44 -5
  64. package/tests/examples/__snapshots__/example21.snap.svg +72 -5
  65. package/tests/examples/__snapshots__/example22.snap.svg +51 -5
  66. package/tests/examples/__snapshots__/example23.snap.svg +51 -5
  67. package/tests/examples/__snapshots__/example24.snap.svg +51 -5
  68. package/tests/examples/__snapshots__/example25.snap.svg +86 -5
  69. package/tests/examples/__snapshots__/example26.snap.svg +51 -5
  70. package/tests/examples/__snapshots__/example27.snap.svg +72 -5
  71. package/tests/examples/__snapshots__/example28.snap.svg +44 -5
  72. package/tests/examples/__snapshots__/example29.snap.svg +324 -5
  73. package/tests/examples/__snapshots__/example30.snap.svg +107 -5
  74. package/tests/examples/__snapshots__/example31.snap.svg +37 -5
  75. package/tests/examples/__snapshots__/example32.snap.svg +149 -5
  76. package/tests/examples/__snapshots__/example33.snap.svg +93 -5
  77. package/tests/examples/__snapshots__/example34.snap.svg +51 -5
  78. package/tests/examples/__snapshots__/example35.snap.svg +58 -5
  79. package/tests/examples/__snapshots__/example36.snap.svg +44 -5
  80. package/tests/examples/__snapshots__/example37.snap.svg +72 -5
  81. package/tests/examples/__snapshots__/example38.snap.svg +30 -5
  82. package/tests/examples/__snapshots__/example39.snap.svg +37 -5
  83. package/tests/examples/__snapshots__/example40.snap.svg +100 -5
  84. package/tests/examples/__snapshots__/example41.snap.svg +44 -5
  85. package/tests/examples/__snapshots__/example42.snap.svg +65 -5
  86. package/tests/examples/__snapshots__/example43.snap.svg +58 -5
  87. package/tests/examples/__snapshots__/example44.snap.svg +107 -5
  88. package/tests/examples/__snapshots__/example45.snap.svg +51 -5
  89. package/tests/examples/__snapshots__/example46.snap.svg +93 -5
  90. package/tests/examples/__snapshots__/example47.snap.svg +93 -5
  91. package/tests/examples/__snapshots__/example48.snap.svg +65 -5
  92. package/tests/examples/__snapshots__/example49.snap.svg +177 -5
  93. package/tests/examples/__snapshots__/example50.snap.svg +93 -5
  94. package/tests/examples/__snapshots__/example51.snap.svg +952 -0
  95. package/tests/examples/example51.test.ts +12 -0
  96. package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
  97. package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
  98. package/tests/fixtures/matcher.ts +45 -8
  99. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
  100. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
  101. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
  102. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
  103. package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
  104. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
  105. package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
  106. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
  107. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
  108. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
  109. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
  110. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
  111. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
  112. package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
  113. package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
  114. package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +260 -0
  115. package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
  116. package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
  117. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
  118. package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
  119. package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
  120. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
  121. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
  122. package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
  123. package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
  124. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
  125. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
  126. package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
  127. package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
  128. package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
  129. package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
  130. package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
  131. package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
  132. package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
  133. package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
  134. package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
  135. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
  136. package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
  137. package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
  138. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
  139. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
  140. package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
  141. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
  142. package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
  143. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
  144. package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
  145. package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
  146. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
  147. package/tests/repros/assets/repro-core-tb67s579ftg-inline-label-routing.input.json +900 -0
  148. package/tests/repros/repro-core-tb67s579ftg-inline-label-routing.test.ts +40 -0
  149. package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
  150. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
  151. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
  152. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
  153. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
  154. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
  155. package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +71 -0
  156. package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
  157. package/tests/solvers/InlineNetLabelSolver/terminal-stub-trace-clearance.test.ts +102 -0
  158. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
  159. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
  160. package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
  161. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
  162. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
  163. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
  164. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +30 -5
@@ -1,4 +1,6 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.7899999999999998,0.41527232500000005 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 190.5420507571811,473.73416457412725" fill="none" stroke="hsl(296, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.64945535,1.2547276749999998 0.6100000000000005,0.215272325" data-type="line" data-label="" points="434.52278287950537,295.72378466869156 360.7881209943128,369.45844655388413" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -2.0149999999999997,3.5597276749999995" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 174.58148167245005,132.21662137844635" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7900000000000003,-2.3547276750000004 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="190.5420507571811,551.7636134328127 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -1.7899999999999998,0.21527232500000004" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 190.54205075718113,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.4100000000000006,0.21527232500000038 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.415272325 -0.18999999999999995,4.3547276749999995" data-type="line" data-label="" points="360.7881209943128,355.27127403412317 304.0394309152689,75.82261061239649" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.64945535,2.354727675 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="434.52278287950537,217.69433581000618 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.4152723250000001 -2.09,0.4152723250000001 -2.09,-0.41972767499999986 -1.7900000000000003,-0.41972767499999986 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 169.26129197753966,355.27127403412317 169.26129197753966,414.5027193041252 190.5420507571811,414.5027193041252 190.5420507571811,473.73416457412725" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.3100000000000005,0.21527232500000038 1.1100000000000005,0.21527232500000038 1.1100000000000005,0.7350000000000001 1.64945535,0.7350000000000001 1.64945535,1.2547276749999998" data-type="line" data-label="" points="410.4432248134762,369.45844655388413 396.25605229371524,369.45844655388413 396.25605229371524,332.5911156112878 434.52278287950537,332.5911156112878 434.52278287950537,295.72378466869156" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -1.8899999999999997,0.21527232500000004 -1.8899999999999997,0.015272324999999976 -1.7899999999999998,0.015272324999999976" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 183.44846449730065,369.45844655388413 183.44846449730065,383.6456190736451 190.54205075718113,383.6456190736451" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.610000000000001,0.015272324999999753 0.7100000000000005,0.015272324999999753 0.7100000000000005,-2.5547276750000005 -1.7900000000000003,-2.5547276750000005 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.78812099431286,383.64561907364515 367.8817072541933,383.64561907364515 367.8817072541933,565.9507859525736 190.5420507571811,565.9507859525736 190.5420507571811,551.7636134328127" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -2.0149999999999997,3.3597276749999994 -1.1025,3.3597276749999994 -1.1025,4.154727674999999 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 174.58148167245005,146.40379389820734 239.31045629385943,146.40379389820734 239.31045629385943,90.00978313215751 304.0394309152689,90.00978313215751" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.410000000000001,0.21527232500000082 2.610000000000001,0.21527232500000082 2.610000000000001,4.859727674999999 -2.0149999999999997,4.859727674999999 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.4584465538841 502.6598461919226,369.4584465538841 502.6598461919226,40.00000000000006 174.58148167245005,40.00000000000006 174.58148167245005,54.18717251976102" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -1.9899999999999998,0.6152723250000001 -1.9899999999999998,1.015272325 0.8100000000000007,1.015272325 0.8100000000000007,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 176.35487823742017,341.0841015143622 176.35487823742017,312.7097564748403 374.97529351407377,312.7097564748403 374.97529351407377,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-0.5899999999999996" data-y="0.315272325" x="190.54205075718113" y="326.89692899460124" width="170.24607023713168" height="70.93586259880487" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="1.88195535" data-y="1.8047276749999999" x="420.7289248903029" y="217.6943358100062" width="60.57289208684921" height="78.02944885868538" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.8600000000000005" data-y="0.21527232500000035" x="410.44322481347626" y="341.8320953579147" width="78.02944885868538" height="55.25270239193884" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.8774999999999997" data-y="4.109727674999999" x="144.788419380952" y="54.18717251976102" width="79.0934867976674" height="78.02944885868533" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-1.6525000000000003" data-y="-1.804727675" x="160.74898846568306" y="473.7341645741272" width="79.09348679766742" height="78.02944885868544" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="0.9100000000000001" data-y="4.3547276749999995" x="304.0394309152689" y="47.448265572874504" width="156.0588977173707" height="56.74869007904397" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: GND
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
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="-1.7899999999999998,0.41527232500000005 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 190.5420507571811,473.73416457412725" fill="none" stroke="hsl(296, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.64945535,1.2547276749999998 0.6100000000000005,0.215272325" data-type="line" data-label="" points="434.52278287950537,295.72378466869156 360.7881209943128,369.45844655388413" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -2.0149999999999997,3.5597276749999995" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 174.58148167245005,132.21662137844635" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7900000000000003,-2.3547276750000004 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="190.5420507571811,551.7636134328127 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -1.7899999999999998,0.21527232500000004" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 190.54205075718113,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.4100000000000006,0.21527232500000038 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.415272325 -0.18999999999999995,4.3547276749999995" data-type="line" data-label="" points="360.7881209943128,355.27127403412317 304.0394309152689,75.82261061239649" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.64945535,2.354727675 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="434.52278287950537,217.69433581000618 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.4152723250000001 -2.09,0.4152723250000001 -2.09,-0.41972767499999986 -1.7900000000000003,-0.41972767499999986 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 169.26129197753966,355.27127403412317 169.26129197753966,414.5027193041252 190.5420507571811,414.5027193041252 190.5420507571811,473.73416457412725" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.3100000000000005,0.21527232500000038 1.1100000000000005,0.21527232500000038 1.1100000000000005,0.7350000000000001 1.64945535,0.7350000000000001 1.64945535,1.2547276749999998" data-type="line" data-label="" points="410.4432248134762,369.45844655388413 396.25605229371524,369.45844655388413 396.25605229371524,332.5911156112878 434.52278287950537,332.5911156112878 434.52278287950537,295.72378466869156" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -1.8899999999999997,0.21527232500000004 -1.8899999999999997,0.015272324999999976 -1.7899999999999998,0.015272324999999976" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 183.44846449730065,369.45844655388413 183.44846449730065,383.6456190736451 190.54205075718113,383.6456190736451" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.610000000000001,0.015272324999999753 0.7100000000000005,0.015272324999999753 0.7100000000000005,-2.5547276750000005 -1.7900000000000003,-2.5547276750000005 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.78812099431286,383.64561907364515 367.8817072541933,383.64561907364515 367.8817072541933,565.9507859525736 190.5420507571811,565.9507859525736 190.5420507571811,551.7636134328127" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -2.0149999999999997,3.3597276749999994 -1.1025,3.3597276749999994 -1.1025,4.154727674999999 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 174.58148167245005,146.40379389820734 239.31045629385943,146.40379389820734 239.31045629385943,90.00978313215751 304.0394309152689,90.00978313215751" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.410000000000001,0.21527232500000082 2.610000000000001,0.21527232500000082 2.610000000000001,4.859727674999999 -2.0149999999999997,4.859727674999999 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.4584465538841 502.6598461919226,369.4584465538841 502.6598461919226,40.00000000000006 174.58148167245005,40.00000000000006 174.58148167245005,54.18717251976102" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -1.9899999999999998,0.6152723250000001 -1.9899999999999998,1.015272325 0.8100000000000007,1.015272325 0.8100000000000007,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 176.35487823742017,341.0841015143622 176.35487823742017,312.7097564748403 374.97529351407377,312.7097564748403 374.97529351407377,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-0.5899999999999996" data-y="0.315272325" x="190.54205075718113" y="326.89692899460124" width="170.24607023713168" height="70.93586259880487" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="1.88195535" data-y="1.8047276749999999" x="420.7289248903029" y="217.6943358100062" width="60.57289208684921" height="78.02944885868538" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.8600000000000005" data-y="0.21527232500000035" x="410.44322481347626" y="341.8320953579147" width="78.02944885868538" height="55.25270239193884" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.8774999999999997" data-y="4.109727674999999" x="144.788419380952" y="54.18717251976102" width="79.0934867976674" height="78.02944885868533" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-1.6525000000000003" data-y="-1.804727675" x="160.74898846568306" y="473.7341645741272" width="79.09348679766742" height="78.02944885868544" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="0.9100000000000001" data-y="4.3547276749999995" x="304.0394309152689" y="47.448265572874504" width="156.0588977173707" height="56.74869007904397" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: GND
2
4
  globalConnNetId: connectivity_net2" data-x="-1.7900000000000003" data-y="-2.7947276750000007" x="183.44846449730062" y="565.9507859525736" width="14.187172519760992" height="34.0492140474264" fill="#00000066" stroke="#000000" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: GND
3
5
  globalConnNetId: connectivity_net2" data-x="-2.0149999999999997" data-y="3.119727674999999" x="167.48789541256957" y="146.4037938982073" width="14.187172519760992" height="34.049214047426375" fill="#00000066" stroke="#000000" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: NODE
4
6
  globalConnNetId: connectivity_net3" data-x="2.510000000000001" data-y="-0.08472767499999917" x="488.4726736721616" y="369.4584465538841" width="14.18717251976102" height="42.56151755928295" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: OUT
@@ -47,7 +49,7 @@ orientation: y-" data-x="0.9100000000000006" data-y="0.215272325" cx="382.068879
47
49
  const h = svg.getElementById('crosshair-h');
48
50
  const v = svg.getElementById('crosshair-v');
49
51
  const coords = svg.getElementById('coordinates');
50
-
52
+
51
53
  crosshair.style.display = 'block';
52
54
  h.setAttribute('x1', '0');
53
55
  h.setAttribute('x2', '640');
@@ -66,13 +68,13 @@ orientation: y-" data-x="0.9100000000000006" data-y="0.215272325" cx="382.068879
66
68
  // y' = (y - ty) / sy
67
69
  const sx = matrix.a;
68
70
  const sy = matrix.d;
69
- const tx = matrix.e;
71
+ const tx = matrix.e;
70
72
  const ty = matrix.f;
71
73
  const realPoint = {
72
74
  x: (x - tx) / sx,
73
75
  y: (y - ty) / sy // Flip y back since we used negative scale
74
76
  }
75
-
77
+
76
78
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
77
79
  coords.setAttribute('x', (x + 5).toString());
78
80
  coords.setAttribute('y', (y - 5).toString());
@@ -80,4 +82,90 @@ orientation: y-" data-x="0.9100000000000006" data-y="0.215272325" cx="382.068879
80
82
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
81
83
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
82
84
  });
83
- ]]></script></svg>
85
+ ]]></script>
86
+ </g>
87
+ <g transform="translate(1216, 200)">
88
+ <style>
89
+ .boundary { fill: rgb(245, 241, 237); }
90
+ .schematic-boundary { fill: none; stroke: #fff; }
91
+ .component { fill: none; stroke: rgb(132, 0, 0); }
92
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
93
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
94
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
95
+ .pin-number { fill: rgb(169, 0, 0); }
96
+ .port-label { fill: rgb(0, 100, 100); }
97
+ .component-name { fill: rgb(0, 100, 100); }
98
+
99
+ </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 444.07812071500297 444.99706524399335 L 417.348655694713 444.99706524399335 L 417.348655694713 519.3940762171338 L 444.0781207150029 519.3940762171338 L 444.0781207150029 593.7910871902743" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 444.07812071500297 444.99706524399335 L 417.348655694713 444.99706524399335 L 417.348655694713 519.3940762171338 L 444.0781207150029 519.3940762171338 L 444.0781207150029 593.7910871902743" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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 720.282592591333 462.8167085908533 L 702.462949244473 462.8167085908533 L 702.462949244473 416.5098995608895 L 750.5274589372506 416.5098995608895 L 750.5274589372506 370.2030905309257" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 720.282592591333 462.8167085908533 L 702.462949244473 462.8167085908533 L 702.462949244473 416.5098995608895 L 750.5274589372506 416.5098995608895 L 750.5274589372506 370.2030905309257" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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 657.913840877323 462.81670859085335 L 720.282592591333 462.8167085908533" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 657.913840877323 462.81670859085335 L 720.282592591333 462.8167085908533" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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 444.07812071500297 462.81670859085335 L 435.168299041573 462.81670859085335 L 435.168299041573 480.63635193771336 L 444.07812071500297 480.63635193771336" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 444.07812071500297 462.81670859085335 L 435.168299041573 462.81670859085335 L 435.168299041573 480.63635193771336 L 444.07812071500297 480.63635193771336" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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 657.9138408773231 480.63635193771336 L 666.8236625507529 480.63635193771336 L 666.8236625507529 709.6187689448643 L 444.0781207150029 709.6187689448643 L 444.0781207150029 691.7991255980044" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 657.9138408773231 480.63635193771336 L 666.8236625507529 480.63635193771336 L 666.8236625507529 709.6187689448643 L 444.0781207150029 709.6187689448643 L 444.0781207150029 691.7991255980044" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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 424.0310219497855 164.83170095836425 L 424.0310219497855 182.65134430522426 L 505.3331447198342 182.65134430522426 L 505.3331447198342 111.81826200145576 L 586.635267489883 111.81826200145576" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 424.0310219497855 164.83170095836425 L 424.0310219497855 182.65134430522426 L 505.3331447198342 182.65134430522426 L 505.3331447198342 111.81826200145576 L 586.635267489883 111.81826200145576" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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 818.2906309990631 462.81670859085324 L 836.110274345923 462.81670859085324 L 836.110274345923 49.00401920377425 L 424.0310219497855 49.00401920377425 L 424.0310219497855 66.82366255063425" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 818.2906309990631 462.81670859085324 L 836.110274345923 462.81670859085324 L 836.110274345923 49.00401920377425 L 424.0310219497855 49.00401920377425 L 424.0310219497855 66.82366255063425" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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_7__stack1"><path d="M 444.07812071500297 427.17742189713334 L 426.25847736814296 427.17742189713334 L 426.25847736814296 391.53813520341333 L 675.733484224183 391.53813520341333 L 675.733484224183 427.17742189713334 L 657.913840877323 427.17742189713334" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 444.07812071500297 427.17742189713334 L 426.25847736814296 427.17742189713334 L 426.25847736814296 391.53813520341333 L 675.733484224183 391.53813520341333 L 675.733484224183 427.17742189713334 L 657.913840877323 427.17742189713334" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" 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"><circle cx="720.282592591333" cy="462.8167085908533" r="2.6729465020289997" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/></g><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="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_7__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="479.717407408723" y="409.35777855027334" width="142.55714677487998" height="89.09821673429997" stroke-width="1.781964334686px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="479.717407408723" y="409.35777855027334" width="142.55714677487998" height="89.09821673429997" fill="transparent"/><text class="sch-text" x="550.9959807961629" y="453.9068869174233" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="16.037679012174px" transform="rotate(0, 550.9959807961629, 453.9068869174233)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="480.63635193771336" x2="657.913840877323" y2="480.63635193771336" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="656.131876542637" y="478.85438760302736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="478.85438760302736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="480.63635193771336" x2="444.07812071500297" y2="480.63635193771336" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="442.296156380317" y="478.85438760302736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="478.85438760302736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="444.99706524399335" x2="656.131876542637" y2="444.99706524399335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="657.913840877323" cy="444.99706524399335" r="1.781964334686" stroke-width="1.781964334686px"/><rect x="656.131876542637" y="443.21510090930735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="443.21510090930735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="427.17742189713334" x2="444.07812071500297" y2="427.17742189713334" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="442.296156380317" y="425.39545756244735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="425.39545756244735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="444.99706524399335" x2="444.07812071500297" y2="444.99706524399335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="442.296156380317" y="443.21510090930735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="443.21510090930735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="462.81670859085335" x2="444.07812071500297" y2="462.81670859085335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><rect x="442.296156380317" y="461.03474425616736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="461.03474425616736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="462.81670859085335" x2="657.913840877323" y2="462.81670859085335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><rect x="656.131876542637" y="461.03474425616736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="461.03474425616736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="427.17742189713334" x2="657.913840877323" y2="427.17742189713334" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="656.131876542637" y="425.39545756244735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="425.39545756244735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="737.4629874175001" y="272.19505212319564" width="26.128943039500882" height="98.00803840773006" fill="transparent"/><path class="sch-component-symbol-path" d="M 750.5274589372506 272.19505212319564 L 750.5274589372506 288.5329921257643" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 750.5274589372506 353.86515052835705 L 750.5274589372506 370.2030905309257" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 763.591930457001 288.5329921257643 L 763.591930457001 353.86515052835705 L 737.4629874175001 353.86515052835705 L 737.4629874175001 288.5329921257643 L 763.591930457001 288.5329921257643" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="776.6629358459786" y="295.0635944183327" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="16.037679012174px">R1</text><text class="sch-component-text" x="776.6629358459786" y="347.33454823578865" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="16.037679012174px"></text><circle class="component-pin sch-component-pin" cx="750.5274589372506" cy="272.19505212319564" r="1.781964334686px" stroke-width="1.781964334686px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="720.282592591333" y="449.7522370711029" width="98.00803840773006" height="26.12894303950077" fill="transparent"/><path class="sch-component-symbol-path" d="M 720.282592591333 462.8167085908533 L 736.6205325939017 462.8167085908533" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 801.9526909964944 462.8167085908533 L 818.2906309990631 462.8167085908533" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 736.6205325939017 449.7522370711029 L 801.9526909964944 449.7522370711029 L 801.9526909964944 475.8811801106037 L 736.6205325939017 475.8811801106037 L 736.6205325939017 449.7522370711029" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="769.286611795198" y="436.6812316821253" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="16.037679012174px">R2</text><text class="sch-component-text" x="769.286611795198" y="488.9521854995813" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="16.037679012174px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component-overlay sch-component-overlay" x="397.89227810644394" y="66.82366255063424" width="52.277487686683116" height="98.00803840772996" fill="transparent"/><path class="sch-component-symbol-path" d="M 424.0310219497855 164.8317009583642 L 424.0310219497855 125.62848559527222" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 424.0310219497855 106.02687791372622 L 424.0310219497855 66.82366255063424" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 450.16976579312706 125.62848559527222 L 397.89227810644394 125.62848559527222" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 450.16976579312706 106.02687791372622 L 397.89227810644394 106.02687791372622" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="442.81589597793374" y="83.15833561858923" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="16.037679012174px">C1</text><text class="sch-component-text" x="442.81589597793374" y="148.4970278904092" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="16.037679012174px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component-overlay sch-component-overlay" x="417.9393768716613" y="593.7910871902743" width="52.27748768668323" height="98.00803840773006" fill="transparent"/><path class="sch-component-symbol-path" d="M 444.0781207150029 691.7991255980044 L 444.0781207150029 652.5959102349124" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 444.0781207150029 632.9943025533663 L 444.0781207150029 593.7910871902743" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 470.2168645583445 652.5959102349124 L 417.9393768716613 652.5959102349124" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 470.2168645583445 632.9943025533663 L 417.9393768716613 632.9943025533663" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="462.86299474315115" y="610.1257602582293" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="16.037679012174px">C2</text><text class="sch-component-text" x="462.86299474315115" y="675.4644525300494" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="16.037679012174px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_5__stack1"><rect class="component chip sch-component-body" x="622.274554183603" y="58.35933196087569" width="124.73750342801998" height="71.27857338744008" stroke-width="1.781964334686px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="622.274554183603" y="58.35933196087569" width="124.73750342801998" height="71.27857338744008" fill="transparent"/><text class="sch-text" x="684.643305897613" y="93.99861865459576" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="16.037679012174px" transform="rotate(0, 684.643305897613, 93.99861865459576)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="76.1789753077357" x2="588.417231824569" y2="76.1789753077357" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_5_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="586.635267489883" cy="76.1789753077357" r="1.781964334686" stroke-width="1.781964334686px"/><rect x="584.853303155197" y="74.3970109730497" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="604.454910836743" y="74.39701097304976" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="93.99861865459576" x2="588.417231824569" y2="93.99861865459576" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_5_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="586.635267489883" cy="93.99861865459576" r="1.781964334686" stroke-width="1.781964334686px"/><rect x="584.853303155197" y="92.21665431990976" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="604.454910836743" y="92.21665431990976" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="111.81826200145576" x2="586.635267489883" y2="111.81826200145576" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_5_2__stack1"><rect x="584.853303155197" y="110.03629766676977" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="604.454910836743" y="110.03629766676977" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="657.913840877323" cy="480.63635193771336" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="444.07812071500297" cy="480.63635193771336" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="657.913840877323" cy="444.99706524399335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="444.07812071500297" cy="427.17742189713334" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="444.07812071500297" cy="444.99706524399335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="444.07812071500297" cy="462.81670859085335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="657.913840877323" cy="462.81670859085335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="657.913840877323" cy="427.17742189713334" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="750.5274589372506" cy="294.4696063067707" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="750.5274589372506" cy="392.4776447145007" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="742.557146774908" cy="462.8167085908533" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="840.5651851826381" cy="462.8167085908533" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="424.0310219497855" cy="89.09821673420925" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="424.0310219497855" cy="187.10625514193924" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="444.0781207150029" cy="616.0656413738493" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="444.0781207150029" cy="714.0736797815794" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_0__stack1"><circle cx="586.635267489883" cy="76.1789753077357" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_1__stack1"><circle cx="586.635267489883" cy="93.99861865459576" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_2__stack1"><circle cx="586.635267489883" cy="111.81826200145576" r="3.563928669372" 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="
100
+ M 444.0781207150029,709.6187689448643
101
+ L 452.9879423884329,714.4300726485166
102
+ L 452.98794238843294,755.4508916329883
103
+ L 435.16829904157294,755.4508916329883
104
+ L 435.16829904157294,714.4300726485166
105
+ Z
106
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="444.0781207150029" y="717.6376084509513" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 444.0781207150029 717.6376084509513)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
107
+ M 424.0310219497855,182.65134430522426
108
+ L 432.94084362321547,187.46264800887644
109
+ L 432.9408436232155,228.48346699334817
110
+ L 415.1212002763555,228.48346699334817
111
+ L 415.1212002763555,187.46264800887644
112
+ Z
113
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="424.0310219497855" y="190.67018381131126" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 424.0310219497855 190.67018381131126)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
114
+ M 827.200452672493,462.81670859085324
115
+ L 836.110274345923,467.6280122945054
116
+ L 836.110274345923,519.1149018046996
117
+ L 818.2906309990631,519.1149018046996
118
+ L 818.2906309990631,467.6280122945054
119
+ Z
120
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><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="827.200452672493" y="470.8355480969402" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 827.200452672493 470.8355480969402)">XXXX</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="
121
+ M 657.913840877323,444.99706524399335
122
+ L 662.7251445809752,436.0872435705634
123
+ L 703.7459635654469,436.0872435705634
124
+ L 703.7459635654469,453.9068869174233
125
+ L 662.7251445809752,453.9068869174233
126
+ Z
127
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><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="665.93268038341" y="444.99706524399335" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XXX</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="
128
+ M 586.635267489883,93.99861865459576
129
+ L 581.8239637862307,102.90844032802576
130
+ L 540.803144801759,102.90844032802576
131
+ L 540.803144801759,85.08879698116576
132
+ L 581.8239637862307,85.08879698116576
133
+ Z
134
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="578.6164279837959" y="93.99861865459576" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
135
+ M 426.25847736814296,391.53813520341333
136
+ L 417.348655694713,386.72683149976115
137
+ L 417.348655694713,345.70601251528944
138
+ L 435.168299041573,345.70601251528944
139
+ L 435.16829904157294,386.72683149976115
140
+ Z
141
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="426.25847736814296" y="383.51929569732636" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(-90 426.25847736814296 383.51929569732636)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
142
+ M 750.5274589372506,272.1950521231957
143
+ L 741.6176372638206,267.3837484195435
144
+ L 741.6176372638206,226.36292943507178
145
+ L 759.4372806106805,226.36292943507178
146
+ L 759.4372806106805,267.3837484195435
147
+ Z
148
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" x="750.5274589372506" y="264.1762126171087" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(-90 750.5274589372506 264.1762126171087)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" d="
149
+ M 586.635267489883,76.1789753077357
150
+ L 581.8239637862307,85.0887969811657
151
+ L 540.803144801759,85.0887969811657
152
+ L 540.803144801759,67.2691536343057
153
+ L 581.8239637862307,67.2691536343057
154
+ Z
155
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" x="578.6164279837959" y="76.1789753077357" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" d="
156
+ M 417.348655694713,444.99706524399335
157
+ L 412.5373519910608,453.9068869174233
158
+ L 381.9826035323115,453.9068869174233
159
+ L 381.9826035323115,436.0872435705633
160
+ L 412.5373519910608,436.0872435705634
161
+ Z
162
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" x="409.329816188626" y="444.99706524399335" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" d="
163
+ M 684.643305897613,462.81670859085335
164
+ L 693.553127571043,467.62801229450554
165
+ L 693.553127571043,498.18276075325485
166
+ L 675.733484224183,498.18276075325485
167
+ L 675.733484224183,467.62801229450554
168
+ Z
169
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" x="684.643305897613" y="470.83554809694033" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 684.643305897613 470.83554809694033)">XX</text>
170
+ </g>
171
+ </svg>
@@ -1,4 +1,6 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.6,2.1049999999999995" data-type="line" data-label="" points="308.80000000000007,477.08 353.6,207.72000000000003" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.6,2.3049999999999997" data-type="line" data-label="" points="308.80000000000007,432.28 353.6,185.32" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.6,2.505" data-type="line" data-label="" points="308.80000000000007,409.87999999999994 353.6,162.91999999999996" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.3010000000000002,-0.30000000000000004 1.3010000000000002,-0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,477.08 320.1120000000001,477.08 320.1120000000001,499.592" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,2.1049999999999995 1.499,2.1049999999999995 1.499,1.9039999999999997" data-type="line" data-label="" points="353.6,207.72000000000003 342.288,207.72000000000003 342.288,230.232" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.3010000000000002,0.30000000000000004 1.3010000000000002,0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,409.87999999999994 320.1120000000001,409.87999999999994 320.1120000000001,387.36799999999994" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,2.505 1.499,2.505 1.499,2.706" data-type="line" data-label="" points="353.6,162.91999999999996 342.288,162.91999999999996 342.288,140.40799999999996" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40" y="387.47999999999996" width="268.80000000000007" height="112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.7" data-y="2.3049999999999997" x="353.6000000000001" y="140.51999999999998" width="246.39999999999998" height="89.6" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
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="1.2000000000000002,-0.30000000000000004 1.6,2.1049999999999995" data-type="line" data-label="" points="308.80000000000007,477.08 353.6,207.72000000000003" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.6,2.3049999999999997" data-type="line" data-label="" points="308.80000000000007,432.28 353.6,185.32" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.6,2.505" data-type="line" data-label="" points="308.80000000000007,409.87999999999994 353.6,162.91999999999996" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.3010000000000002,-0.30000000000000004 1.3010000000000002,-0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,477.08 320.1120000000001,477.08 320.1120000000001,499.592" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,2.1049999999999995 1.499,2.1049999999999995 1.499,1.9039999999999997" data-type="line" data-label="" points="353.6,207.72000000000003 342.288,207.72000000000003 342.288,230.232" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.3010000000000002,0.30000000000000004 1.3010000000000002,0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,409.87999999999994 320.1120000000001,409.87999999999994 320.1120000000001,387.36799999999994" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,2.505 1.499,2.505 1.499,2.706" data-type="line" data-label="" points="353.6,162.91999999999996 342.288,162.91999999999996 342.288,140.40799999999996" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40" y="387.47999999999996" width="268.80000000000007" height="112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.7" data-y="2.3049999999999997" x="353.6000000000001" y="140.51999999999998" width="246.39999999999998" height="89.6" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
2
4
  globalConnNetId: connectivity_net0" data-x="1.3010000000000002" data-y="-0.7410000000000001" x="308.91200000000003" y="499.592" width="22.400000000000034" height="53.75999999999999" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
3
5
  globalConnNetId: connectivity_net0" data-x="1.499" data-y="1.6639999999999997" x="331.08799999999997" y="230.23199999999997" width="22.400000000000034" height="53.75999999999996" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: OUT
4
6
  globalConnNetId: connectivity_net1" data-x="1.441" data-y="0.09999999999999998" x="308.91200000000003" y="421.08" width="53.75999999999999" height="22.399999999999977" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: OUT
@@ -31,7 +33,7 @@ orientation: y+" data-x="1.499" data-y="2.706" cx="342.288" cy="140.407999999999
31
33
  const h = svg.getElementById('crosshair-h');
32
34
  const v = svg.getElementById('crosshair-v');
33
35
  const coords = svg.getElementById('coordinates');
34
-
36
+
35
37
  crosshair.style.display = 'block';
36
38
  h.setAttribute('x1', '0');
37
39
  h.setAttribute('x2', '640');
@@ -50,13 +52,13 @@ orientation: y+" data-x="1.499" data-y="2.706" cx="342.288" cy="140.407999999999
50
52
  // y' = (y - ty) / sy
51
53
  const sx = matrix.a;
52
54
  const sy = matrix.d;
53
- const tx = matrix.e;
55
+ const tx = matrix.e;
54
56
  const ty = matrix.f;
55
57
  const realPoint = {
56
58
  x: (x - tx) / sx,
57
59
  y: (y - ty) / sy // Flip y back since we used negative scale
58
60
  }
59
-
61
+
60
62
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
61
63
  coords.setAttribute('x', (x + 5).toString());
62
64
  coords.setAttribute('y', (y - 5).toString());
@@ -64,4 +66,62 @@ orientation: y+" data-x="1.499" data-y="2.706" cx="342.288" cy="140.407999999999
64
66
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
65
67
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
66
68
  });
67
- ]]></script></svg>
69
+ ]]></script>
70
+ </g>
71
+ <g transform="translate(1216, 200)">
72
+ <style>
73
+ .boundary { fill: rgb(245, 241, 237); }
74
+ .schematic-boundary { fill: none; stroke: #fff; }
75
+ .component { fill: none; stroke: rgb(132, 0, 0); }
76
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
77
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
78
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
79
+ .pin-number { fill: rgb(169, 0, 0); }
80
+ .port-label { fill: rgb(0, 100, 100); }
81
+ .component-name { fill: rgb(0, 100, 100); }
82
+
83
+ </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 622.91913365676 614.2938996905899 L 638.3513503189683 614.2938996905899 L 638.3513503189683 645.0055387906283" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 622.91913365676 614.2938996905899 L 638.3513503189683 614.2938996905899 L 638.3513503189683 645.0055387906283" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" 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 684.03682340808 246.82379006077855 L 668.6046067458717 246.82379006077855 L 668.6046067458717 277.5354291608168" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 684.03682340808 246.82379006077855 L 668.6046067458717 246.82379006077855 L 668.6046067458717 277.5354291608168" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" 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 622.91913365676 522.61736506361 L 638.3513503189683 522.61736506361 L 638.3513503189683 491.9057259635716" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 622.91913365676 522.61736506361 L 638.3513503189683 522.61736506361 L 638.3513503189683 491.9057259635716" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" 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 684.03682340808 185.70610030945852 L 668.6046067458717 185.70610030945852 L 668.6046067458717 154.9944612094202" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 684.03682340808 185.70610030945852 L 668.6046067458717 185.70610030945852 L 668.6046067458717 154.9944612094202" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="317.33068490016" y="492.05852018794997" width="244.47075900528" height="152.7942243783" stroke-width="3.055884487566px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="317.33068490016" y="492.05852018794997" width="244.47075900528" height="152.7942243783" fill="transparent"/><text class="sch-text" x="439.5660644028" y="568.4556323771" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="27.502960388093996px" transform="rotate(0, 439.5660644028, 568.4556323771)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="614.2938996905899" x2="622.91913365676" y2="614.2938996905899" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="619.863249169194" y="611.2380152030239" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="611.2380152030239" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="614.2938996905899" x2="259.26887963640604" y2="614.2938996905899" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="614.2938996905899" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="611.2380152030239" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="611.2380152030239" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="553.1762099392699" x2="619.863249169194" y2="553.1762099392699" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="622.91913365676" cy="553.1762099392699" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="619.863249169194" y="550.1203254517039" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="550.1203254517039" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="522.61736506361" x2="259.26887963640604" y2="522.61736506361" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="522.61736506361" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="519.561480576044" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="519.561480576044" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="553.1762099392699" x2="259.26887963640604" y2="553.1762099392699" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="553.1762099392699" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="550.1203254517039" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="550.1203254517039" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="583.73505481493" x2="259.26887963640604" y2="583.73505481493" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="583.73505481493" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="580.679170327364" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="580.679170327364" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="583.73505481493" x2="619.863249169194" y2="583.73505481493" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="622.91913365676" cy="583.73505481493" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="619.863249169194" y="580.679170327364" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="580.679170327364" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="522.61736506361" x2="622.91913365676" y2="522.61736506361" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="619.863249169194" y="519.561480576044" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="519.561480576044" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">8</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="745.1545131594" y="155.14725543379853" width="213.91191412962007" height="122.23537950264" stroke-width="3.055884487566px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="745.1545131594" y="155.14725543379853" width="213.91191412962007" height="122.23537950264" fill="transparent"/><text class="sch-text" x="852.1104702242101" y="216.2649451851185" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="27.502960388093996px" transform="rotate(0, 852.1104702242101, 216.2649451851185)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="745.1545131594" y1="185.70610030945852" x2="684.03682340808" y2="185.70610030945852" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="680.980938920514" y="182.65021582189252" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="714.59566828374" y="182.65021582189252" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="745.1545131594" y1="216.2649451851185" x2="687.0927078956461" y2="216.2649451851185" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="684.03682340808" cy="216.2649451851185" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="680.980938920514" y="213.2090606975525" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="714.59566828374" y="213.20906069755256" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="745.1545131594" y1="246.82379006077855" x2="684.03682340808" y2="246.82379006077855" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="680.980938920514" y="243.76790557321254" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="714.59566828374" y="243.76790557321254" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="622.91913365676" cy="614.2938996905899" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="256.21299514884004" cy="614.2938996905899" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="622.91913365676" cy="553.1762099392699" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="256.21299514884004" cy="522.61736506361" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="256.21299514884004" cy="553.1762099392699" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="256.21299514884004" cy="583.73505481493" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="622.91913365676" cy="583.73505481493" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="622.91913365676" cy="522.61736506361" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="684.03682340808" cy="185.70610030945852" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="684.03682340808" cy="216.2649451851185" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="684.03682340808" cy="246.82379006077855" r="6.111768975132" 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="
84
+ M 638.3513503189683,645.0055387906283
85
+ L 653.6307727567984,653.2564269070565
86
+ L 653.6307727567984,723.6028878108258
87
+ L 623.0719278811383,723.6028878108258
88
+ L 623.0719278811383,653.2564269070565
89
+ Z
90
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="638.3513503189683" y="658.7570189846753" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(90 638.3513503189683 658.7570189846753)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
91
+ M 668.6046067458717,277.5354291608168
92
+ L 683.8840291837017,285.786317277245
93
+ L 683.8840291837017,356.1327781810143
94
+ L 653.3251843080417,356.1327781810143
95
+ L 653.3251843080417,285.786317277245
96
+ Z
97
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="668.6046067458717" y="291.28690935486384" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(90 668.6046067458717 291.28690935486384)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
98
+ M 622.91913365676,553.1762099392699
99
+ L 631.1700217731882,537.8967875014399
100
+ L 701.5164826769575,537.8967875014399
101
+ L 701.5164826769575,568.4556323771
102
+ L 631.1700217731882,568.4556323771
103
+ Z
104
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><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="636.670613850807" y="553.1762099392699" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="">XXX</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="
105
+ M 684.03682340808,216.2649451851185
106
+ L 675.7859352916518,231.5443676229485
107
+ L 605.4394743878825,231.5443676229485
108
+ L 605.4394743878825,200.98552274728848
109
+ L 675.7859352916518,200.9855227472885
110
+ Z
111
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><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="670.285343214033" y="216.2649451851185" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="">XXX</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="
112
+ M 638.3513503189683,491.9057259635716
113
+ L 623.0719278811383,483.6548378471434
114
+ L 623.0719278811383,413.3083769433741
115
+ L 653.6307727567984,413.3083769433741
116
+ L 653.6307727567984,483.6548378471434
117
+ Z
118
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="638.3513503189683" y="478.1542457695246" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(-90 638.3513503189683 478.1542457695246)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
119
+ M 668.6046067458717,154.9944612094202
120
+ L 653.3251843080417,146.743573092992
121
+ L 653.3251843080417,76.39711218922268
122
+ L 683.8840291837017,76.39711218922268
123
+ L 683.8840291837017,146.743573092992
124
+ Z
125
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="668.6046067458717" y="141.2429810153732" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(-90 668.6046067458717 141.2429810153732)">XXX</text>
126
+ </g>
127
+ </svg>