Compare commits

..

71 Commits

Author SHA1 Message Date
KV
e4fe099f8c Use ubuntu-latest for the supported Python versions (#442)
Use ubuntu-22.04 only for Python 3.7-3.8
by including them separately into the matrix.
2025-02-15 00:11:55 +01:00
Martin Rieder
e8c482e94e
Update deprecated GitHub Actions and add Python versions (#408)
Running 6 different Python versions (3.7 to 3.12) in parallel now.
NOTE: This is in conflict with #309, but can be resolved easily in a later PR.

GitHub Actions require an update:
- actions/upload-artifact@v3 is scheduled for deprecation on November
30, 2024.
- Similarly, v1/v2 are scheduled for deprecation on June 30, 2024. 
- Updating this comes with a breaking change in upload-artifact@v4:

Uploading to the same named Artifact multiple times.

Due to how Artifacts are created in this new version, it is no longer
possible to upload to the same named Artifact multiple times. You must
either split the uploads into multiple Artifacts with different names,
or only upload once. Otherwise you will encounter an error.

The artifact .zip files therefore have the python version added to
their name.
2024-10-14 19:19:49 +02:00
Daniel Rojas
1c4fd68a2e
Release v0.4.1 2024-07-13 13:23:11 +02:00
Daniel Rojas
542864658f Add v0.4.1 release date 2024-07-13 13:16:08 +02:00
Daniel Rojas
a57c68ae22 Rebuild examples 2024-07-13 13:15:00 +02:00
Daniel Rojas
c73738e041 Bump version to 0.4.1 2024-07-13 13:10:31 +02:00
KV
73f56b2efc Apply black *.py ../../setup.py
black==23.3.0
2024-07-12 19:05:12 +02:00
KV
828de3f118 Apply isort *.py ../../setup.py
isort==5.11.5
2024-07-12 19:04:29 +02:00
KV
38ac23747d Update changelog a bit more 2024-07-12 18:36:35 +02:00
KV
bde949b7d4 Update changelog 2024-07-08 23:19:52 +02:00
KV
ae03bd60e5 Add TODOs about utf-8 encoding/charset (#395) 2024-07-07 16:16:56 +02:00
KV
19cdff1774 Avoid ResourceWarning: unclosed file (#395)
A number of such warnings showed up when running e.g.
PYTHONWARNINGS=always python build_examples.py
PYTHONWARNINGS=always wireviz ../../examples/demo0?.yml
See https://github.com/wireviz/WireViz/pull/309#issuecomment-2170988381

Fix: All open() calls should be in a "with open() as x" statement
to ensure closing the file when exiting the block in any way.
Otherwise, use the new file_read_text() or file_write_text() functions
to read or write the whole utf-8 text file and closing it.
2024-07-07 16:16:56 +02:00
KV
ee1bd7801e Provide more information when raising exception 2024-07-05 18:16:34 +02:00
Martin Rieder
f2a1aa8856 Update comment in src/wireviz/wireviz.py (#392)
Clarify all exceptions catched, including changes in #392

Co-authored-by: kvid <kvid@users.noreply.github.com>
2024-07-05 18:16:34 +02:00
Martin Rieder
0e8ab7a668 Catch also ValueError (#392)
In Windows might ValueError be raised instead of the already
catched exceptions in some cases (depending on the Python version)

Fixes point 2 of https://github.com/wireviz/WireViz/pull/318#pullrequestreview-1457016602
2024-07-05 18:16:34 +02:00
Martin Rieder
42d10dfab4 Catch OSError also with errno=None (#392)
In Windows might OSError(errno = None) be raised instead of the already
catched exceptions in some cases (depending on the Python version)

Fixes #391
2024-07-05 18:16:34 +02:00
kvid
858b2664db Update src/wireviz/wireviz.py (#383)
Raising TypeError is better than assert. (Black reformatted)

Co-authored-by: Andreas Motl <andreas.motl@panodata.org>
2024-07-05 18:23:32 +02:00
KV
5cedba9def Explain unexpeced top-level type (#383)
Might help in reported issues like #342
2024-07-05 18:16:34 +02:00
KV
6d772cf697 Add non-empty label to avoid over-sized loops (#381)
Work-around to improve the #286 use case.
- https://github.com/wireviz/WireViz/issues/286#issuecomment-2094309143
- https://stackoverflow.com/questions/70996779/graphviz-edges-between-cells-in-the-same-html-table-are-too-long
2024-07-05 18:16:34 +02:00
KV
c997bfe19b Rename "sheetsize_default" to <!-- %template_sheetsize% --> (#380)
Fixes #377 (makes HTML output template placeholders more consistent)
2024-07-05 18:16:34 +02:00
KV
795f3321a3 Update changelog (WIP) 2024-07-05 18:16:34 +02:00
Daniel Rojas
eed00e1322 Add changelog for v0.4.1 (WIP) 2024-07-05 18:16:34 +02:00
Daniel Rojas
088c6038c7 Add documentation on template separator character 2024-07-05 18:16:34 +02:00
KV
6488eb582b Avoid Graphviz error when hiding all pins (#375)
Fixes #257
2024-07-05 18:16:34 +02:00
KV
668ba72975 Avoid decimal point and trailing zero for integer BOM quantities (#374)
Fixes #340
2024-07-05 18:16:34 +02:00
KV
177eb9e387 Add link from syntax.md to HTML output templates (#371) 2024-07-05 18:23:11 +02:00
KV
6ba33fb5dc Rename diagram_png_base64 to diagram_png_b64 (#371) 2024-07-05 18:22:24 +02:00
KV
fc7ea088b4 Add HTML output templates README.md (#371)
Describe the HTML Output Templates, how they are specified,
and placeholder usage within these templates.
2024-07-05 18:21:58 +02:00
KV
70a33edca5 Avoid reading diagram file to embed unless used (#371)
Add local replacement_if_used() that call function to read the file
only when needed and append the return value as replacement.
2024-07-05 18:20:57 +02:00
KV
ea26116c81 Add HTML template placeholder for diagram_png_base64 (#371)
This will enable users to replace the SVG diagram with an embedded PNG,
that is an improved work-around when the SVG output from Graphviz
is not looking good. Suggested as work-around for Graphviz bug in
https://github.com/wireviz/WireViz/issues/175#issuecomment-2132206026
2024-07-05 18:16:34 +02:00
KV
f474cddedb Add HTML template placeholders for filename (#371)
This will e.g. enable users to replace the SVG diagram with PNG,
that is needed as a work-around when the SVG output from Graphviz
is not looking good. Suggested as work-around for Graphviz bug in
https://github.com/wireviz/WireViz/issues/175#issuecomment-2132206026
2024-07-05 18:16:34 +02:00
KV
2336231d3e Update APP_URL (#364)
The project was moved into the new organization 2023-05-30, but old
URLs are still working due to automatic redirects by GitHub.

https://github.com/wireviz/WireViz/issues/316#issuecomment-1568748914
2024-07-05 18:16:34 +02:00
Frank Adämmer
a5f91e91b7 Add missing import of embed_svg_images (#363)
Resort module import:

Co-authored-by: kvid <kvid@users.noreply.github.com>
2024-07-05 18:16:34 +02:00
KV
7ae3fb33fd Use output_name as default title (#361)
The CLI handling code was redesigned for v0.4 and it seems the code
to assign a default title from v0.3.1 has been messed up. This bug
has not been triggered by build_examples.py due to it seems to call
the parse() function differently.

The output_name should be used as default title when present.

This will fix the #360 bug report.
2024-07-05 18:16:34 +02:00
KV
82751e439e Move mates processing above tweak processing (#358)
Bug: Not all generated dot output could be changed by tweak entries.
Seen in https://github.com/wireviz/WireViz/issues/325#issuecomment-2116395221

Tweak processing must be the very last dot producing code to enable
tweaking any dot output.

Fix: Move all other dot producing code above Tweak processing.
2024-07-05 18:16:34 +02:00
KV
557122c4a3 Look-up mated connectors before mate processing (#358)
Symptom reported in #355: Unable to connect an arrow (mate) to
pins higher than 1 without failing: ValueError: X is not in list

Bug: The code processing mates used a mix of repeated connector
look-ups and local connector variables, and one variable was used
before it was assigned the correct value.

Fix: The local connector variables are now both assigned initially
before processing each mate, and used when processing instead of
repeated connector look-ups.
2024-07-05 18:16:34 +02:00
KV
a89d04d8ca Add package_data to to setup() call in setup.py (#347)
Specify all HTML files under templates folder
to be included as package data files.
2024-07-05 18:16:34 +02:00
KV
77061a0656 Handle OSError(errno=EINVAL) that might be raised in Windows (#346)
In Windows might OSError(errno=EINVAL) be raised instead of the already
catched exceptions in some cases (depending on the Python version).

Suggested fix posted by JarrettR in
https://github.com/wireviz/WireViz/issues/344#issuecomment-2113476151

Co-authored-by: JarrettR <jrainier@gmail.com>
2024-07-05 18:16:34 +02:00
KV
9435fc2c2f Create PR to collect changes for v0.4.1-rc 2024-06-08 00:43:57 +02:00
Daniel Rojas
954c4f5f92 Merge branch 'release/v0.4-rc2' 2024-05-12 13:37:17 +02:00
Daniel Rojas
33e5ef6831 Add v0.4 release date 2024-05-12 13:36:10 +02:00
KV
9b2b22d6ae Add check for outdated connector attributes 2024-05-09 16:06:22 +02:00
Daniel Rojas
50d29172ee Remove references for unsupported output formats
Remove the references in the CLI help, but keep the placeholders elsewhere in the code as a TODO
2024-05-09 14:10:19 +02:00
Daniel Rojas
591ae7f84a
Apply suggestions from code review
Co-authored-by: kvid <kvid@users.noreply.github.com>
2024-05-09 10:53:32 +02:00
Daniel Rojas
55c6ab51f1 Apply black 2024-05-05 15:50:59 +02:00
Daniel Rojas
b9357f3928 Rebuild examples 2024-05-05 15:34:51 +02:00
Daniel Rojas
487498e128 Merge branch 'release/v0.4-rc' into release/v0.4-rc2
`rc2` branch is based directly on `master`. By merging into `rc2`, any merge conflicts can be resolved while leaving `master` intact until final merge is approved.

# Conflicts:
#	docs/CHANGELOG.md
#	src/wireviz/Harness.py
#	src/wireviz/__init__.py
#	src/wireviz/wireviz.py
2024-05-05 15:30:40 +02:00
Daniel Rojas
cbf8641c0a Rebuild examples 2024-04-16 14:07:17 +02:00
Daniel Rojas
455d14ea4a Bump version to 0.4 2024-04-16 14:06:53 +02:00
Daniel Rojas
fdb75693dd Fix but in additional component description generation 2024-04-16 14:05:25 +02:00
Daniel Rojas
bca3b6898c Update changelog 2024-04-16 13:48:33 +02:00
Daniel Rojas
f98bf2afec Do not allow negative qty_multiplier
Co-authored-by: kvid <kvid@users.noreply.github.com>
2024-04-16 13:46:46 +02:00
Jeremy Ruhland (hatchery)
848fdf03fb Hide qty 0 additional components from BOM 2024-04-16 13:46:46 +02:00
Jeremy Ruhland (hatchery)
df4a4188ba Add unpopulated option to additional components qty multiplier 2024-04-16 13:46:46 +02:00
Daniel Rojas
2ac80f3ca6 Update changelog 2024-04-16 13:19:28 +02:00
Daniel Rojas
2ad2222036 Update syntax description 2024-04-16 10:16:57 +02:00
Daniel Rojas
8ba9131a11 Add warning about unconnected components 2024-04-16 10:15:33 +02:00
Andreas Motl
a16f2e4757 Update .gitignore
Add two more folders to be ignored.

- .idea: Used by PyCharm
- .venv: My convention for creating virtualenvs
2023-09-08 11:49:01 -07:00
Daniel Rojas
b0d0070f08 Bump version to 0.3.2 2021-11-27 13:32:40 +01:00
Julien Lecoeur
9af0cb8ab0 Fix graphviz file header
The two header comments were missing an endline.

Closes #258
2021-11-27 13:27:22 +01:00
Daniel Rojas
7f33517a79 Bump version to 0.3.1 2021-10-25 20:13:24 +02:00
Andreas Motl
80b7a5407b Improve gracefulness when invoking wireviz.parse() without file_out
This happened to be a regression for WireViz-Web [1], which aims to do
as much in memory as possible.

[1] https://github.com/daq-tools/wireviz-web.
2021-10-25 20:05:05 +02:00
Daniel Rojas
be1ecd4f63 Merge branch 'dev' 2021-10-11 21:20:12 +02:00
Daniel Rojas
bdc405a443 Remove duplicate contribution guidelines 2021-03-20 11:16:04 +01:00
Daniel Rojas
55dfc283b3 Release v0.2 2020-10-17 11:50:35 +02:00
Jason
8f6b8a7e84 Add initial contribution guidelines 2020-07-15 20:25:15 +02:00
Daniel Rojas
fffb354d7c Merge branch 'dev' 2020-06-30 17:59:00 +02:00
Daniel Rojas
8b09facfce Merge branch 'dev' 2020-06-29 18:44:59 +02:00
Daniel Rojas
7458118f4d Merge branch 'dev' 2020-06-29 12:37:24 +02:00
Daniel Rojas
8326ddd462 Merge branch 'dev' 2020-06-28 23:01:45 +02:00
Daniel Rojas
4aac32b6bf Merge branch 'dev' 2020-06-28 15:00:40 +02:00
138 changed files with 12425 additions and 13243 deletions

4
.gitattributes vendored
View File

@ -2,8 +2,8 @@ docs/* linguist-documentation
examples/* linguist-documentation
tutorial/* linguist-documentation
**/*.tsv linguist-generated
**/*.csv linguist-generated
**/*.bom.tsv linguist-generated
**/*.bom.csv linguist-generated
**/*.gv linguist-generated
**/*.html linguist-generated
**/*.png linguist-generated

View File

@ -4,29 +4,40 @@ on: [push, pull_request, workflow_dispatch]
jobs:
build:
runs-on: ubuntu-latest
strategy:
max-parallel: 4
max-parallel: 6
matrix:
python-version: ["3.8", "3.10"]
# ubuntu-22.04 supports Python 3.7-3.12
# ubuntu-24.04 (currently latest & preferred) supports Python 3.9-3.12
# More details: https://github.com/actions/runner-images/issues/10636
os: [ubuntu-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
include:
- os: ubuntu-22.04
python-version: "3.7"
- os: ubuntu-22.04
python-version: "3.8"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .
- name: Create Examples
run: PYTHONPATH=$(pwd)/src:$PYTHONPATH python src/wireviz/tools/build_examples.py
- name: Upload examples, demos, and tutorials
uses: actions/upload-artifact@v2
with:
name: examples-and-tutorials
path: |
examples/
tutorial/
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v2
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .
- name: Create Examples
run: PYTHONPATH=$(pwd)/src/wireviz:$PYTHONPATH cd src/wireviz/ && python build_examples.py
- name: Upload examples, demos, and tutorials
uses: actions/upload-artifact@v4
with:
name: examples-and-tutorials-v${{ matrix.python-version }}
path: |
examples/
tutorial/
if-no-files-found: error

28
.gitignore vendored
View File

@ -1,21 +1,15 @@
# OS-specific files
.DS_Store
desktop.ini
Thumbs.db
# Development aids
.idea/
.vscode/
temp/
venv/
.venv/
# Build/compile/release artifacts
build/
dist/
*.egg-info
*.pyc
# Other temporary files
.eggs
__pycache__
.*.swp
*.egg-info
*.pyc
build
data
dist
venv/
.venv/
desktop.ini
thumbs.db
temp/

View File

@ -1,5 +0,0 @@
#!/bin/zsh
autoflake -i --remove-all-unused-imports src/wireviz/*.py
isort src/wireviz/*py
black src/wireviz/*.py

View File

@ -1,12 +0,0 @@
# The following tools have proven useful during development
# Feel free to install while inside the WireViz virtualenv, using:
# pip install -r devtools.txt
# Code formatting
black # black src/wireviz/*.py
isort # isort src/wireviz/*py
# Development aids
pudb # import pudb; pudb.set_trace()
autoflake # autoflake -i --remove-all-unused-imports src/wireviz/*.py
pyan # pyan3 src/wireviz/*.py -uncge --html > temp/pyan.html

View File

@ -1,11 +1,6 @@
# Change Log
## [0.5](https://github.com/wireviz/WireViz/tree/v0.5) (20XX-XX-XX)
TODO
## [0.4.1](https://github.com/wireviz/WireViz/tree/v0.4.1) (2024-07-13)
## [0.4.1] (2024-07-13)
### Improvements to help reported issues

View File

@ -1,6 +1,6 @@
# Contribution Guidelines
When contributing to this repository, please [submit a new issue](https://github.com/formatc1702/WireViz/issues) first to discuss the proposed change, before submitting a pull request.
When contributing to this repository, please [submit a new issue](https://github.com/wireviz/WireViz/issues) first to discuss the proposed change, before submitting a pull request.
## Submitting a new Issue
@ -27,7 +27,7 @@ When contributing to this repository, please [submit a new issue](https://github
1. Push the changes to your fork.
1. Please format your code using [`isort`](https://pycqa.github.io/isort/) and [`black`](https://black.readthedocs.io) before submitting.
1. Submit a new pull request, using `dev` as the base branch.
- If your code changes or extends the WireViz YAML syntax, be sure to update the [syntax description document](https://github.com/formatc1702/WireViz/blob/dev/docs/syntax.md) in your PR.
- If your code changes or extends the WireViz YAML syntax, be sure to update the [syntax description document](https://github.com/wireviz/WireViz/blob/dev/docs/syntax.md) in your PR.
1. Please include in the PR description (and optionally also in the commit message body) a reference (# followed by issue number) to the issue where the suggested changes are discussed.
### Hints

View File

@ -74,13 +74,13 @@ Output file:
![Sample output diagram](../examples/demo01.png)
[Bill of Materials](../examples/demo01.tsv) (auto-generated)
[Bill of Materials](../examples/demo01.bom.tsv) (auto-generated)
### Demo 02
![](../examples/demo02.png)
[Source](../examples/demo02.yml) - [Bill of Materials](../examples/demo02.tsv)
[Source](../examples/demo02.yml) - [Bill of Materials](../examples/demo02.bom.tsv)
### Syntax, tutorial and example gallery
@ -133,11 +133,11 @@ Depending on the options specified, this will output some or all of the followin
mywire.gv GraphViz output
mywire.svg Wiring diagram as vector image
mywire.png Wiring diagram as raster image
mywire.tsv BOM (bill of materials) as tab-separated text file
mywire.bom.tsv BOM (bill of materials) as tab-separated text file
mywire.html HTML page with wiring diagram and BOM embedded
```
Wildcars in the file path are also supported to process multiple files at once, e.g.:
Wildcards in the file path are also supported to process multiple files at once, e.g.:
```
$ wireviz ~/path/to/files/*.yml
```

View File

@ -2,7 +2,7 @@
<!--
The following text is taken from #118
https://github.com/formatc1702/WireViz/pull/118
https://github.com/wireviz/WireViz/pull/118
TODO: write a better explaination -->
@ -26,7 +26,7 @@ Possible group names:
- `tutorial` to process`tutorial/{readme.md,tutorial*.*}`
- `demos` to process`examples/demo*.*`
Affected filetypes: `.gv`, `.tsv`, `.png`, `.svg`, `.html`
Affected filetypes: `.gv`, `.bom.tsv`, `.png`, `.svg`, `.html`
## Usage hints

View File

@ -192,7 +192,7 @@ connections:
```
- Each connection set is a list of components.
- The minimum number of items is two.
- The minimum number of items is one.
- The maximum number of items is unlimited.
- Items must alternatingly belong to the `connectors` and the `cables` sections.
- When a connection set defines multiple parallel connections, the number of specified `<pin>`s and `<wire>`s for each component in the set must match. When specifying only one designator, one is auto-generated for each connection of the set.
@ -207,7 +207,6 @@ connections:
- `- <designator>: <int/str>` attaches a pin of the connector, referring to a pin number (from the connector's `pins` attribute) or a pin label (from its `pinlabels` attribute), provided the label is unique.
- `- <designator>` is allowed for simple connectors, since they have only one pin to connect.
For connectors with `autogenerate: true`, a new instance, with auto-generated designator, is created.
#### Cables
@ -230,14 +229,10 @@ For connectors with `autogenerate: true`, a new instance, with auto-generated de
- `- [<designator>, ..., <designator>]`
Attaches multiple different single pin connectors, one per connection in the set.
For connectors with `autogenerate: true`, a new instance, with auto-generated designator, is created with every mention.
Auto-generated and non-autogenerated connectors may be mixed.
- `- <designator>`
Attaches multiple instances of the same single pin connector, one per connectioin in the set.
For connectors with `autogenerate: true`, a new instance, with auto-generated designator, is created for every connection in the set.
Since only connectors with `pincount: 1` can be auto-generated, pin number 1 is implicit.
#### Cables
@ -280,7 +275,9 @@ connections:
### Autogeneration of items
For very simple, recurring connectors such as crimp ferrules, splices and others, where it would be a hassle to individually assign unique designators for every instance, autogeneration may be used. Both connectors and cables can be autogenerated.
If multiple identical copies of a connector or cable are needed, it is possible to define them once as a template, and then generate multiple instances as needed. This is called autogeneration. Both connectors and cables can be autogenerated.
Autogenerated instances of components can be explicitly assigned a designator; this way, they can be referenced in multiple connection sets. However, it is also possible to generate unnamed instances of components. This is especially useful for components that do not need to be referenced in more than one connection set, and where naming each individual instance is an unnecessary complication.
Example (see `connections` section):
@ -322,9 +319,29 @@ connections:
Since the internally assigned designator of an unnamed component is not known to the user, one instance of the connector can not be referenced again outside the point of creation (i.e. in other connection sets, or later in the same set). Autogeneration of unnamed instances is therefore only useful for terminals with only one wire attached, or splices with exactly one wire going in, and one wire going out.
If a component is to be used in other connection sets (e.g. for a three-way splice, or a crimp where multiple wires are joined), a named instance needs to be used.
The default character to trigger autogeneration of components is `.`. A different character can be specified using the `template_separator` option (see below).
Names of autogenerated components are hidden by default. While they can be shown in the graphical output using the `show_name: true` option, it is not recommended to manually use the internally assigned designator (starting with a double underscore `__`), since it might change in future WireViz versions, or when the order of items in connection sets changes.
### Unconnected components
Even if a component is not connected to any other components, it must be mentioned in a connection set for it to be displayed.
```yaml
connectors:
X1: # this connector will not be connected to any other components
...
connections:
-
- X1 # minimal connection set to include connector in the diagram
```
If any component is defined in the `connectors` or `cables` sections but not referenced in `connections`, a warning is printed in the console.
## Metadata entries
```yaml
@ -338,6 +355,7 @@ Names of autogenerated components are hidden by default. While they can be shown
# If no value is specified for 'title', then the
# output filename without extension is used.
```
See [HTML Output Templates](../src/wireviz/templates/) for how metadata entries can be inserted into the HTML output.
## Options
@ -372,6 +390,9 @@ Names of autogenerated components are hidden by default. While they can be shown
# about additional components inside the diagram node (connector/cable box).
# If False, show all info about additional components inside the diagram node.
mini_bom_mode: <bool> # Default = True
# Character to split template and designator for autogenerated components
template_separator: <str> # Default = '.'
```
@ -393,6 +414,7 @@ Parts can be added to a connector or cable in the section `<additional-component
# when used in a connector:
# pincount number of pins of connector
# populated number of populated positions in a connector
# unpopulated number of unpopulated positions
# when used in a cable:
# wirecount number of wires of cable/bundle
# terminations number of terminations on a cable/bundle

6
examples/demo01.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
@ -60,8 +60,6 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
X1:p7r:e -- X1:p8r:e
X2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>

275
examples/demo01.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>demo01</title>
<style>
@ -30,181 +30,172 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="833pt" height="291pt"
viewBox="0.00 0.00 833.00 291.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 287)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-287 829,-287 829,4 -4,4"/>
<svg width="814pt" height="293pt"
viewBox="0.00 0.00 813.50 292.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 288.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-288.5 809.5,-288.5 809.5,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="139,-253 0,-253 0,0 139,0 139,-253"/>
<polygon fill="#ffffff" stroke="transparent" points="0,0 0,-253 139,-253 139,0 0,0"/>
<polygon fill="none" stroke="black" points="0.5,-229.5 0.5,-252.5 139.5,-252.5 139.5,-229.5 0.5,-229.5"/>
<text text-anchor="start" x="61" y="-237.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-206.5 0.5,-229.5 48.5,-229.5 48.5,-206.5 0.5,-206.5"/>
<text text-anchor="start" x="4.5" y="-214.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48.5,-206.5 48.5,-229.5 99.5,-229.5 99.5,-206.5 48.5,-206.5"/>
<text text-anchor="start" x="52.5" y="-214.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="99.5,-206.5 99.5,-229.5 139.5,-229.5 139.5,-206.5 99.5,-206.5"/>
<text text-anchor="start" x="103.5" y="-214.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 82.5,-206.5 82.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="26" y="-191.3" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="82.5,-183.5 82.5,-206.5 139.5,-206.5 139.5,-183.5 82.5,-183.5"/>
<text text-anchor="start" x="107" y="-191.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 82.5,-183.5 82.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="31.5" y="-168.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="82.5,-160.5 82.5,-183.5 139.5,-183.5 139.5,-160.5 82.5,-160.5"/>
<text text-anchor="start" x="107" y="-168.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-137.5 0.5,-160.5 82.5,-160.5 82.5,-137.5 0.5,-137.5"/>
<text text-anchor="start" x="32.5" y="-145.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="82.5,-137.5 82.5,-160.5 139.5,-160.5 139.5,-137.5 82.5,-137.5"/>
<text text-anchor="start" x="107" y="-145.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-114.5 0.5,-137.5 82.5,-137.5 82.5,-114.5 0.5,-114.5"/>
<text text-anchor="start" x="27" y="-122.3" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="82.5,-114.5 82.5,-137.5 139.5,-137.5 139.5,-114.5 82.5,-114.5"/>
<text text-anchor="start" x="107" y="-122.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0.5,-91.5 0.5,-114.5 82.5,-114.5 82.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="25.5" y="-99.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="82.5,-91.5 82.5,-114.5 139.5,-114.5 139.5,-91.5 82.5,-91.5"/>
<text text-anchor="start" x="107" y="-99.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-68.5 0.5,-91.5 82.5,-91.5 82.5,-68.5 0.5,-68.5"/>
<text text-anchor="start" x="26.5" y="-76.3" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="82.5,-68.5 82.5,-91.5 139.5,-91.5 139.5,-68.5 82.5,-68.5"/>
<text text-anchor="start" x="107" y="-76.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,-45.5 0.5,-68.5 82.5,-68.5 82.5,-45.5 0.5,-45.5"/>
<text text-anchor="start" x="27.5" y="-53.3" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="82.5,-45.5 82.5,-68.5 139.5,-68.5 139.5,-45.5 82.5,-45.5"/>
<text text-anchor="start" x="107" y="-53.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0.5,-22.5 0.5,-45.5 82.5,-45.5 82.5,-22.5 0.5,-22.5"/>
<text text-anchor="start" x="27.5" y="-30.3" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="82.5,-22.5 82.5,-45.5 139.5,-45.5 139.5,-22.5 82.5,-22.5"/>
<text text-anchor="start" x="107" y="-30.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 82.5,-22.5 82.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="34.5" y="-7.3" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="82.5,0.5 82.5,-22.5 139.5,-22.5 139.5,0.5 82.5,0.5"/>
<text text-anchor="start" x="107" y="-7.3" font-family="arial" font-size="14.00">9</text>
</g>
<!-- X1&#45;&#45;X1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;X1:e</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139.95,-54.55C192,-66.5 298,-66.5 296,-45 298,-23.5 192,-23.5 139.95,-35.45"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M139.5,-56.5C192,-68.5 298,-68.5 298,-45 298,-21.5 192,-21.5 139.5,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139.05,-58.45C192,-70.5 298,-70.5 300,-45 298,-19.5 192,-19.5 139.05,-31.55"/>
<polygon fill="#ffffff" stroke="black" points="133.5,-254.5 0,-254.5 0,0 133.5,0 133.5,-254.5"/>
<polygon fill="none" stroke="black" points="0,-230.75 0,-254.5 133.5,-254.5 133.5,-230.75 0,-230.75"/>
<text text-anchor="start" x="58.5" y="-237.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-207 0,-230.75 46.25,-230.75 46.25,-207 0,-207"/>
<text text-anchor="start" x="4" y="-213.45" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="46.25,-207 46.25,-230.75 95.5,-230.75 95.5,-207 46.25,-207"/>
<text text-anchor="start" x="50.25" y="-213.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="95.5,-207 95.5,-230.75 133.5,-230.75 133.5,-207 95.5,-207"/>
<text text-anchor="start" x="99.5" y="-213.45" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-184 0,-207 78.25,-207 78.25,-184 0,-184"/>
<text text-anchor="start" x="24.5" y="-189.7" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="78.25,-184 78.25,-207 133.5,-207 133.5,-184 78.25,-184"/>
<text text-anchor="start" x="102.12" y="-189.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-161 0,-184 78.25,-184 78.25,-161 0,-161"/>
<text text-anchor="start" x="29.75" y="-166.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="78.25,-161 78.25,-184 133.5,-184 133.5,-161 78.25,-161"/>
<text text-anchor="start" x="102.12" y="-166.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-138 0,-161 78.25,-161 78.25,-138 0,-138"/>
<text text-anchor="start" x="30.5" y="-143.7" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="78.25,-138 78.25,-161 133.5,-161 133.5,-138 78.25,-138"/>
<text text-anchor="start" x="102.12" y="-143.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-115 0,-138 78.25,-138 78.25,-115 0,-115"/>
<text text-anchor="start" x="25.25" y="-120.7" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="78.25,-115 78.25,-138 133.5,-138 133.5,-115 78.25,-115"/>
<text text-anchor="start" x="102.12" y="-120.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-92 0,-115 78.25,-115 78.25,-92 0,-92"/>
<text text-anchor="start" x="23.75" y="-97.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="78.25,-92 78.25,-115 133.5,-115 133.5,-92 78.25,-92"/>
<text text-anchor="start" x="102.12" y="-97.7" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-69 0,-92 78.25,-92 78.25,-69 0,-69"/>
<text text-anchor="start" x="24.88" y="-74.7" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="78.25,-69 78.25,-92 133.5,-92 133.5,-69 78.25,-69"/>
<text text-anchor="start" x="102.12" y="-74.7" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-46 0,-69 78.25,-69 78.25,-46 0,-46"/>
<text text-anchor="start" x="25.62" y="-51.7" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="78.25,-46 78.25,-69 133.5,-69 133.5,-46 78.25,-46"/>
<text text-anchor="start" x="102.12" y="-51.7" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-23 0,-46 78.25,-46 78.25,-23 0,-23"/>
<text text-anchor="start" x="25.62" y="-28.7" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="78.25,-23 78.25,-46 133.5,-46 133.5,-23 78.25,-23"/>
<text text-anchor="start" x="102.12" y="-28.7" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0,0 0,-23 78.25,-23 78.25,0 0,0"/>
<text text-anchor="start" x="32.38" y="-5.7" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="78.25,0 78.25,-23 133.5,-23 133.5,0 78.25,0"/>
<text text-anchor="start" x="102.12" y="-5.7" font-family="arial" font-size="14.00">9</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="494,-283 283,-283 283,-84 494,-84 494,-283"/>
<polygon fill="none" stroke="black" points="283.5,-259.5 283.5,-282.5 494.5,-282.5 494.5,-259.5 283.5,-259.5"/>
<text text-anchor="start" x="378.5" y="-267.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="283.5,-236.5 283.5,-259.5 318.5,-259.5 318.5,-236.5 283.5,-236.5"/>
<text text-anchor="start" x="293.5" y="-244.3" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="318.5,-236.5 318.5,-259.5 398.5,-259.5 398.5,-236.5 318.5,-236.5"/>
<text text-anchor="start" x="328.5" y="-244.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="398.5,-236.5 398.5,-259.5 439.5,-259.5 439.5,-236.5 398.5,-236.5"/>
<text text-anchor="start" x="408" y="-244.3" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="439.5,-236.5 439.5,-259.5 494.5,-259.5 494.5,-236.5 439.5,-236.5"/>
<text text-anchor="start" x="449" y="-244.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="315.5" y="-223.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-204.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="353.5" y="-204.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="428.5" y="-204.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-196.5 283.5,-198.5 494.5,-198.5 494.5,-196.5 283.5,-196.5"/>
<polygon fill="#ffffff" stroke="transparent" points="283.5,-194.5 283.5,-196.5 494.5,-196.5 494.5,-194.5 283.5,-194.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-192.5 283.5,-194.5 494.5,-194.5 494.5,-192.5 283.5,-192.5"/>
<text text-anchor="start" x="291" y="-179.3" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="355.5" y="-179.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="435" y="-179.3" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-171.5 283.5,-173.5 494.5,-173.5 494.5,-171.5 283.5,-171.5"/>
<polygon fill="#895956" stroke="transparent" points="283.5,-169.5 283.5,-171.5 494.5,-171.5 494.5,-169.5 283.5,-169.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-167.5 283.5,-169.5 494.5,-169.5 494.5,-167.5 283.5,-167.5"/>
<text text-anchor="start" x="292" y="-154.3" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="355" y="-154.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="434" y="-154.3" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-146.5 283.5,-148.5 494.5,-148.5 494.5,-146.5 283.5,-146.5"/>
<polygon fill="#00ff00" stroke="transparent" points="283.5,-144.5 283.5,-146.5 494.5,-146.5 494.5,-144.5 283.5,-144.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-142.5 283.5,-144.5 494.5,-144.5 494.5,-142.5 283.5,-142.5"/>
<text text-anchor="start" x="315.5" y="-129.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-110.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="369.5" y="-110.3" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-102.5 283.5,-104.5 494.5,-104.5 494.5,-102.5 283.5,-102.5"/>
<text text-anchor="start" x="315.5" y="-89.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="481.5,-284.5 277.5,-284.5 277.5,-84 481.5,-84 481.5,-284.5"/>
<polygon fill="none" stroke="black" points="277.5,-260.75 277.5,-284.5 481.5,-284.5 481.5,-260.75 277.5,-260.75"/>
<text text-anchor="start" x="369" y="-267.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="277.5,-237 277.5,-260.75 310.69,-260.75 310.69,-237 277.5,-237"/>
<text text-anchor="start" x="286.97" y="-243.45" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="310.69,-237 310.69,-260.75 388.12,-260.75 388.12,-237 310.69,-237"/>
<text text-anchor="start" x="320.16" y="-243.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="388.12,-237 388.12,-260.75 428.06,-260.75 428.06,-237 388.12,-237"/>
<text text-anchor="start" x="397.59" y="-243.45" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="428.06,-237 428.06,-260.75 481.5,-260.75 481.5,-237 428.06,-237"/>
<text text-anchor="start" x="437.53" y="-243.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="308.62" y="-221.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="279.38" y="-202.7" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="345.38" y="-202.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="417.38" y="-202.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="277.5,-197 277.5,-199 481.5,-199 481.5,-197 277.5,-197"/>
<polygon fill="#ffffff" stroke="none" points="277.5,-195 277.5,-197 481.5,-197 481.5,-195 277.5,-195"/>
<polygon fill="#000000" stroke="none" points="277.5,-193 277.5,-195 481.5,-195 481.5,-193 277.5,-193"/>
<text text-anchor="start" x="285.38" y="-177.7" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="347.62" y="-177.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="424.12" y="-177.7" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="none" points="277.5,-172 277.5,-174 481.5,-174 481.5,-172 277.5,-172"/>
<polygon fill="#895956" stroke="none" points="277.5,-170 277.5,-172 481.5,-172 481.5,-170 277.5,-170"/>
<polygon fill="#000000" stroke="none" points="277.5,-168 277.5,-170 481.5,-170 481.5,-168 277.5,-168"/>
<text text-anchor="start" x="286.12" y="-152.7" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="346.5" y="-152.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="423.38" y="-152.7" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="none" points="277.5,-147 277.5,-149 481.5,-149 481.5,-147 277.5,-147"/>
<polygon fill="#00ff00" stroke="none" points="277.5,-145 277.5,-147 481.5,-147 481.5,-145 277.5,-145"/>
<polygon fill="#000000" stroke="none" points="277.5,-143 277.5,-145 481.5,-145 481.5,-143 277.5,-143"/>
<text text-anchor="start" x="308.62" y="-127.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="279.38" y="-108.7" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="360.75" y="-108.7" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="277.5,-103 277.5,-105 481.5,-105 481.5,-103 277.5,-103"/>
<text text-anchor="start" x="308.62" y="-87.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge2" class="edge">
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-100.5C217.18,-102.68 208.81,-195.68 283,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M139,-102.5C215.19,-102.5 206.81,-195.5 283,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-104.5C213.19,-102.32 204.82,-195.32 283,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-101.25C211.68,-103.43 203.31,-196.43 277.5,-194.25"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M133.5,-103.25C209.69,-103.25 201.31,-196.25 277.5,-196.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-105.25C207.69,-103.07 199.32,-196.07 277.5,-198.25"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge4" class="edge">
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-170.5C202.76,-170.52 218.75,-168.52 283,-168.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M139,-172.5C203.01,-172.5 218.99,-170.5 283,-170.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-174.5C203.25,-174.48 219.24,-172.48 283,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-170.25C197.38,-170.25 213.37,-169.25 277.5,-169.25"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M133.5,-172.25C197.5,-172.25 213.5,-171.25 277.5,-171.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-174.25C197.63,-174.25 213.62,-173.25 277.5,-173.25"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge6" class="edge">
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-147.5C202.54,-147.56 218.49,-143.56 283,-143.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M139,-149.5C203.02,-149.5 218.98,-145.5 283,-145.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-151.5C203.51,-151.44 219.46,-147.44 283,-147.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-147.25C197.14,-147.28 213.12,-144.28 277.5,-144.25"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M133.5,-149.25C197.51,-149.25 213.49,-146.25 277.5,-146.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-151.25C197.88,-151.22 213.86,-148.22 277.5,-148.25"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge8" class="edge">
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-102.5C203,-102.5 219,-103.5 283,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-103.25C197.5,-103.25 213.5,-104.25 277.5,-104.25"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="825,-254 638,-254 638,-139 825,-139 825,-254"/>
<polygon fill="#ffffff" stroke="transparent" points="638,-139 638,-254 825,-254 825,-139 638,-139"/>
<polygon fill="none" stroke="black" points="638.5,-230.5 638.5,-253.5 825.5,-253.5 825.5,-230.5 638.5,-230.5"/>
<text text-anchor="start" x="723" y="-238.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638.5,-207.5 638.5,-230.5 734.5,-230.5 734.5,-207.5 638.5,-207.5"/>
<text text-anchor="start" x="642.5" y="-215.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="734.5,-207.5 734.5,-230.5 785.5,-230.5 785.5,-207.5 734.5,-207.5"/>
<text text-anchor="start" x="738.5" y="-215.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="785.5,-207.5 785.5,-230.5 825.5,-230.5 825.5,-207.5 785.5,-207.5"/>
<text text-anchor="start" x="789.5" y="-215.3" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="638.5,-184.5 638.5,-207.5 720.5,-207.5 720.5,-184.5 638.5,-184.5"/>
<text text-anchor="start" x="675.5" y="-192.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="720.5,-184.5 720.5,-207.5 825.5,-207.5 825.5,-184.5 720.5,-184.5"/>
<text text-anchor="start" x="757" y="-192.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="638.5,-161.5 638.5,-184.5 720.5,-184.5 720.5,-161.5 638.5,-161.5"/>
<text text-anchor="start" x="675.5" y="-169.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="720.5,-161.5 720.5,-184.5 825.5,-184.5 825.5,-161.5 720.5,-161.5"/>
<text text-anchor="start" x="763" y="-169.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="638.5,-138.5 638.5,-161.5 720.5,-161.5 720.5,-138.5 638.5,-138.5"/>
<text text-anchor="start" x="675.5" y="-146.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="720.5,-138.5 720.5,-161.5 825.5,-161.5 825.5,-138.5 720.5,-138.5"/>
<text text-anchor="start" x="764" y="-146.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="805.5,-255.5 625.5,-255.5 625.5,-139 805.5,-139 805.5,-255.5"/>
<polygon fill="none" stroke="black" points="625.5,-231.75 625.5,-255.5 805.5,-255.5 805.5,-231.75 625.5,-231.75"/>
<text text-anchor="start" x="707.25" y="-238.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="625.5,-208 625.5,-231.75 718.25,-231.75 718.25,-208 625.5,-208"/>
<text text-anchor="start" x="629.5" y="-214.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="718.25,-208 718.25,-231.75 767.5,-231.75 767.5,-208 718.25,-208"/>
<text text-anchor="start" x="722.25" y="-214.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="767.5,-208 767.5,-231.75 805.5,-231.75 805.5,-208 767.5,-208"/>
<text text-anchor="start" x="771.5" y="-214.45" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="625.5,-185 625.5,-208 704,-208 704,-185 625.5,-185"/>
<text text-anchor="start" x="661" y="-190.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="704,-185 704,-208 805.5,-208 805.5,-185 704,-185"/>
<text text-anchor="start" x="739.38" y="-190.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="625.5,-162 625.5,-185 704,-185 704,-162 625.5,-162"/>
<text text-anchor="start" x="661" y="-167.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="704,-162 704,-185 805.5,-185 805.5,-162 704,-162"/>
<text text-anchor="start" x="745.38" y="-167.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="625.5,-139 625.5,-162 704,-162 704,-139 625.5,-139"/>
<text text-anchor="start" x="661" y="-144.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="704,-139 704,-162 805.5,-162 805.5,-139 704,-139"/>
<text text-anchor="start" x="746.12" y="-144.7" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge3" class="edge">
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-193.5C558,-193.5 574,-193.5 638,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M494,-195.5C558,-195.5 574,-195.5 638,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-197.5C558,-197.5 574,-197.5 638,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-194.25C545.5,-194.25 561.5,-194.25 625.5,-194.25"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M481.5,-196.25C545.5,-196.25 561.5,-196.25 625.5,-196.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-198.25C545.5,-198.25 561.5,-198.25 625.5,-198.25"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge5" class="edge">
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-168.5C557.04,-169.36 571.68,-148.36 638,-147.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M494,-170.5C558.68,-170.5 573.32,-149.5 638,-149.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-172.5C560.32,-171.64 574.96,-150.64 638,-151.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-169.25C544.54,-170.11 559.18,-149.11 625.5,-148.25"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M481.5,-171.25C546.18,-171.25 560.82,-150.25 625.5,-150.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-173.25C547.82,-172.39 562.46,-151.39 625.5,-152.25"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge7" class="edge">
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-143.5C560.9,-144.59 574.67,-171.59 638,-170.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-145.5C559.12,-145.5 572.88,-172.5 638,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-147.5C557.33,-146.41 571.1,-173.41 638,-174.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-144.25C548.4,-145.34 562.17,-172.34 625.5,-171.25"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M481.5,-146.25C546.62,-146.25 560.38,-173.25 625.5,-173.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-148.25C544.83,-147.16 558.6,-174.16 625.5,-175.25"/>
</g>
</g>
</svg>

BIN
examples/demo01.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 54 KiB

273
examples/demo01.svg generated
View File

@ -1,181 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="833pt" height="291pt"
viewBox="0.00 0.00 833.00 291.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 287)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-287 829,-287 829,4 -4,4"/>
<svg width="814pt" height="293pt"
viewBox="0.00 0.00 813.50 292.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 288.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-288.5 809.5,-288.5 809.5,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="139,-253 0,-253 0,0 139,0 139,-253"/>
<polygon fill="#ffffff" stroke="transparent" points="0,0 0,-253 139,-253 139,0 0,0"/>
<polygon fill="none" stroke="black" points="0.5,-229.5 0.5,-252.5 139.5,-252.5 139.5,-229.5 0.5,-229.5"/>
<text text-anchor="start" x="61" y="-237.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-206.5 0.5,-229.5 48.5,-229.5 48.5,-206.5 0.5,-206.5"/>
<text text-anchor="start" x="4.5" y="-214.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48.5,-206.5 48.5,-229.5 99.5,-229.5 99.5,-206.5 48.5,-206.5"/>
<text text-anchor="start" x="52.5" y="-214.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="99.5,-206.5 99.5,-229.5 139.5,-229.5 139.5,-206.5 99.5,-206.5"/>
<text text-anchor="start" x="103.5" y="-214.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 82.5,-206.5 82.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="26" y="-191.3" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="82.5,-183.5 82.5,-206.5 139.5,-206.5 139.5,-183.5 82.5,-183.5"/>
<text text-anchor="start" x="107" y="-191.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 82.5,-183.5 82.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="31.5" y="-168.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="82.5,-160.5 82.5,-183.5 139.5,-183.5 139.5,-160.5 82.5,-160.5"/>
<text text-anchor="start" x="107" y="-168.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-137.5 0.5,-160.5 82.5,-160.5 82.5,-137.5 0.5,-137.5"/>
<text text-anchor="start" x="32.5" y="-145.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="82.5,-137.5 82.5,-160.5 139.5,-160.5 139.5,-137.5 82.5,-137.5"/>
<text text-anchor="start" x="107" y="-145.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-114.5 0.5,-137.5 82.5,-137.5 82.5,-114.5 0.5,-114.5"/>
<text text-anchor="start" x="27" y="-122.3" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="82.5,-114.5 82.5,-137.5 139.5,-137.5 139.5,-114.5 82.5,-114.5"/>
<text text-anchor="start" x="107" y="-122.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0.5,-91.5 0.5,-114.5 82.5,-114.5 82.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="25.5" y="-99.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="82.5,-91.5 82.5,-114.5 139.5,-114.5 139.5,-91.5 82.5,-91.5"/>
<text text-anchor="start" x="107" y="-99.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-68.5 0.5,-91.5 82.5,-91.5 82.5,-68.5 0.5,-68.5"/>
<text text-anchor="start" x="26.5" y="-76.3" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="82.5,-68.5 82.5,-91.5 139.5,-91.5 139.5,-68.5 82.5,-68.5"/>
<text text-anchor="start" x="107" y="-76.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,-45.5 0.5,-68.5 82.5,-68.5 82.5,-45.5 0.5,-45.5"/>
<text text-anchor="start" x="27.5" y="-53.3" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="82.5,-45.5 82.5,-68.5 139.5,-68.5 139.5,-45.5 82.5,-45.5"/>
<text text-anchor="start" x="107" y="-53.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0.5,-22.5 0.5,-45.5 82.5,-45.5 82.5,-22.5 0.5,-22.5"/>
<text text-anchor="start" x="27.5" y="-30.3" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="82.5,-22.5 82.5,-45.5 139.5,-45.5 139.5,-22.5 82.5,-22.5"/>
<text text-anchor="start" x="107" y="-30.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 82.5,-22.5 82.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="34.5" y="-7.3" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="82.5,0.5 82.5,-22.5 139.5,-22.5 139.5,0.5 82.5,0.5"/>
<text text-anchor="start" x="107" y="-7.3" font-family="arial" font-size="14.00">9</text>
</g>
<!-- X1&#45;&#45;X1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;X1:e</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139.95,-54.55C192,-66.5 298,-66.5 296,-45 298,-23.5 192,-23.5 139.95,-35.45"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M139.5,-56.5C192,-68.5 298,-68.5 298,-45 298,-21.5 192,-21.5 139.5,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139.05,-58.45C192,-70.5 298,-70.5 300,-45 298,-19.5 192,-19.5 139.05,-31.55"/>
<polygon fill="#ffffff" stroke="black" points="133.5,-254.5 0,-254.5 0,0 133.5,0 133.5,-254.5"/>
<polygon fill="none" stroke="black" points="0,-230.75 0,-254.5 133.5,-254.5 133.5,-230.75 0,-230.75"/>
<text text-anchor="start" x="58.5" y="-237.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-207 0,-230.75 46.25,-230.75 46.25,-207 0,-207"/>
<text text-anchor="start" x="4" y="-213.45" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="46.25,-207 46.25,-230.75 95.5,-230.75 95.5,-207 46.25,-207"/>
<text text-anchor="start" x="50.25" y="-213.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="95.5,-207 95.5,-230.75 133.5,-230.75 133.5,-207 95.5,-207"/>
<text text-anchor="start" x="99.5" y="-213.45" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-184 0,-207 78.25,-207 78.25,-184 0,-184"/>
<text text-anchor="start" x="24.5" y="-189.7" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="78.25,-184 78.25,-207 133.5,-207 133.5,-184 78.25,-184"/>
<text text-anchor="start" x="102.12" y="-189.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-161 0,-184 78.25,-184 78.25,-161 0,-161"/>
<text text-anchor="start" x="29.75" y="-166.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="78.25,-161 78.25,-184 133.5,-184 133.5,-161 78.25,-161"/>
<text text-anchor="start" x="102.12" y="-166.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-138 0,-161 78.25,-161 78.25,-138 0,-138"/>
<text text-anchor="start" x="30.5" y="-143.7" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="78.25,-138 78.25,-161 133.5,-161 133.5,-138 78.25,-138"/>
<text text-anchor="start" x="102.12" y="-143.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-115 0,-138 78.25,-138 78.25,-115 0,-115"/>
<text text-anchor="start" x="25.25" y="-120.7" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="78.25,-115 78.25,-138 133.5,-138 133.5,-115 78.25,-115"/>
<text text-anchor="start" x="102.12" y="-120.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-92 0,-115 78.25,-115 78.25,-92 0,-92"/>
<text text-anchor="start" x="23.75" y="-97.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="78.25,-92 78.25,-115 133.5,-115 133.5,-92 78.25,-92"/>
<text text-anchor="start" x="102.12" y="-97.7" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-69 0,-92 78.25,-92 78.25,-69 0,-69"/>
<text text-anchor="start" x="24.88" y="-74.7" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="78.25,-69 78.25,-92 133.5,-92 133.5,-69 78.25,-69"/>
<text text-anchor="start" x="102.12" y="-74.7" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-46 0,-69 78.25,-69 78.25,-46 0,-46"/>
<text text-anchor="start" x="25.62" y="-51.7" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="78.25,-46 78.25,-69 133.5,-69 133.5,-46 78.25,-46"/>
<text text-anchor="start" x="102.12" y="-51.7" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-23 0,-46 78.25,-46 78.25,-23 0,-23"/>
<text text-anchor="start" x="25.62" y="-28.7" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="78.25,-23 78.25,-46 133.5,-46 133.5,-23 78.25,-23"/>
<text text-anchor="start" x="102.12" y="-28.7" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0,0 0,-23 78.25,-23 78.25,0 0,0"/>
<text text-anchor="start" x="32.38" y="-5.7" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="78.25,0 78.25,-23 133.5,-23 133.5,0 78.25,0"/>
<text text-anchor="start" x="102.12" y="-5.7" font-family="arial" font-size="14.00">9</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="494,-283 283,-283 283,-84 494,-84 494,-283"/>
<polygon fill="none" stroke="black" points="283.5,-259.5 283.5,-282.5 494.5,-282.5 494.5,-259.5 283.5,-259.5"/>
<text text-anchor="start" x="378.5" y="-267.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="283.5,-236.5 283.5,-259.5 318.5,-259.5 318.5,-236.5 283.5,-236.5"/>
<text text-anchor="start" x="293.5" y="-244.3" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="318.5,-236.5 318.5,-259.5 398.5,-259.5 398.5,-236.5 318.5,-236.5"/>
<text text-anchor="start" x="328.5" y="-244.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="398.5,-236.5 398.5,-259.5 439.5,-259.5 439.5,-236.5 398.5,-236.5"/>
<text text-anchor="start" x="408" y="-244.3" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="439.5,-236.5 439.5,-259.5 494.5,-259.5 494.5,-236.5 439.5,-236.5"/>
<text text-anchor="start" x="449" y="-244.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="315.5" y="-223.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-204.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="353.5" y="-204.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="428.5" y="-204.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-196.5 283.5,-198.5 494.5,-198.5 494.5,-196.5 283.5,-196.5"/>
<polygon fill="#ffffff" stroke="transparent" points="283.5,-194.5 283.5,-196.5 494.5,-196.5 494.5,-194.5 283.5,-194.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-192.5 283.5,-194.5 494.5,-194.5 494.5,-192.5 283.5,-192.5"/>
<text text-anchor="start" x="291" y="-179.3" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="355.5" y="-179.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="435" y="-179.3" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-171.5 283.5,-173.5 494.5,-173.5 494.5,-171.5 283.5,-171.5"/>
<polygon fill="#895956" stroke="transparent" points="283.5,-169.5 283.5,-171.5 494.5,-171.5 494.5,-169.5 283.5,-169.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-167.5 283.5,-169.5 494.5,-169.5 494.5,-167.5 283.5,-167.5"/>
<text text-anchor="start" x="292" y="-154.3" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="355" y="-154.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="434" y="-154.3" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-146.5 283.5,-148.5 494.5,-148.5 494.5,-146.5 283.5,-146.5"/>
<polygon fill="#00ff00" stroke="transparent" points="283.5,-144.5 283.5,-146.5 494.5,-146.5 494.5,-144.5 283.5,-144.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-142.5 283.5,-144.5 494.5,-144.5 494.5,-142.5 283.5,-142.5"/>
<text text-anchor="start" x="315.5" y="-129.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-110.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="369.5" y="-110.3" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-102.5 283.5,-104.5 494.5,-104.5 494.5,-102.5 283.5,-102.5"/>
<text text-anchor="start" x="315.5" y="-89.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="481.5,-284.5 277.5,-284.5 277.5,-84 481.5,-84 481.5,-284.5"/>
<polygon fill="none" stroke="black" points="277.5,-260.75 277.5,-284.5 481.5,-284.5 481.5,-260.75 277.5,-260.75"/>
<text text-anchor="start" x="369" y="-267.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="277.5,-237 277.5,-260.75 310.69,-260.75 310.69,-237 277.5,-237"/>
<text text-anchor="start" x="286.97" y="-243.45" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="310.69,-237 310.69,-260.75 388.12,-260.75 388.12,-237 310.69,-237"/>
<text text-anchor="start" x="320.16" y="-243.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="388.12,-237 388.12,-260.75 428.06,-260.75 428.06,-237 388.12,-237"/>
<text text-anchor="start" x="397.59" y="-243.45" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="428.06,-237 428.06,-260.75 481.5,-260.75 481.5,-237 428.06,-237"/>
<text text-anchor="start" x="437.53" y="-243.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="308.62" y="-221.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="279.38" y="-202.7" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="345.38" y="-202.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="417.38" y="-202.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="277.5,-197 277.5,-199 481.5,-199 481.5,-197 277.5,-197"/>
<polygon fill="#ffffff" stroke="none" points="277.5,-195 277.5,-197 481.5,-197 481.5,-195 277.5,-195"/>
<polygon fill="#000000" stroke="none" points="277.5,-193 277.5,-195 481.5,-195 481.5,-193 277.5,-193"/>
<text text-anchor="start" x="285.38" y="-177.7" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="347.62" y="-177.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="424.12" y="-177.7" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="none" points="277.5,-172 277.5,-174 481.5,-174 481.5,-172 277.5,-172"/>
<polygon fill="#895956" stroke="none" points="277.5,-170 277.5,-172 481.5,-172 481.5,-170 277.5,-170"/>
<polygon fill="#000000" stroke="none" points="277.5,-168 277.5,-170 481.5,-170 481.5,-168 277.5,-168"/>
<text text-anchor="start" x="286.12" y="-152.7" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="346.5" y="-152.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="423.38" y="-152.7" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="none" points="277.5,-147 277.5,-149 481.5,-149 481.5,-147 277.5,-147"/>
<polygon fill="#00ff00" stroke="none" points="277.5,-145 277.5,-147 481.5,-147 481.5,-145 277.5,-145"/>
<polygon fill="#000000" stroke="none" points="277.5,-143 277.5,-145 481.5,-145 481.5,-143 277.5,-143"/>
<text text-anchor="start" x="308.62" y="-127.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="279.38" y="-108.7" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="360.75" y="-108.7" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="277.5,-103 277.5,-105 481.5,-105 481.5,-103 277.5,-103"/>
<text text-anchor="start" x="308.62" y="-87.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge2" class="edge">
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-100.5C217.18,-102.68 208.81,-195.68 283,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M139,-102.5C215.19,-102.5 206.81,-195.5 283,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-104.5C213.19,-102.32 204.82,-195.32 283,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-101.25C211.68,-103.43 203.31,-196.43 277.5,-194.25"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M133.5,-103.25C209.69,-103.25 201.31,-196.25 277.5,-196.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-105.25C207.69,-103.07 199.32,-196.07 277.5,-198.25"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge4" class="edge">
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-170.5C202.76,-170.52 218.75,-168.52 283,-168.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M139,-172.5C203.01,-172.5 218.99,-170.5 283,-170.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-174.5C203.25,-174.48 219.24,-172.48 283,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-170.25C197.38,-170.25 213.37,-169.25 277.5,-169.25"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M133.5,-172.25C197.5,-172.25 213.5,-171.25 277.5,-171.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-174.25C197.63,-174.25 213.62,-173.25 277.5,-173.25"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge6" class="edge">
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-147.5C202.54,-147.56 218.49,-143.56 283,-143.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M139,-149.5C203.02,-149.5 218.98,-145.5 283,-145.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-151.5C203.51,-151.44 219.46,-147.44 283,-147.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-147.25C197.14,-147.28 213.12,-144.28 277.5,-144.25"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M133.5,-149.25C197.51,-149.25 213.49,-146.25 277.5,-146.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-151.25C197.88,-151.22 213.86,-148.22 277.5,-148.25"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge8" class="edge">
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-102.5C203,-102.5 219,-103.5 283,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M133.5,-103.25C197.5,-103.25 213.5,-104.25 277.5,-104.25"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="825,-254 638,-254 638,-139 825,-139 825,-254"/>
<polygon fill="#ffffff" stroke="transparent" points="638,-139 638,-254 825,-254 825,-139 638,-139"/>
<polygon fill="none" stroke="black" points="638.5,-230.5 638.5,-253.5 825.5,-253.5 825.5,-230.5 638.5,-230.5"/>
<text text-anchor="start" x="723" y="-238.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638.5,-207.5 638.5,-230.5 734.5,-230.5 734.5,-207.5 638.5,-207.5"/>
<text text-anchor="start" x="642.5" y="-215.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="734.5,-207.5 734.5,-230.5 785.5,-230.5 785.5,-207.5 734.5,-207.5"/>
<text text-anchor="start" x="738.5" y="-215.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="785.5,-207.5 785.5,-230.5 825.5,-230.5 825.5,-207.5 785.5,-207.5"/>
<text text-anchor="start" x="789.5" y="-215.3" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="638.5,-184.5 638.5,-207.5 720.5,-207.5 720.5,-184.5 638.5,-184.5"/>
<text text-anchor="start" x="675.5" y="-192.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="720.5,-184.5 720.5,-207.5 825.5,-207.5 825.5,-184.5 720.5,-184.5"/>
<text text-anchor="start" x="757" y="-192.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="638.5,-161.5 638.5,-184.5 720.5,-184.5 720.5,-161.5 638.5,-161.5"/>
<text text-anchor="start" x="675.5" y="-169.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="720.5,-161.5 720.5,-184.5 825.5,-184.5 825.5,-161.5 720.5,-161.5"/>
<text text-anchor="start" x="763" y="-169.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="638.5,-138.5 638.5,-161.5 720.5,-161.5 720.5,-138.5 638.5,-138.5"/>
<text text-anchor="start" x="675.5" y="-146.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="720.5,-138.5 720.5,-161.5 825.5,-161.5 825.5,-138.5 720.5,-138.5"/>
<text text-anchor="start" x="764" y="-146.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="805.5,-255.5 625.5,-255.5 625.5,-139 805.5,-139 805.5,-255.5"/>
<polygon fill="none" stroke="black" points="625.5,-231.75 625.5,-255.5 805.5,-255.5 805.5,-231.75 625.5,-231.75"/>
<text text-anchor="start" x="707.25" y="-238.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="625.5,-208 625.5,-231.75 718.25,-231.75 718.25,-208 625.5,-208"/>
<text text-anchor="start" x="629.5" y="-214.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="718.25,-208 718.25,-231.75 767.5,-231.75 767.5,-208 718.25,-208"/>
<text text-anchor="start" x="722.25" y="-214.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="767.5,-208 767.5,-231.75 805.5,-231.75 805.5,-208 767.5,-208"/>
<text text-anchor="start" x="771.5" y="-214.45" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="625.5,-185 625.5,-208 704,-208 704,-185 625.5,-185"/>
<text text-anchor="start" x="661" y="-190.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="704,-185 704,-208 805.5,-208 805.5,-185 704,-185"/>
<text text-anchor="start" x="739.38" y="-190.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="625.5,-162 625.5,-185 704,-185 704,-162 625.5,-162"/>
<text text-anchor="start" x="661" y="-167.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="704,-162 704,-185 805.5,-185 805.5,-162 704,-162"/>
<text text-anchor="start" x="745.38" y="-167.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="625.5,-139 625.5,-162 704,-162 704,-139 625.5,-139"/>
<text text-anchor="start" x="661" y="-144.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="704,-139 704,-162 805.5,-162 805.5,-139 704,-139"/>
<text text-anchor="start" x="746.12" y="-144.7" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge3" class="edge">
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-193.5C558,-193.5 574,-193.5 638,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M494,-195.5C558,-195.5 574,-195.5 638,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-197.5C558,-197.5 574,-197.5 638,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-194.25C545.5,-194.25 561.5,-194.25 625.5,-194.25"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M481.5,-196.25C545.5,-196.25 561.5,-196.25 625.5,-196.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-198.25C545.5,-198.25 561.5,-198.25 625.5,-198.25"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge5" class="edge">
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-168.5C557.04,-169.36 571.68,-148.36 638,-147.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M494,-170.5C558.68,-170.5 573.32,-149.5 638,-149.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-172.5C560.32,-171.64 574.96,-150.64 638,-151.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-169.25C544.54,-170.11 559.18,-149.11 625.5,-148.25"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M481.5,-171.25C546.18,-171.25 560.82,-150.25 625.5,-150.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-173.25C547.82,-172.39 562.46,-151.39 625.5,-152.25"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge7" class="edge">
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-143.5C560.9,-144.59 574.67,-171.59 638,-170.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-145.5C559.12,-145.5 572.88,-172.5 638,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-147.5C557.33,-146.41 571.1,-173.41 638,-174.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-144.25C548.4,-145.34 562.17,-172.34 625.5,-171.25"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M481.5,-146.25C546.62,-146.25 560.38,-173.25 625.5,-173.25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M481.5,-148.25C544.83,-147.16 558.6,-174.16 625.5,-175.25"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,13 +1,8 @@
metadata:
title: demo01
connectors:
X1:
type: D-Sub
subtype: female
pinlabels: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI]
loops:
- [7,8]
X2:
type: Molex KK 254
subtype: female

12
examples/demo02.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
@ -168,7 +168,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_1 [label=<
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -180,7 +180,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_2 [label=<
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -487,10 +487,10 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style="filled,dashed"]
edge [color="#000000:#000000:#000000"]
AUTOGENERATED_F_1:e -- W4:w1:w
__F_1:e -- W4:w1:w
W4:w1:e -- X4:p1l:w
edge [color="#000000:#ff0000:#000000"]
AUTOGENERATED_F_2:e -- W4:w2:w
__F_2:e -- W4:w2:w
W4:w2:e -- X4:p2l:w
W4 [label=<
<table border="0" cellspacing="0" cellpadding="0">

730
examples/demo02.html generated
View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>WireViz Demo 2</title>
<style>
body {
@ -188,518 +188,512 @@
</div>
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="882pt" height="767pt"
viewBox="0.00 0.00 882.00 766.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 762.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-762.5 878,-762.5 878,4 -4,4"/>
<svg width="865pt" height="775pt"
viewBox="0.00 0.00 865.25 774.62" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 770.62)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-770.62 861.25,-770.62 861.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="189.5,-517.5 2.5,-517.5 2.5,-287.5 189.5,-287.5 189.5,-517.5"/>
<polygon fill="#ffffff" stroke="transparent" points="2.5,-287.5 2.5,-517.5 189.5,-517.5 189.5,-287.5 2.5,-287.5"/>
<polygon fill="none" stroke="black" points="3,-494.5 3,-517.5 190,-517.5 190,-494.5 3,-494.5"/>
<text text-anchor="start" x="87.5" y="-502.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="3,-471.5 3,-494.5 99,-494.5 99,-471.5 3,-471.5"/>
<text text-anchor="start" x="7" y="-479.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="99,-471.5 99,-494.5 150,-494.5 150,-471.5 99,-471.5"/>
<text text-anchor="start" x="103" y="-479.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="150,-471.5 150,-494.5 190,-494.5 190,-471.5 150,-471.5"/>
<text text-anchor="start" x="154" y="-479.3" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="3,-448.5 3,-471.5 111,-471.5 111,-448.5 3,-448.5"/>
<text text-anchor="start" x="41" y="-456.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="111,-448.5 111,-471.5 190,-471.5 190,-448.5 111,-448.5"/>
<text text-anchor="start" x="146.5" y="-456.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="3,-425.5 3,-448.5 111,-448.5 111,-425.5 3,-425.5"/>
<text text-anchor="start" x="44" y="-433.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="111,-425.5 111,-448.5 190,-448.5 190,-425.5 111,-425.5"/>
<text text-anchor="start" x="146.5" y="-433.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="3,-402.5 3,-425.5 111,-425.5 111,-402.5 3,-402.5"/>
<text text-anchor="start" x="43" y="-410.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="111,-402.5 111,-425.5 190,-425.5 190,-402.5 111,-402.5"/>
<text text-anchor="start" x="146.5" y="-410.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="3,-379.5 3,-402.5 111,-402.5 111,-379.5 3,-379.5"/>
<text text-anchor="start" x="42.5" y="-387.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="111,-379.5 111,-402.5 190,-402.5 190,-379.5 111,-379.5"/>
<text text-anchor="start" x="146.5" y="-387.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="3,-356.5 3,-379.5 111,-379.5 111,-356.5 3,-356.5"/>
<text text-anchor="start" x="39" y="-364.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="111,-356.5 111,-379.5 190,-379.5 190,-356.5 111,-356.5"/>
<text text-anchor="start" x="146.5" y="-364.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="3,-333.5 3,-356.5 111,-356.5 111,-333.5 3,-333.5"/>
<text text-anchor="start" x="39" y="-341.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="111,-333.5 111,-356.5 190,-356.5 190,-333.5 111,-333.5"/>
<text text-anchor="start" x="146.5" y="-341.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="3,-310.5 3,-333.5 111,-333.5 111,-310.5 3,-310.5"/>
<text text-anchor="start" x="42.5" y="-318.3" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="none" stroke="black" points="111,-310.5 111,-333.5 190,-333.5 190,-310.5 111,-310.5"/>
<text text-anchor="start" x="146.5" y="-318.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="3,-287.5 3,-310.5 111,-310.5 111,-287.5 3,-287.5"/>
<text text-anchor="start" x="44.5" y="-295.3" font-family="arial" font-size="14.00">N/C</text>
<polygon fill="none" stroke="black" points="111,-287.5 111,-310.5 190,-310.5 190,-287.5 111,-287.5"/>
<text text-anchor="start" x="146.5" y="-295.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="#ffffff" stroke="black" points="183.62,-523.62 3.62,-523.62 3.62,-292.12 183.62,-292.12 183.62,-523.62"/>
<polygon fill="none" stroke="black" points="3.62,-499.88 3.62,-523.62 183.62,-523.62 183.62,-499.88 3.62,-499.88"/>
<text text-anchor="start" x="85.38" y="-506.32" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="3.62,-476.12 3.62,-499.88 96.38,-499.88 96.38,-476.12 3.62,-476.12"/>
<text text-anchor="start" x="7.62" y="-482.57" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.38,-476.12 96.38,-499.88 145.62,-499.88 145.62,-476.12 96.38,-476.12"/>
<text text-anchor="start" x="100.38" y="-482.57" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="145.62,-476.12 145.62,-499.88 183.62,-499.88 183.62,-476.12 145.62,-476.12"/>
<text text-anchor="start" x="149.62" y="-482.57" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="3.62,-453.12 3.62,-476.12 108.12,-476.12 108.12,-453.12 3.62,-453.12"/>
<text text-anchor="start" x="40.5" y="-458.82" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="108.12,-453.12 108.12,-476.12 183.62,-476.12 183.62,-453.12 108.12,-453.12"/>
<text text-anchor="start" x="142.12" y="-458.82" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="3.62,-430.12 3.62,-453.12 108.12,-453.12 108.12,-430.12 3.62,-430.12"/>
<text text-anchor="start" x="43.5" y="-435.82" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="108.12,-430.12 108.12,-453.12 183.62,-453.12 183.62,-430.12 108.12,-430.12"/>
<text text-anchor="start" x="142.12" y="-435.82" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="3.62,-407.12 3.62,-430.12 108.12,-430.12 108.12,-407.12 3.62,-407.12"/>
<text text-anchor="start" x="42.75" y="-412.82" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="108.12,-407.12 108.12,-430.12 183.62,-430.12 183.62,-407.12 108.12,-407.12"/>
<text text-anchor="start" x="142.12" y="-412.82" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="3.62,-384.12 3.62,-407.12 108.12,-407.12 108.12,-384.12 3.62,-384.12"/>
<text text-anchor="start" x="42" y="-389.82" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="108.12,-384.12 108.12,-407.12 183.62,-407.12 183.62,-384.12 108.12,-384.12"/>
<text text-anchor="start" x="142.12" y="-389.82" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="3.62,-361.12 3.62,-384.12 108.12,-384.12 108.12,-361.12 3.62,-361.12"/>
<text text-anchor="start" x="37.88" y="-366.82" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="108.12,-361.12 108.12,-384.12 183.62,-384.12 183.62,-361.12 108.12,-361.12"/>
<text text-anchor="start" x="142.12" y="-366.82" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="3.62,-338.12 3.62,-361.12 108.12,-361.12 108.12,-338.12 3.62,-338.12"/>
<text text-anchor="start" x="37.88" y="-343.82" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="108.12,-338.12 108.12,-361.12 183.62,-361.12 183.62,-338.12 108.12,-338.12"/>
<text text-anchor="start" x="142.12" y="-343.82" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="3.62,-315.12 3.62,-338.12 108.12,-338.12 108.12,-315.12 3.62,-315.12"/>
<text text-anchor="start" x="42" y="-320.82" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="none" stroke="black" points="108.12,-315.12 108.12,-338.12 183.62,-338.12 183.62,-315.12 108.12,-315.12"/>
<text text-anchor="start" x="142.12" y="-320.82" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="3.62,-292.12 3.62,-315.12 108.12,-315.12 108.12,-292.12 3.62,-292.12"/>
<text text-anchor="start" x="44.25" y="-297.82" font-family="arial" font-size="14.00">N/C</text>
<polygon fill="none" stroke="black" points="108.12,-292.12 108.12,-315.12 183.62,-315.12 183.62,-292.12 108.12,-292.12"/>
<text text-anchor="start" x="142.12" y="-297.82" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node7" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="539,-758.5 340,-758.5 340,-574.5 539,-574.5 539,-758.5"/>
<polygon fill="none" stroke="black" points="340.5,-735.5 340.5,-758.5 539.5,-758.5 539.5,-735.5 340.5,-735.5"/>
<text text-anchor="start" x="429.5" y="-743.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="340.5,-712.5 340.5,-735.5 363.5,-735.5 363.5,-712.5 340.5,-712.5"/>
<text text-anchor="start" x="344.5" y="-720.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="363.5,-712.5 363.5,-735.5 495.5,-735.5 495.5,-712.5 363.5,-712.5"/>
<text text-anchor="start" x="367.5" y="-720.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-712.5 495.5,-735.5 539.5,-735.5 539.5,-712.5 495.5,-712.5"/>
<text text-anchor="start" x="499.5" y="-720.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="373" y="-699.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="343" y="-680.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413.5" y="-680.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="473.5" y="-680.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-672.5 340.5,-674.5 539.5,-674.5 539.5,-672.5 340.5,-672.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-670.5 340.5,-672.5 539.5,-672.5 539.5,-670.5 340.5,-670.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-668.5 340.5,-670.5 539.5,-670.5 539.5,-668.5 340.5,-668.5"/>
<text text-anchor="start" x="346" y="-655.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="412.5" y="-655.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="476.5" y="-655.3" font-family="arial" font-size="14.00">X2:2:+5V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-647.5 340.5,-649.5 539.5,-649.5 539.5,-647.5 340.5,-647.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-645.5 340.5,-647.5 539.5,-647.5 539.5,-645.5 340.5,-645.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-643.5 340.5,-645.5 539.5,-645.5 539.5,-643.5 340.5,-643.5"/>
<text text-anchor="start" x="345" y="-630.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="413.5" y="-630.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="475.5" y="-630.3" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-622.5 340.5,-624.5 539.5,-624.5 539.5,-622.5 340.5,-622.5"/>
<polygon fill="#ffff00" stroke="transparent" points="340.5,-620.5 340.5,-622.5 539.5,-622.5 539.5,-620.5 340.5,-620.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-618.5 340.5,-620.5 539.5,-620.5 539.5,-618.5 340.5,-618.5"/>
<text text-anchor="start" x="344" y="-605.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="412" y="-605.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="474.5" y="-605.3" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-597.5 340.5,-599.5 539.5,-599.5 539.5,-597.5 340.5,-597.5"/>
<polygon fill="#00ff00" stroke="transparent" points="340.5,-595.5 340.5,-597.5 539.5,-597.5 539.5,-595.5 340.5,-595.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-593.5 340.5,-595.5 539.5,-595.5 539.5,-593.5 340.5,-593.5"/>
<text text-anchor="start" x="373" y="-580.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="530.12,-766.62 334.38,-766.62 334.38,-581.12 530.12,-581.12 530.12,-766.62"/>
<polygon fill="none" stroke="black" points="334.38,-742.88 334.38,-766.62 530.12,-766.62 530.12,-742.88 334.38,-742.88"/>
<text text-anchor="start" x="421.75" y="-749.33" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="334.38,-719.12 334.38,-742.88 356.62,-742.88 356.62,-719.12 334.38,-719.12"/>
<text text-anchor="start" x="338.38" y="-725.58" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="356.62,-719.12 356.62,-742.88 487.62,-742.88 487.62,-719.12 356.62,-719.12"/>
<text text-anchor="start" x="360.62" y="-725.58" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="487.62,-719.12 487.62,-742.88 530.12,-742.88 530.12,-719.12 487.62,-719.12"/>
<text text-anchor="start" x="491.62" y="-725.58" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="366.46" y="-703.83" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="337.21" y="-684.83" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="406.38" y="-684.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="465.04" y="-684.83" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="334.38,-679.12 334.38,-681.12 530.12,-681.12 530.12,-679.12 334.38,-679.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-677.12 334.38,-679.12 530.12,-679.12 530.12,-677.12 334.38,-677.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-675.12 334.38,-677.12 530.12,-677.12 530.12,-675.12 334.38,-675.12"/>
<text text-anchor="start" x="340.21" y="-659.83" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="405.62" y="-659.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.04" y="-659.83" font-family="arial" font-size="14.00">X2:2:+5V</text>
<polygon fill="#000000" stroke="none" points="334.38,-654.12 334.38,-656.12 530.12,-656.12 530.12,-654.12 334.38,-654.12"/>
<polygon fill="#ff0000" stroke="none" points="334.38,-652.12 334.38,-654.12 530.12,-654.12 530.12,-652.12 334.38,-652.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-650.12 334.38,-652.12 530.12,-652.12 530.12,-650.12 334.38,-650.12"/>
<text text-anchor="start" x="339.46" y="-634.83" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="406.38" y="-634.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="467.29" y="-634.83" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="334.38,-629.12 334.38,-631.12 530.12,-631.12 530.12,-629.12 334.38,-629.12"/>
<polygon fill="#ffff00" stroke="none" points="334.38,-627.12 334.38,-629.12 530.12,-629.12 530.12,-627.12 334.38,-627.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-625.12 334.38,-627.12 530.12,-627.12 530.12,-625.12 334.38,-625.12"/>
<text text-anchor="start" x="338.71" y="-609.83" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="404.88" y="-609.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="466.54" y="-609.83" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="334.38,-604.12 334.38,-606.12 530.12,-606.12 530.12,-604.12 334.38,-604.12"/>
<polygon fill="#00ff00" stroke="none" points="334.38,-602.12 334.38,-604.12 530.12,-604.12 530.12,-602.12 334.38,-602.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-600.12 334.38,-602.12 530.12,-602.12 530.12,-600.12 334.38,-600.12"/>
<text text-anchor="start" x="366.46" y="-584.83" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C307.54,-461.22 226.69,-672.22 339.5,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C305.67,-460.5 224.83,-671.5 339.5,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C303.81,-459.78 222.96,-670.78 339.5,-673.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-462.88C301.93,-465.6 219.68,-678.6 333.25,-675.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-464.88C300.06,-464.88 217.82,-677.88 333.25,-677.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-466.87C298.19,-464.15 215.95,-677.15 333.25,-679.87"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-435.5C306.82,-438.21 227.42,-647.21 339.5,-644.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M191,-437.5C304.95,-437.5 225.55,-646.5 339.5,-646.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-439.5C303.08,-436.79 223.68,-645.79 339.5,-648.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-439.88C301.2,-442.59 220.41,-653.59 333.25,-650.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M184.62,-441.87C299.33,-441.87 218.54,-652.88 333.25,-652.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-443.87C297.46,-441.16 216.68,-652.16 333.25,-654.87"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-412.5C306.1,-415.2 228.15,-622.2 339.5,-619.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M191,-414.5C304.23,-414.5 226.27,-621.5 339.5,-621.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-416.5C302.35,-413.8 224.4,-620.8 339.5,-623.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-416.88C300.48,-419.58 221.14,-628.58 333.25,-625.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M184.62,-418.88C298.61,-418.88 219.27,-627.88 333.25,-627.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-420.87C296.74,-418.17 217.4,-627.17 333.25,-629.87"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-388.5C305.74,-391.2 228.51,-597.2 339.5,-594.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M191,-390.5C303.86,-390.5 226.64,-596.5 339.5,-596.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-392.5C301.99,-389.8 224.76,-595.8 339.5,-598.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-393.88C299.75,-396.58 221.86,-603.58 333.25,-600.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M184.62,-395.88C297.88,-395.87 219.99,-602.88 333.25,-602.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-397.87C296.01,-395.17 218.12,-602.17 333.25,-604.87"/>
</g>
<!-- W2 -->
<g id="node8" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="539,-550.5 340,-550.5 340,-366.5 539,-366.5 539,-550.5"/>
<polygon fill="none" stroke="black" points="340.5,-527.5 340.5,-550.5 539.5,-550.5 539.5,-527.5 340.5,-527.5"/>
<text text-anchor="start" x="429.5" y="-535.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="340.5,-504.5 340.5,-527.5 363.5,-527.5 363.5,-504.5 340.5,-504.5"/>
<text text-anchor="start" x="344.5" y="-512.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="363.5,-504.5 363.5,-527.5 495.5,-527.5 495.5,-504.5 363.5,-504.5"/>
<text text-anchor="start" x="367.5" y="-512.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-504.5 495.5,-527.5 539.5,-527.5 539.5,-504.5 495.5,-504.5"/>
<text text-anchor="start" x="499.5" y="-512.3" font-family="arial" font-size="14.00">0.4 m</text>
<text text-anchor="start" x="373" y="-491.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="343" y="-472.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413.5" y="-472.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="473.5" y="-472.3" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-464.5 340.5,-466.5 539.5,-466.5 539.5,-464.5 340.5,-464.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-462.5 340.5,-464.5 539.5,-464.5 539.5,-462.5 340.5,-462.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-460.5 340.5,-462.5 539.5,-462.5 539.5,-460.5 340.5,-460.5"/>
<text text-anchor="start" x="346" y="-447.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="412.5" y="-447.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="476.5" y="-447.3" font-family="arial" font-size="14.00">X3:2:+5V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-439.5 340.5,-441.5 539.5,-441.5 539.5,-439.5 340.5,-439.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-437.5 340.5,-439.5 539.5,-439.5 539.5,-437.5 340.5,-437.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-435.5 340.5,-437.5 539.5,-437.5 539.5,-435.5 340.5,-435.5"/>
<text text-anchor="start" x="345" y="-422.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="413.5" y="-422.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="475.5" y="-422.3" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-414.5 340.5,-416.5 539.5,-416.5 539.5,-414.5 340.5,-414.5"/>
<polygon fill="#ffff00" stroke="transparent" points="340.5,-412.5 340.5,-414.5 539.5,-414.5 539.5,-412.5 340.5,-412.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-410.5 340.5,-412.5 539.5,-412.5 539.5,-410.5 340.5,-410.5"/>
<text text-anchor="start" x="344" y="-397.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="412" y="-397.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="474.5" y="-397.3" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-389.5 340.5,-391.5 539.5,-391.5 539.5,-389.5 340.5,-389.5"/>
<polygon fill="#00ff00" stroke="transparent" points="340.5,-387.5 340.5,-389.5 539.5,-389.5 539.5,-387.5 340.5,-387.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-385.5 340.5,-387.5 539.5,-387.5 539.5,-385.5 340.5,-385.5"/>
<text text-anchor="start" x="373" y="-372.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="530.12,-556.62 334.38,-556.62 334.38,-371.12 530.12,-371.12 530.12,-556.62"/>
<polygon fill="none" stroke="black" points="334.38,-532.88 334.38,-556.62 530.12,-556.62 530.12,-532.88 334.38,-532.88"/>
<text text-anchor="start" x="421.75" y="-539.33" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="334.38,-509.12 334.38,-532.88 356.62,-532.88 356.62,-509.12 334.38,-509.12"/>
<text text-anchor="start" x="338.38" y="-515.58" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="356.62,-509.12 356.62,-532.88 487.62,-532.88 487.62,-509.12 356.62,-509.12"/>
<text text-anchor="start" x="360.62" y="-515.58" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="487.62,-509.12 487.62,-532.88 530.12,-532.88 530.12,-509.12 487.62,-509.12"/>
<text text-anchor="start" x="491.62" y="-515.58" font-family="arial" font-size="14.00">0.4 m</text>
<text text-anchor="start" x="366.46" y="-493.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="337.21" y="-474.82" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="406.38" y="-474.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="465.04" y="-474.82" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="334.38,-469.12 334.38,-471.12 530.12,-471.12 530.12,-469.12 334.38,-469.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-467.12 334.38,-469.12 530.12,-469.12 530.12,-467.12 334.38,-467.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-465.12 334.38,-467.12 530.12,-467.12 530.12,-465.12 334.38,-465.12"/>
<text text-anchor="start" x="340.21" y="-449.82" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="405.62" y="-449.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.04" y="-449.82" font-family="arial" font-size="14.00">X3:2:+5V</text>
<polygon fill="#000000" stroke="none" points="334.38,-444.12 334.38,-446.12 530.12,-446.12 530.12,-444.12 334.38,-444.12"/>
<polygon fill="#ff0000" stroke="none" points="334.38,-442.12 334.38,-444.12 530.12,-444.12 530.12,-442.12 334.38,-442.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-440.12 334.38,-442.12 530.12,-442.12 530.12,-440.12 334.38,-440.12"/>
<text text-anchor="start" x="339.46" y="-424.82" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="406.38" y="-424.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="467.29" y="-424.82" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="334.38,-419.12 334.38,-421.12 530.12,-421.12 530.12,-419.12 334.38,-419.12"/>
<polygon fill="#ffff00" stroke="none" points="334.38,-417.12 334.38,-419.12 530.12,-419.12 530.12,-417.12 334.38,-417.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-415.12 334.38,-417.12 530.12,-417.12 530.12,-415.12 334.38,-415.12"/>
<text text-anchor="start" x="338.71" y="-399.82" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="404.88" y="-399.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="466.54" y="-399.82" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="334.38,-394.12 334.38,-396.12 530.12,-396.12 530.12,-394.12 334.38,-394.12"/>
<polygon fill="#00ff00" stroke="none" points="334.38,-392.12 334.38,-394.12 530.12,-394.12 530.12,-392.12 334.38,-392.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-390.12 334.38,-392.12 530.12,-392.12 530.12,-390.12 334.38,-390.12"/>
<text text-anchor="start" x="366.46" y="-374.82" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C257.37,-458.53 273.84,-461.53 339.5,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C257.01,-460.5 273.49,-463.5 339.5,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C256.66,-462.47 273.13,-465.47 339.5,-465.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-462.88C251.05,-462.91 267.54,-465.91 333.25,-465.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-464.88C250.69,-464.88 267.18,-467.88 333.25,-467.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-466.87C250.34,-466.84 266.82,-469.84 333.25,-469.87"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-435.5C257.12,-435.5 273.62,-436.5 339.5,-436.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M191,-437.5C257,-437.5 273.5,-438.5 339.5,-438.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-439.5C256.88,-439.5 273.38,-440.5 339.5,-440.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-439.88C250.8,-439.88 267.31,-440.88 333.25,-440.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M184.62,-441.87C250.68,-441.88 267.19,-442.88 333.25,-442.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-443.87C250.56,-443.87 267.07,-444.87 333.25,-444.87"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-412.5C256.88,-412.5 273.38,-411.5 339.5,-411.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M191,-414.5C257,-414.5 273.5,-413.5 339.5,-413.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-416.5C257.12,-416.5 273.62,-415.5 339.5,-415.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-416.88C250.56,-416.88 267.07,-415.88 333.25,-415.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M184.62,-418.87C250.68,-418.88 267.19,-417.88 333.25,-417.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-420.87C250.8,-420.87 267.31,-419.87 333.25,-419.87"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-388.5C256.77,-388.51 273.25,-386.51 339.5,-386.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M191,-390.5C257.01,-390.5 273.49,-388.5 339.5,-388.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-392.5C257.25,-392.49 273.73,-390.49 339.5,-390.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-393.88C250.34,-393.91 266.82,-390.91 333.25,-390.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M184.62,-395.88C250.69,-395.88 267.18,-392.88 333.25,-392.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-397.87C251.05,-397.84 267.54,-394.84 333.25,-394.87"/>
</g>
<!-- W3 -->
<g id="node9" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="543,-342.5 336,-342.5 336,-158.5 543,-158.5 543,-342.5"/>
<polygon fill="none" stroke="black" points="336.5,-319.5 336.5,-342.5 543.5,-342.5 543.5,-319.5 336.5,-319.5"/>
<text text-anchor="start" x="429.5" y="-327.3" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="336.5,-296.5 336.5,-319.5 362.5,-319.5 362.5,-296.5 336.5,-296.5"/>
<text text-anchor="start" x="342" y="-304.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="362.5,-296.5 362.5,-319.5 497.5,-319.5 497.5,-296.5 362.5,-296.5"/>
<text text-anchor="start" x="368" y="-304.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="497.5,-296.5 497.5,-319.5 543.5,-319.5 543.5,-296.5 497.5,-296.5"/>
<text text-anchor="start" x="502.5" y="-304.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="371" y="-283.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="341" y="-264.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413" y="-264.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="475" y="-264.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-256.5 336.5,-258.5 543.5,-258.5 543.5,-256.5 336.5,-256.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-254.5 336.5,-256.5 543.5,-256.5 543.5,-254.5 336.5,-254.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-252.5 336.5,-254.5 543.5,-254.5 543.5,-252.5 336.5,-252.5"/>
<text text-anchor="start" x="338.5" y="-239.3" font-family="arial" font-size="14.00">X1:5:MISO</text>
<text text-anchor="start" x="412.5" y="-239.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-239.3" font-family="arial" font-size="14.00">X4:3:MISO</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-231.5 336.5,-233.5 543.5,-233.5 543.5,-231.5 336.5,-231.5"/>
<polygon fill="#0066ff" stroke="transparent" points="336.5,-229.5 336.5,-231.5 543.5,-231.5 543.5,-229.5 336.5,-229.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-227.5 336.5,-229.5 543.5,-229.5 543.5,-227.5 336.5,-227.5"/>
<text text-anchor="start" x="338.5" y="-214.3" font-family="arial" font-size="14.00">X1:6:MOSI</text>
<text text-anchor="start" x="411.5" y="-214.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-214.3" font-family="arial" font-size="14.00">X4:4:MOSI</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-206.5 336.5,-208.5 543.5,-208.5 543.5,-206.5 336.5,-206.5"/>
<polygon fill="#ff8000" stroke="transparent" points="336.5,-204.5 336.5,-206.5 543.5,-206.5 543.5,-204.5 336.5,-204.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-202.5 336.5,-204.5 543.5,-204.5 543.5,-202.5 336.5,-202.5"/>
<text text-anchor="start" x="342" y="-189.3" font-family="arial" font-size="14.00">X1:7:SCK</text>
<text text-anchor="start" x="413.5" y="-189.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="476" y="-189.3" font-family="arial" font-size="14.00">X4:5:SCK</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-181.5 336.5,-183.5 543.5,-183.5 543.5,-181.5 336.5,-181.5"/>
<polygon fill="#8000ff" stroke="transparent" points="336.5,-179.5 336.5,-181.5 543.5,-181.5 543.5,-179.5 336.5,-179.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-177.5 336.5,-179.5 543.5,-179.5 543.5,-177.5 336.5,-177.5"/>
<text text-anchor="start" x="371" y="-164.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="533.25,-346.62 331.25,-346.62 331.25,-161.12 533.25,-161.12 533.25,-346.62"/>
<polygon fill="none" stroke="black" points="331.25,-322.88 331.25,-346.62 533.25,-346.62 533.25,-322.88 331.25,-322.88"/>
<text text-anchor="start" x="421.75" y="-329.32" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="331.25,-299.12 331.25,-322.88 355.58,-322.88 355.58,-299.12 331.25,-299.12"/>
<text text-anchor="start" x="336.29" y="-305.57" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="355.58,-299.12 355.58,-322.88 488.67,-322.88 488.67,-299.12 355.58,-299.12"/>
<text text-anchor="start" x="360.62" y="-305.57" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="488.67,-299.12 488.67,-322.88 533.25,-322.88 533.25,-299.12 488.67,-299.12"/>
<text text-anchor="start" x="493.71" y="-305.57" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="364.88" y="-283.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="335.62" y="-264.82" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="406.38" y="-264.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="466.62" y="-264.82" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="331.25,-259.12 331.25,-261.12 533.25,-261.12 533.25,-259.12 331.25,-259.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-257.12 331.25,-259.12 533.25,-259.12 533.25,-257.12 331.25,-257.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-255.12 331.25,-257.12 533.25,-257.12 533.25,-255.12 331.25,-255.12"/>
<text text-anchor="start" x="333" y="-239.82" font-family="arial" font-size="14.00">X1:5:MISO</text>
<text text-anchor="start" x="406" y="-239.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="464" y="-239.82" font-family="arial" font-size="14.00">X4:3:MISO</text>
<polygon fill="#000000" stroke="none" points="331.25,-234.12 331.25,-236.12 533.25,-236.12 533.25,-234.12 331.25,-234.12"/>
<polygon fill="#0066ff" stroke="none" points="331.25,-232.12 331.25,-234.12 533.25,-234.12 533.25,-232.12 331.25,-232.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-230.12 331.25,-232.12 533.25,-232.12 533.25,-230.12 331.25,-230.12"/>
<text text-anchor="start" x="333" y="-214.82" font-family="arial" font-size="14.00">X1:6:MOSI</text>
<text text-anchor="start" x="404.12" y="-214.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="464" y="-214.82" font-family="arial" font-size="14.00">X4:4:MOSI</text>
<polygon fill="#000000" stroke="none" points="331.25,-209.12 331.25,-211.12 533.25,-211.12 533.25,-209.12 331.25,-209.12"/>
<polygon fill="#ff8000" stroke="none" points="331.25,-207.12 331.25,-209.12 533.25,-209.12 533.25,-207.12 331.25,-207.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-205.12 331.25,-207.12 533.25,-207.12 533.25,-205.12 331.25,-205.12"/>
<text text-anchor="start" x="337.12" y="-189.82" font-family="arial" font-size="14.00">X1:7:SCK</text>
<text text-anchor="start" x="406.75" y="-189.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.12" y="-189.82" font-family="arial" font-size="14.00">X4:5:SCK</text>
<polygon fill="#000000" stroke="none" points="331.25,-184.12 331.25,-186.12 533.25,-186.12 533.25,-184.12 331.25,-184.12"/>
<polygon fill="#8000ff" stroke="none" points="331.25,-182.12 331.25,-184.12 533.25,-184.12 533.25,-182.12 331.25,-182.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-180.12 331.25,-182.12 533.25,-182.12 533.25,-180.12 331.25,-180.12"/>
<text text-anchor="start" x="364.88" y="-164.82" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge17" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C300.73,-461.21 222.53,-256.21 336,-253.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C302.6,-460.5 224.4,-255.5 336,-255.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C304.47,-459.79 226.27,-254.79 336,-257.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-462.88C295.5,-465.59 216.64,-258.59 331.25,-255.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-464.87C297.37,-464.88 218.51,-257.88 331.25,-257.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-466.87C299.24,-464.16 220.38,-257.16 331.25,-259.87"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge19" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-365.5C277.71,-367.96 245.39,-230.96 336,-228.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M191,-367.5C279.66,-367.5 247.34,-230.5 336,-230.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-369.5C281.61,-367.04 249.29,-230.04 336,-232.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-370.88C272.78,-373.34 239.2,-233.34 331.25,-230.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M184.62,-372.88C274.73,-372.87 241.15,-232.88 331.25,-232.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-374.87C276.67,-372.41 243.09,-232.41 331.25,-234.87"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge21" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-342.5C278.33,-344.97 244.78,-205.97 336,-203.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M191,-344.5C280.27,-344.5 246.73,-205.5 336,-205.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-346.5C282.22,-344.03 248.67,-205.03 336,-207.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-347.88C273.4,-350.35 238.59,-208.35 331.25,-205.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M184.62,-349.88C275.34,-349.87 240.53,-207.88 331.25,-207.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-351.87C277.29,-349.4 242.47,-207.4 331.25,-209.87"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge23" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-319.5C278.95,-321.98 244.17,-180.98 336,-178.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M191,-321.5C280.89,-321.5 246.11,-180.5 336,-180.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-323.5C282.83,-321.02 248.05,-180.02 336,-182.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-324.88C274.02,-327.36 237.97,-183.36 331.25,-180.88"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M184.62,-326.88C275.96,-326.87 239.91,-182.88 331.25,-182.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-328.87C277.9,-326.39 241.85,-182.39 331.25,-184.87"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="874,-726.5 687,-726.5 687,-588.5 874,-588.5 874,-726.5"/>
<polygon fill="#ffffff" stroke="transparent" points="687,-588.5 687,-726.5 874,-726.5 874,-588.5 687,-588.5"/>
<polygon fill="none" stroke="black" points="687.5,-703.5 687.5,-726.5 874.5,-726.5 874.5,-703.5 687.5,-703.5"/>
<text text-anchor="start" x="772" y="-711.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="687.5,-680.5 687.5,-703.5 783.5,-703.5 783.5,-680.5 687.5,-680.5"/>
<text text-anchor="start" x="691.5" y="-688.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-680.5 783.5,-703.5 834.5,-703.5 834.5,-680.5 783.5,-680.5"/>
<text text-anchor="start" x="787.5" y="-688.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-680.5 834.5,-703.5 874.5,-703.5 874.5,-680.5 834.5,-680.5"/>
<text text-anchor="start" x="838.5" y="-688.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-657.5 687.5,-680.5 769.5,-680.5 769.5,-657.5 687.5,-657.5"/>
<text text-anchor="start" x="724.5" y="-665.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="769.5,-657.5 769.5,-680.5 874.5,-680.5 874.5,-657.5 769.5,-657.5"/>
<text text-anchor="start" x="806" y="-665.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-634.5 687.5,-657.5 769.5,-657.5 769.5,-634.5 687.5,-634.5"/>
<text text-anchor="start" x="724.5" y="-642.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="769.5,-634.5 769.5,-657.5 874.5,-657.5 874.5,-634.5 769.5,-634.5"/>
<text text-anchor="start" x="809" y="-642.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="687.5,-611.5 687.5,-634.5 769.5,-634.5 769.5,-611.5 687.5,-611.5"/>
<text text-anchor="start" x="724.5" y="-619.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="769.5,-611.5 769.5,-634.5 874.5,-634.5 874.5,-611.5 769.5,-611.5"/>
<text text-anchor="start" x="808" y="-619.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="687.5,-588.5 687.5,-611.5 769.5,-611.5 769.5,-588.5 687.5,-588.5"/>
<text text-anchor="start" x="724.5" y="-596.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="769.5,-588.5 769.5,-611.5 874.5,-611.5 874.5,-588.5 769.5,-588.5"/>
<text text-anchor="start" x="807.5" y="-596.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="857.25,-733.62 677.25,-733.62 677.25,-594.12 857.25,-594.12 857.25,-733.62"/>
<polygon fill="none" stroke="black" points="677.25,-709.88 677.25,-733.62 857.25,-733.62 857.25,-709.88 677.25,-709.88"/>
<text text-anchor="start" x="759" y="-716.33" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="677.25,-686.12 677.25,-709.88 770,-709.88 770,-686.12 677.25,-686.12"/>
<text text-anchor="start" x="681.25" y="-692.58" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="770,-686.12 770,-709.88 819.25,-709.88 819.25,-686.12 770,-686.12"/>
<text text-anchor="start" x="774" y="-692.58" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="819.25,-686.12 819.25,-709.88 857.25,-709.88 857.25,-686.12 819.25,-686.12"/>
<text text-anchor="start" x="823.25" y="-692.58" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="677.25,-663.12 677.25,-686.12 755.75,-686.12 755.75,-663.12 677.25,-663.12"/>
<text text-anchor="start" x="712.75" y="-668.83" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.75,-663.12 755.75,-686.12 857.25,-686.12 857.25,-663.12 755.75,-663.12"/>
<text text-anchor="start" x="791.12" y="-668.83" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="677.25,-640.12 677.25,-663.12 755.75,-663.12 755.75,-640.12 677.25,-640.12"/>
<text text-anchor="start" x="712.75" y="-645.83" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.75,-640.12 755.75,-663.12 857.25,-663.12 857.25,-640.12 755.75,-640.12"/>
<text text-anchor="start" x="794.12" y="-645.83" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="677.25,-617.12 677.25,-640.12 755.75,-640.12 755.75,-617.12 677.25,-617.12"/>
<text text-anchor="start" x="712.75" y="-622.83" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="755.75,-617.12 755.75,-640.12 857.25,-640.12 857.25,-617.12 755.75,-617.12"/>
<text text-anchor="start" x="793.38" y="-622.83" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="677.25,-594.12 677.25,-617.12 755.75,-617.12 755.75,-594.12 677.25,-594.12"/>
<text text-anchor="start" x="712.75" y="-599.83" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="755.75,-594.12 755.75,-617.12 857.25,-617.12 857.25,-594.12 755.75,-594.12"/>
<text text-anchor="start" x="792.62" y="-599.83" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="874,-518.5 687,-518.5 687,-380.5 874,-380.5 874,-518.5"/>
<polygon fill="#ffffff" stroke="transparent" points="687,-380.5 687,-518.5 874,-518.5 874,-380.5 687,-380.5"/>
<polygon fill="none" stroke="black" points="687.5,-495.5 687.5,-518.5 874.5,-518.5 874.5,-495.5 687.5,-495.5"/>
<text text-anchor="start" x="772" y="-503.3" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="687.5,-472.5 687.5,-495.5 783.5,-495.5 783.5,-472.5 687.5,-472.5"/>
<text text-anchor="start" x="691.5" y="-480.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-472.5 783.5,-495.5 834.5,-495.5 834.5,-472.5 783.5,-472.5"/>
<text text-anchor="start" x="787.5" y="-480.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-472.5 834.5,-495.5 874.5,-495.5 874.5,-472.5 834.5,-472.5"/>
<text text-anchor="start" x="838.5" y="-480.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-449.5 687.5,-472.5 769.5,-472.5 769.5,-449.5 687.5,-449.5"/>
<text text-anchor="start" x="724.5" y="-457.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="769.5,-449.5 769.5,-472.5 874.5,-472.5 874.5,-449.5 769.5,-449.5"/>
<text text-anchor="start" x="806" y="-457.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-426.5 687.5,-449.5 769.5,-449.5 769.5,-426.5 687.5,-426.5"/>
<text text-anchor="start" x="724.5" y="-434.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="769.5,-426.5 769.5,-449.5 874.5,-449.5 874.5,-426.5 769.5,-426.5"/>
<text text-anchor="start" x="809" y="-434.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="687.5,-403.5 687.5,-426.5 769.5,-426.5 769.5,-403.5 687.5,-403.5"/>
<text text-anchor="start" x="724.5" y="-411.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="769.5,-403.5 769.5,-426.5 874.5,-426.5 874.5,-403.5 769.5,-403.5"/>
<text text-anchor="start" x="808" y="-411.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="687.5,-380.5 687.5,-403.5 769.5,-403.5 769.5,-380.5 687.5,-380.5"/>
<text text-anchor="start" x="724.5" y="-388.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="769.5,-380.5 769.5,-403.5 874.5,-403.5 874.5,-380.5 769.5,-380.5"/>
<text text-anchor="start" x="807.5" y="-388.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="857.25,-523.62 677.25,-523.62 677.25,-384.12 857.25,-384.12 857.25,-523.62"/>
<polygon fill="none" stroke="black" points="677.25,-499.88 677.25,-523.62 857.25,-523.62 857.25,-499.88 677.25,-499.88"/>
<text text-anchor="start" x="759" y="-506.32" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="677.25,-476.12 677.25,-499.88 770,-499.88 770,-476.12 677.25,-476.12"/>
<text text-anchor="start" x="681.25" y="-482.57" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="770,-476.12 770,-499.88 819.25,-499.88 819.25,-476.12 770,-476.12"/>
<text text-anchor="start" x="774" y="-482.57" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="819.25,-476.12 819.25,-499.88 857.25,-499.88 857.25,-476.12 819.25,-476.12"/>
<text text-anchor="start" x="823.25" y="-482.57" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="677.25,-453.12 677.25,-476.12 755.75,-476.12 755.75,-453.12 677.25,-453.12"/>
<text text-anchor="start" x="712.75" y="-458.82" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.75,-453.12 755.75,-476.12 857.25,-476.12 857.25,-453.12 755.75,-453.12"/>
<text text-anchor="start" x="791.12" y="-458.82" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="677.25,-430.12 677.25,-453.12 755.75,-453.12 755.75,-430.12 677.25,-430.12"/>
<text text-anchor="start" x="712.75" y="-435.82" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.75,-430.12 755.75,-453.12 857.25,-453.12 857.25,-430.12 755.75,-430.12"/>
<text text-anchor="start" x="794.12" y="-435.82" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="677.25,-407.12 677.25,-430.12 755.75,-430.12 755.75,-407.12 677.25,-407.12"/>
<text text-anchor="start" x="712.75" y="-412.82" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="755.75,-407.12 755.75,-430.12 857.25,-430.12 857.25,-407.12 755.75,-407.12"/>
<text text-anchor="start" x="793.38" y="-412.82" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="677.25,-384.12 677.25,-407.12 755.75,-407.12 755.75,-384.12 677.25,-384.12"/>
<text text-anchor="start" x="712.75" y="-389.82" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="755.75,-384.12 755.75,-407.12 857.25,-407.12 857.25,-384.12 755.75,-384.12"/>
<text text-anchor="start" x="792.62" y="-389.82" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="874,-322 687,-322 687,-161 874,-161 874,-322"/>
<polygon fill="#ffffff" stroke="transparent" points="687,-161 687,-322 874,-322 874,-161 687,-161"/>
<polygon fill="none" stroke="black" points="687.5,-298.5 687.5,-321.5 874.5,-321.5 874.5,-298.5 687.5,-298.5"/>
<text text-anchor="start" x="772" y="-306.3" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="687.5,-275.5 687.5,-298.5 783.5,-298.5 783.5,-275.5 687.5,-275.5"/>
<text text-anchor="start" x="691.5" y="-283.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-275.5 783.5,-298.5 834.5,-298.5 834.5,-275.5 783.5,-275.5"/>
<text text-anchor="start" x="787.5" y="-283.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-275.5 834.5,-298.5 874.5,-298.5 874.5,-275.5 834.5,-275.5"/>
<text text-anchor="start" x="838.5" y="-283.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-252.5 687.5,-275.5 767.5,-275.5 767.5,-252.5 687.5,-252.5"/>
<text text-anchor="start" x="723.5" y="-260.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="767.5,-252.5 767.5,-275.5 874.5,-275.5 874.5,-252.5 767.5,-252.5"/>
<text text-anchor="start" x="805" y="-260.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-229.5 687.5,-252.5 767.5,-252.5 767.5,-229.5 687.5,-229.5"/>
<text text-anchor="start" x="723.5" y="-237.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="767.5,-229.5 767.5,-252.5 874.5,-252.5 874.5,-229.5 767.5,-229.5"/>
<text text-anchor="start" x="804" y="-237.3" font-family="arial" font-size="14.00">+12V</text>
<polygon fill="none" stroke="black" points="687.5,-206.5 687.5,-229.5 767.5,-229.5 767.5,-206.5 687.5,-206.5"/>
<text text-anchor="start" x="723.5" y="-214.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="767.5,-206.5 767.5,-229.5 874.5,-229.5 874.5,-206.5 767.5,-206.5"/>
<text text-anchor="start" x="803" y="-214.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="687.5,-183.5 687.5,-206.5 767.5,-206.5 767.5,-183.5 687.5,-183.5"/>
<text text-anchor="start" x="723.5" y="-191.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="767.5,-183.5 767.5,-206.5 874.5,-206.5 874.5,-183.5 767.5,-183.5"/>
<text text-anchor="start" x="803" y="-191.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="687.5,-160.5 687.5,-183.5 767.5,-183.5 767.5,-160.5 687.5,-160.5"/>
<text text-anchor="start" x="723.5" y="-168.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="767.5,-160.5 767.5,-183.5 874.5,-183.5 874.5,-160.5 767.5,-160.5"/>
<text text-anchor="start" x="806.5" y="-168.3" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="#ffffff" stroke="black" points="857.25,-325.12 677.25,-325.12 677.25,-162.62 857.25,-162.62 857.25,-325.12"/>
<polygon fill="none" stroke="black" points="677.25,-301.38 677.25,-325.12 857.25,-325.12 857.25,-301.38 677.25,-301.38"/>
<text text-anchor="start" x="759" y="-307.82" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="677.25,-277.62 677.25,-301.38 770,-301.38 770,-277.62 677.25,-277.62"/>
<text text-anchor="start" x="681.25" y="-284.07" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="770,-277.62 770,-301.38 819.25,-301.38 819.25,-277.62 770,-277.62"/>
<text text-anchor="start" x="774" y="-284.07" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="819.25,-277.62 819.25,-301.38 857.25,-301.38 857.25,-277.62 819.25,-277.62"/>
<text text-anchor="start" x="823.25" y="-284.07" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="677.25,-254.62 677.25,-277.62 752.75,-277.62 752.75,-254.62 677.25,-254.62"/>
<text text-anchor="start" x="711.25" y="-260.32" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="752.75,-254.62 752.75,-277.62 857.25,-277.62 857.25,-254.62 752.75,-254.62"/>
<text text-anchor="start" x="789.62" y="-260.32" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="677.25,-231.62 677.25,-254.62 752.75,-254.62 752.75,-231.62 677.25,-231.62"/>
<text text-anchor="start" x="711.25" y="-237.32" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="752.75,-231.62 752.75,-254.62 857.25,-254.62 857.25,-231.62 752.75,-231.62"/>
<text text-anchor="start" x="788.88" y="-237.32" font-family="arial" font-size="14.00">+12V</text>
<polygon fill="none" stroke="black" points="677.25,-208.62 677.25,-231.62 752.75,-231.62 752.75,-208.62 677.25,-208.62"/>
<text text-anchor="start" x="711.25" y="-214.32" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="752.75,-208.62 752.75,-231.62 857.25,-231.62 857.25,-208.62 752.75,-208.62"/>
<text text-anchor="start" x="787" y="-214.32" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="677.25,-185.62 677.25,-208.62 752.75,-208.62 752.75,-185.62 677.25,-185.62"/>
<text text-anchor="start" x="711.25" y="-191.32" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="752.75,-185.62 752.75,-208.62 857.25,-208.62 857.25,-185.62 752.75,-185.62"/>
<text text-anchor="start" x="787" y="-191.32" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="677.25,-162.62 677.25,-185.62 752.75,-185.62 752.75,-162.62 677.25,-162.62"/>
<text text-anchor="start" x="711.25" y="-168.32" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="752.75,-162.62 752.75,-185.62 857.25,-185.62 857.25,-162.62 752.75,-162.62"/>
<text text-anchor="start" x="791.12" y="-168.32" font-family="arial" font-size="14.00">SCK</text>
</g>
<!-- AUTOGENERATED_F_1 -->
<!-- __F_1 -->
<g id="node5" class="node">
<title>AUTOGENERATED_F_1</title>
<polygon fill="#ffffff" stroke="black" points="192,-70 0,-70 0,-47 192,-47 192,-70"/>
<polygon fill="#ffffff" stroke="transparent" points="0,-47 0,-70 192,-70 192,-47 0,-47"/>
<polygon fill="none" stroke="black" points="0,-46.5 0,-69.5 89,-69.5 89,-46.5 0,-46.5"/>
<text text-anchor="start" x="4" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="89,-46.5 89,-69.5 157,-69.5 157,-46.5 89,-46.5"/>
<text text-anchor="start" x="93" y="-54.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="157,-46.5 157,-69.5 184,-69.5 184,-46.5 157,-46.5"/>
<text text-anchor="start" x="161" y="-54.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="transparent" points="184,-46.5 184,-69.5 192,-69.5 192,-46.5 184,-46.5"/>
<polygon fill="none" stroke="black" points="184,-46.5 184,-69.5 192,-69.5 192,-46.5 184,-46.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="187.25,-71.75 0,-71.75 0,-48 187.25,-48 187.25,-71.75"/>
<polygon fill="none" stroke="black" points="0,-48 0,-71.75 86.75,-71.75 86.75,-48 0,-48"/>
<text text-anchor="start" x="4" y="-54.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="86.75,-48 86.75,-71.75 153.25,-71.75 153.25,-48 86.75,-48"/>
<text text-anchor="start" x="90.75" y="-54.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="153.25,-48 153.25,-71.75 179.25,-71.75 179.25,-48 153.25,-48"/>
<text text-anchor="start" x="157.25" y="-54.45" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="none" points="179.25,-48 179.25,-71.75 187.25,-71.75 187.25,-48 179.25,-48"/>
<polygon fill="none" stroke="black" points="179.25,-48 179.25,-71.75 187.25,-71.75 187.25,-48 179.25,-48"/>
</g>
<!-- W4 -->
<g id="node10" class="node">
<title>W4</title>
<polygon fill="#ffffff" stroke="black" points="539,-134.5 340,-134.5 340,-0.5 539,-0.5 539,-134.5"/>
<polygon fill="none" stroke="black" points="340.5,-111.5 340.5,-134.5 539.5,-134.5 539.5,-111.5 340.5,-111.5"/>
<text text-anchor="start" x="429.5" y="-119.3" font-family="arial" font-size="14.00">W4</text>
<polygon fill="none" stroke="black" points="340.5,-88.5 340.5,-111.5 363.5,-111.5 363.5,-88.5 340.5,-88.5"/>
<text text-anchor="start" x="344.5" y="-96.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="363.5,-88.5 363.5,-111.5 495.5,-111.5 495.5,-88.5 363.5,-88.5"/>
<text text-anchor="start" x="367.5" y="-96.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-88.5 495.5,-111.5 539.5,-111.5 539.5,-88.5 495.5,-88.5"/>
<text text-anchor="start" x="499.5" y="-96.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="351" y="-75.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="376.5" y="-56.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="464.5" y="-56.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-48.5 340.5,-50.5 539.5,-50.5 539.5,-48.5 340.5,-48.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-46.5 340.5,-48.5 539.5,-48.5 539.5,-46.5 340.5,-46.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-44.5 340.5,-46.5 539.5,-46.5 539.5,-44.5 340.5,-44.5"/>
<text text-anchor="start" x="376" y="-31.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-31.3" font-family="arial" font-size="14.00">X4:2:+12V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-23.5 340.5,-25.5 539.5,-25.5 539.5,-23.5 340.5,-23.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-21.5 340.5,-23.5 539.5,-23.5 539.5,-21.5 340.5,-21.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-19.5 340.5,-21.5 539.5,-21.5 539.5,-19.5 340.5,-19.5"/>
<text text-anchor="start" x="351" y="-6.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="530.12,-136.62 334.38,-136.62 334.38,-1.12 530.12,-1.12 530.12,-136.62"/>
<polygon fill="none" stroke="black" points="334.38,-112.88 334.38,-136.62 530.12,-136.62 530.12,-112.88 334.38,-112.88"/>
<text text-anchor="start" x="421.75" y="-119.33" font-family="arial" font-size="14.00">W4</text>
<polygon fill="none" stroke="black" points="334.38,-89.12 334.38,-112.88 356.62,-112.88 356.62,-89.12 334.38,-89.12"/>
<text text-anchor="start" x="338.38" y="-95.58" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="356.62,-89.12 356.62,-112.88 487.62,-112.88 487.62,-89.12 356.62,-89.12"/>
<text text-anchor="start" x="360.62" y="-95.58" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="487.62,-89.12 487.62,-112.88 530.12,-112.88 530.12,-89.12 487.62,-89.12"/>
<text text-anchor="start" x="491.62" y="-95.58" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="344.96" y="-73.83" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="370.75" y="-54.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456.54" y="-54.83" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="334.38,-49.12 334.38,-51.12 530.12,-51.12 530.12,-49.12 334.38,-49.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-47.12 334.38,-49.12 530.12,-49.12 530.12,-47.12 334.38,-47.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-45.12 334.38,-47.12 530.12,-47.12 530.12,-45.12 334.38,-45.12"/>
<text text-anchor="start" x="370" y="-29.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="455.79" y="-29.82" font-family="arial" font-size="14.00">X4:2:+12V</text>
<polygon fill="#000000" stroke="none" points="334.38,-24.12 334.38,-26.12 530.12,-26.12 530.12,-24.12 334.38,-24.12"/>
<polygon fill="#ff0000" stroke="none" points="334.38,-22.12 334.38,-24.12 530.12,-24.12 530.12,-22.12 334.38,-22.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-20.12 334.38,-22.12 530.12,-22.12 530.12,-20.12 334.38,-20.12"/>
<text text-anchor="start" x="344.96" y="-4.83" font-family="arial" font-size="14.00"> </text>
</g>
<!-- AUTOGENERATED_F_1&#45;&#45;W4 -->
<!-- __F_1&#45;&#45;W4 -->
<g id="edge25" class="edge">
<title>AUTOGENERATED_F_1:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-56.5C256.61,-56.85 272.63,-45.85 339.5,-45.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-58.5C257.74,-58.5 273.76,-47.5 339.5,-47.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-60.5C258.87,-60.15 274.89,-49.15 339.5,-49.5"/>
<title>__F_1:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-57.88C251.15,-58.28 266.93,-46.28 333.25,-45.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-59.87C252.36,-59.88 268.14,-47.88 333.25,-47.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-61.87C253.57,-61.47 269.35,-49.47 333.25,-49.87"/>
</g>
<!-- AUTOGENERATED_F_2 -->
<!-- __F_2 -->
<g id="node6" class="node">
<title>AUTOGENERATED_F_2</title>
<polygon fill="#ffffff" stroke="black" points="192,-23 0,-23 0,0 192,0 192,-23"/>
<polygon fill="#ffffff" stroke="transparent" points="0,0 0,-23 192,-23 192,0 0,0"/>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 89,-22.5 89,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="89,0.5 89,-22.5 157,-22.5 157,0.5 89,0.5"/>
<text text-anchor="start" x="93" y="-7.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="157,0.5 157,-22.5 184,-22.5 184,0.5 157,0.5"/>
<text text-anchor="start" x="161" y="-7.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="transparent" points="184,0.5 184,-22.5 192,-22.5 192,0.5 184,0.5"/>
<polygon fill="none" stroke="black" points="184,0.5 184,-22.5 192,-22.5 192,0.5 184,0.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="187.25,-23.75 0,-23.75 0,0 187.25,0 187.25,-23.75"/>
<polygon fill="none" stroke="black" points="0,0 0,-23.75 86.75,-23.75 86.75,0 0,0"/>
<text text-anchor="start" x="4" y="-6.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="86.75,0 86.75,-23.75 153.25,-23.75 153.25,0 86.75,0"/>
<text text-anchor="start" x="90.75" y="-6.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="153.25,0 153.25,-23.75 179.25,-23.75 179.25,0 153.25,0"/>
<text text-anchor="start" x="157.25" y="-6.45" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="none" points="179.25,0 179.25,-23.75 187.25,-23.75 187.25,0 179.25,0"/>
<polygon fill="none" stroke="black" points="179.25,0 179.25,-23.75 187.25,-23.75 187.25,0 179.25,0"/>
</g>
<!-- AUTOGENERATED_F_2&#45;&#45;W4 -->
<!-- __F_2&#45;&#45;W4 -->
<g id="edge27" class="edge">
<title>AUTOGENERATED_F_2:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-9.5C258.87,-9.85 274.89,-20.85 339.5,-20.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M192,-11.5C257.74,-11.5 273.76,-22.5 339.5,-22.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-13.5C256.61,-13.15 272.63,-24.15 339.5,-24.5"/>
<title>__F_2:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-9.88C253.46,-10.23 269.32,-21.23 333.25,-20.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M187.25,-11.88C252.32,-11.88 268.18,-22.88 333.25,-22.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-13.87C251.18,-13.52 267.04,-24.52 333.25,-24.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-669.5C605.37,-669.51 621.64,-667.51 687,-667.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-671.5C605.62,-671.5 621.88,-669.5 687,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-673.5C605.86,-673.49 622.13,-671.49 687,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-675.88C595.79,-675.91 611.98,-672.91 677.25,-672.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-677.88C596.15,-677.88 612.35,-674.88 677.25,-674.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-679.87C596.52,-679.84 612.71,-676.84 677.25,-676.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-644.5C605.49,-644.5 621.76,-643.5 687,-643.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-646.5C605.61,-646.5 621.89,-645.5 687,-645.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-648.5C605.74,-648.5 622.01,-647.5 687,-647.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-650.88C596.02,-650.88 612.24,-649.88 677.25,-649.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M531.25,-652.88C596.14,-652.88 612.36,-651.88 677.25,-651.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-654.87C596.26,-654.87 612.48,-653.87 677.25,-653.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-619.5C605.74,-619.5 622.01,-620.5 687,-620.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540.5,-621.5C605.61,-621.5 621.89,-622.5 687,-622.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-623.5C605.49,-623.5 621.76,-624.5 687,-624.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-625.88C596.26,-625.88 612.48,-626.88 677.25,-626.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M531.25,-627.88C596.14,-627.88 612.36,-628.88 677.25,-628.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-629.87C596.02,-629.87 612.24,-630.87 677.25,-630.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-594.5C605.99,-594.53 622.24,-597.53 687,-597.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540.5,-596.5C605.62,-596.5 621.88,-599.5 687,-599.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-598.5C605.26,-598.47 621.51,-601.47 687,-601.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-600.88C596.52,-600.91 612.71,-603.91 677.25,-603.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M531.25,-602.88C596.15,-602.88 612.35,-605.88 677.25,-605.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-604.87C595.79,-604.84 611.98,-607.84 677.25,-607.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-461.5C605.37,-461.51 621.64,-459.51 687,-459.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-463.5C605.62,-463.5 621.88,-461.5 687,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-465.5C605.86,-465.49 622.13,-463.49 687,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-465.88C595.79,-465.91 611.98,-462.91 677.25,-462.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-467.88C596.15,-467.88 612.35,-464.88 677.25,-464.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-469.87C596.52,-469.84 612.71,-466.84 677.25,-466.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-436.5C605.49,-436.5 621.76,-435.5 687,-435.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-438.5C605.61,-438.5 621.89,-437.5 687,-437.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-440.5C605.74,-440.5 622.01,-439.5 687,-439.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-440.88C596.02,-440.88 612.24,-439.88 677.25,-439.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M531.25,-442.87C596.14,-442.88 612.36,-441.88 677.25,-441.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-444.87C596.26,-444.87 612.48,-443.87 677.25,-443.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-411.5C605.74,-411.5 622.01,-412.5 687,-412.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540.5,-413.5C605.61,-413.5 621.89,-414.5 687,-414.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-415.5C605.49,-415.5 621.76,-416.5 687,-416.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-415.88C596.26,-415.88 612.48,-416.88 677.25,-416.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M531.25,-417.87C596.14,-417.88 612.36,-418.88 677.25,-418.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-419.87C596.02,-419.87 612.24,-420.87 677.25,-420.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-386.5C605.99,-386.53 622.24,-389.53 687,-389.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540.5,-388.5C605.62,-388.5 621.88,-391.5 687,-391.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-390.5C605.26,-390.47 621.51,-393.47 687,-393.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-390.88C596.52,-390.91 612.71,-393.91 677.25,-393.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M531.25,-392.88C596.15,-392.88 612.35,-395.88 677.25,-395.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-394.87C595.79,-394.84 611.98,-397.84 677.25,-397.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge18" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-253.5C608.12,-253.76 623.87,-262.76 687,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-255.5C607.12,-255.5 622.88,-264.5 687,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-257.5C606.13,-257.24 621.88,-266.24 687,-266.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-255.88C598.25,-256.09 614.05,-264.09 677.25,-263.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-257.88C597.35,-257.88 613.15,-265.88 677.25,-265.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-259.87C596.45,-259.66 612.25,-267.66 677.25,-267.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge20" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-228.5C605.97,-228.97 621.45,-215.97 687,-215.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M543,-230.5C607.26,-230.5 622.74,-217.5 687,-217.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-232.5C608.55,-232.03 624.03,-219.03 687,-219.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-230.88C596.22,-231.34 611.7,-218.34 677.25,-217.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M533.25,-232.88C597.51,-232.88 612.99,-219.88 677.25,-219.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-234.87C598.8,-234.41 614.28,-221.41 677.25,-221.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge22" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-203.5C606.04,-203.86 621.66,-192.86 687,-192.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M543,-205.5C607.19,-205.5 622.81,-194.5 687,-194.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-207.5C608.34,-207.14 623.96,-196.14 687,-196.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-205.88C596.29,-206.24 611.91,-195.24 677.25,-194.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M533.25,-207.88C597.44,-207.88 613.06,-196.88 677.25,-196.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-209.87C598.59,-209.51 614.21,-198.51 677.25,-198.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge24" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-178.5C606.13,-178.76 621.88,-169.76 687,-169.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M543,-180.5C607.12,-180.5 622.88,-171.5 687,-171.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-182.5C608.12,-182.24 623.87,-173.24 687,-173.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-180.88C596.38,-181.14 612.13,-172.14 677.25,-171.88"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M533.25,-182.88C597.37,-182.88 613.13,-173.88 677.25,-173.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-184.87C598.37,-184.61 614.12,-175.61 677.25,-175.87"/>
</g>
<!-- W4&#45;&#45;X4 -->
<g id="edge26" class="edge">
<title>W4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-45.5C658.72,-48.24 572.49,-265.24 687,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-47.5C656.87,-47.5 570.63,-264.5 687,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-49.5C655.01,-46.76 568.78,-263.76 687,-266.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-45.88C649.72,-48.62 562.5,-266.62 677.25,-263.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-47.88C647.86,-47.88 560.64,-265.88 677.25,-265.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-49.87C646,-47.13 558.78,-265.13 677.25,-267.87"/>
</g>
<!-- W4&#45;&#45;X4 -->
<g id="edge28" class="edge">
<title>W4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-20.5C659.09,-23.24 572.12,-241.24 687,-238.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-22.5C657.23,-22.5 570.27,-240.5 687,-240.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-24.5C655.38,-21.76 568.41,-239.76 687,-242.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-20.88C650.46,-23.62 561.75,-243.62 677.25,-240.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M531.25,-22.88C648.6,-22.88 559.9,-242.88 677.25,-242.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-24.87C646.75,-22.13 558.04,-242.13 677.25,-244.87"/>
</g>
</g>
</svg>

BIN
examples/demo02.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 206 KiB

728
examples/demo02.svg generated
View File

@ -1,518 +1,512 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="882pt" height="767pt"
viewBox="0.00 0.00 882.00 766.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 762.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-762.5 878,-762.5 878,4 -4,4"/>
<svg width="865pt" height="775pt"
viewBox="0.00 0.00 865.25 774.62" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 770.62)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-770.62 861.25,-770.62 861.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="189.5,-517.5 2.5,-517.5 2.5,-287.5 189.5,-287.5 189.5,-517.5"/>
<polygon fill="#ffffff" stroke="transparent" points="2.5,-287.5 2.5,-517.5 189.5,-517.5 189.5,-287.5 2.5,-287.5"/>
<polygon fill="none" stroke="black" points="3,-494.5 3,-517.5 190,-517.5 190,-494.5 3,-494.5"/>
<text text-anchor="start" x="87.5" y="-502.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="3,-471.5 3,-494.5 99,-494.5 99,-471.5 3,-471.5"/>
<text text-anchor="start" x="7" y="-479.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="99,-471.5 99,-494.5 150,-494.5 150,-471.5 99,-471.5"/>
<text text-anchor="start" x="103" y="-479.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="150,-471.5 150,-494.5 190,-494.5 190,-471.5 150,-471.5"/>
<text text-anchor="start" x="154" y="-479.3" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="3,-448.5 3,-471.5 111,-471.5 111,-448.5 3,-448.5"/>
<text text-anchor="start" x="41" y="-456.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="111,-448.5 111,-471.5 190,-471.5 190,-448.5 111,-448.5"/>
<text text-anchor="start" x="146.5" y="-456.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="3,-425.5 3,-448.5 111,-448.5 111,-425.5 3,-425.5"/>
<text text-anchor="start" x="44" y="-433.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="111,-425.5 111,-448.5 190,-448.5 190,-425.5 111,-425.5"/>
<text text-anchor="start" x="146.5" y="-433.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="3,-402.5 3,-425.5 111,-425.5 111,-402.5 3,-402.5"/>
<text text-anchor="start" x="43" y="-410.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="111,-402.5 111,-425.5 190,-425.5 190,-402.5 111,-402.5"/>
<text text-anchor="start" x="146.5" y="-410.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="3,-379.5 3,-402.5 111,-402.5 111,-379.5 3,-379.5"/>
<text text-anchor="start" x="42.5" y="-387.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="111,-379.5 111,-402.5 190,-402.5 190,-379.5 111,-379.5"/>
<text text-anchor="start" x="146.5" y="-387.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="3,-356.5 3,-379.5 111,-379.5 111,-356.5 3,-356.5"/>
<text text-anchor="start" x="39" y="-364.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="111,-356.5 111,-379.5 190,-379.5 190,-356.5 111,-356.5"/>
<text text-anchor="start" x="146.5" y="-364.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="3,-333.5 3,-356.5 111,-356.5 111,-333.5 3,-333.5"/>
<text text-anchor="start" x="39" y="-341.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="111,-333.5 111,-356.5 190,-356.5 190,-333.5 111,-333.5"/>
<text text-anchor="start" x="146.5" y="-341.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="3,-310.5 3,-333.5 111,-333.5 111,-310.5 3,-310.5"/>
<text text-anchor="start" x="42.5" y="-318.3" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="none" stroke="black" points="111,-310.5 111,-333.5 190,-333.5 190,-310.5 111,-310.5"/>
<text text-anchor="start" x="146.5" y="-318.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="3,-287.5 3,-310.5 111,-310.5 111,-287.5 3,-287.5"/>
<text text-anchor="start" x="44.5" y="-295.3" font-family="arial" font-size="14.00">N/C</text>
<polygon fill="none" stroke="black" points="111,-287.5 111,-310.5 190,-310.5 190,-287.5 111,-287.5"/>
<text text-anchor="start" x="146.5" y="-295.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="#ffffff" stroke="black" points="183.62,-523.62 3.62,-523.62 3.62,-292.12 183.62,-292.12 183.62,-523.62"/>
<polygon fill="none" stroke="black" points="3.62,-499.88 3.62,-523.62 183.62,-523.62 183.62,-499.88 3.62,-499.88"/>
<text text-anchor="start" x="85.38" y="-506.32" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="3.62,-476.12 3.62,-499.88 96.38,-499.88 96.38,-476.12 3.62,-476.12"/>
<text text-anchor="start" x="7.62" y="-482.57" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.38,-476.12 96.38,-499.88 145.62,-499.88 145.62,-476.12 96.38,-476.12"/>
<text text-anchor="start" x="100.38" y="-482.57" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="145.62,-476.12 145.62,-499.88 183.62,-499.88 183.62,-476.12 145.62,-476.12"/>
<text text-anchor="start" x="149.62" y="-482.57" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="3.62,-453.12 3.62,-476.12 108.12,-476.12 108.12,-453.12 3.62,-453.12"/>
<text text-anchor="start" x="40.5" y="-458.82" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="108.12,-453.12 108.12,-476.12 183.62,-476.12 183.62,-453.12 108.12,-453.12"/>
<text text-anchor="start" x="142.12" y="-458.82" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="3.62,-430.12 3.62,-453.12 108.12,-453.12 108.12,-430.12 3.62,-430.12"/>
<text text-anchor="start" x="43.5" y="-435.82" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="108.12,-430.12 108.12,-453.12 183.62,-453.12 183.62,-430.12 108.12,-430.12"/>
<text text-anchor="start" x="142.12" y="-435.82" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="3.62,-407.12 3.62,-430.12 108.12,-430.12 108.12,-407.12 3.62,-407.12"/>
<text text-anchor="start" x="42.75" y="-412.82" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="108.12,-407.12 108.12,-430.12 183.62,-430.12 183.62,-407.12 108.12,-407.12"/>
<text text-anchor="start" x="142.12" y="-412.82" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="3.62,-384.12 3.62,-407.12 108.12,-407.12 108.12,-384.12 3.62,-384.12"/>
<text text-anchor="start" x="42" y="-389.82" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="108.12,-384.12 108.12,-407.12 183.62,-407.12 183.62,-384.12 108.12,-384.12"/>
<text text-anchor="start" x="142.12" y="-389.82" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="3.62,-361.12 3.62,-384.12 108.12,-384.12 108.12,-361.12 3.62,-361.12"/>
<text text-anchor="start" x="37.88" y="-366.82" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="108.12,-361.12 108.12,-384.12 183.62,-384.12 183.62,-361.12 108.12,-361.12"/>
<text text-anchor="start" x="142.12" y="-366.82" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="3.62,-338.12 3.62,-361.12 108.12,-361.12 108.12,-338.12 3.62,-338.12"/>
<text text-anchor="start" x="37.88" y="-343.82" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="108.12,-338.12 108.12,-361.12 183.62,-361.12 183.62,-338.12 108.12,-338.12"/>
<text text-anchor="start" x="142.12" y="-343.82" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="3.62,-315.12 3.62,-338.12 108.12,-338.12 108.12,-315.12 3.62,-315.12"/>
<text text-anchor="start" x="42" y="-320.82" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="none" stroke="black" points="108.12,-315.12 108.12,-338.12 183.62,-338.12 183.62,-315.12 108.12,-315.12"/>
<text text-anchor="start" x="142.12" y="-320.82" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="3.62,-292.12 3.62,-315.12 108.12,-315.12 108.12,-292.12 3.62,-292.12"/>
<text text-anchor="start" x="44.25" y="-297.82" font-family="arial" font-size="14.00">N/C</text>
<polygon fill="none" stroke="black" points="108.12,-292.12 108.12,-315.12 183.62,-315.12 183.62,-292.12 108.12,-292.12"/>
<text text-anchor="start" x="142.12" y="-297.82" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node7" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="539,-758.5 340,-758.5 340,-574.5 539,-574.5 539,-758.5"/>
<polygon fill="none" stroke="black" points="340.5,-735.5 340.5,-758.5 539.5,-758.5 539.5,-735.5 340.5,-735.5"/>
<text text-anchor="start" x="429.5" y="-743.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="340.5,-712.5 340.5,-735.5 363.5,-735.5 363.5,-712.5 340.5,-712.5"/>
<text text-anchor="start" x="344.5" y="-720.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="363.5,-712.5 363.5,-735.5 495.5,-735.5 495.5,-712.5 363.5,-712.5"/>
<text text-anchor="start" x="367.5" y="-720.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-712.5 495.5,-735.5 539.5,-735.5 539.5,-712.5 495.5,-712.5"/>
<text text-anchor="start" x="499.5" y="-720.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="373" y="-699.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="343" y="-680.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413.5" y="-680.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="473.5" y="-680.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-672.5 340.5,-674.5 539.5,-674.5 539.5,-672.5 340.5,-672.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-670.5 340.5,-672.5 539.5,-672.5 539.5,-670.5 340.5,-670.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-668.5 340.5,-670.5 539.5,-670.5 539.5,-668.5 340.5,-668.5"/>
<text text-anchor="start" x="346" y="-655.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="412.5" y="-655.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="476.5" y="-655.3" font-family="arial" font-size="14.00">X2:2:+5V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-647.5 340.5,-649.5 539.5,-649.5 539.5,-647.5 340.5,-647.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-645.5 340.5,-647.5 539.5,-647.5 539.5,-645.5 340.5,-645.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-643.5 340.5,-645.5 539.5,-645.5 539.5,-643.5 340.5,-643.5"/>
<text text-anchor="start" x="345" y="-630.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="413.5" y="-630.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="475.5" y="-630.3" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-622.5 340.5,-624.5 539.5,-624.5 539.5,-622.5 340.5,-622.5"/>
<polygon fill="#ffff00" stroke="transparent" points="340.5,-620.5 340.5,-622.5 539.5,-622.5 539.5,-620.5 340.5,-620.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-618.5 340.5,-620.5 539.5,-620.5 539.5,-618.5 340.5,-618.5"/>
<text text-anchor="start" x="344" y="-605.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="412" y="-605.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="474.5" y="-605.3" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-597.5 340.5,-599.5 539.5,-599.5 539.5,-597.5 340.5,-597.5"/>
<polygon fill="#00ff00" stroke="transparent" points="340.5,-595.5 340.5,-597.5 539.5,-597.5 539.5,-595.5 340.5,-595.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-593.5 340.5,-595.5 539.5,-595.5 539.5,-593.5 340.5,-593.5"/>
<text text-anchor="start" x="373" y="-580.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="530.12,-766.62 334.38,-766.62 334.38,-581.12 530.12,-581.12 530.12,-766.62"/>
<polygon fill="none" stroke="black" points="334.38,-742.88 334.38,-766.62 530.12,-766.62 530.12,-742.88 334.38,-742.88"/>
<text text-anchor="start" x="421.75" y="-749.33" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="334.38,-719.12 334.38,-742.88 356.62,-742.88 356.62,-719.12 334.38,-719.12"/>
<text text-anchor="start" x="338.38" y="-725.58" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="356.62,-719.12 356.62,-742.88 487.62,-742.88 487.62,-719.12 356.62,-719.12"/>
<text text-anchor="start" x="360.62" y="-725.58" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="487.62,-719.12 487.62,-742.88 530.12,-742.88 530.12,-719.12 487.62,-719.12"/>
<text text-anchor="start" x="491.62" y="-725.58" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="366.46" y="-703.83" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="337.21" y="-684.83" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="406.38" y="-684.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="465.04" y="-684.83" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="334.38,-679.12 334.38,-681.12 530.12,-681.12 530.12,-679.12 334.38,-679.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-677.12 334.38,-679.12 530.12,-679.12 530.12,-677.12 334.38,-677.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-675.12 334.38,-677.12 530.12,-677.12 530.12,-675.12 334.38,-675.12"/>
<text text-anchor="start" x="340.21" y="-659.83" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="405.62" y="-659.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.04" y="-659.83" font-family="arial" font-size="14.00">X2:2:+5V</text>
<polygon fill="#000000" stroke="none" points="334.38,-654.12 334.38,-656.12 530.12,-656.12 530.12,-654.12 334.38,-654.12"/>
<polygon fill="#ff0000" stroke="none" points="334.38,-652.12 334.38,-654.12 530.12,-654.12 530.12,-652.12 334.38,-652.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-650.12 334.38,-652.12 530.12,-652.12 530.12,-650.12 334.38,-650.12"/>
<text text-anchor="start" x="339.46" y="-634.83" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="406.38" y="-634.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="467.29" y="-634.83" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="334.38,-629.12 334.38,-631.12 530.12,-631.12 530.12,-629.12 334.38,-629.12"/>
<polygon fill="#ffff00" stroke="none" points="334.38,-627.12 334.38,-629.12 530.12,-629.12 530.12,-627.12 334.38,-627.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-625.12 334.38,-627.12 530.12,-627.12 530.12,-625.12 334.38,-625.12"/>
<text text-anchor="start" x="338.71" y="-609.83" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="404.88" y="-609.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="466.54" y="-609.83" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="334.38,-604.12 334.38,-606.12 530.12,-606.12 530.12,-604.12 334.38,-604.12"/>
<polygon fill="#00ff00" stroke="none" points="334.38,-602.12 334.38,-604.12 530.12,-604.12 530.12,-602.12 334.38,-602.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-600.12 334.38,-602.12 530.12,-602.12 530.12,-600.12 334.38,-600.12"/>
<text text-anchor="start" x="366.46" y="-584.83" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C307.54,-461.22 226.69,-672.22 339.5,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C305.67,-460.5 224.83,-671.5 339.5,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C303.81,-459.78 222.96,-670.78 339.5,-673.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-462.88C301.93,-465.6 219.68,-678.6 333.25,-675.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-464.88C300.06,-464.88 217.82,-677.88 333.25,-677.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-466.87C298.19,-464.15 215.95,-677.15 333.25,-679.87"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-435.5C306.82,-438.21 227.42,-647.21 339.5,-644.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M191,-437.5C304.95,-437.5 225.55,-646.5 339.5,-646.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-439.5C303.08,-436.79 223.68,-645.79 339.5,-648.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-439.88C301.2,-442.59 220.41,-653.59 333.25,-650.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M184.62,-441.87C299.33,-441.87 218.54,-652.88 333.25,-652.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-443.87C297.46,-441.16 216.68,-652.16 333.25,-654.87"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-412.5C306.1,-415.2 228.15,-622.2 339.5,-619.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M191,-414.5C304.23,-414.5 226.27,-621.5 339.5,-621.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-416.5C302.35,-413.8 224.4,-620.8 339.5,-623.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-416.88C300.48,-419.58 221.14,-628.58 333.25,-625.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M184.62,-418.88C298.61,-418.88 219.27,-627.88 333.25,-627.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-420.87C296.74,-418.17 217.4,-627.17 333.25,-629.87"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-388.5C305.74,-391.2 228.51,-597.2 339.5,-594.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M191,-390.5C303.86,-390.5 226.64,-596.5 339.5,-596.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-392.5C301.99,-389.8 224.76,-595.8 339.5,-598.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-393.88C299.75,-396.58 221.86,-603.58 333.25,-600.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M184.62,-395.88C297.88,-395.87 219.99,-602.88 333.25,-602.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-397.87C296.01,-395.17 218.12,-602.17 333.25,-604.87"/>
</g>
<!-- W2 -->
<g id="node8" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="539,-550.5 340,-550.5 340,-366.5 539,-366.5 539,-550.5"/>
<polygon fill="none" stroke="black" points="340.5,-527.5 340.5,-550.5 539.5,-550.5 539.5,-527.5 340.5,-527.5"/>
<text text-anchor="start" x="429.5" y="-535.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="340.5,-504.5 340.5,-527.5 363.5,-527.5 363.5,-504.5 340.5,-504.5"/>
<text text-anchor="start" x="344.5" y="-512.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="363.5,-504.5 363.5,-527.5 495.5,-527.5 495.5,-504.5 363.5,-504.5"/>
<text text-anchor="start" x="367.5" y="-512.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-504.5 495.5,-527.5 539.5,-527.5 539.5,-504.5 495.5,-504.5"/>
<text text-anchor="start" x="499.5" y="-512.3" font-family="arial" font-size="14.00">0.4 m</text>
<text text-anchor="start" x="373" y="-491.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="343" y="-472.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413.5" y="-472.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="473.5" y="-472.3" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-464.5 340.5,-466.5 539.5,-466.5 539.5,-464.5 340.5,-464.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-462.5 340.5,-464.5 539.5,-464.5 539.5,-462.5 340.5,-462.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-460.5 340.5,-462.5 539.5,-462.5 539.5,-460.5 340.5,-460.5"/>
<text text-anchor="start" x="346" y="-447.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="412.5" y="-447.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="476.5" y="-447.3" font-family="arial" font-size="14.00">X3:2:+5V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-439.5 340.5,-441.5 539.5,-441.5 539.5,-439.5 340.5,-439.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-437.5 340.5,-439.5 539.5,-439.5 539.5,-437.5 340.5,-437.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-435.5 340.5,-437.5 539.5,-437.5 539.5,-435.5 340.5,-435.5"/>
<text text-anchor="start" x="345" y="-422.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="413.5" y="-422.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="475.5" y="-422.3" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-414.5 340.5,-416.5 539.5,-416.5 539.5,-414.5 340.5,-414.5"/>
<polygon fill="#ffff00" stroke="transparent" points="340.5,-412.5 340.5,-414.5 539.5,-414.5 539.5,-412.5 340.5,-412.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-410.5 340.5,-412.5 539.5,-412.5 539.5,-410.5 340.5,-410.5"/>
<text text-anchor="start" x="344" y="-397.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="412" y="-397.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="474.5" y="-397.3" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-389.5 340.5,-391.5 539.5,-391.5 539.5,-389.5 340.5,-389.5"/>
<polygon fill="#00ff00" stroke="transparent" points="340.5,-387.5 340.5,-389.5 539.5,-389.5 539.5,-387.5 340.5,-387.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-385.5 340.5,-387.5 539.5,-387.5 539.5,-385.5 340.5,-385.5"/>
<text text-anchor="start" x="373" y="-372.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="530.12,-556.62 334.38,-556.62 334.38,-371.12 530.12,-371.12 530.12,-556.62"/>
<polygon fill="none" stroke="black" points="334.38,-532.88 334.38,-556.62 530.12,-556.62 530.12,-532.88 334.38,-532.88"/>
<text text-anchor="start" x="421.75" y="-539.33" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="334.38,-509.12 334.38,-532.88 356.62,-532.88 356.62,-509.12 334.38,-509.12"/>
<text text-anchor="start" x="338.38" y="-515.58" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="356.62,-509.12 356.62,-532.88 487.62,-532.88 487.62,-509.12 356.62,-509.12"/>
<text text-anchor="start" x="360.62" y="-515.58" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="487.62,-509.12 487.62,-532.88 530.12,-532.88 530.12,-509.12 487.62,-509.12"/>
<text text-anchor="start" x="491.62" y="-515.58" font-family="arial" font-size="14.00">0.4 m</text>
<text text-anchor="start" x="366.46" y="-493.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="337.21" y="-474.82" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="406.38" y="-474.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="465.04" y="-474.82" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="334.38,-469.12 334.38,-471.12 530.12,-471.12 530.12,-469.12 334.38,-469.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-467.12 334.38,-469.12 530.12,-469.12 530.12,-467.12 334.38,-467.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-465.12 334.38,-467.12 530.12,-467.12 530.12,-465.12 334.38,-465.12"/>
<text text-anchor="start" x="340.21" y="-449.82" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="405.62" y="-449.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.04" y="-449.82" font-family="arial" font-size="14.00">X3:2:+5V</text>
<polygon fill="#000000" stroke="none" points="334.38,-444.12 334.38,-446.12 530.12,-446.12 530.12,-444.12 334.38,-444.12"/>
<polygon fill="#ff0000" stroke="none" points="334.38,-442.12 334.38,-444.12 530.12,-444.12 530.12,-442.12 334.38,-442.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-440.12 334.38,-442.12 530.12,-442.12 530.12,-440.12 334.38,-440.12"/>
<text text-anchor="start" x="339.46" y="-424.82" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="406.38" y="-424.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="467.29" y="-424.82" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="334.38,-419.12 334.38,-421.12 530.12,-421.12 530.12,-419.12 334.38,-419.12"/>
<polygon fill="#ffff00" stroke="none" points="334.38,-417.12 334.38,-419.12 530.12,-419.12 530.12,-417.12 334.38,-417.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-415.12 334.38,-417.12 530.12,-417.12 530.12,-415.12 334.38,-415.12"/>
<text text-anchor="start" x="338.71" y="-399.82" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="404.88" y="-399.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="466.54" y="-399.82" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="334.38,-394.12 334.38,-396.12 530.12,-396.12 530.12,-394.12 334.38,-394.12"/>
<polygon fill="#00ff00" stroke="none" points="334.38,-392.12 334.38,-394.12 530.12,-394.12 530.12,-392.12 334.38,-392.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-390.12 334.38,-392.12 530.12,-392.12 530.12,-390.12 334.38,-390.12"/>
<text text-anchor="start" x="366.46" y="-374.82" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C257.37,-458.53 273.84,-461.53 339.5,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C257.01,-460.5 273.49,-463.5 339.5,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C256.66,-462.47 273.13,-465.47 339.5,-465.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-462.88C251.05,-462.91 267.54,-465.91 333.25,-465.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-464.88C250.69,-464.88 267.18,-467.88 333.25,-467.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-466.87C250.34,-466.84 266.82,-469.84 333.25,-469.87"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-435.5C257.12,-435.5 273.62,-436.5 339.5,-436.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M191,-437.5C257,-437.5 273.5,-438.5 339.5,-438.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-439.5C256.88,-439.5 273.38,-440.5 339.5,-440.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-439.88C250.8,-439.88 267.31,-440.88 333.25,-440.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M184.62,-441.87C250.68,-441.88 267.19,-442.88 333.25,-442.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-443.87C250.56,-443.87 267.07,-444.87 333.25,-444.87"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-412.5C256.88,-412.5 273.38,-411.5 339.5,-411.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M191,-414.5C257,-414.5 273.5,-413.5 339.5,-413.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-416.5C257.12,-416.5 273.62,-415.5 339.5,-415.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-416.88C250.56,-416.88 267.07,-415.88 333.25,-415.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M184.62,-418.87C250.68,-418.88 267.19,-417.88 333.25,-417.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-420.87C250.8,-420.87 267.31,-419.87 333.25,-419.87"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-388.5C256.77,-388.51 273.25,-386.51 339.5,-386.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M191,-390.5C257.01,-390.5 273.49,-388.5 339.5,-388.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-392.5C257.25,-392.49 273.73,-390.49 339.5,-390.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-393.88C250.34,-393.91 266.82,-390.91 333.25,-390.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M184.62,-395.88C250.69,-395.88 267.18,-392.88 333.25,-392.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-397.87C251.05,-397.84 267.54,-394.84 333.25,-394.87"/>
</g>
<!-- W3 -->
<g id="node9" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="543,-342.5 336,-342.5 336,-158.5 543,-158.5 543,-342.5"/>
<polygon fill="none" stroke="black" points="336.5,-319.5 336.5,-342.5 543.5,-342.5 543.5,-319.5 336.5,-319.5"/>
<text text-anchor="start" x="429.5" y="-327.3" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="336.5,-296.5 336.5,-319.5 362.5,-319.5 362.5,-296.5 336.5,-296.5"/>
<text text-anchor="start" x="342" y="-304.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="362.5,-296.5 362.5,-319.5 497.5,-319.5 497.5,-296.5 362.5,-296.5"/>
<text text-anchor="start" x="368" y="-304.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="497.5,-296.5 497.5,-319.5 543.5,-319.5 543.5,-296.5 497.5,-296.5"/>
<text text-anchor="start" x="502.5" y="-304.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="371" y="-283.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="341" y="-264.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413" y="-264.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="475" y="-264.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-256.5 336.5,-258.5 543.5,-258.5 543.5,-256.5 336.5,-256.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-254.5 336.5,-256.5 543.5,-256.5 543.5,-254.5 336.5,-254.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-252.5 336.5,-254.5 543.5,-254.5 543.5,-252.5 336.5,-252.5"/>
<text text-anchor="start" x="338.5" y="-239.3" font-family="arial" font-size="14.00">X1:5:MISO</text>
<text text-anchor="start" x="412.5" y="-239.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-239.3" font-family="arial" font-size="14.00">X4:3:MISO</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-231.5 336.5,-233.5 543.5,-233.5 543.5,-231.5 336.5,-231.5"/>
<polygon fill="#0066ff" stroke="transparent" points="336.5,-229.5 336.5,-231.5 543.5,-231.5 543.5,-229.5 336.5,-229.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-227.5 336.5,-229.5 543.5,-229.5 543.5,-227.5 336.5,-227.5"/>
<text text-anchor="start" x="338.5" y="-214.3" font-family="arial" font-size="14.00">X1:6:MOSI</text>
<text text-anchor="start" x="411.5" y="-214.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-214.3" font-family="arial" font-size="14.00">X4:4:MOSI</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-206.5 336.5,-208.5 543.5,-208.5 543.5,-206.5 336.5,-206.5"/>
<polygon fill="#ff8000" stroke="transparent" points="336.5,-204.5 336.5,-206.5 543.5,-206.5 543.5,-204.5 336.5,-204.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-202.5 336.5,-204.5 543.5,-204.5 543.5,-202.5 336.5,-202.5"/>
<text text-anchor="start" x="342" y="-189.3" font-family="arial" font-size="14.00">X1:7:SCK</text>
<text text-anchor="start" x="413.5" y="-189.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="476" y="-189.3" font-family="arial" font-size="14.00">X4:5:SCK</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-181.5 336.5,-183.5 543.5,-183.5 543.5,-181.5 336.5,-181.5"/>
<polygon fill="#8000ff" stroke="transparent" points="336.5,-179.5 336.5,-181.5 543.5,-181.5 543.5,-179.5 336.5,-179.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-177.5 336.5,-179.5 543.5,-179.5 543.5,-177.5 336.5,-177.5"/>
<text text-anchor="start" x="371" y="-164.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="533.25,-346.62 331.25,-346.62 331.25,-161.12 533.25,-161.12 533.25,-346.62"/>
<polygon fill="none" stroke="black" points="331.25,-322.88 331.25,-346.62 533.25,-346.62 533.25,-322.88 331.25,-322.88"/>
<text text-anchor="start" x="421.75" y="-329.32" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="331.25,-299.12 331.25,-322.88 355.58,-322.88 355.58,-299.12 331.25,-299.12"/>
<text text-anchor="start" x="336.29" y="-305.57" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="355.58,-299.12 355.58,-322.88 488.67,-322.88 488.67,-299.12 355.58,-299.12"/>
<text text-anchor="start" x="360.62" y="-305.57" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="488.67,-299.12 488.67,-322.88 533.25,-322.88 533.25,-299.12 488.67,-299.12"/>
<text text-anchor="start" x="493.71" y="-305.57" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="364.88" y="-283.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="335.62" y="-264.82" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="406.38" y="-264.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="466.62" y="-264.82" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="331.25,-259.12 331.25,-261.12 533.25,-261.12 533.25,-259.12 331.25,-259.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-257.12 331.25,-259.12 533.25,-259.12 533.25,-257.12 331.25,-257.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-255.12 331.25,-257.12 533.25,-257.12 533.25,-255.12 331.25,-255.12"/>
<text text-anchor="start" x="333" y="-239.82" font-family="arial" font-size="14.00">X1:5:MISO</text>
<text text-anchor="start" x="406" y="-239.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="464" y="-239.82" font-family="arial" font-size="14.00">X4:3:MISO</text>
<polygon fill="#000000" stroke="none" points="331.25,-234.12 331.25,-236.12 533.25,-236.12 533.25,-234.12 331.25,-234.12"/>
<polygon fill="#0066ff" stroke="none" points="331.25,-232.12 331.25,-234.12 533.25,-234.12 533.25,-232.12 331.25,-232.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-230.12 331.25,-232.12 533.25,-232.12 533.25,-230.12 331.25,-230.12"/>
<text text-anchor="start" x="333" y="-214.82" font-family="arial" font-size="14.00">X1:6:MOSI</text>
<text text-anchor="start" x="404.12" y="-214.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="464" y="-214.82" font-family="arial" font-size="14.00">X4:4:MOSI</text>
<polygon fill="#000000" stroke="none" points="331.25,-209.12 331.25,-211.12 533.25,-211.12 533.25,-209.12 331.25,-209.12"/>
<polygon fill="#ff8000" stroke="none" points="331.25,-207.12 331.25,-209.12 533.25,-209.12 533.25,-207.12 331.25,-207.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-205.12 331.25,-207.12 533.25,-207.12 533.25,-205.12 331.25,-205.12"/>
<text text-anchor="start" x="337.12" y="-189.82" font-family="arial" font-size="14.00">X1:7:SCK</text>
<text text-anchor="start" x="406.75" y="-189.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.12" y="-189.82" font-family="arial" font-size="14.00">X4:5:SCK</text>
<polygon fill="#000000" stroke="none" points="331.25,-184.12 331.25,-186.12 533.25,-186.12 533.25,-184.12 331.25,-184.12"/>
<polygon fill="#8000ff" stroke="none" points="331.25,-182.12 331.25,-184.12 533.25,-184.12 533.25,-182.12 331.25,-182.12"/>
<polygon fill="#000000" stroke="none" points="331.25,-180.12 331.25,-182.12 533.25,-182.12 533.25,-180.12 331.25,-180.12"/>
<text text-anchor="start" x="364.88" y="-164.82" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge17" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C300.73,-461.21 222.53,-256.21 336,-253.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C302.6,-460.5 224.4,-255.5 336,-255.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C304.47,-459.79 226.27,-254.79 336,-257.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-462.88C295.5,-465.59 216.64,-258.59 331.25,-255.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-464.87C297.37,-464.88 218.51,-257.88 331.25,-257.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-466.87C299.24,-464.16 220.38,-257.16 331.25,-259.87"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge19" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-365.5C277.71,-367.96 245.39,-230.96 336,-228.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M191,-367.5C279.66,-367.5 247.34,-230.5 336,-230.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-369.5C281.61,-367.04 249.29,-230.04 336,-232.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-370.88C272.78,-373.34 239.2,-233.34 331.25,-230.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M184.62,-372.88C274.73,-372.87 241.15,-232.88 331.25,-232.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-374.87C276.67,-372.41 243.09,-232.41 331.25,-234.87"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge21" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-342.5C278.33,-344.97 244.78,-205.97 336,-203.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M191,-344.5C280.27,-344.5 246.73,-205.5 336,-205.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-346.5C282.22,-344.03 248.67,-205.03 336,-207.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-347.88C273.4,-350.35 238.59,-208.35 331.25,-205.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M184.62,-349.88C275.34,-349.87 240.53,-207.88 331.25,-207.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-351.87C277.29,-349.4 242.47,-207.4 331.25,-209.87"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge23" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-319.5C278.95,-321.98 244.17,-180.98 336,-178.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M191,-321.5C280.89,-321.5 246.11,-180.5 336,-180.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-323.5C282.83,-321.02 248.05,-180.02 336,-182.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-324.88C274.02,-327.36 237.97,-183.36 331.25,-180.88"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M184.62,-326.88C275.96,-326.87 239.91,-182.88 331.25,-182.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M184.62,-328.87C277.9,-326.39 241.85,-182.39 331.25,-184.87"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="874,-726.5 687,-726.5 687,-588.5 874,-588.5 874,-726.5"/>
<polygon fill="#ffffff" stroke="transparent" points="687,-588.5 687,-726.5 874,-726.5 874,-588.5 687,-588.5"/>
<polygon fill="none" stroke="black" points="687.5,-703.5 687.5,-726.5 874.5,-726.5 874.5,-703.5 687.5,-703.5"/>
<text text-anchor="start" x="772" y="-711.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="687.5,-680.5 687.5,-703.5 783.5,-703.5 783.5,-680.5 687.5,-680.5"/>
<text text-anchor="start" x="691.5" y="-688.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-680.5 783.5,-703.5 834.5,-703.5 834.5,-680.5 783.5,-680.5"/>
<text text-anchor="start" x="787.5" y="-688.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-680.5 834.5,-703.5 874.5,-703.5 874.5,-680.5 834.5,-680.5"/>
<text text-anchor="start" x="838.5" y="-688.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-657.5 687.5,-680.5 769.5,-680.5 769.5,-657.5 687.5,-657.5"/>
<text text-anchor="start" x="724.5" y="-665.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="769.5,-657.5 769.5,-680.5 874.5,-680.5 874.5,-657.5 769.5,-657.5"/>
<text text-anchor="start" x="806" y="-665.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-634.5 687.5,-657.5 769.5,-657.5 769.5,-634.5 687.5,-634.5"/>
<text text-anchor="start" x="724.5" y="-642.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="769.5,-634.5 769.5,-657.5 874.5,-657.5 874.5,-634.5 769.5,-634.5"/>
<text text-anchor="start" x="809" y="-642.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="687.5,-611.5 687.5,-634.5 769.5,-634.5 769.5,-611.5 687.5,-611.5"/>
<text text-anchor="start" x="724.5" y="-619.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="769.5,-611.5 769.5,-634.5 874.5,-634.5 874.5,-611.5 769.5,-611.5"/>
<text text-anchor="start" x="808" y="-619.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="687.5,-588.5 687.5,-611.5 769.5,-611.5 769.5,-588.5 687.5,-588.5"/>
<text text-anchor="start" x="724.5" y="-596.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="769.5,-588.5 769.5,-611.5 874.5,-611.5 874.5,-588.5 769.5,-588.5"/>
<text text-anchor="start" x="807.5" y="-596.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="857.25,-733.62 677.25,-733.62 677.25,-594.12 857.25,-594.12 857.25,-733.62"/>
<polygon fill="none" stroke="black" points="677.25,-709.88 677.25,-733.62 857.25,-733.62 857.25,-709.88 677.25,-709.88"/>
<text text-anchor="start" x="759" y="-716.33" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="677.25,-686.12 677.25,-709.88 770,-709.88 770,-686.12 677.25,-686.12"/>
<text text-anchor="start" x="681.25" y="-692.58" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="770,-686.12 770,-709.88 819.25,-709.88 819.25,-686.12 770,-686.12"/>
<text text-anchor="start" x="774" y="-692.58" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="819.25,-686.12 819.25,-709.88 857.25,-709.88 857.25,-686.12 819.25,-686.12"/>
<text text-anchor="start" x="823.25" y="-692.58" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="677.25,-663.12 677.25,-686.12 755.75,-686.12 755.75,-663.12 677.25,-663.12"/>
<text text-anchor="start" x="712.75" y="-668.83" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.75,-663.12 755.75,-686.12 857.25,-686.12 857.25,-663.12 755.75,-663.12"/>
<text text-anchor="start" x="791.12" y="-668.83" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="677.25,-640.12 677.25,-663.12 755.75,-663.12 755.75,-640.12 677.25,-640.12"/>
<text text-anchor="start" x="712.75" y="-645.83" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.75,-640.12 755.75,-663.12 857.25,-663.12 857.25,-640.12 755.75,-640.12"/>
<text text-anchor="start" x="794.12" y="-645.83" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="677.25,-617.12 677.25,-640.12 755.75,-640.12 755.75,-617.12 677.25,-617.12"/>
<text text-anchor="start" x="712.75" y="-622.83" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="755.75,-617.12 755.75,-640.12 857.25,-640.12 857.25,-617.12 755.75,-617.12"/>
<text text-anchor="start" x="793.38" y="-622.83" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="677.25,-594.12 677.25,-617.12 755.75,-617.12 755.75,-594.12 677.25,-594.12"/>
<text text-anchor="start" x="712.75" y="-599.83" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="755.75,-594.12 755.75,-617.12 857.25,-617.12 857.25,-594.12 755.75,-594.12"/>
<text text-anchor="start" x="792.62" y="-599.83" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="874,-518.5 687,-518.5 687,-380.5 874,-380.5 874,-518.5"/>
<polygon fill="#ffffff" stroke="transparent" points="687,-380.5 687,-518.5 874,-518.5 874,-380.5 687,-380.5"/>
<polygon fill="none" stroke="black" points="687.5,-495.5 687.5,-518.5 874.5,-518.5 874.5,-495.5 687.5,-495.5"/>
<text text-anchor="start" x="772" y="-503.3" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="687.5,-472.5 687.5,-495.5 783.5,-495.5 783.5,-472.5 687.5,-472.5"/>
<text text-anchor="start" x="691.5" y="-480.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-472.5 783.5,-495.5 834.5,-495.5 834.5,-472.5 783.5,-472.5"/>
<text text-anchor="start" x="787.5" y="-480.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-472.5 834.5,-495.5 874.5,-495.5 874.5,-472.5 834.5,-472.5"/>
<text text-anchor="start" x="838.5" y="-480.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-449.5 687.5,-472.5 769.5,-472.5 769.5,-449.5 687.5,-449.5"/>
<text text-anchor="start" x="724.5" y="-457.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="769.5,-449.5 769.5,-472.5 874.5,-472.5 874.5,-449.5 769.5,-449.5"/>
<text text-anchor="start" x="806" y="-457.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-426.5 687.5,-449.5 769.5,-449.5 769.5,-426.5 687.5,-426.5"/>
<text text-anchor="start" x="724.5" y="-434.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="769.5,-426.5 769.5,-449.5 874.5,-449.5 874.5,-426.5 769.5,-426.5"/>
<text text-anchor="start" x="809" y="-434.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="687.5,-403.5 687.5,-426.5 769.5,-426.5 769.5,-403.5 687.5,-403.5"/>
<text text-anchor="start" x="724.5" y="-411.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="769.5,-403.5 769.5,-426.5 874.5,-426.5 874.5,-403.5 769.5,-403.5"/>
<text text-anchor="start" x="808" y="-411.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="687.5,-380.5 687.5,-403.5 769.5,-403.5 769.5,-380.5 687.5,-380.5"/>
<text text-anchor="start" x="724.5" y="-388.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="769.5,-380.5 769.5,-403.5 874.5,-403.5 874.5,-380.5 769.5,-380.5"/>
<text text-anchor="start" x="807.5" y="-388.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="857.25,-523.62 677.25,-523.62 677.25,-384.12 857.25,-384.12 857.25,-523.62"/>
<polygon fill="none" stroke="black" points="677.25,-499.88 677.25,-523.62 857.25,-523.62 857.25,-499.88 677.25,-499.88"/>
<text text-anchor="start" x="759" y="-506.32" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="677.25,-476.12 677.25,-499.88 770,-499.88 770,-476.12 677.25,-476.12"/>
<text text-anchor="start" x="681.25" y="-482.57" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="770,-476.12 770,-499.88 819.25,-499.88 819.25,-476.12 770,-476.12"/>
<text text-anchor="start" x="774" y="-482.57" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="819.25,-476.12 819.25,-499.88 857.25,-499.88 857.25,-476.12 819.25,-476.12"/>
<text text-anchor="start" x="823.25" y="-482.57" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="677.25,-453.12 677.25,-476.12 755.75,-476.12 755.75,-453.12 677.25,-453.12"/>
<text text-anchor="start" x="712.75" y="-458.82" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.75,-453.12 755.75,-476.12 857.25,-476.12 857.25,-453.12 755.75,-453.12"/>
<text text-anchor="start" x="791.12" y="-458.82" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="677.25,-430.12 677.25,-453.12 755.75,-453.12 755.75,-430.12 677.25,-430.12"/>
<text text-anchor="start" x="712.75" y="-435.82" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.75,-430.12 755.75,-453.12 857.25,-453.12 857.25,-430.12 755.75,-430.12"/>
<text text-anchor="start" x="794.12" y="-435.82" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="677.25,-407.12 677.25,-430.12 755.75,-430.12 755.75,-407.12 677.25,-407.12"/>
<text text-anchor="start" x="712.75" y="-412.82" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="755.75,-407.12 755.75,-430.12 857.25,-430.12 857.25,-407.12 755.75,-407.12"/>
<text text-anchor="start" x="793.38" y="-412.82" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="677.25,-384.12 677.25,-407.12 755.75,-407.12 755.75,-384.12 677.25,-384.12"/>
<text text-anchor="start" x="712.75" y="-389.82" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="755.75,-384.12 755.75,-407.12 857.25,-407.12 857.25,-384.12 755.75,-384.12"/>
<text text-anchor="start" x="792.62" y="-389.82" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="874,-322 687,-322 687,-161 874,-161 874,-322"/>
<polygon fill="#ffffff" stroke="transparent" points="687,-161 687,-322 874,-322 874,-161 687,-161"/>
<polygon fill="none" stroke="black" points="687.5,-298.5 687.5,-321.5 874.5,-321.5 874.5,-298.5 687.5,-298.5"/>
<text text-anchor="start" x="772" y="-306.3" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="687.5,-275.5 687.5,-298.5 783.5,-298.5 783.5,-275.5 687.5,-275.5"/>
<text text-anchor="start" x="691.5" y="-283.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-275.5 783.5,-298.5 834.5,-298.5 834.5,-275.5 783.5,-275.5"/>
<text text-anchor="start" x="787.5" y="-283.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-275.5 834.5,-298.5 874.5,-298.5 874.5,-275.5 834.5,-275.5"/>
<text text-anchor="start" x="838.5" y="-283.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-252.5 687.5,-275.5 767.5,-275.5 767.5,-252.5 687.5,-252.5"/>
<text text-anchor="start" x="723.5" y="-260.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="767.5,-252.5 767.5,-275.5 874.5,-275.5 874.5,-252.5 767.5,-252.5"/>
<text text-anchor="start" x="805" y="-260.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-229.5 687.5,-252.5 767.5,-252.5 767.5,-229.5 687.5,-229.5"/>
<text text-anchor="start" x="723.5" y="-237.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="767.5,-229.5 767.5,-252.5 874.5,-252.5 874.5,-229.5 767.5,-229.5"/>
<text text-anchor="start" x="804" y="-237.3" font-family="arial" font-size="14.00">+12V</text>
<polygon fill="none" stroke="black" points="687.5,-206.5 687.5,-229.5 767.5,-229.5 767.5,-206.5 687.5,-206.5"/>
<text text-anchor="start" x="723.5" y="-214.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="767.5,-206.5 767.5,-229.5 874.5,-229.5 874.5,-206.5 767.5,-206.5"/>
<text text-anchor="start" x="803" y="-214.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="687.5,-183.5 687.5,-206.5 767.5,-206.5 767.5,-183.5 687.5,-183.5"/>
<text text-anchor="start" x="723.5" y="-191.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="767.5,-183.5 767.5,-206.5 874.5,-206.5 874.5,-183.5 767.5,-183.5"/>
<text text-anchor="start" x="803" y="-191.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="687.5,-160.5 687.5,-183.5 767.5,-183.5 767.5,-160.5 687.5,-160.5"/>
<text text-anchor="start" x="723.5" y="-168.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="767.5,-160.5 767.5,-183.5 874.5,-183.5 874.5,-160.5 767.5,-160.5"/>
<text text-anchor="start" x="806.5" y="-168.3" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="#ffffff" stroke="black" points="857.25,-325.12 677.25,-325.12 677.25,-162.62 857.25,-162.62 857.25,-325.12"/>
<polygon fill="none" stroke="black" points="677.25,-301.38 677.25,-325.12 857.25,-325.12 857.25,-301.38 677.25,-301.38"/>
<text text-anchor="start" x="759" y="-307.82" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="677.25,-277.62 677.25,-301.38 770,-301.38 770,-277.62 677.25,-277.62"/>
<text text-anchor="start" x="681.25" y="-284.07" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="770,-277.62 770,-301.38 819.25,-301.38 819.25,-277.62 770,-277.62"/>
<text text-anchor="start" x="774" y="-284.07" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="819.25,-277.62 819.25,-301.38 857.25,-301.38 857.25,-277.62 819.25,-277.62"/>
<text text-anchor="start" x="823.25" y="-284.07" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="677.25,-254.62 677.25,-277.62 752.75,-277.62 752.75,-254.62 677.25,-254.62"/>
<text text-anchor="start" x="711.25" y="-260.32" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="752.75,-254.62 752.75,-277.62 857.25,-277.62 857.25,-254.62 752.75,-254.62"/>
<text text-anchor="start" x="789.62" y="-260.32" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="677.25,-231.62 677.25,-254.62 752.75,-254.62 752.75,-231.62 677.25,-231.62"/>
<text text-anchor="start" x="711.25" y="-237.32" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="752.75,-231.62 752.75,-254.62 857.25,-254.62 857.25,-231.62 752.75,-231.62"/>
<text text-anchor="start" x="788.88" y="-237.32" font-family="arial" font-size="14.00">+12V</text>
<polygon fill="none" stroke="black" points="677.25,-208.62 677.25,-231.62 752.75,-231.62 752.75,-208.62 677.25,-208.62"/>
<text text-anchor="start" x="711.25" y="-214.32" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="752.75,-208.62 752.75,-231.62 857.25,-231.62 857.25,-208.62 752.75,-208.62"/>
<text text-anchor="start" x="787" y="-214.32" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="677.25,-185.62 677.25,-208.62 752.75,-208.62 752.75,-185.62 677.25,-185.62"/>
<text text-anchor="start" x="711.25" y="-191.32" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="752.75,-185.62 752.75,-208.62 857.25,-208.62 857.25,-185.62 752.75,-185.62"/>
<text text-anchor="start" x="787" y="-191.32" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="677.25,-162.62 677.25,-185.62 752.75,-185.62 752.75,-162.62 677.25,-162.62"/>
<text text-anchor="start" x="711.25" y="-168.32" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="752.75,-162.62 752.75,-185.62 857.25,-185.62 857.25,-162.62 752.75,-162.62"/>
<text text-anchor="start" x="791.12" y="-168.32" font-family="arial" font-size="14.00">SCK</text>
</g>
<!-- AUTOGENERATED_F_1 -->
<!-- __F_1 -->
<g id="node5" class="node">
<title>AUTOGENERATED_F_1</title>
<polygon fill="#ffffff" stroke="black" points="192,-70 0,-70 0,-47 192,-47 192,-70"/>
<polygon fill="#ffffff" stroke="transparent" points="0,-47 0,-70 192,-70 192,-47 0,-47"/>
<polygon fill="none" stroke="black" points="0,-46.5 0,-69.5 89,-69.5 89,-46.5 0,-46.5"/>
<text text-anchor="start" x="4" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="89,-46.5 89,-69.5 157,-69.5 157,-46.5 89,-46.5"/>
<text text-anchor="start" x="93" y="-54.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="157,-46.5 157,-69.5 184,-69.5 184,-46.5 157,-46.5"/>
<text text-anchor="start" x="161" y="-54.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="transparent" points="184,-46.5 184,-69.5 192,-69.5 192,-46.5 184,-46.5"/>
<polygon fill="none" stroke="black" points="184,-46.5 184,-69.5 192,-69.5 192,-46.5 184,-46.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="187.25,-71.75 0,-71.75 0,-48 187.25,-48 187.25,-71.75"/>
<polygon fill="none" stroke="black" points="0,-48 0,-71.75 86.75,-71.75 86.75,-48 0,-48"/>
<text text-anchor="start" x="4" y="-54.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="86.75,-48 86.75,-71.75 153.25,-71.75 153.25,-48 86.75,-48"/>
<text text-anchor="start" x="90.75" y="-54.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="153.25,-48 153.25,-71.75 179.25,-71.75 179.25,-48 153.25,-48"/>
<text text-anchor="start" x="157.25" y="-54.45" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="none" points="179.25,-48 179.25,-71.75 187.25,-71.75 187.25,-48 179.25,-48"/>
<polygon fill="none" stroke="black" points="179.25,-48 179.25,-71.75 187.25,-71.75 187.25,-48 179.25,-48"/>
</g>
<!-- W4 -->
<g id="node10" class="node">
<title>W4</title>
<polygon fill="#ffffff" stroke="black" points="539,-134.5 340,-134.5 340,-0.5 539,-0.5 539,-134.5"/>
<polygon fill="none" stroke="black" points="340.5,-111.5 340.5,-134.5 539.5,-134.5 539.5,-111.5 340.5,-111.5"/>
<text text-anchor="start" x="429.5" y="-119.3" font-family="arial" font-size="14.00">W4</text>
<polygon fill="none" stroke="black" points="340.5,-88.5 340.5,-111.5 363.5,-111.5 363.5,-88.5 340.5,-88.5"/>
<text text-anchor="start" x="344.5" y="-96.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="363.5,-88.5 363.5,-111.5 495.5,-111.5 495.5,-88.5 363.5,-88.5"/>
<text text-anchor="start" x="367.5" y="-96.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-88.5 495.5,-111.5 539.5,-111.5 539.5,-88.5 495.5,-88.5"/>
<text text-anchor="start" x="499.5" y="-96.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="351" y="-75.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="376.5" y="-56.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="464.5" y="-56.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-48.5 340.5,-50.5 539.5,-50.5 539.5,-48.5 340.5,-48.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-46.5 340.5,-48.5 539.5,-48.5 539.5,-46.5 340.5,-46.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-44.5 340.5,-46.5 539.5,-46.5 539.5,-44.5 340.5,-44.5"/>
<text text-anchor="start" x="376" y="-31.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-31.3" font-family="arial" font-size="14.00">X4:2:+12V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-23.5 340.5,-25.5 539.5,-25.5 539.5,-23.5 340.5,-23.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-21.5 340.5,-23.5 539.5,-23.5 539.5,-21.5 340.5,-21.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-19.5 340.5,-21.5 539.5,-21.5 539.5,-19.5 340.5,-19.5"/>
<text text-anchor="start" x="351" y="-6.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="530.12,-136.62 334.38,-136.62 334.38,-1.12 530.12,-1.12 530.12,-136.62"/>
<polygon fill="none" stroke="black" points="334.38,-112.88 334.38,-136.62 530.12,-136.62 530.12,-112.88 334.38,-112.88"/>
<text text-anchor="start" x="421.75" y="-119.33" font-family="arial" font-size="14.00">W4</text>
<polygon fill="none" stroke="black" points="334.38,-89.12 334.38,-112.88 356.62,-112.88 356.62,-89.12 334.38,-89.12"/>
<text text-anchor="start" x="338.38" y="-95.58" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="356.62,-89.12 356.62,-112.88 487.62,-112.88 487.62,-89.12 356.62,-89.12"/>
<text text-anchor="start" x="360.62" y="-95.58" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="487.62,-89.12 487.62,-112.88 530.12,-112.88 530.12,-89.12 487.62,-89.12"/>
<text text-anchor="start" x="491.62" y="-95.58" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="344.96" y="-73.83" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="370.75" y="-54.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456.54" y="-54.83" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="334.38,-49.12 334.38,-51.12 530.12,-51.12 530.12,-49.12 334.38,-49.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-47.12 334.38,-49.12 530.12,-49.12 530.12,-47.12 334.38,-47.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-45.12 334.38,-47.12 530.12,-47.12 530.12,-45.12 334.38,-45.12"/>
<text text-anchor="start" x="370" y="-29.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="455.79" y="-29.82" font-family="arial" font-size="14.00">X4:2:+12V</text>
<polygon fill="#000000" stroke="none" points="334.38,-24.12 334.38,-26.12 530.12,-26.12 530.12,-24.12 334.38,-24.12"/>
<polygon fill="#ff0000" stroke="none" points="334.38,-22.12 334.38,-24.12 530.12,-24.12 530.12,-22.12 334.38,-22.12"/>
<polygon fill="#000000" stroke="none" points="334.38,-20.12 334.38,-22.12 530.12,-22.12 530.12,-20.12 334.38,-20.12"/>
<text text-anchor="start" x="344.96" y="-4.83" font-family="arial" font-size="14.00"> </text>
</g>
<!-- AUTOGENERATED_F_1&#45;&#45;W4 -->
<!-- __F_1&#45;&#45;W4 -->
<g id="edge25" class="edge">
<title>AUTOGENERATED_F_1:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-56.5C256.61,-56.85 272.63,-45.85 339.5,-45.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-58.5C257.74,-58.5 273.76,-47.5 339.5,-47.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-60.5C258.87,-60.15 274.89,-49.15 339.5,-49.5"/>
<title>__F_1:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-57.88C251.15,-58.28 266.93,-46.28 333.25,-45.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-59.87C252.36,-59.88 268.14,-47.88 333.25,-47.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-61.87C253.57,-61.47 269.35,-49.47 333.25,-49.87"/>
</g>
<!-- AUTOGENERATED_F_2 -->
<!-- __F_2 -->
<g id="node6" class="node">
<title>AUTOGENERATED_F_2</title>
<polygon fill="#ffffff" stroke="black" points="192,-23 0,-23 0,0 192,0 192,-23"/>
<polygon fill="#ffffff" stroke="transparent" points="0,0 0,-23 192,-23 192,0 0,0"/>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 89,-22.5 89,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="89,0.5 89,-22.5 157,-22.5 157,0.5 89,0.5"/>
<text text-anchor="start" x="93" y="-7.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="157,0.5 157,-22.5 184,-22.5 184,0.5 157,0.5"/>
<text text-anchor="start" x="161" y="-7.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="transparent" points="184,0.5 184,-22.5 192,-22.5 192,0.5 184,0.5"/>
<polygon fill="none" stroke="black" points="184,0.5 184,-22.5 192,-22.5 192,0.5 184,0.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="187.25,-23.75 0,-23.75 0,0 187.25,0 187.25,-23.75"/>
<polygon fill="none" stroke="black" points="0,0 0,-23.75 86.75,-23.75 86.75,0 0,0"/>
<text text-anchor="start" x="4" y="-6.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="86.75,0 86.75,-23.75 153.25,-23.75 153.25,0 86.75,0"/>
<text text-anchor="start" x="90.75" y="-6.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="153.25,0 153.25,-23.75 179.25,-23.75 179.25,0 153.25,0"/>
<text text-anchor="start" x="157.25" y="-6.45" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="none" points="179.25,0 179.25,-23.75 187.25,-23.75 187.25,0 179.25,0"/>
<polygon fill="none" stroke="black" points="179.25,0 179.25,-23.75 187.25,-23.75 187.25,0 179.25,0"/>
</g>
<!-- AUTOGENERATED_F_2&#45;&#45;W4 -->
<!-- __F_2&#45;&#45;W4 -->
<g id="edge27" class="edge">
<title>AUTOGENERATED_F_2:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-9.5C258.87,-9.85 274.89,-20.85 339.5,-20.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M192,-11.5C257.74,-11.5 273.76,-22.5 339.5,-22.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-13.5C256.61,-13.15 272.63,-24.15 339.5,-24.5"/>
<title>__F_2:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-9.88C253.46,-10.23 269.32,-21.23 333.25,-20.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M187.25,-11.88C252.32,-11.88 268.18,-22.88 333.25,-22.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187.25,-13.87C251.18,-13.52 267.04,-24.52 333.25,-24.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-669.5C605.37,-669.51 621.64,-667.51 687,-667.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-671.5C605.62,-671.5 621.88,-669.5 687,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-673.5C605.86,-673.49 622.13,-671.49 687,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-675.88C595.79,-675.91 611.98,-672.91 677.25,-672.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-677.88C596.15,-677.88 612.35,-674.88 677.25,-674.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-679.87C596.52,-679.84 612.71,-676.84 677.25,-676.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-644.5C605.49,-644.5 621.76,-643.5 687,-643.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-646.5C605.61,-646.5 621.89,-645.5 687,-645.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-648.5C605.74,-648.5 622.01,-647.5 687,-647.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-650.88C596.02,-650.88 612.24,-649.88 677.25,-649.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M531.25,-652.88C596.14,-652.88 612.36,-651.88 677.25,-651.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-654.87C596.26,-654.87 612.48,-653.87 677.25,-653.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-619.5C605.74,-619.5 622.01,-620.5 687,-620.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540.5,-621.5C605.61,-621.5 621.89,-622.5 687,-622.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-623.5C605.49,-623.5 621.76,-624.5 687,-624.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-625.88C596.26,-625.88 612.48,-626.88 677.25,-626.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M531.25,-627.88C596.14,-627.88 612.36,-628.88 677.25,-628.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-629.87C596.02,-629.87 612.24,-630.87 677.25,-630.87"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-594.5C605.99,-594.53 622.24,-597.53 687,-597.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540.5,-596.5C605.62,-596.5 621.88,-599.5 687,-599.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-598.5C605.26,-598.47 621.51,-601.47 687,-601.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-600.88C596.52,-600.91 612.71,-603.91 677.25,-603.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M531.25,-602.88C596.15,-602.88 612.35,-605.88 677.25,-605.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-604.87C595.79,-604.84 611.98,-607.84 677.25,-607.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-461.5C605.37,-461.51 621.64,-459.51 687,-459.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-463.5C605.62,-463.5 621.88,-461.5 687,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-465.5C605.86,-465.49 622.13,-463.49 687,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-465.88C595.79,-465.91 611.98,-462.91 677.25,-462.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-467.88C596.15,-467.88 612.35,-464.88 677.25,-464.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-469.87C596.52,-469.84 612.71,-466.84 677.25,-466.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-436.5C605.49,-436.5 621.76,-435.5 687,-435.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-438.5C605.61,-438.5 621.89,-437.5 687,-437.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-440.5C605.74,-440.5 622.01,-439.5 687,-439.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-440.88C596.02,-440.88 612.24,-439.88 677.25,-439.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M531.25,-442.87C596.14,-442.88 612.36,-441.88 677.25,-441.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-444.87C596.26,-444.87 612.48,-443.87 677.25,-443.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-411.5C605.74,-411.5 622.01,-412.5 687,-412.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540.5,-413.5C605.61,-413.5 621.89,-414.5 687,-414.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-415.5C605.49,-415.5 621.76,-416.5 687,-416.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-415.88C596.26,-415.88 612.48,-416.88 677.25,-416.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M531.25,-417.87C596.14,-417.88 612.36,-418.88 677.25,-418.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-419.87C596.02,-419.87 612.24,-420.87 677.25,-420.87"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-386.5C605.99,-386.53 622.24,-389.53 687,-389.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540.5,-388.5C605.62,-388.5 621.88,-391.5 687,-391.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-390.5C605.26,-390.47 621.51,-393.47 687,-393.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-390.88C596.52,-390.91 612.71,-393.91 677.25,-393.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M531.25,-392.88C596.15,-392.88 612.35,-395.88 677.25,-395.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-394.87C595.79,-394.84 611.98,-397.84 677.25,-397.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge18" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-253.5C608.12,-253.76 623.87,-262.76 687,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-255.5C607.12,-255.5 622.88,-264.5 687,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-257.5C606.13,-257.24 621.88,-266.24 687,-266.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-255.88C598.25,-256.09 614.05,-264.09 677.25,-263.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-257.88C597.35,-257.88 613.15,-265.88 677.25,-265.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-259.87C596.45,-259.66 612.25,-267.66 677.25,-267.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge20" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-228.5C605.97,-228.97 621.45,-215.97 687,-215.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M543,-230.5C607.26,-230.5 622.74,-217.5 687,-217.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-232.5C608.55,-232.03 624.03,-219.03 687,-219.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-230.88C596.22,-231.34 611.7,-218.34 677.25,-217.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M533.25,-232.88C597.51,-232.88 612.99,-219.88 677.25,-219.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-234.87C598.8,-234.41 614.28,-221.41 677.25,-221.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge22" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-203.5C606.04,-203.86 621.66,-192.86 687,-192.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M543,-205.5C607.19,-205.5 622.81,-194.5 687,-194.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-207.5C608.34,-207.14 623.96,-196.14 687,-196.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-205.88C596.29,-206.24 611.91,-195.24 677.25,-194.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M533.25,-207.88C597.44,-207.88 613.06,-196.88 677.25,-196.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-209.87C598.59,-209.51 614.21,-198.51 677.25,-198.87"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge24" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-178.5C606.13,-178.76 621.88,-169.76 687,-169.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M543,-180.5C607.12,-180.5 622.88,-171.5 687,-171.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-182.5C608.12,-182.24 623.87,-173.24 687,-173.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-180.88C596.38,-181.14 612.13,-172.14 677.25,-171.88"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M533.25,-182.88C597.37,-182.88 613.13,-173.88 677.25,-173.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M533.25,-184.87C598.37,-184.61 614.12,-175.61 677.25,-175.87"/>
</g>
<!-- W4&#45;&#45;X4 -->
<g id="edge26" class="edge">
<title>W4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-45.5C658.72,-48.24 572.49,-265.24 687,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-47.5C656.87,-47.5 570.63,-264.5 687,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-49.5C655.01,-46.76 568.78,-263.76 687,-266.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-45.88C649.72,-48.62 562.5,-266.62 677.25,-263.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-47.88C647.86,-47.88 560.64,-265.88 677.25,-265.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-49.87C646,-47.13 558.78,-265.13 677.25,-267.87"/>
</g>
<!-- W4&#45;&#45;X4 -->
<g id="edge28" class="edge">
<title>W4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-20.5C659.09,-23.24 572.12,-241.24 687,-238.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-22.5C657.23,-22.5 570.27,-240.5 687,-240.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-24.5C655.38,-21.76 568.41,-239.76 687,-242.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-20.88C650.46,-23.62 561.75,-243.62 677.25,-240.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M531.25,-22.88C648.6,-22.88 559.9,-242.88 677.25,-242.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M531.25,-24.87C646.75,-22.13 558.04,-242.13 677.25,-244.87"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 42 KiB

4
examples/ex01.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

248
examples/ex01.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex01</title>
<style>
@ -30,178 +30,178 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="943pt" height="232pt"
viewBox="0.00 0.00 943.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 228)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-228 939,-228 939,4 -4,4"/>
<svg width="923pt" height="234pt"
viewBox="0.00 0.00 923.25 233.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 229.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-229.5 919.25,-229.5 919.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-191 0,-191 0,-53 187,-53 187,-191"/>
<polygon fill="none" stroke="black" points="0.5,-168 0.5,-191 187.5,-191 187.5,-168 0.5,-168"/>
<text text-anchor="start" x="85" y="-175.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-145 0.5,-168 96.5,-168 96.5,-145 0.5,-145"/>
<text text-anchor="start" x="4.5" y="-152.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-145 96.5,-168 147.5,-168 147.5,-145 96.5,-145"/>
<text text-anchor="start" x="100.5" y="-152.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-145 147.5,-168 187.5,-168 187.5,-145 147.5,-145"/>
<text text-anchor="start" x="151.5" y="-152.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-122 0.5,-145 106.5,-145 106.5,-122 0.5,-122"/>
<text text-anchor="start" x="37.5" y="-129.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-122 106.5,-145 187.5,-145 187.5,-122 106.5,-122"/>
<text text-anchor="start" x="143" y="-129.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-99 0.5,-122 106.5,-122 106.5,-99 0.5,-99"/>
<text text-anchor="start" x="38.5" y="-106.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-99 106.5,-122 187.5,-122 187.5,-99 106.5,-99"/>
<text text-anchor="start" x="143" y="-106.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-76 0.5,-99 106.5,-99 106.5,-76 0.5,-76"/>
<text text-anchor="start" x="43.5" y="-83.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="106.5,-76 106.5,-99 187.5,-99 187.5,-76 106.5,-76"/>
<text text-anchor="start" x="143" y="-83.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-53 0.5,-76 106.5,-76 106.5,-53 0.5,-53"/>
<text text-anchor="start" x="44.5" y="-60.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="106.5,-53 106.5,-76 187.5,-76 187.5,-53 106.5,-53"/>
<text text-anchor="start" x="143" y="-60.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="180,-191.5 0,-191.5 0,-52 180,-52 180,-191.5"/>
<polygon fill="none" stroke="black" points="0,-167.75 0,-191.5 180,-191.5 180,-167.75 0,-167.75"/>
<text text-anchor="start" x="81.75" y="-174.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-144 0,-167.75 92.75,-167.75 92.75,-144 0,-144"/>
<text text-anchor="start" x="4" y="-150.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="92.75,-144 92.75,-167.75 142,-167.75 142,-144 92.75,-144"/>
<text text-anchor="start" x="96.75" y="-150.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="142,-144 142,-167.75 180,-167.75 180,-144 142,-144"/>
<text text-anchor="start" x="146" y="-150.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-121 0,-144 101.5,-144 101.5,-121 0,-121"/>
<text text-anchor="start" x="35.38" y="-126.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="101.5,-121 101.5,-144 180,-144 180,-121 101.5,-121"/>
<text text-anchor="start" x="137" y="-126.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-98 0,-121 101.5,-121 101.5,-98 0,-98"/>
<text text-anchor="start" x="36.5" y="-103.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="101.5,-98 101.5,-121 180,-121 180,-98 101.5,-98"/>
<text text-anchor="start" x="137" y="-103.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-75 0,-98 101.5,-98 101.5,-75 0,-75"/>
<text text-anchor="start" x="41.38" y="-80.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="101.5,-75 101.5,-98 180,-98 180,-75 101.5,-75"/>
<text text-anchor="start" x="137" y="-80.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-52 0,-75 101.5,-75 101.5,-52 0,-52"/>
<text text-anchor="start" x="42.12" y="-57.7" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="101.5,-52 101.5,-75 180,-75 180,-52 101.5,-52"/>
<text text-anchor="start" x="137" y="-57.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="604,-224 331,-224 331,0 604,0 604,-224"/>
<polygon fill="none" stroke="black" points="331.5,-201 331.5,-224 604.5,-224 604.5,-201 331.5,-201"/>
<text text-anchor="start" x="457.5" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-178 331.5,-201 375.5,-201 375.5,-178 331.5,-178"/>
<text text-anchor="start" x="335.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="375.5,-178 375.5,-201 398.5,-201 398.5,-178 375.5,-178"/>
<text text-anchor="start" x="379.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="398.5,-178 398.5,-201 530.5,-201 530.5,-178 398.5,-178"/>
<text text-anchor="start" x="402.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="530.5,-178 530.5,-201 560.5,-201 560.5,-178 530.5,-178"/>
<text text-anchor="start" x="534.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="560.5,-178 560.5,-201 604.5,-201 604.5,-178 560.5,-178"/>
<text text-anchor="start" x="564.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="374.5" y="-164.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-145.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="435" y="-145.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="528" y="-145.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-138 331.5,-140 604.5,-140 604.5,-138 331.5,-138"/>
<polygon fill="#895956" stroke="transparent" points="331.5,-136 331.5,-138 604.5,-138 604.5,-136 331.5,-136"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-134 331.5,-136 604.5,-136 604.5,-134 331.5,-134"/>
<text text-anchor="start" x="345" y="-120.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="435" y="-120.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="528.5" y="-120.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-113 331.5,-115 604.5,-115 604.5,-113 331.5,-113"/>
<polygon fill="#ff0000" stroke="transparent" points="331.5,-111 331.5,-113 604.5,-113 604.5,-111 331.5,-111"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-109 331.5,-111 604.5,-111 604.5,-109 331.5,-109"/>
<text text-anchor="start" x="350" y="-95.8" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="434" y="-95.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="534.5" y="-95.8" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-88 331.5,-90 604.5,-90 604.5,-88 331.5,-88"/>
<polygon fill="#ff8000" stroke="transparent" points="331.5,-86 331.5,-88 604.5,-88 604.5,-86 331.5,-86"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-84 331.5,-86 604.5,-86 604.5,-84 331.5,-84"/>
<text text-anchor="start" x="351" y="-70.8" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="435.5" y="-70.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="533.5" y="-70.8" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-63 331.5,-65 604.5,-65 604.5,-63 331.5,-63"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-61 331.5,-63 604.5,-63 604.5,-61 331.5,-61"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-59 331.5,-61 604.5,-61 604.5,-59 331.5,-59"/>
<text text-anchor="start" x="374.5" y="-45.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-26.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="449" y="-26.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 604.5,-21 604.5,-19 331.5,-19"/>
<text text-anchor="start" x="374.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="591.25,-225.5 324,-225.5 324,0 591.25,0 591.25,-225.5"/>
<polygon fill="none" stroke="black" points="324,-201.75 324,-225.5 591.25,-225.5 591.25,-201.75 324,-201.75"/>
<text text-anchor="start" x="447.12" y="-208.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324,-178 324,-201.75 366.5,-201.75 366.5,-178 324,-178"/>
<text text-anchor="start" x="328" y="-184.45" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="366.5,-178 366.5,-201.75 388.75,-201.75 388.75,-178 366.5,-178"/>
<text text-anchor="start" x="370.5" y="-184.45" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="388.75,-178 388.75,-201.75 519.75,-201.75 519.75,-178 388.75,-178"/>
<text text-anchor="start" x="392.75" y="-184.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="519.75,-178 519.75,-201.75 548.75,-201.75 548.75,-178 519.75,-178"/>
<text text-anchor="start" x="523.75" y="-184.45" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="548.75,-178 548.75,-201.75 591.25,-201.75 591.25,-178 548.75,-178"/>
<text text-anchor="start" x="552.75" y="-184.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="365.83" y="-162.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="336.58" y="-143.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="425.75" y="-143.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="516.42" y="-143.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-138 324,-140 591.25,-140 591.25,-138 324,-138"/>
<polygon fill="#895956" stroke="none" points="324,-136 324,-138 591.25,-138 591.25,-136 324,-136"/>
<polygon fill="#000000" stroke="none" points="324,-134 324,-136 591.25,-136 591.25,-134 324,-134"/>
<text text-anchor="start" x="337.71" y="-118.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="425.38" y="-118.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="517.54" y="-118.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-113 324,-115 591.25,-115 591.25,-113 324,-113"/>
<polygon fill="#ff0000" stroke="none" points="324,-111 324,-113 591.25,-113 591.25,-111 324,-111"/>
<polygon fill="#000000" stroke="none" points="324,-109 324,-111 591.25,-111 591.25,-109 324,-109"/>
<text text-anchor="start" x="342.58" y="-93.7" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="423.88" y="-93.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="523.17" y="-93.7" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="none" points="324,-88 324,-90 591.25,-90 591.25,-88 324,-88"/>
<polygon fill="#ff8000" stroke="none" points="324,-86 324,-88 591.25,-88 591.25,-86 324,-86"/>
<polygon fill="#000000" stroke="none" points="324,-84 324,-86 591.25,-86 591.25,-84 324,-84"/>
<text text-anchor="start" x="343.33" y="-68.7" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="426.12" y="-68.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="522.42" y="-68.7" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="none" points="324,-63 324,-65 591.25,-65 591.25,-63 324,-63"/>
<polygon fill="#ffff00" stroke="none" points="324,-61 324,-63 591.25,-63 591.25,-61 324,-61"/>
<polygon fill="#000000" stroke="none" points="324,-59 324,-61 591.25,-61 591.25,-59 324,-59"/>
<text text-anchor="start" x="365.83" y="-43.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="336.58" y="-24.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="438.88" y="-24.7" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="324,-19 324,-21 591.25,-21 591.25,-19 324,-19"/>
<text text-anchor="start" x="365.83" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-132C251.38,-132.03 267.36,-135.03 331,-135"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M187,-134C251.01,-134 266.99,-137 331,-137"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-136C250.64,-135.97 266.62,-138.97 331,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-130.75C244.51,-130.81 260.46,-134.81 324,-134.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M180,-132.75C244.02,-132.75 259.98,-136.75 324,-136.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-134.75C243.54,-134.69 259.49,-138.69 324,-138.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-108C251.25,-108.02 267.24,-110.02 331,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M187,-110C251.01,-110 266.99,-112 331,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-112C250.76,-111.98 266.75,-113.98 331,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-107.75C244.25,-107.77 260.24,-109.77 324,-109.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-109.75C244.01,-109.75 259.99,-111.75 324,-111.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-111.75C243.76,-111.73 259.75,-113.73 324,-113.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-85C251,-85 267,-85 331,-85"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M187,-87C251,-87 267,-87 331,-87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-89C251,-89 267,-89 331,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-84.75C244,-84.75 260,-84.75 324,-84.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M180,-86.75C244,-86.75 260,-86.75 324,-86.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-88.75C244,-88.75 260,-88.75 324,-88.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-62C250.76,-62.02 266.75,-60.02 331,-60"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-64C251.01,-64 266.99,-62 331,-62"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-66C251.25,-65.98 267.24,-63.98 331,-64"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-61.75C243.76,-61.77 259.75,-59.77 324,-59.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M180,-63.75C244.01,-63.75 259.99,-61.75 324,-61.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-65.75C244.25,-65.73 260.24,-63.73 324,-63.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-134C268.63,-134 249.37,-20 331,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-132.75C261.35,-132.75 242.65,-19.75 324,-19.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="935,-193 748,-193 748,-55 935,-55 935,-193"/>
<polygon fill="none" stroke="black" points="748.5,-170 748.5,-193 935.5,-193 935.5,-170 748.5,-170"/>
<text text-anchor="start" x="833" y="-177.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="748.5,-147 748.5,-170 844.5,-170 844.5,-147 748.5,-147"/>
<text text-anchor="start" x="752.5" y="-154.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="844.5,-147 844.5,-170 895.5,-170 895.5,-147 844.5,-147"/>
<text text-anchor="start" x="848.5" y="-154.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="895.5,-147 895.5,-170 935.5,-170 935.5,-147 895.5,-147"/>
<text text-anchor="start" x="899.5" y="-154.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="748.5,-124 748.5,-147 830.5,-147 830.5,-124 748.5,-124"/>
<text text-anchor="start" x="785.5" y="-131.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="830.5,-124 830.5,-147 935.5,-147 935.5,-124 830.5,-124"/>
<text text-anchor="start" x="867" y="-131.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="748.5,-101 748.5,-124 830.5,-124 830.5,-101 748.5,-101"/>
<text text-anchor="start" x="785.5" y="-108.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="830.5,-101 830.5,-124 935.5,-124 935.5,-101 830.5,-101"/>
<text text-anchor="start" x="868" y="-108.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="748.5,-78 748.5,-101 830.5,-101 830.5,-78 748.5,-78"/>
<text text-anchor="start" x="785.5" y="-85.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="830.5,-78 830.5,-101 935.5,-101 935.5,-78 830.5,-78"/>
<text text-anchor="start" x="873" y="-85.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="748.5,-55 748.5,-78 830.5,-78 830.5,-55 748.5,-55"/>
<text text-anchor="start" x="785.5" y="-62.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="830.5,-55 830.5,-78 935.5,-78 935.5,-55 830.5,-55"/>
<text text-anchor="start" x="874" y="-62.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="915.25,-194.5 735.25,-194.5 735.25,-55 915.25,-55 915.25,-194.5"/>
<polygon fill="none" stroke="black" points="735.25,-170.75 735.25,-194.5 915.25,-194.5 915.25,-170.75 735.25,-170.75"/>
<text text-anchor="start" x="817" y="-177.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="735.25,-147 735.25,-170.75 828,-170.75 828,-147 735.25,-147"/>
<text text-anchor="start" x="739.25" y="-153.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="828,-147 828,-170.75 877.25,-170.75 877.25,-147 828,-147"/>
<text text-anchor="start" x="832" y="-153.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="877.25,-147 877.25,-170.75 915.25,-170.75 915.25,-147 877.25,-147"/>
<text text-anchor="start" x="881.25" y="-153.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="735.25,-124 735.25,-147 813.75,-147 813.75,-124 735.25,-124"/>
<text text-anchor="start" x="770.75" y="-129.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="813.75,-124 813.75,-147 915.25,-147 915.25,-124 813.75,-124"/>
<text text-anchor="start" x="849.12" y="-129.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="735.25,-101 735.25,-124 813.75,-124 813.75,-101 735.25,-101"/>
<text text-anchor="start" x="770.75" y="-106.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="813.75,-101 813.75,-124 915.25,-124 915.25,-101 813.75,-101"/>
<text text-anchor="start" x="850.25" y="-106.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="735.25,-78 735.25,-101 813.75,-101 813.75,-78 735.25,-78"/>
<text text-anchor="start" x="770.75" y="-83.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="813.75,-78 813.75,-101 915.25,-101 915.25,-78 813.75,-78"/>
<text text-anchor="start" x="855.12" y="-83.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="735.25,-55 735.25,-78 813.75,-78 813.75,-55 735.25,-55"/>
<text text-anchor="start" x="770.75" y="-60.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="813.75,-55 813.75,-78 915.25,-78 915.25,-55 813.75,-55"/>
<text text-anchor="start" x="855.88" y="-60.7" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-135C667.88,-135 683.87,-134 748,-134"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M604,-137C668,-137 684,-136 748,-136"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-139C668.13,-139 684.12,-138 748,-138"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-134.75C655.13,-134.75 671.12,-133.75 735.25,-133.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M591.25,-136.75C655.25,-136.75 671.25,-135.75 735.25,-135.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-138.75C655.38,-138.75 671.37,-137.75 735.25,-137.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-110C668,-110 684,-110 748,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M604,-112C668,-112 684,-112 748,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-114C668,-114 684,-114 748,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-109.75C655.38,-109.75 671.37,-110.75 735.25,-110.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M591.25,-111.75C655.25,-111.75 671.25,-112.75 735.25,-112.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-113.75C655.13,-113.75 671.12,-114.75 735.25,-114.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-85C667.04,-85.86 681.68,-64.86 748,-64"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M604,-87C668.68,-87 683.32,-66 748,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-89C670.32,-88.14 684.96,-67.14 748,-68"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-84.75C654.26,-85.56 669.03,-65.56 735.25,-64.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M591.25,-86.75C655.86,-86.75 670.64,-66.75 735.25,-66.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-88.75C657.47,-87.94 672.24,-67.94 735.25,-68.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-60C670.9,-61.09 684.67,-88.09 748,-87"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M604,-62C669.12,-62 682.88,-89 748,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-64C667.33,-62.91 681.1,-89.91 748,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-59.75C658.25,-60.88 671.85,-88.88 735.25,-87.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M591.25,-61.75C656.45,-61.75 670.05,-89.75 735.25,-89.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-63.75C654.65,-62.62 668.25,-90.62 735.25,-91.75"/>
</g>
</g>
</svg>

BIN
examples/ex01.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 47 KiB

246
examples/ex01.svg generated
View File

@ -1,178 +1,178 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="943pt" height="232pt"
viewBox="0.00 0.00 943.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 228)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-228 939,-228 939,4 -4,4"/>
<svg width="923pt" height="234pt"
viewBox="0.00 0.00 923.25 233.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 229.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-229.5 919.25,-229.5 919.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-191 0,-191 0,-53 187,-53 187,-191"/>
<polygon fill="none" stroke="black" points="0.5,-168 0.5,-191 187.5,-191 187.5,-168 0.5,-168"/>
<text text-anchor="start" x="85" y="-175.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-145 0.5,-168 96.5,-168 96.5,-145 0.5,-145"/>
<text text-anchor="start" x="4.5" y="-152.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-145 96.5,-168 147.5,-168 147.5,-145 96.5,-145"/>
<text text-anchor="start" x="100.5" y="-152.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-145 147.5,-168 187.5,-168 187.5,-145 147.5,-145"/>
<text text-anchor="start" x="151.5" y="-152.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-122 0.5,-145 106.5,-145 106.5,-122 0.5,-122"/>
<text text-anchor="start" x="37.5" y="-129.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-122 106.5,-145 187.5,-145 187.5,-122 106.5,-122"/>
<text text-anchor="start" x="143" y="-129.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-99 0.5,-122 106.5,-122 106.5,-99 0.5,-99"/>
<text text-anchor="start" x="38.5" y="-106.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-99 106.5,-122 187.5,-122 187.5,-99 106.5,-99"/>
<text text-anchor="start" x="143" y="-106.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-76 0.5,-99 106.5,-99 106.5,-76 0.5,-76"/>
<text text-anchor="start" x="43.5" y="-83.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="106.5,-76 106.5,-99 187.5,-99 187.5,-76 106.5,-76"/>
<text text-anchor="start" x="143" y="-83.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-53 0.5,-76 106.5,-76 106.5,-53 0.5,-53"/>
<text text-anchor="start" x="44.5" y="-60.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="106.5,-53 106.5,-76 187.5,-76 187.5,-53 106.5,-53"/>
<text text-anchor="start" x="143" y="-60.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="180,-191.5 0,-191.5 0,-52 180,-52 180,-191.5"/>
<polygon fill="none" stroke="black" points="0,-167.75 0,-191.5 180,-191.5 180,-167.75 0,-167.75"/>
<text text-anchor="start" x="81.75" y="-174.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-144 0,-167.75 92.75,-167.75 92.75,-144 0,-144"/>
<text text-anchor="start" x="4" y="-150.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="92.75,-144 92.75,-167.75 142,-167.75 142,-144 92.75,-144"/>
<text text-anchor="start" x="96.75" y="-150.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="142,-144 142,-167.75 180,-167.75 180,-144 142,-144"/>
<text text-anchor="start" x="146" y="-150.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-121 0,-144 101.5,-144 101.5,-121 0,-121"/>
<text text-anchor="start" x="35.38" y="-126.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="101.5,-121 101.5,-144 180,-144 180,-121 101.5,-121"/>
<text text-anchor="start" x="137" y="-126.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-98 0,-121 101.5,-121 101.5,-98 0,-98"/>
<text text-anchor="start" x="36.5" y="-103.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="101.5,-98 101.5,-121 180,-121 180,-98 101.5,-98"/>
<text text-anchor="start" x="137" y="-103.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-75 0,-98 101.5,-98 101.5,-75 0,-75"/>
<text text-anchor="start" x="41.38" y="-80.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="101.5,-75 101.5,-98 180,-98 180,-75 101.5,-75"/>
<text text-anchor="start" x="137" y="-80.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-52 0,-75 101.5,-75 101.5,-52 0,-52"/>
<text text-anchor="start" x="42.12" y="-57.7" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="101.5,-52 101.5,-75 180,-75 180,-52 101.5,-52"/>
<text text-anchor="start" x="137" y="-57.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="604,-224 331,-224 331,0 604,0 604,-224"/>
<polygon fill="none" stroke="black" points="331.5,-201 331.5,-224 604.5,-224 604.5,-201 331.5,-201"/>
<text text-anchor="start" x="457.5" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-178 331.5,-201 375.5,-201 375.5,-178 331.5,-178"/>
<text text-anchor="start" x="335.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="375.5,-178 375.5,-201 398.5,-201 398.5,-178 375.5,-178"/>
<text text-anchor="start" x="379.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="398.5,-178 398.5,-201 530.5,-201 530.5,-178 398.5,-178"/>
<text text-anchor="start" x="402.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="530.5,-178 530.5,-201 560.5,-201 560.5,-178 530.5,-178"/>
<text text-anchor="start" x="534.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="560.5,-178 560.5,-201 604.5,-201 604.5,-178 560.5,-178"/>
<text text-anchor="start" x="564.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="374.5" y="-164.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-145.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="435" y="-145.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="528" y="-145.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-138 331.5,-140 604.5,-140 604.5,-138 331.5,-138"/>
<polygon fill="#895956" stroke="transparent" points="331.5,-136 331.5,-138 604.5,-138 604.5,-136 331.5,-136"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-134 331.5,-136 604.5,-136 604.5,-134 331.5,-134"/>
<text text-anchor="start" x="345" y="-120.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="435" y="-120.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="528.5" y="-120.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-113 331.5,-115 604.5,-115 604.5,-113 331.5,-113"/>
<polygon fill="#ff0000" stroke="transparent" points="331.5,-111 331.5,-113 604.5,-113 604.5,-111 331.5,-111"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-109 331.5,-111 604.5,-111 604.5,-109 331.5,-109"/>
<text text-anchor="start" x="350" y="-95.8" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="434" y="-95.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="534.5" y="-95.8" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-88 331.5,-90 604.5,-90 604.5,-88 331.5,-88"/>
<polygon fill="#ff8000" stroke="transparent" points="331.5,-86 331.5,-88 604.5,-88 604.5,-86 331.5,-86"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-84 331.5,-86 604.5,-86 604.5,-84 331.5,-84"/>
<text text-anchor="start" x="351" y="-70.8" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="435.5" y="-70.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="533.5" y="-70.8" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-63 331.5,-65 604.5,-65 604.5,-63 331.5,-63"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-61 331.5,-63 604.5,-63 604.5,-61 331.5,-61"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-59 331.5,-61 604.5,-61 604.5,-59 331.5,-59"/>
<text text-anchor="start" x="374.5" y="-45.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-26.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="449" y="-26.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 604.5,-21 604.5,-19 331.5,-19"/>
<text text-anchor="start" x="374.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="591.25,-225.5 324,-225.5 324,0 591.25,0 591.25,-225.5"/>
<polygon fill="none" stroke="black" points="324,-201.75 324,-225.5 591.25,-225.5 591.25,-201.75 324,-201.75"/>
<text text-anchor="start" x="447.12" y="-208.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324,-178 324,-201.75 366.5,-201.75 366.5,-178 324,-178"/>
<text text-anchor="start" x="328" y="-184.45" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="366.5,-178 366.5,-201.75 388.75,-201.75 388.75,-178 366.5,-178"/>
<text text-anchor="start" x="370.5" y="-184.45" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="388.75,-178 388.75,-201.75 519.75,-201.75 519.75,-178 388.75,-178"/>
<text text-anchor="start" x="392.75" y="-184.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="519.75,-178 519.75,-201.75 548.75,-201.75 548.75,-178 519.75,-178"/>
<text text-anchor="start" x="523.75" y="-184.45" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="548.75,-178 548.75,-201.75 591.25,-201.75 591.25,-178 548.75,-178"/>
<text text-anchor="start" x="552.75" y="-184.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="365.83" y="-162.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="336.58" y="-143.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="425.75" y="-143.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="516.42" y="-143.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-138 324,-140 591.25,-140 591.25,-138 324,-138"/>
<polygon fill="#895956" stroke="none" points="324,-136 324,-138 591.25,-138 591.25,-136 324,-136"/>
<polygon fill="#000000" stroke="none" points="324,-134 324,-136 591.25,-136 591.25,-134 324,-134"/>
<text text-anchor="start" x="337.71" y="-118.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="425.38" y="-118.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="517.54" y="-118.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-113 324,-115 591.25,-115 591.25,-113 324,-113"/>
<polygon fill="#ff0000" stroke="none" points="324,-111 324,-113 591.25,-113 591.25,-111 324,-111"/>
<polygon fill="#000000" stroke="none" points="324,-109 324,-111 591.25,-111 591.25,-109 324,-109"/>
<text text-anchor="start" x="342.58" y="-93.7" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="423.88" y="-93.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="523.17" y="-93.7" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="none" points="324,-88 324,-90 591.25,-90 591.25,-88 324,-88"/>
<polygon fill="#ff8000" stroke="none" points="324,-86 324,-88 591.25,-88 591.25,-86 324,-86"/>
<polygon fill="#000000" stroke="none" points="324,-84 324,-86 591.25,-86 591.25,-84 324,-84"/>
<text text-anchor="start" x="343.33" y="-68.7" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="426.12" y="-68.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="522.42" y="-68.7" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="none" points="324,-63 324,-65 591.25,-65 591.25,-63 324,-63"/>
<polygon fill="#ffff00" stroke="none" points="324,-61 324,-63 591.25,-63 591.25,-61 324,-61"/>
<polygon fill="#000000" stroke="none" points="324,-59 324,-61 591.25,-61 591.25,-59 324,-59"/>
<text text-anchor="start" x="365.83" y="-43.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="336.58" y="-24.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="438.88" y="-24.7" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="324,-19 324,-21 591.25,-21 591.25,-19 324,-19"/>
<text text-anchor="start" x="365.83" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-132C251.38,-132.03 267.36,-135.03 331,-135"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M187,-134C251.01,-134 266.99,-137 331,-137"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-136C250.64,-135.97 266.62,-138.97 331,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-130.75C244.51,-130.81 260.46,-134.81 324,-134.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M180,-132.75C244.02,-132.75 259.98,-136.75 324,-136.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-134.75C243.54,-134.69 259.49,-138.69 324,-138.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-108C251.25,-108.02 267.24,-110.02 331,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M187,-110C251.01,-110 266.99,-112 331,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-112C250.76,-111.98 266.75,-113.98 331,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-107.75C244.25,-107.77 260.24,-109.77 324,-109.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-109.75C244.01,-109.75 259.99,-111.75 324,-111.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-111.75C243.76,-111.73 259.75,-113.73 324,-113.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-85C251,-85 267,-85 331,-85"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M187,-87C251,-87 267,-87 331,-87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-89C251,-89 267,-89 331,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-84.75C244,-84.75 260,-84.75 324,-84.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M180,-86.75C244,-86.75 260,-86.75 324,-86.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-88.75C244,-88.75 260,-88.75 324,-88.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-62C250.76,-62.02 266.75,-60.02 331,-60"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-64C251.01,-64 266.99,-62 331,-62"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-66C251.25,-65.98 267.24,-63.98 331,-64"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-61.75C243.76,-61.77 259.75,-59.77 324,-59.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M180,-63.75C244.01,-63.75 259.99,-61.75 324,-61.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-65.75C244.25,-65.73 260.24,-63.73 324,-63.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-134C268.63,-134 249.37,-20 331,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-132.75C261.35,-132.75 242.65,-19.75 324,-19.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="935,-193 748,-193 748,-55 935,-55 935,-193"/>
<polygon fill="none" stroke="black" points="748.5,-170 748.5,-193 935.5,-193 935.5,-170 748.5,-170"/>
<text text-anchor="start" x="833" y="-177.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="748.5,-147 748.5,-170 844.5,-170 844.5,-147 748.5,-147"/>
<text text-anchor="start" x="752.5" y="-154.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="844.5,-147 844.5,-170 895.5,-170 895.5,-147 844.5,-147"/>
<text text-anchor="start" x="848.5" y="-154.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="895.5,-147 895.5,-170 935.5,-170 935.5,-147 895.5,-147"/>
<text text-anchor="start" x="899.5" y="-154.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="748.5,-124 748.5,-147 830.5,-147 830.5,-124 748.5,-124"/>
<text text-anchor="start" x="785.5" y="-131.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="830.5,-124 830.5,-147 935.5,-147 935.5,-124 830.5,-124"/>
<text text-anchor="start" x="867" y="-131.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="748.5,-101 748.5,-124 830.5,-124 830.5,-101 748.5,-101"/>
<text text-anchor="start" x="785.5" y="-108.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="830.5,-101 830.5,-124 935.5,-124 935.5,-101 830.5,-101"/>
<text text-anchor="start" x="868" y="-108.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="748.5,-78 748.5,-101 830.5,-101 830.5,-78 748.5,-78"/>
<text text-anchor="start" x="785.5" y="-85.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="830.5,-78 830.5,-101 935.5,-101 935.5,-78 830.5,-78"/>
<text text-anchor="start" x="873" y="-85.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="748.5,-55 748.5,-78 830.5,-78 830.5,-55 748.5,-55"/>
<text text-anchor="start" x="785.5" y="-62.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="830.5,-55 830.5,-78 935.5,-78 935.5,-55 830.5,-55"/>
<text text-anchor="start" x="874" y="-62.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="915.25,-194.5 735.25,-194.5 735.25,-55 915.25,-55 915.25,-194.5"/>
<polygon fill="none" stroke="black" points="735.25,-170.75 735.25,-194.5 915.25,-194.5 915.25,-170.75 735.25,-170.75"/>
<text text-anchor="start" x="817" y="-177.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="735.25,-147 735.25,-170.75 828,-170.75 828,-147 735.25,-147"/>
<text text-anchor="start" x="739.25" y="-153.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="828,-147 828,-170.75 877.25,-170.75 877.25,-147 828,-147"/>
<text text-anchor="start" x="832" y="-153.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="877.25,-147 877.25,-170.75 915.25,-170.75 915.25,-147 877.25,-147"/>
<text text-anchor="start" x="881.25" y="-153.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="735.25,-124 735.25,-147 813.75,-147 813.75,-124 735.25,-124"/>
<text text-anchor="start" x="770.75" y="-129.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="813.75,-124 813.75,-147 915.25,-147 915.25,-124 813.75,-124"/>
<text text-anchor="start" x="849.12" y="-129.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="735.25,-101 735.25,-124 813.75,-124 813.75,-101 735.25,-101"/>
<text text-anchor="start" x="770.75" y="-106.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="813.75,-101 813.75,-124 915.25,-124 915.25,-101 813.75,-101"/>
<text text-anchor="start" x="850.25" y="-106.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="735.25,-78 735.25,-101 813.75,-101 813.75,-78 735.25,-78"/>
<text text-anchor="start" x="770.75" y="-83.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="813.75,-78 813.75,-101 915.25,-101 915.25,-78 813.75,-78"/>
<text text-anchor="start" x="855.12" y="-83.7" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="735.25,-55 735.25,-78 813.75,-78 813.75,-55 735.25,-55"/>
<text text-anchor="start" x="770.75" y="-60.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="813.75,-55 813.75,-78 915.25,-78 915.25,-55 813.75,-55"/>
<text text-anchor="start" x="855.88" y="-60.7" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-135C667.88,-135 683.87,-134 748,-134"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M604,-137C668,-137 684,-136 748,-136"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-139C668.13,-139 684.12,-138 748,-138"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-134.75C655.13,-134.75 671.12,-133.75 735.25,-133.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M591.25,-136.75C655.25,-136.75 671.25,-135.75 735.25,-135.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-138.75C655.38,-138.75 671.37,-137.75 735.25,-137.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-110C668,-110 684,-110 748,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M604,-112C668,-112 684,-112 748,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-114C668,-114 684,-114 748,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-109.75C655.38,-109.75 671.37,-110.75 735.25,-110.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M591.25,-111.75C655.25,-111.75 671.25,-112.75 735.25,-112.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-113.75C655.13,-113.75 671.12,-114.75 735.25,-114.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-85C667.04,-85.86 681.68,-64.86 748,-64"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M604,-87C668.68,-87 683.32,-66 748,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-89C670.32,-88.14 684.96,-67.14 748,-68"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-84.75C654.26,-85.56 669.03,-65.56 735.25,-64.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M591.25,-86.75C655.86,-86.75 670.64,-66.75 735.25,-66.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-88.75C657.47,-87.94 672.24,-67.94 735.25,-68.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-60C670.9,-61.09 684.67,-88.09 748,-87"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M604,-62C669.12,-62 682.88,-89 748,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-64C667.33,-62.91 681.1,-89.91 748,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-59.75C658.25,-60.88 671.85,-88.88 735.25,-87.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M591.25,-61.75C656.45,-61.75 670.05,-89.75 735.25,-89.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M591.25,-63.75C654.65,-62.62 668.25,-90.62 735.25,-91.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 14 KiB

4
examples/ex02.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

358
examples/ex02.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex02</title>
<style>
@ -30,261 +30,261 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="881pt" height="458pt"
viewBox="0.00 0.00 881.00 458.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 454)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-454 877,-454 877,4 -4,4"/>
<svg width="863pt" height="464pt"
viewBox="0.00 0.00 862.75 463.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 459.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-459.5 858.75,-459.5 858.75,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-262 0,-262 0,-170 183,-170 183,-262"/>
<polygon fill="none" stroke="black" points="0.5,-239 0.5,-262 183.5,-262 183.5,-239 0.5,-239"/>
<text text-anchor="start" x="83" y="-246.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-216 0.5,-239 104.5,-239 104.5,-216 0.5,-216"/>
<text text-anchor="start" x="4.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-216 104.5,-239 143.5,-239 143.5,-216 104.5,-216"/>
<text text-anchor="start" x="108.5" y="-223.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-216 143.5,-239 183.5,-239 183.5,-216 143.5,-216"/>
<text text-anchor="start" x="147.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-193 0.5,-216 104.5,-216 104.5,-193 0.5,-193"/>
<text text-anchor="start" x="36.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-193 104.5,-216 183.5,-216 183.5,-193 104.5,-193"/>
<text text-anchor="start" x="140" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-170 0.5,-193 104.5,-193 104.5,-170 0.5,-170"/>
<text text-anchor="start" x="37.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-170 104.5,-193 183.5,-193 183.5,-170 104.5,-170"/>
<text text-anchor="start" x="140" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="177.75,-264.5 0,-264.5 0,-171 177.75,-171 177.75,-264.5"/>
<polygon fill="none" stroke="black" points="0,-240.75 0,-264.5 177.75,-264.5 177.75,-240.75 0,-240.75"/>
<text text-anchor="start" x="80.62" y="-247.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-217 0,-240.75 101.75,-240.75 101.75,-217 0,-217"/>
<text text-anchor="start" x="4" y="-223.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="101.75,-217 101.75,-240.75 139.75,-240.75 139.75,-217 101.75,-217"/>
<text text-anchor="start" x="105.75" y="-223.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="139.75,-217 139.75,-240.75 177.75,-240.75 177.75,-217 139.75,-217"/>
<text text-anchor="start" x="143.75" y="-223.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-194 0,-217 100.38,-217 100.38,-194 0,-194"/>
<text text-anchor="start" x="34.81" y="-199.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100.38,-194 100.38,-217 177.75,-217 177.75,-194 100.38,-194"/>
<text text-anchor="start" x="135.31" y="-199.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-171 0,-194 100.38,-194 100.38,-171 0,-171"/>
<text text-anchor="start" x="35.94" y="-176.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="100.38,-171 100.38,-194 177.75,-194 177.75,-171 100.38,-171"/>
<text text-anchor="start" x="135.31" y="-176.7" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="534,-450 327,-450 327,-316 534,-316 534,-450"/>
<polygon fill="none" stroke="black" points="327.5,-427 327.5,-450 534.5,-450 534.5,-427 327.5,-427"/>
<text text-anchor="start" x="420.5" y="-434.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-404 327.5,-427 353.5,-427 353.5,-404 327.5,-404"/>
<text text-anchor="start" x="333" y="-411.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-404 353.5,-427 488.5,-427 488.5,-404 353.5,-404"/>
<text text-anchor="start" x="359" y="-411.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-404 488.5,-427 534.5,-427 534.5,-404 488.5,-404"/>
<text text-anchor="start" x="493.5" y="-411.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-390.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-371.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-371.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-371.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-364 327.5,-366 534.5,-366 534.5,-364 327.5,-364"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-362 327.5,-364 534.5,-364 534.5,-362 327.5,-362"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-360 327.5,-362 534.5,-362 534.5,-360 327.5,-360"/>
<text text-anchor="start" x="330" y="-346.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-346.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-346.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-339 327.5,-341 534.5,-341 534.5,-339 327.5,-339"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-337 327.5,-339 534.5,-339 534.5,-337 327.5,-337"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-335 327.5,-337 534.5,-337 534.5,-335 327.5,-335"/>
<text text-anchor="start" x="359.5" y="-321.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="521.75,-455.5 321.75,-455.5 321.75,-320 521.75,-320 521.75,-455.5"/>
<polygon fill="none" stroke="black" points="321.75,-431.75 321.75,-455.5 521.75,-455.5 521.75,-431.75 321.75,-431.75"/>
<text text-anchor="start" x="411.25" y="-438.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="321.75,-408 321.75,-431.75 345.42,-431.75 345.42,-408 321.75,-408"/>
<text text-anchor="start" x="326.46" y="-414.45" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="345.42,-408 345.42,-431.75 477.83,-431.75 477.83,-408 345.42,-408"/>
<text text-anchor="start" x="350.12" y="-414.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="477.83,-408 477.83,-431.75 521.75,-431.75 521.75,-408 477.83,-408"/>
<text text-anchor="start" x="482.54" y="-414.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="352.88" y="-392.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="323.62" y="-373.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="390.25" y="-373.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="457.62" y="-373.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-368 321.75,-370 521.75,-370 521.75,-368 321.75,-368"/>
<polygon fill="#000000" stroke="none" points="321.75,-366 321.75,-368 521.75,-368 521.75,-366 321.75,-366"/>
<polygon fill="#000000" stroke="none" points="321.75,-364 321.75,-366 521.75,-366 521.75,-364 321.75,-364"/>
<text text-anchor="start" x="324.75" y="-348.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="389.5" y="-348.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="458.75" y="-348.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-343 321.75,-345 521.75,-345 521.75,-343 321.75,-343"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-341 321.75,-343 521.75,-343 521.75,-341 321.75,-341"/>
<polygon fill="#000000" stroke="none" points="321.75,-339 321.75,-341 521.75,-341 521.75,-339 321.75,-339"/>
<text text-anchor="start" x="352.88" y="-323.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C280.26,-204.56 233.58,-363.56 327,-361"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C278.34,-204 231.66,-363 327,-363"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C276.42,-203.44 229.74,-362.44 327,-365"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-203.75C275.67,-206.32 227.67,-367.32 321.75,-364.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-205.75C273.75,-205.75 225.75,-366.75 321.75,-366.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-207.75C271.83,-205.18 223.83,-366.18 321.75,-368.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C279.6,-181.56 234.24,-338.56 327,-336"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C277.68,-181 232.32,-338 327,-338"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C275.76,-180.44 230.4,-337.44 327,-340"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-180.75C275.01,-183.31 228.33,-342.31 321.75,-339.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-182.75C273.09,-182.75 226.41,-341.75 321.75,-341.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-184.75C271.17,-182.19 224.49,-341.19 321.75,-343.75"/>
</g>
<!-- W2 -->
<g id="node6" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" points="534,-292 327,-292 327,-158 534,-158 534,-292"/>
<polygon fill="none" stroke="black" points="327.5,-269 327.5,-292 534.5,-292 534.5,-269 327.5,-269"/>
<text text-anchor="start" x="420.5" y="-276.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="327.5,-246 327.5,-269 353.5,-269 353.5,-246 327.5,-246"/>
<text text-anchor="start" x="333" y="-253.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-246 353.5,-269 488.5,-269 488.5,-246 353.5,-246"/>
<text text-anchor="start" x="359" y="-253.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-246 488.5,-269 534.5,-269 534.5,-246 488.5,-246"/>
<text text-anchor="start" x="493.5" y="-253.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-232.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-213.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-213.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-213.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-206 327.5,-208 534.5,-208 534.5,-206 327.5,-206"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-204 327.5,-206 534.5,-206 534.5,-204 327.5,-204"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 534.5,-204 534.5,-202 327.5,-202"/>
<text text-anchor="start" x="330" y="-188.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-188.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-188.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-181 327.5,-183 534.5,-183 534.5,-181 327.5,-181"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-179 327.5,-181 534.5,-181 534.5,-179 327.5,-179"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 534.5,-179 534.5,-177 327.5,-177"/>
<text text-anchor="start" x="359.5" y="-163.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="521.75,-295.5 321.75,-295.5 321.75,-160 521.75,-160 521.75,-295.5"/>
<polygon fill="none" stroke="black" points="321.75,-271.75 321.75,-295.5 521.75,-295.5 521.75,-271.75 321.75,-271.75"/>
<text text-anchor="start" x="411.25" y="-278.2" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="321.75,-248 321.75,-271.75 345.42,-271.75 345.42,-248 321.75,-248"/>
<text text-anchor="start" x="326.46" y="-254.45" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="345.42,-248 345.42,-271.75 477.83,-271.75 477.83,-248 345.42,-248"/>
<text text-anchor="start" x="350.12" y="-254.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="477.83,-248 477.83,-271.75 521.75,-271.75 521.75,-248 477.83,-248"/>
<text text-anchor="start" x="482.54" y="-254.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="352.88" y="-232.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="323.62" y="-213.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="390.25" y="-213.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="457.62" y="-213.7" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-208 321.75,-210 521.75,-210 521.75,-208 321.75,-208"/>
<polygon fill="#000000" stroke="none" points="321.75,-206 321.75,-208 521.75,-208 521.75,-206 321.75,-206"/>
<polygon fill="#000000" stroke="none" points="321.75,-204 321.75,-206 521.75,-206 521.75,-204 321.75,-204"/>
<text text-anchor="start" x="324.75" y="-188.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="389.5" y="-188.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="458.75" y="-188.7" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-183 321.75,-185 521.75,-185 521.75,-183 321.75,-183"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-181 321.75,-183 521.75,-183 521.75,-181 321.75,-181"/>
<polygon fill="#000000" stroke="none" points="321.75,-179 321.75,-181 521.75,-181 521.75,-179 321.75,-179"/>
<text text-anchor="start" x="352.88" y="-163.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C247.13,-202 263.12,-203 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C247,-204 263,-205 327,-205"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C246.88,-206 262.87,-207 327,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-203.75C241.88,-203.75 257.87,-204.75 321.75,-204.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-205.75C241.75,-205.75 257.75,-206.75 321.75,-206.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-207.75C241.63,-207.75 257.62,-208.75 321.75,-208.75"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C246.88,-179 262.87,-178 327,-178"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C247,-181 263,-180 327,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C247.13,-183 263.12,-182 327,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-180.75C241.63,-180.75 257.62,-179.75 321.75,-179.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-182.75C241.75,-182.75 257.75,-181.75 321.75,-181.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-184.75C241.88,-184.75 257.87,-183.75 321.75,-183.75"/>
</g>
<!-- W3 -->
<g id="node7" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" points="534,-134 327,-134 327,0 534,0 534,-134"/>
<polygon fill="none" stroke="black" points="327.5,-111 327.5,-134 534.5,-134 534.5,-111 327.5,-111"/>
<text text-anchor="start" x="420.5" y="-118.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="327.5,-88 327.5,-111 353.5,-111 353.5,-88 327.5,-88"/>
<text text-anchor="start" x="333" y="-95.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-88 353.5,-111 488.5,-111 488.5,-88 353.5,-88"/>
<text text-anchor="start" x="359" y="-95.8" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="488.5,-88 488.5,-111 534.5,-111 534.5,-88 488.5,-88"/>
<text text-anchor="start" x="493.5" y="-95.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-74.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-55.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-55.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-48 327.5,-50 534.5,-50 534.5,-48 327.5,-48"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-46 327.5,-48 534.5,-48 534.5,-46 327.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-44 327.5,-46 534.5,-46 534.5,-44 327.5,-44"/>
<text text-anchor="start" x="330" y="-30.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-30.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-23 327.5,-25 534.5,-25 534.5,-23 327.5,-23"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-21 327.5,-23 534.5,-23 534.5,-21 327.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-19 327.5,-21 534.5,-21 534.5,-19 327.5,-19"/>
<text text-anchor="start" x="359.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="521.75,-135.5 321.75,-135.5 321.75,0 521.75,0 521.75,-135.5"/>
<polygon fill="none" stroke="black" points="321.75,-111.75 321.75,-135.5 521.75,-135.5 521.75,-111.75 321.75,-111.75"/>
<text text-anchor="start" x="411.25" y="-118.2" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="321.75,-88 321.75,-111.75 345.42,-111.75 345.42,-88 321.75,-88"/>
<text text-anchor="start" x="326.46" y="-94.45" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="345.42,-88 345.42,-111.75 477.83,-111.75 477.83,-88 345.42,-88"/>
<text text-anchor="start" x="350.12" y="-94.45" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="477.83,-88 477.83,-111.75 521.75,-111.75 521.75,-88 477.83,-88"/>
<text text-anchor="start" x="482.54" y="-94.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="352.88" y="-72.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="323.62" y="-53.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="390.25" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="457.62" y="-53.7" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-48 321.75,-50 521.75,-50 521.75,-48 321.75,-48"/>
<polygon fill="#000000" stroke="none" points="321.75,-46 321.75,-48 521.75,-48 521.75,-46 321.75,-46"/>
<polygon fill="#000000" stroke="none" points="321.75,-44 321.75,-46 521.75,-46 521.75,-44 321.75,-44"/>
<text text-anchor="start" x="324.75" y="-28.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="389.5" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="458.75" y="-28.7" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-23 321.75,-25 521.75,-25 521.75,-23 321.75,-23"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-21 321.75,-23 521.75,-23 521.75,-21 321.75,-21"/>
<polygon fill="#000000" stroke="none" points="321.75,-19 321.75,-21 521.75,-21 521.75,-19 321.75,-19"/>
<text text-anchor="start" x="352.88" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C275.76,-204.56 230.4,-47.56 327,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C277.68,-204 232.32,-47 327,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C279.6,-203.44 234.24,-46.44 327,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-203.75C271.17,-206.31 224.49,-47.31 321.75,-44.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-205.75C273.09,-205.75 226.41,-46.75 321.75,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-207.75C275.01,-205.19 228.33,-46.19 321.75,-48.75"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C276.42,-181.56 229.74,-22.56 327,-20"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C278.34,-181 231.66,-22 327,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C280.26,-180.44 233.58,-21.44 327,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-180.75C271.83,-183.32 223.83,-22.32 321.75,-19.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-182.75C273.75,-182.75 225.75,-21.75 321.75,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-184.75C275.67,-182.18 227.67,-21.18 321.75,-23.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="873,-420 678,-420 678,-328 873,-328 873,-420"/>
<polygon fill="none" stroke="black" points="678.5,-397 678.5,-420 873.5,-420 873.5,-397 678.5,-397"/>
<text text-anchor="start" x="767" y="-404.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="678.5,-374 678.5,-397 782.5,-397 782.5,-374 678.5,-374"/>
<text text-anchor="start" x="682.5" y="-381.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-374 782.5,-397 833.5,-397 833.5,-374 782.5,-374"/>
<text text-anchor="start" x="786.5" y="-381.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-374 833.5,-397 873.5,-397 873.5,-374 833.5,-374"/>
<text text-anchor="start" x="837.5" y="-381.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-351 678.5,-374 764.5,-374 764.5,-351 678.5,-351"/>
<text text-anchor="start" x="717.5" y="-358.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-351 764.5,-374 873.5,-374 873.5,-351 764.5,-351"/>
<text text-anchor="start" x="803" y="-358.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-328 678.5,-351 764.5,-351 764.5,-328 678.5,-328"/>
<text text-anchor="start" x="717.5" y="-335.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-328 764.5,-351 873.5,-351 873.5,-328 764.5,-328"/>
<text text-anchor="start" x="804" y="-335.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="854.75,-424.5 665.75,-424.5 665.75,-331 854.75,-331 854.75,-424.5"/>
<polygon fill="none" stroke="black" points="665.75,-400.75 665.75,-424.5 854.75,-424.5 854.75,-400.75 665.75,-400.75"/>
<text text-anchor="start" x="752" y="-407.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="665.75,-377 665.75,-400.75 767.5,-400.75 767.5,-377 665.75,-377"/>
<text text-anchor="start" x="669.75" y="-383.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="767.5,-377 767.5,-400.75 816.75,-400.75 816.75,-377 767.5,-377"/>
<text text-anchor="start" x="771.5" y="-383.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="816.75,-377 816.75,-400.75 854.75,-400.75 854.75,-377 816.75,-377"/>
<text text-anchor="start" x="820.75" y="-383.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="665.75,-354 665.75,-377 748.75,-377 748.75,-354 665.75,-354"/>
<text text-anchor="start" x="703.5" y="-359.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="748.75,-354 748.75,-377 854.75,-377 854.75,-354 748.75,-354"/>
<text text-anchor="start" x="786.38" y="-359.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="665.75,-331 665.75,-354 748.75,-354 748.75,-331 665.75,-331"/>
<text text-anchor="start" x="703.5" y="-336.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="748.75,-331 748.75,-354 854.75,-354 854.75,-331 748.75,-331"/>
<text text-anchor="start" x="787.5" y="-336.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="873,-262 678,-262 678,-170 873,-170 873,-262"/>
<polygon fill="none" stroke="black" points="678.5,-239 678.5,-262 873.5,-262 873.5,-239 678.5,-239"/>
<text text-anchor="start" x="767" y="-246.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="678.5,-216 678.5,-239 782.5,-239 782.5,-216 678.5,-216"/>
<text text-anchor="start" x="682.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-216 782.5,-239 833.5,-239 833.5,-216 782.5,-216"/>
<text text-anchor="start" x="786.5" y="-223.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-216 833.5,-239 873.5,-239 873.5,-216 833.5,-216"/>
<text text-anchor="start" x="837.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-193 678.5,-216 764.5,-216 764.5,-193 678.5,-193"/>
<text text-anchor="start" x="717.5" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-193 764.5,-216 873.5,-216 873.5,-193 764.5,-193"/>
<text text-anchor="start" x="803" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-170 678.5,-193 764.5,-193 764.5,-170 678.5,-170"/>
<text text-anchor="start" x="717.5" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-170 764.5,-193 873.5,-193 873.5,-170 764.5,-170"/>
<text text-anchor="start" x="804" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="854.75,-264.5 665.75,-264.5 665.75,-171 854.75,-171 854.75,-264.5"/>
<polygon fill="none" stroke="black" points="665.75,-240.75 665.75,-264.5 854.75,-264.5 854.75,-240.75 665.75,-240.75"/>
<text text-anchor="start" x="752" y="-247.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="665.75,-217 665.75,-240.75 767.5,-240.75 767.5,-217 665.75,-217"/>
<text text-anchor="start" x="669.75" y="-223.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="767.5,-217 767.5,-240.75 816.75,-240.75 816.75,-217 767.5,-217"/>
<text text-anchor="start" x="771.5" y="-223.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="816.75,-217 816.75,-240.75 854.75,-240.75 854.75,-217 816.75,-217"/>
<text text-anchor="start" x="820.75" y="-223.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="665.75,-194 665.75,-217 748.75,-217 748.75,-194 665.75,-194"/>
<text text-anchor="start" x="703.5" y="-199.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="748.75,-194 748.75,-217 854.75,-217 854.75,-194 748.75,-194"/>
<text text-anchor="start" x="786.38" y="-199.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="665.75,-171 665.75,-194 748.75,-194 748.75,-171 665.75,-171"/>
<text text-anchor="start" x="703.5" y="-176.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="748.75,-171 748.75,-194 854.75,-194 854.75,-171 748.75,-171"/>
<text text-anchor="start" x="787.5" y="-176.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="873,-104 678,-104 678,-12 873,-12 873,-104"/>
<polygon fill="none" stroke="black" points="678.5,-81 678.5,-104 873.5,-104 873.5,-81 678.5,-81"/>
<text text-anchor="start" x="767" y="-88.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="678.5,-58 678.5,-81 782.5,-81 782.5,-58 678.5,-58"/>
<text text-anchor="start" x="682.5" y="-65.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-58 782.5,-81 833.5,-81 833.5,-58 782.5,-58"/>
<text text-anchor="start" x="786.5" y="-65.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-58 833.5,-81 873.5,-81 873.5,-58 833.5,-58"/>
<text text-anchor="start" x="837.5" y="-65.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-35 678.5,-58 764.5,-58 764.5,-35 678.5,-35"/>
<text text-anchor="start" x="717.5" y="-42.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-35 764.5,-58 873.5,-58 873.5,-35 764.5,-35"/>
<text text-anchor="start" x="803" y="-42.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-12 678.5,-35 764.5,-35 764.5,-12 678.5,-12"/>
<text text-anchor="start" x="717.5" y="-19.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-12 764.5,-35 873.5,-35 873.5,-12 764.5,-12"/>
<text text-anchor="start" x="804" y="-19.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="854.75,-104.5 665.75,-104.5 665.75,-11 854.75,-11 854.75,-104.5"/>
<polygon fill="none" stroke="black" points="665.75,-80.75 665.75,-104.5 854.75,-104.5 854.75,-80.75 665.75,-80.75"/>
<text text-anchor="start" x="752" y="-87.2" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="665.75,-57 665.75,-80.75 767.5,-80.75 767.5,-57 665.75,-57"/>
<text text-anchor="start" x="669.75" y="-63.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="767.5,-57 767.5,-80.75 816.75,-80.75 816.75,-57 767.5,-57"/>
<text text-anchor="start" x="771.5" y="-63.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="816.75,-57 816.75,-80.75 854.75,-80.75 854.75,-57 816.75,-57"/>
<text text-anchor="start" x="820.75" y="-63.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="665.75,-34 665.75,-57 748.75,-57 748.75,-34 665.75,-34"/>
<text text-anchor="start" x="703.5" y="-39.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="748.75,-34 748.75,-57 854.75,-57 854.75,-34 748.75,-34"/>
<text text-anchor="start" x="786.38" y="-39.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="665.75,-11 665.75,-34 748.75,-34 748.75,-11 665.75,-11"/>
<text text-anchor="start" x="703.5" y="-16.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="748.75,-11 748.75,-34 854.75,-34 854.75,-11 748.75,-11"/>
<text text-anchor="start" x="787.5" y="-16.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-361C597.88,-361 613.87,-360 678,-360"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-363C598,-363 614,-362 678,-362"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-365C598.13,-365 614.12,-364 678,-364"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-364.75C585.63,-364.75 601.62,-363.75 665.75,-363.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-366.75C585.75,-366.75 601.75,-365.75 665.75,-365.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-368.75C585.88,-368.75 601.87,-367.75 665.75,-367.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-336C598.13,-336 614.12,-337 678,-337"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-338C598,-338 614,-339 678,-339"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-340C597.88,-340 613.87,-341 678,-341"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-339.75C585.88,-339.75 601.87,-340.75 665.75,-340.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M521.75,-341.75C585.75,-341.75 601.75,-342.75 665.75,-342.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-343.75C585.63,-343.75 601.62,-344.75 665.75,-344.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-203C597.88,-203 613.87,-202 678,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-205C598,-205 614,-204 678,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-207C598.13,-207 614.12,-206 678,-206"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-204.75C585.63,-204.75 601.62,-203.75 665.75,-203.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-206.75C585.75,-206.75 601.75,-205.75 665.75,-205.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-208.75C585.88,-208.75 601.87,-207.75 665.75,-207.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-178C598.13,-178 614.12,-179 678,-179"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-180C598,-180 614,-181 678,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-182C597.88,-182 613.87,-183 678,-183"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-179.75C585.88,-179.75 601.87,-180.75 665.75,-180.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M521.75,-181.75C585.75,-181.75 601.75,-182.75 665.75,-182.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-183.75C585.63,-183.75 601.62,-184.75 665.75,-184.75"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-45C597.88,-45 613.87,-44 678,-44"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-47C598,-47 614,-46 678,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-49C598.13,-49 614.12,-48 678,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-44.75C585.63,-44.75 601.62,-43.75 665.75,-43.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-46.75C585.75,-46.75 601.75,-45.75 665.75,-45.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-48.75C585.88,-48.75 601.87,-47.75 665.75,-47.75"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-20C598.13,-20 614.12,-21 678,-21"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-22C598,-22 614,-23 678,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-24C597.88,-24 613.87,-25 678,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-19.75C585.88,-19.75 601.87,-20.75 665.75,-20.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M521.75,-21.75C585.75,-21.75 601.75,-22.75 665.75,-22.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-23.75C585.63,-23.75 601.62,-24.75 665.75,-24.75"/>
</g>
</g>
</svg>

BIN
examples/ex02.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 77 KiB

356
examples/ex02.svg generated
View File

@ -1,261 +1,261 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="881pt" height="458pt"
viewBox="0.00 0.00 881.00 458.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 454)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-454 877,-454 877,4 -4,4"/>
<svg width="863pt" height="464pt"
viewBox="0.00 0.00 862.75 463.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 459.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-459.5 858.75,-459.5 858.75,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-262 0,-262 0,-170 183,-170 183,-262"/>
<polygon fill="none" stroke="black" points="0.5,-239 0.5,-262 183.5,-262 183.5,-239 0.5,-239"/>
<text text-anchor="start" x="83" y="-246.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-216 0.5,-239 104.5,-239 104.5,-216 0.5,-216"/>
<text text-anchor="start" x="4.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-216 104.5,-239 143.5,-239 143.5,-216 104.5,-216"/>
<text text-anchor="start" x="108.5" y="-223.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-216 143.5,-239 183.5,-239 183.5,-216 143.5,-216"/>
<text text-anchor="start" x="147.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-193 0.5,-216 104.5,-216 104.5,-193 0.5,-193"/>
<text text-anchor="start" x="36.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-193 104.5,-216 183.5,-216 183.5,-193 104.5,-193"/>
<text text-anchor="start" x="140" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-170 0.5,-193 104.5,-193 104.5,-170 0.5,-170"/>
<text text-anchor="start" x="37.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-170 104.5,-193 183.5,-193 183.5,-170 104.5,-170"/>
<text text-anchor="start" x="140" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="177.75,-264.5 0,-264.5 0,-171 177.75,-171 177.75,-264.5"/>
<polygon fill="none" stroke="black" points="0,-240.75 0,-264.5 177.75,-264.5 177.75,-240.75 0,-240.75"/>
<text text-anchor="start" x="80.62" y="-247.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-217 0,-240.75 101.75,-240.75 101.75,-217 0,-217"/>
<text text-anchor="start" x="4" y="-223.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="101.75,-217 101.75,-240.75 139.75,-240.75 139.75,-217 101.75,-217"/>
<text text-anchor="start" x="105.75" y="-223.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="139.75,-217 139.75,-240.75 177.75,-240.75 177.75,-217 139.75,-217"/>
<text text-anchor="start" x="143.75" y="-223.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-194 0,-217 100.38,-217 100.38,-194 0,-194"/>
<text text-anchor="start" x="34.81" y="-199.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100.38,-194 100.38,-217 177.75,-217 177.75,-194 100.38,-194"/>
<text text-anchor="start" x="135.31" y="-199.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-171 0,-194 100.38,-194 100.38,-171 0,-171"/>
<text text-anchor="start" x="35.94" y="-176.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="100.38,-171 100.38,-194 177.75,-194 177.75,-171 100.38,-171"/>
<text text-anchor="start" x="135.31" y="-176.7" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="534,-450 327,-450 327,-316 534,-316 534,-450"/>
<polygon fill="none" stroke="black" points="327.5,-427 327.5,-450 534.5,-450 534.5,-427 327.5,-427"/>
<text text-anchor="start" x="420.5" y="-434.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-404 327.5,-427 353.5,-427 353.5,-404 327.5,-404"/>
<text text-anchor="start" x="333" y="-411.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-404 353.5,-427 488.5,-427 488.5,-404 353.5,-404"/>
<text text-anchor="start" x="359" y="-411.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-404 488.5,-427 534.5,-427 534.5,-404 488.5,-404"/>
<text text-anchor="start" x="493.5" y="-411.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-390.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-371.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-371.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-371.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-364 327.5,-366 534.5,-366 534.5,-364 327.5,-364"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-362 327.5,-364 534.5,-364 534.5,-362 327.5,-362"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-360 327.5,-362 534.5,-362 534.5,-360 327.5,-360"/>
<text text-anchor="start" x="330" y="-346.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-346.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-346.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-339 327.5,-341 534.5,-341 534.5,-339 327.5,-339"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-337 327.5,-339 534.5,-339 534.5,-337 327.5,-337"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-335 327.5,-337 534.5,-337 534.5,-335 327.5,-335"/>
<text text-anchor="start" x="359.5" y="-321.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="521.75,-455.5 321.75,-455.5 321.75,-320 521.75,-320 521.75,-455.5"/>
<polygon fill="none" stroke="black" points="321.75,-431.75 321.75,-455.5 521.75,-455.5 521.75,-431.75 321.75,-431.75"/>
<text text-anchor="start" x="411.25" y="-438.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="321.75,-408 321.75,-431.75 345.42,-431.75 345.42,-408 321.75,-408"/>
<text text-anchor="start" x="326.46" y="-414.45" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="345.42,-408 345.42,-431.75 477.83,-431.75 477.83,-408 345.42,-408"/>
<text text-anchor="start" x="350.12" y="-414.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="477.83,-408 477.83,-431.75 521.75,-431.75 521.75,-408 477.83,-408"/>
<text text-anchor="start" x="482.54" y="-414.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="352.88" y="-392.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="323.62" y="-373.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="390.25" y="-373.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="457.62" y="-373.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-368 321.75,-370 521.75,-370 521.75,-368 321.75,-368"/>
<polygon fill="#000000" stroke="none" points="321.75,-366 321.75,-368 521.75,-368 521.75,-366 321.75,-366"/>
<polygon fill="#000000" stroke="none" points="321.75,-364 321.75,-366 521.75,-366 521.75,-364 321.75,-364"/>
<text text-anchor="start" x="324.75" y="-348.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="389.5" y="-348.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="458.75" y="-348.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-343 321.75,-345 521.75,-345 521.75,-343 321.75,-343"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-341 321.75,-343 521.75,-343 521.75,-341 321.75,-341"/>
<polygon fill="#000000" stroke="none" points="321.75,-339 321.75,-341 521.75,-341 521.75,-339 321.75,-339"/>
<text text-anchor="start" x="352.88" y="-323.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C280.26,-204.56 233.58,-363.56 327,-361"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C278.34,-204 231.66,-363 327,-363"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C276.42,-203.44 229.74,-362.44 327,-365"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-203.75C275.67,-206.32 227.67,-367.32 321.75,-364.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-205.75C273.75,-205.75 225.75,-366.75 321.75,-366.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-207.75C271.83,-205.18 223.83,-366.18 321.75,-368.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C279.6,-181.56 234.24,-338.56 327,-336"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C277.68,-181 232.32,-338 327,-338"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C275.76,-180.44 230.4,-337.44 327,-340"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-180.75C275.01,-183.31 228.33,-342.31 321.75,-339.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-182.75C273.09,-182.75 226.41,-341.75 321.75,-341.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-184.75C271.17,-182.19 224.49,-341.19 321.75,-343.75"/>
</g>
<!-- W2 -->
<g id="node6" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" points="534,-292 327,-292 327,-158 534,-158 534,-292"/>
<polygon fill="none" stroke="black" points="327.5,-269 327.5,-292 534.5,-292 534.5,-269 327.5,-269"/>
<text text-anchor="start" x="420.5" y="-276.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="327.5,-246 327.5,-269 353.5,-269 353.5,-246 327.5,-246"/>
<text text-anchor="start" x="333" y="-253.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-246 353.5,-269 488.5,-269 488.5,-246 353.5,-246"/>
<text text-anchor="start" x="359" y="-253.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-246 488.5,-269 534.5,-269 534.5,-246 488.5,-246"/>
<text text-anchor="start" x="493.5" y="-253.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-232.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-213.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-213.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-213.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-206 327.5,-208 534.5,-208 534.5,-206 327.5,-206"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-204 327.5,-206 534.5,-206 534.5,-204 327.5,-204"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 534.5,-204 534.5,-202 327.5,-202"/>
<text text-anchor="start" x="330" y="-188.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-188.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-188.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-181 327.5,-183 534.5,-183 534.5,-181 327.5,-181"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-179 327.5,-181 534.5,-181 534.5,-179 327.5,-179"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 534.5,-179 534.5,-177 327.5,-177"/>
<text text-anchor="start" x="359.5" y="-163.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="521.75,-295.5 321.75,-295.5 321.75,-160 521.75,-160 521.75,-295.5"/>
<polygon fill="none" stroke="black" points="321.75,-271.75 321.75,-295.5 521.75,-295.5 521.75,-271.75 321.75,-271.75"/>
<text text-anchor="start" x="411.25" y="-278.2" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="321.75,-248 321.75,-271.75 345.42,-271.75 345.42,-248 321.75,-248"/>
<text text-anchor="start" x="326.46" y="-254.45" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="345.42,-248 345.42,-271.75 477.83,-271.75 477.83,-248 345.42,-248"/>
<text text-anchor="start" x="350.12" y="-254.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="477.83,-248 477.83,-271.75 521.75,-271.75 521.75,-248 477.83,-248"/>
<text text-anchor="start" x="482.54" y="-254.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="352.88" y="-232.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="323.62" y="-213.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="390.25" y="-213.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="457.62" y="-213.7" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-208 321.75,-210 521.75,-210 521.75,-208 321.75,-208"/>
<polygon fill="#000000" stroke="none" points="321.75,-206 321.75,-208 521.75,-208 521.75,-206 321.75,-206"/>
<polygon fill="#000000" stroke="none" points="321.75,-204 321.75,-206 521.75,-206 521.75,-204 321.75,-204"/>
<text text-anchor="start" x="324.75" y="-188.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="389.5" y="-188.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="458.75" y="-188.7" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-183 321.75,-185 521.75,-185 521.75,-183 321.75,-183"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-181 321.75,-183 521.75,-183 521.75,-181 321.75,-181"/>
<polygon fill="#000000" stroke="none" points="321.75,-179 321.75,-181 521.75,-181 521.75,-179 321.75,-179"/>
<text text-anchor="start" x="352.88" y="-163.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C247.13,-202 263.12,-203 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C247,-204 263,-205 327,-205"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C246.88,-206 262.87,-207 327,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-203.75C241.88,-203.75 257.87,-204.75 321.75,-204.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-205.75C241.75,-205.75 257.75,-206.75 321.75,-206.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-207.75C241.63,-207.75 257.62,-208.75 321.75,-208.75"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C246.88,-179 262.87,-178 327,-178"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C247,-181 263,-180 327,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C247.13,-183 263.12,-182 327,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-180.75C241.63,-180.75 257.62,-179.75 321.75,-179.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-182.75C241.75,-182.75 257.75,-181.75 321.75,-181.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-184.75C241.88,-184.75 257.87,-183.75 321.75,-183.75"/>
</g>
<!-- W3 -->
<g id="node7" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" points="534,-134 327,-134 327,0 534,0 534,-134"/>
<polygon fill="none" stroke="black" points="327.5,-111 327.5,-134 534.5,-134 534.5,-111 327.5,-111"/>
<text text-anchor="start" x="420.5" y="-118.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="327.5,-88 327.5,-111 353.5,-111 353.5,-88 327.5,-88"/>
<text text-anchor="start" x="333" y="-95.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-88 353.5,-111 488.5,-111 488.5,-88 353.5,-88"/>
<text text-anchor="start" x="359" y="-95.8" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="488.5,-88 488.5,-111 534.5,-111 534.5,-88 488.5,-88"/>
<text text-anchor="start" x="493.5" y="-95.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-74.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-55.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-55.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-48 327.5,-50 534.5,-50 534.5,-48 327.5,-48"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-46 327.5,-48 534.5,-48 534.5,-46 327.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-44 327.5,-46 534.5,-46 534.5,-44 327.5,-44"/>
<text text-anchor="start" x="330" y="-30.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-30.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-23 327.5,-25 534.5,-25 534.5,-23 327.5,-23"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-21 327.5,-23 534.5,-23 534.5,-21 327.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-19 327.5,-21 534.5,-21 534.5,-19 327.5,-19"/>
<text text-anchor="start" x="359.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="521.75,-135.5 321.75,-135.5 321.75,0 521.75,0 521.75,-135.5"/>
<polygon fill="none" stroke="black" points="321.75,-111.75 321.75,-135.5 521.75,-135.5 521.75,-111.75 321.75,-111.75"/>
<text text-anchor="start" x="411.25" y="-118.2" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="321.75,-88 321.75,-111.75 345.42,-111.75 345.42,-88 321.75,-88"/>
<text text-anchor="start" x="326.46" y="-94.45" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="345.42,-88 345.42,-111.75 477.83,-111.75 477.83,-88 345.42,-88"/>
<text text-anchor="start" x="350.12" y="-94.45" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="477.83,-88 477.83,-111.75 521.75,-111.75 521.75,-88 477.83,-88"/>
<text text-anchor="start" x="482.54" y="-94.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="352.88" y="-72.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="323.62" y="-53.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="390.25" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="457.62" y="-53.7" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-48 321.75,-50 521.75,-50 521.75,-48 321.75,-48"/>
<polygon fill="#000000" stroke="none" points="321.75,-46 321.75,-48 521.75,-48 521.75,-46 321.75,-46"/>
<polygon fill="#000000" stroke="none" points="321.75,-44 321.75,-46 521.75,-46 521.75,-44 321.75,-44"/>
<text text-anchor="start" x="324.75" y="-28.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="389.5" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="458.75" y="-28.7" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-23 321.75,-25 521.75,-25 521.75,-23 321.75,-23"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-21 321.75,-23 521.75,-23 521.75,-21 321.75,-21"/>
<polygon fill="#000000" stroke="none" points="321.75,-19 321.75,-21 521.75,-21 521.75,-19 321.75,-19"/>
<text text-anchor="start" x="352.88" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C275.76,-204.56 230.4,-47.56 327,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C277.68,-204 232.32,-47 327,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C279.6,-203.44 234.24,-46.44 327,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-203.75C271.17,-206.31 224.49,-47.31 321.75,-44.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-205.75C273.09,-205.75 226.41,-46.75 321.75,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-207.75C275.01,-205.19 228.33,-46.19 321.75,-48.75"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C276.42,-181.56 229.74,-22.56 327,-20"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C278.34,-181 231.66,-22 327,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C280.26,-180.44 233.58,-21.44 327,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-180.75C271.83,-183.32 223.83,-22.32 321.75,-19.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-182.75C273.75,-182.75 225.75,-21.75 321.75,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-184.75C275.67,-182.18 227.67,-21.18 321.75,-23.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="873,-420 678,-420 678,-328 873,-328 873,-420"/>
<polygon fill="none" stroke="black" points="678.5,-397 678.5,-420 873.5,-420 873.5,-397 678.5,-397"/>
<text text-anchor="start" x="767" y="-404.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="678.5,-374 678.5,-397 782.5,-397 782.5,-374 678.5,-374"/>
<text text-anchor="start" x="682.5" y="-381.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-374 782.5,-397 833.5,-397 833.5,-374 782.5,-374"/>
<text text-anchor="start" x="786.5" y="-381.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-374 833.5,-397 873.5,-397 873.5,-374 833.5,-374"/>
<text text-anchor="start" x="837.5" y="-381.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-351 678.5,-374 764.5,-374 764.5,-351 678.5,-351"/>
<text text-anchor="start" x="717.5" y="-358.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-351 764.5,-374 873.5,-374 873.5,-351 764.5,-351"/>
<text text-anchor="start" x="803" y="-358.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-328 678.5,-351 764.5,-351 764.5,-328 678.5,-328"/>
<text text-anchor="start" x="717.5" y="-335.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-328 764.5,-351 873.5,-351 873.5,-328 764.5,-328"/>
<text text-anchor="start" x="804" y="-335.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="854.75,-424.5 665.75,-424.5 665.75,-331 854.75,-331 854.75,-424.5"/>
<polygon fill="none" stroke="black" points="665.75,-400.75 665.75,-424.5 854.75,-424.5 854.75,-400.75 665.75,-400.75"/>
<text text-anchor="start" x="752" y="-407.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="665.75,-377 665.75,-400.75 767.5,-400.75 767.5,-377 665.75,-377"/>
<text text-anchor="start" x="669.75" y="-383.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="767.5,-377 767.5,-400.75 816.75,-400.75 816.75,-377 767.5,-377"/>
<text text-anchor="start" x="771.5" y="-383.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="816.75,-377 816.75,-400.75 854.75,-400.75 854.75,-377 816.75,-377"/>
<text text-anchor="start" x="820.75" y="-383.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="665.75,-354 665.75,-377 748.75,-377 748.75,-354 665.75,-354"/>
<text text-anchor="start" x="703.5" y="-359.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="748.75,-354 748.75,-377 854.75,-377 854.75,-354 748.75,-354"/>
<text text-anchor="start" x="786.38" y="-359.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="665.75,-331 665.75,-354 748.75,-354 748.75,-331 665.75,-331"/>
<text text-anchor="start" x="703.5" y="-336.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="748.75,-331 748.75,-354 854.75,-354 854.75,-331 748.75,-331"/>
<text text-anchor="start" x="787.5" y="-336.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="873,-262 678,-262 678,-170 873,-170 873,-262"/>
<polygon fill="none" stroke="black" points="678.5,-239 678.5,-262 873.5,-262 873.5,-239 678.5,-239"/>
<text text-anchor="start" x="767" y="-246.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="678.5,-216 678.5,-239 782.5,-239 782.5,-216 678.5,-216"/>
<text text-anchor="start" x="682.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-216 782.5,-239 833.5,-239 833.5,-216 782.5,-216"/>
<text text-anchor="start" x="786.5" y="-223.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-216 833.5,-239 873.5,-239 873.5,-216 833.5,-216"/>
<text text-anchor="start" x="837.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-193 678.5,-216 764.5,-216 764.5,-193 678.5,-193"/>
<text text-anchor="start" x="717.5" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-193 764.5,-216 873.5,-216 873.5,-193 764.5,-193"/>
<text text-anchor="start" x="803" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-170 678.5,-193 764.5,-193 764.5,-170 678.5,-170"/>
<text text-anchor="start" x="717.5" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-170 764.5,-193 873.5,-193 873.5,-170 764.5,-170"/>
<text text-anchor="start" x="804" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="854.75,-264.5 665.75,-264.5 665.75,-171 854.75,-171 854.75,-264.5"/>
<polygon fill="none" stroke="black" points="665.75,-240.75 665.75,-264.5 854.75,-264.5 854.75,-240.75 665.75,-240.75"/>
<text text-anchor="start" x="752" y="-247.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="665.75,-217 665.75,-240.75 767.5,-240.75 767.5,-217 665.75,-217"/>
<text text-anchor="start" x="669.75" y="-223.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="767.5,-217 767.5,-240.75 816.75,-240.75 816.75,-217 767.5,-217"/>
<text text-anchor="start" x="771.5" y="-223.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="816.75,-217 816.75,-240.75 854.75,-240.75 854.75,-217 816.75,-217"/>
<text text-anchor="start" x="820.75" y="-223.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="665.75,-194 665.75,-217 748.75,-217 748.75,-194 665.75,-194"/>
<text text-anchor="start" x="703.5" y="-199.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="748.75,-194 748.75,-217 854.75,-217 854.75,-194 748.75,-194"/>
<text text-anchor="start" x="786.38" y="-199.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="665.75,-171 665.75,-194 748.75,-194 748.75,-171 665.75,-171"/>
<text text-anchor="start" x="703.5" y="-176.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="748.75,-171 748.75,-194 854.75,-194 854.75,-171 748.75,-171"/>
<text text-anchor="start" x="787.5" y="-176.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="873,-104 678,-104 678,-12 873,-12 873,-104"/>
<polygon fill="none" stroke="black" points="678.5,-81 678.5,-104 873.5,-104 873.5,-81 678.5,-81"/>
<text text-anchor="start" x="767" y="-88.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="678.5,-58 678.5,-81 782.5,-81 782.5,-58 678.5,-58"/>
<text text-anchor="start" x="682.5" y="-65.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-58 782.5,-81 833.5,-81 833.5,-58 782.5,-58"/>
<text text-anchor="start" x="786.5" y="-65.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-58 833.5,-81 873.5,-81 873.5,-58 833.5,-58"/>
<text text-anchor="start" x="837.5" y="-65.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-35 678.5,-58 764.5,-58 764.5,-35 678.5,-35"/>
<text text-anchor="start" x="717.5" y="-42.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-35 764.5,-58 873.5,-58 873.5,-35 764.5,-35"/>
<text text-anchor="start" x="803" y="-42.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-12 678.5,-35 764.5,-35 764.5,-12 678.5,-12"/>
<text text-anchor="start" x="717.5" y="-19.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-12 764.5,-35 873.5,-35 873.5,-12 764.5,-12"/>
<text text-anchor="start" x="804" y="-19.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="854.75,-104.5 665.75,-104.5 665.75,-11 854.75,-11 854.75,-104.5"/>
<polygon fill="none" stroke="black" points="665.75,-80.75 665.75,-104.5 854.75,-104.5 854.75,-80.75 665.75,-80.75"/>
<text text-anchor="start" x="752" y="-87.2" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="665.75,-57 665.75,-80.75 767.5,-80.75 767.5,-57 665.75,-57"/>
<text text-anchor="start" x="669.75" y="-63.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="767.5,-57 767.5,-80.75 816.75,-80.75 816.75,-57 767.5,-57"/>
<text text-anchor="start" x="771.5" y="-63.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="816.75,-57 816.75,-80.75 854.75,-80.75 854.75,-57 816.75,-57"/>
<text text-anchor="start" x="820.75" y="-63.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="665.75,-34 665.75,-57 748.75,-57 748.75,-34 665.75,-34"/>
<text text-anchor="start" x="703.5" y="-39.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="748.75,-34 748.75,-57 854.75,-57 854.75,-34 748.75,-34"/>
<text text-anchor="start" x="786.38" y="-39.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="665.75,-11 665.75,-34 748.75,-34 748.75,-11 665.75,-11"/>
<text text-anchor="start" x="703.5" y="-16.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="748.75,-11 748.75,-34 854.75,-34 854.75,-11 748.75,-11"/>
<text text-anchor="start" x="787.5" y="-16.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-361C597.88,-361 613.87,-360 678,-360"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-363C598,-363 614,-362 678,-362"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-365C598.13,-365 614.12,-364 678,-364"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-364.75C585.63,-364.75 601.62,-363.75 665.75,-363.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-366.75C585.75,-366.75 601.75,-365.75 665.75,-365.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-368.75C585.88,-368.75 601.87,-367.75 665.75,-367.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-336C598.13,-336 614.12,-337 678,-337"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-338C598,-338 614,-339 678,-339"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-340C597.88,-340 613.87,-341 678,-341"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-339.75C585.88,-339.75 601.87,-340.75 665.75,-340.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M521.75,-341.75C585.75,-341.75 601.75,-342.75 665.75,-342.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-343.75C585.63,-343.75 601.62,-344.75 665.75,-344.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-203C597.88,-203 613.87,-202 678,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-205C598,-205 614,-204 678,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-207C598.13,-207 614.12,-206 678,-206"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-204.75C585.63,-204.75 601.62,-203.75 665.75,-203.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-206.75C585.75,-206.75 601.75,-205.75 665.75,-205.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-208.75C585.88,-208.75 601.87,-207.75 665.75,-207.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-178C598.13,-178 614.12,-179 678,-179"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-180C598,-180 614,-181 678,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-182C597.88,-182 613.87,-183 678,-183"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-179.75C585.88,-179.75 601.87,-180.75 665.75,-180.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M521.75,-181.75C585.75,-181.75 601.75,-182.75 665.75,-182.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-183.75C585.63,-183.75 601.62,-184.75 665.75,-184.75"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-45C597.88,-45 613.87,-44 678,-44"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-47C598,-47 614,-46 678,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-49C598.13,-49 614.12,-48 678,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-44.75C585.63,-44.75 601.62,-43.75 665.75,-43.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-46.75C585.75,-46.75 601.75,-45.75 665.75,-45.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-48.75C585.88,-48.75 601.87,-47.75 665.75,-47.75"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-20C598.13,-20 614.12,-21 678,-21"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-22C598,-22 614,-23 678,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-24C597.88,-24 613.87,-25 678,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-19.75C585.88,-19.75 601.87,-20.75 665.75,-20.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M521.75,-21.75C585.75,-21.75 601.75,-22.75 665.75,-22.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M521.75,-23.75C585.63,-23.75 601.62,-24.75 665.75,-24.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

4
examples/ex03.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

314
examples/ex03.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex03</title>
<style>
@ -30,231 +30,231 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="873pt" height="332pt"
viewBox="0.00 0.00 873.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-328 869,-328 869,4 -4,4"/>
<svg width="859pt" height="338pt"
viewBox="0.00 0.00 858.50 337.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 333.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-333.5 854.5,-333.5 854.5,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-208 0,-208 0,-116 183,-116 183,-208"/>
<polygon fill="none" stroke="black" points="0.5,-185 0.5,-208 183.5,-208 183.5,-185 0.5,-185"/>
<text text-anchor="start" x="83" y="-192.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-162 0.5,-185 104.5,-185 104.5,-162 0.5,-162"/>
<text text-anchor="start" x="4.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-162 104.5,-185 143.5,-185 143.5,-162 104.5,-162"/>
<text text-anchor="start" x="108.5" y="-169.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-162 143.5,-185 183.5,-185 183.5,-162 143.5,-162"/>
<text text-anchor="start" x="147.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-139 0.5,-162 104.5,-162 104.5,-139 0.5,-139"/>
<text text-anchor="start" x="36.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-139 104.5,-162 183.5,-162 183.5,-139 104.5,-139"/>
<text text-anchor="start" x="140" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-116 0.5,-139 104.5,-139 104.5,-116 0.5,-116"/>
<text text-anchor="start" x="37.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-116 104.5,-139 183.5,-139 183.5,-116 104.5,-116"/>
<text text-anchor="start" x="140" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="177.75,-211.5 0,-211.5 0,-118 177.75,-118 177.75,-211.5"/>
<polygon fill="none" stroke="black" points="0,-187.75 0,-211.5 177.75,-211.5 177.75,-187.75 0,-187.75"/>
<text text-anchor="start" x="80.62" y="-194.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-164 0,-187.75 101.75,-187.75 101.75,-164 0,-164"/>
<text text-anchor="start" x="4" y="-170.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="101.75,-164 101.75,-187.75 139.75,-187.75 139.75,-164 101.75,-164"/>
<text text-anchor="start" x="105.75" y="-170.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="139.75,-164 139.75,-187.75 177.75,-187.75 177.75,-164 139.75,-164"/>
<text text-anchor="start" x="143.75" y="-170.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-141 0,-164 100.38,-164 100.38,-141 0,-141"/>
<text text-anchor="start" x="34.81" y="-146.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100.38,-141 100.38,-164 177.75,-164 177.75,-141 100.38,-141"/>
<text text-anchor="start" x="135.31" y="-146.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-118 0,-141 100.38,-141 100.38,-118 0,-118"/>
<text text-anchor="start" x="35.94" y="-123.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="100.38,-118 100.38,-141 177.75,-141 177.75,-118 100.38,-118"/>
<text text-anchor="start" x="135.31" y="-123.7" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-288 327,-288 327,-54 526,-54 526,-288"/>
<polygon fill="none" stroke="black" points="327.5,-265 327.5,-288 526.5,-288 526.5,-265 327.5,-265"/>
<text text-anchor="start" x="416.5" y="-272.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-242 327.5,-265 350.5,-265 350.5,-242 327.5,-242"/>
<text text-anchor="start" x="331.5" y="-249.8" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="350.5,-242 350.5,-265 482.5,-265 482.5,-242 350.5,-242"/>
<text text-anchor="start" x="354.5" y="-249.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="482.5,-242 482.5,-265 526.5,-265 526.5,-242 482.5,-242"/>
<text text-anchor="start" x="486.5" y="-249.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="360" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="330" y="-209.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-209.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 526.5,-204 526.5,-202 327.5,-202"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-200 327.5,-202 526.5,-202 526.5,-200 327.5,-200"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-198 327.5,-200 526.5,-200 526.5,-198 327.5,-198"/>
<text text-anchor="start" x="330.5" y="-184.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-184.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 526.5,-179 526.5,-177 327.5,-177"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-175 327.5,-177 526.5,-177 526.5,-175 327.5,-175"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-173 327.5,-175 526.5,-175 526.5,-173 327.5,-173"/>
<text text-anchor="start" x="330" y="-159.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-159.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-152 327.5,-154 526.5,-154 526.5,-152 327.5,-152"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-150 327.5,-152 526.5,-152 526.5,-150 327.5,-150"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-148 327.5,-150 526.5,-150 526.5,-148 327.5,-148"/>
<text text-anchor="start" x="330.5" y="-134.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-134.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-127 327.5,-129 526.5,-129 526.5,-127 327.5,-127"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-125 327.5,-127 526.5,-127 526.5,-125 327.5,-125"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-123 327.5,-125 526.5,-125 526.5,-123 327.5,-123"/>
<text text-anchor="start" x="330" y="-109.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-109.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-109.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-102 327.5,-104 526.5,-104 526.5,-102 327.5,-102"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-100 327.5,-102 526.5,-102 526.5,-100 327.5,-100"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-98 327.5,-100 526.5,-100 526.5,-98 327.5,-98"/>
<text text-anchor="start" x="330.5" y="-84.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-84.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-84.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-77 327.5,-79 526.5,-79 526.5,-77 327.5,-77"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-75 327.5,-77 526.5,-77 526.5,-75 327.5,-75"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-73 327.5,-75 526.5,-75 526.5,-73 327.5,-73"/>
<text text-anchor="start" x="360" y="-59.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="517.5,-292.5 321.75,-292.5 321.75,-57 517.5,-57 517.5,-292.5"/>
<polygon fill="none" stroke="black" points="321.75,-268.75 321.75,-292.5 517.5,-292.5 517.5,-268.75 321.75,-268.75"/>
<text text-anchor="start" x="409.12" y="-275.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="321.75,-245 321.75,-268.75 344,-268.75 344,-245 321.75,-245"/>
<text text-anchor="start" x="325.75" y="-251.45" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="344,-245 344,-268.75 475,-268.75 475,-245 344,-245"/>
<text text-anchor="start" x="348" y="-251.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="475,-245 475,-268.75 517.5,-268.75 517.5,-245 475,-245"/>
<text text-anchor="start" x="479" y="-251.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="354" y="-229.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="324.75" y="-210.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="393.75" y="-210.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="452.25" y="-210.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-205 321.75,-207 517.5,-207 517.5,-205 321.75,-205"/>
<polygon fill="#000000" stroke="none" points="321.75,-203 321.75,-205 517.5,-205 517.5,-203 321.75,-203"/>
<polygon fill="#000000" stroke="none" points="321.75,-201 321.75,-203 517.5,-203 517.5,-201 321.75,-201"/>
<text text-anchor="start" x="325.88" y="-185.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393" y="-185.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="453.38" y="-185.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-180 321.75,-182 517.5,-182 517.5,-180 321.75,-180"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-178 321.75,-180 517.5,-180 517.5,-178 321.75,-178"/>
<polygon fill="#000000" stroke="none" points="321.75,-176 321.75,-178 517.5,-178 517.5,-176 321.75,-176"/>
<text text-anchor="start" x="324.75" y="-160.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="393.75" y="-160.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="452.25" y="-160.7" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-155 321.75,-157 517.5,-157 517.5,-155 321.75,-155"/>
<polygon fill="#000000" stroke="none" points="321.75,-153 321.75,-155 517.5,-155 517.5,-153 321.75,-153"/>
<polygon fill="#000000" stroke="none" points="321.75,-151 321.75,-153 517.5,-153 517.5,-151 321.75,-151"/>
<text text-anchor="start" x="325.88" y="-135.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393" y="-135.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="453.38" y="-135.7" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-130 321.75,-132 517.5,-132 517.5,-130 321.75,-130"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-128 321.75,-130 517.5,-130 517.5,-128 321.75,-128"/>
<polygon fill="#000000" stroke="none" points="321.75,-126 321.75,-128 517.5,-128 517.5,-126 321.75,-126"/>
<text text-anchor="start" x="324.75" y="-110.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="393.75" y="-110.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="452.25" y="-110.7" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-105 321.75,-107 517.5,-107 517.5,-105 321.75,-105"/>
<polygon fill="#000000" stroke="none" points="321.75,-103 321.75,-105 517.5,-105 517.5,-103 321.75,-103"/>
<polygon fill="#000000" stroke="none" points="321.75,-101 321.75,-103 517.5,-103 517.5,-101 321.75,-101"/>
<text text-anchor="start" x="325.88" y="-85.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393" y="-85.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="453.38" y="-85.7" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-80 321.75,-82 517.5,-82 517.5,-80 321.75,-80"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-78 321.75,-80 517.5,-80 517.5,-78 321.75,-78"/>
<polygon fill="#000000" stroke="none" points="321.75,-76 321.75,-78 517.5,-78 517.5,-76 321.75,-76"/>
<text text-anchor="start" x="354" y="-60.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C252.87,-149.68 261.08,-200.68 327,-199"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.9,-150 259.1,-201 327,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C248.92,-150.32 257.13,-201.32 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-150.75C247.62,-152.43 255.83,-203.43 321.75,-201.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-152.75C245.65,-152.75 253.85,-203.75 321.75,-203.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-154.75C243.67,-153.07 251.88,-204.07 321.75,-205.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C252.57,-126.65 261.36,-175.65 327,-174"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.6,-127 259.4,-176 327,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C248.64,-127.35 257.43,-176.35 327,-178"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-127.75C247.32,-129.4 256.11,-178.4 321.75,-176.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-129.75C245.35,-129.75 254.15,-178.75 321.75,-178.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-131.75C243.39,-130.1 252.18,-179.1 321.75,-180.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C247.13,-148 263.12,-149 327,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C247,-150 263,-151 327,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C246.88,-152 262.87,-153 327,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-150.75C241.88,-150.75 257.87,-151.75 321.75,-151.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-152.75C241.75,-152.75 257.75,-153.75 321.75,-153.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-154.75C241.63,-154.75 257.62,-155.75 321.75,-155.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C246.88,-125 262.87,-124 327,-124"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C247,-127 263,-126 327,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C247.13,-129 263.12,-128 327,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-127.75C241.63,-127.75 257.62,-126.75 321.75,-126.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-129.75C241.75,-129.75 257.75,-128.75 321.75,-128.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-131.75C241.88,-131.75 257.87,-130.75 321.75,-130.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C248.64,-149.65 257.43,-100.65 327,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.6,-150 259.4,-101 327,-101"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C252.57,-150.35 261.36,-101.35 327,-103"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-150.75C243.39,-152.4 252.18,-103.4 321.75,-101.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-152.75C245.35,-152.75 254.15,-103.75 321.75,-103.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-154.75C247.32,-153.1 256.11,-104.1 321.75,-105.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C248.92,-126.68 257.13,-75.68 327,-74"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.9,-127 259.1,-76 327,-76"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C252.87,-127.32 261.08,-76.32 327,-78"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-127.75C243.67,-129.43 251.88,-78.43 321.75,-76.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-129.75C245.65,-129.75 253.85,-78.75 321.75,-78.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-131.75C247.62,-130.07 255.83,-79.07 321.75,-80.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="865,-324 670,-324 670,-232 865,-232 865,-324"/>
<polygon fill="none" stroke="black" points="670.5,-301 670.5,-324 865.5,-324 865.5,-301 670.5,-301"/>
<text text-anchor="start" x="759" y="-308.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-278 670.5,-301 774.5,-301 774.5,-278 670.5,-278"/>
<text text-anchor="start" x="674.5" y="-285.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-278 774.5,-301 825.5,-301 825.5,-278 774.5,-278"/>
<text text-anchor="start" x="778.5" y="-285.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-278 825.5,-301 865.5,-301 865.5,-278 825.5,-278"/>
<text text-anchor="start" x="829.5" y="-285.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-255 670.5,-278 756.5,-278 756.5,-255 670.5,-255"/>
<text text-anchor="start" x="709.5" y="-262.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-255 756.5,-278 865.5,-278 865.5,-255 756.5,-255"/>
<text text-anchor="start" x="795" y="-262.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-232 670.5,-255 756.5,-255 756.5,-232 670.5,-232"/>
<text text-anchor="start" x="709.5" y="-239.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-232 756.5,-255 865.5,-255 865.5,-232 756.5,-232"/>
<text text-anchor="start" x="796" y="-239.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="850.5,-329.5 661.5,-329.5 661.5,-236 850.5,-236 850.5,-329.5"/>
<polygon fill="none" stroke="black" points="661.5,-305.75 661.5,-329.5 850.5,-329.5 850.5,-305.75 661.5,-305.75"/>
<text text-anchor="start" x="747.75" y="-312.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="661.5,-282 661.5,-305.75 763.25,-305.75 763.25,-282 661.5,-282"/>
<text text-anchor="start" x="665.5" y="-288.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="763.25,-282 763.25,-305.75 812.5,-305.75 812.5,-282 763.25,-282"/>
<text text-anchor="start" x="767.25" y="-288.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="812.5,-282 812.5,-305.75 850.5,-305.75 850.5,-282 812.5,-282"/>
<text text-anchor="start" x="816.5" y="-288.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="661.5,-259 661.5,-282 744.5,-282 744.5,-259 661.5,-259"/>
<text text-anchor="start" x="699.25" y="-264.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="744.5,-259 744.5,-282 850.5,-282 850.5,-259 744.5,-259"/>
<text text-anchor="start" x="782.12" y="-264.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="661.5,-236 661.5,-259 744.5,-259 744.5,-236 661.5,-236"/>
<text text-anchor="start" x="699.25" y="-241.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="744.5,-236 744.5,-259 850.5,-259 850.5,-236 744.5,-236"/>
<text text-anchor="start" x="783.25" y="-241.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="865,-208 670,-208 670,-116 865,-116 865,-208"/>
<polygon fill="none" stroke="black" points="670.5,-185 670.5,-208 865.5,-208 865.5,-185 670.5,-185"/>
<text text-anchor="start" x="759" y="-192.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="670.5,-162 670.5,-185 774.5,-185 774.5,-162 670.5,-162"/>
<text text-anchor="start" x="674.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-162 774.5,-185 825.5,-185 825.5,-162 774.5,-162"/>
<text text-anchor="start" x="778.5" y="-169.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-162 825.5,-185 865.5,-185 865.5,-162 825.5,-162"/>
<text text-anchor="start" x="829.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-139 670.5,-162 756.5,-162 756.5,-139 670.5,-139"/>
<text text-anchor="start" x="709.5" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-139 756.5,-162 865.5,-162 865.5,-139 756.5,-139"/>
<text text-anchor="start" x="795" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-116 670.5,-139 756.5,-139 756.5,-116 670.5,-116"/>
<text text-anchor="start" x="709.5" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-116 756.5,-139 865.5,-139 865.5,-116 756.5,-116"/>
<text text-anchor="start" x="796" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="850.5,-211.5 661.5,-211.5 661.5,-118 850.5,-118 850.5,-211.5"/>
<polygon fill="none" stroke="black" points="661.5,-187.75 661.5,-211.5 850.5,-211.5 850.5,-187.75 661.5,-187.75"/>
<text text-anchor="start" x="747.75" y="-194.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="661.5,-164 661.5,-187.75 763.25,-187.75 763.25,-164 661.5,-164"/>
<text text-anchor="start" x="665.5" y="-170.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="763.25,-164 763.25,-187.75 812.5,-187.75 812.5,-164 763.25,-164"/>
<text text-anchor="start" x="767.25" y="-170.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="812.5,-164 812.5,-187.75 850.5,-187.75 850.5,-164 812.5,-164"/>
<text text-anchor="start" x="816.5" y="-170.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="661.5,-141 661.5,-164 744.5,-164 744.5,-141 661.5,-141"/>
<text text-anchor="start" x="699.25" y="-146.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="744.5,-141 744.5,-164 850.5,-164 850.5,-141 744.5,-141"/>
<text text-anchor="start" x="782.12" y="-146.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="661.5,-118 661.5,-141 744.5,-141 744.5,-118 661.5,-118"/>
<text text-anchor="start" x="699.25" y="-123.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="744.5,-118 744.5,-141 850.5,-141 850.5,-118 744.5,-118"/>
<text text-anchor="start" x="783.25" y="-123.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="865,-92 670,-92 670,0 865,0 865,-92"/>
<polygon fill="none" stroke="black" points="670.5,-69 670.5,-92 865.5,-92 865.5,-69 670.5,-69"/>
<text text-anchor="start" x="759" y="-76.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="670.5,-46 670.5,-69 774.5,-69 774.5,-46 670.5,-46"/>
<text text-anchor="start" x="674.5" y="-53.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-46 774.5,-69 825.5,-69 825.5,-46 774.5,-46"/>
<text text-anchor="start" x="778.5" y="-53.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-46 825.5,-69 865.5,-69 865.5,-46 825.5,-46"/>
<text text-anchor="start" x="829.5" y="-53.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-23 670.5,-46 756.5,-46 756.5,-23 670.5,-23"/>
<text text-anchor="start" x="709.5" y="-30.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-23 756.5,-46 865.5,-46 865.5,-23 756.5,-23"/>
<text text-anchor="start" x="795" y="-30.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,0 670.5,-23 756.5,-23 756.5,0 670.5,0"/>
<text text-anchor="start" x="709.5" y="-7.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,0 756.5,-23 865.5,-23 865.5,0 756.5,0"/>
<text text-anchor="start" x="796" y="-7.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="850.5,-93.5 661.5,-93.5 661.5,0 850.5,0 850.5,-93.5"/>
<polygon fill="none" stroke="black" points="661.5,-69.75 661.5,-93.5 850.5,-93.5 850.5,-69.75 661.5,-69.75"/>
<text text-anchor="start" x="747.75" y="-76.2" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="661.5,-46 661.5,-69.75 763.25,-69.75 763.25,-46 661.5,-46"/>
<text text-anchor="start" x="665.5" y="-52.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="763.25,-46 763.25,-69.75 812.5,-69.75 812.5,-46 763.25,-46"/>
<text text-anchor="start" x="767.25" y="-52.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="812.5,-46 812.5,-69.75 850.5,-69.75 850.5,-46 812.5,-46"/>
<text text-anchor="start" x="816.5" y="-52.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="661.5,-23 661.5,-46 744.5,-46 744.5,-23 661.5,-23"/>
<text text-anchor="start" x="699.25" y="-28.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="744.5,-23 744.5,-46 850.5,-46 850.5,-23 744.5,-23"/>
<text text-anchor="start" x="782.12" y="-28.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="661.5,0 661.5,-23 744.5,-23 744.5,0 661.5,0"/>
<text text-anchor="start" x="699.25" y="-5.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="744.5,0 744.5,-23 850.5,-23 850.5,0 744.5,0"/>
<text text-anchor="start" x="783.25" y="-5.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-199C598.22,-200.89 601.78,-265.89 670,-264"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-201C596.22,-201 599.78,-266 670,-266"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-203C594.22,-201.11 597.78,-266.11 670,-268"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-201.75C590.09,-203.67 592.91,-270.67 661.5,-268.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-203.75C588.09,-203.75 590.91,-270.75 661.5,-270.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-205.75C586.09,-203.83 588.91,-270.83 661.5,-272.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-174C598.59,-175.92 601.41,-242.92 670,-241"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-176C596.59,-176 599.41,-243 670,-243"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-178C594.59,-176.08 597.41,-243.08 670,-245"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-176.75C590.47,-178.69 592.53,-247.69 661.5,-245.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M517.5,-178.75C588.47,-178.75 590.53,-247.75 661.5,-247.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-180.75C586.47,-178.81 588.53,-247.81 661.5,-249.75"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-149C589.88,-149 605.87,-148 670,-148"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-151C590,-151 606,-150 670,-150"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-153C590.13,-153 606.12,-152 670,-152"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-151.75C581.38,-151.75 597.37,-150.75 661.5,-150.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-153.75C581.5,-153.75 597.5,-152.75 661.5,-152.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-155.75C581.63,-155.75 597.62,-154.75 661.5,-154.75"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-124C590.13,-124 606.12,-125 670,-125"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-126C590,-126 606,-127 670,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-128C589.88,-128 605.87,-129 670,-129"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-126.75C581.63,-126.75 597.62,-127.75 661.5,-127.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M517.5,-128.75C581.5,-128.75 597.5,-129.75 661.5,-129.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-130.75C581.38,-130.75 597.37,-131.75 661.5,-131.75"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C594.59,-100.92 597.41,-33.92 670,-32"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-101C596.59,-101 599.41,-34 670,-34"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-103C598.59,-101.08 601.41,-34.08 670,-36"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-101.75C586.47,-103.69 588.53,-34.69 661.5,-32.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-103.75C588.47,-103.75 590.53,-34.75 661.5,-34.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-105.75C590.47,-103.81 592.53,-34.81 661.5,-36.75"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C594.22,-75.89 597.78,-10.89 670,-9"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-76C596.22,-76 599.78,-11 670,-11"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-78C598.22,-76.11 601.78,-11.11 670,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-76.75C586.09,-78.67 588.91,-11.67 661.5,-9.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M517.5,-78.75C588.09,-78.75 590.91,-11.75 661.5,-11.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-80.75C590.09,-78.83 592.91,-11.83 661.5,-13.75"/>
</g>
</g>
</svg>

BIN
examples/ex03.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

312
examples/ex03.svg generated
View File

@ -1,231 +1,231 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="873pt" height="332pt"
viewBox="0.00 0.00 873.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-328 869,-328 869,4 -4,4"/>
<svg width="859pt" height="338pt"
viewBox="0.00 0.00 858.50 337.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 333.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-333.5 854.5,-333.5 854.5,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-208 0,-208 0,-116 183,-116 183,-208"/>
<polygon fill="none" stroke="black" points="0.5,-185 0.5,-208 183.5,-208 183.5,-185 0.5,-185"/>
<text text-anchor="start" x="83" y="-192.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-162 0.5,-185 104.5,-185 104.5,-162 0.5,-162"/>
<text text-anchor="start" x="4.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-162 104.5,-185 143.5,-185 143.5,-162 104.5,-162"/>
<text text-anchor="start" x="108.5" y="-169.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-162 143.5,-185 183.5,-185 183.5,-162 143.5,-162"/>
<text text-anchor="start" x="147.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-139 0.5,-162 104.5,-162 104.5,-139 0.5,-139"/>
<text text-anchor="start" x="36.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-139 104.5,-162 183.5,-162 183.5,-139 104.5,-139"/>
<text text-anchor="start" x="140" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-116 0.5,-139 104.5,-139 104.5,-116 0.5,-116"/>
<text text-anchor="start" x="37.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-116 104.5,-139 183.5,-139 183.5,-116 104.5,-116"/>
<text text-anchor="start" x="140" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="177.75,-211.5 0,-211.5 0,-118 177.75,-118 177.75,-211.5"/>
<polygon fill="none" stroke="black" points="0,-187.75 0,-211.5 177.75,-211.5 177.75,-187.75 0,-187.75"/>
<text text-anchor="start" x="80.62" y="-194.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-164 0,-187.75 101.75,-187.75 101.75,-164 0,-164"/>
<text text-anchor="start" x="4" y="-170.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="101.75,-164 101.75,-187.75 139.75,-187.75 139.75,-164 101.75,-164"/>
<text text-anchor="start" x="105.75" y="-170.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="139.75,-164 139.75,-187.75 177.75,-187.75 177.75,-164 139.75,-164"/>
<text text-anchor="start" x="143.75" y="-170.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-141 0,-164 100.38,-164 100.38,-141 0,-141"/>
<text text-anchor="start" x="34.81" y="-146.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100.38,-141 100.38,-164 177.75,-164 177.75,-141 100.38,-141"/>
<text text-anchor="start" x="135.31" y="-146.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-118 0,-141 100.38,-141 100.38,-118 0,-118"/>
<text text-anchor="start" x="35.94" y="-123.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="100.38,-118 100.38,-141 177.75,-141 177.75,-118 100.38,-118"/>
<text text-anchor="start" x="135.31" y="-123.7" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-288 327,-288 327,-54 526,-54 526,-288"/>
<polygon fill="none" stroke="black" points="327.5,-265 327.5,-288 526.5,-288 526.5,-265 327.5,-265"/>
<text text-anchor="start" x="416.5" y="-272.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-242 327.5,-265 350.5,-265 350.5,-242 327.5,-242"/>
<text text-anchor="start" x="331.5" y="-249.8" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="350.5,-242 350.5,-265 482.5,-265 482.5,-242 350.5,-242"/>
<text text-anchor="start" x="354.5" y="-249.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="482.5,-242 482.5,-265 526.5,-265 526.5,-242 482.5,-242"/>
<text text-anchor="start" x="486.5" y="-249.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="360" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="330" y="-209.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-209.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 526.5,-204 526.5,-202 327.5,-202"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-200 327.5,-202 526.5,-202 526.5,-200 327.5,-200"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-198 327.5,-200 526.5,-200 526.5,-198 327.5,-198"/>
<text text-anchor="start" x="330.5" y="-184.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-184.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 526.5,-179 526.5,-177 327.5,-177"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-175 327.5,-177 526.5,-177 526.5,-175 327.5,-175"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-173 327.5,-175 526.5,-175 526.5,-173 327.5,-173"/>
<text text-anchor="start" x="330" y="-159.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-159.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-152 327.5,-154 526.5,-154 526.5,-152 327.5,-152"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-150 327.5,-152 526.5,-152 526.5,-150 327.5,-150"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-148 327.5,-150 526.5,-150 526.5,-148 327.5,-148"/>
<text text-anchor="start" x="330.5" y="-134.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-134.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-127 327.5,-129 526.5,-129 526.5,-127 327.5,-127"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-125 327.5,-127 526.5,-127 526.5,-125 327.5,-125"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-123 327.5,-125 526.5,-125 526.5,-123 327.5,-123"/>
<text text-anchor="start" x="330" y="-109.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-109.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-109.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-102 327.5,-104 526.5,-104 526.5,-102 327.5,-102"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-100 327.5,-102 526.5,-102 526.5,-100 327.5,-100"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-98 327.5,-100 526.5,-100 526.5,-98 327.5,-98"/>
<text text-anchor="start" x="330.5" y="-84.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-84.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-84.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-77 327.5,-79 526.5,-79 526.5,-77 327.5,-77"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-75 327.5,-77 526.5,-77 526.5,-75 327.5,-75"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-73 327.5,-75 526.5,-75 526.5,-73 327.5,-73"/>
<text text-anchor="start" x="360" y="-59.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="517.5,-292.5 321.75,-292.5 321.75,-57 517.5,-57 517.5,-292.5"/>
<polygon fill="none" stroke="black" points="321.75,-268.75 321.75,-292.5 517.5,-292.5 517.5,-268.75 321.75,-268.75"/>
<text text-anchor="start" x="409.12" y="-275.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="321.75,-245 321.75,-268.75 344,-268.75 344,-245 321.75,-245"/>
<text text-anchor="start" x="325.75" y="-251.45" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="344,-245 344,-268.75 475,-268.75 475,-245 344,-245"/>
<text text-anchor="start" x="348" y="-251.45" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="475,-245 475,-268.75 517.5,-268.75 517.5,-245 475,-245"/>
<text text-anchor="start" x="479" y="-251.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="354" y="-229.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="324.75" y="-210.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="393.75" y="-210.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="452.25" y="-210.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-205 321.75,-207 517.5,-207 517.5,-205 321.75,-205"/>
<polygon fill="#000000" stroke="none" points="321.75,-203 321.75,-205 517.5,-205 517.5,-203 321.75,-203"/>
<polygon fill="#000000" stroke="none" points="321.75,-201 321.75,-203 517.5,-203 517.5,-201 321.75,-201"/>
<text text-anchor="start" x="325.88" y="-185.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393" y="-185.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="453.38" y="-185.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-180 321.75,-182 517.5,-182 517.5,-180 321.75,-180"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-178 321.75,-180 517.5,-180 517.5,-178 321.75,-178"/>
<polygon fill="#000000" stroke="none" points="321.75,-176 321.75,-178 517.5,-178 517.5,-176 321.75,-176"/>
<text text-anchor="start" x="324.75" y="-160.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="393.75" y="-160.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="452.25" y="-160.7" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-155 321.75,-157 517.5,-157 517.5,-155 321.75,-155"/>
<polygon fill="#000000" stroke="none" points="321.75,-153 321.75,-155 517.5,-155 517.5,-153 321.75,-153"/>
<polygon fill="#000000" stroke="none" points="321.75,-151 321.75,-153 517.5,-153 517.5,-151 321.75,-151"/>
<text text-anchor="start" x="325.88" y="-135.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393" y="-135.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="453.38" y="-135.7" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-130 321.75,-132 517.5,-132 517.5,-130 321.75,-130"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-128 321.75,-130 517.5,-130 517.5,-128 321.75,-128"/>
<polygon fill="#000000" stroke="none" points="321.75,-126 321.75,-128 517.5,-128 517.5,-126 321.75,-126"/>
<text text-anchor="start" x="324.75" y="-110.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="393.75" y="-110.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="452.25" y="-110.7" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="321.75,-105 321.75,-107 517.5,-107 517.5,-105 321.75,-105"/>
<polygon fill="#000000" stroke="none" points="321.75,-103 321.75,-105 517.5,-105 517.5,-103 321.75,-103"/>
<polygon fill="#000000" stroke="none" points="321.75,-101 321.75,-103 517.5,-103 517.5,-101 321.75,-101"/>
<text text-anchor="start" x="325.88" y="-85.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393" y="-85.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="453.38" y="-85.7" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="321.75,-80 321.75,-82 517.5,-82 517.5,-80 321.75,-80"/>
<polygon fill="#ff0000" stroke="none" points="321.75,-78 321.75,-80 517.5,-80 517.5,-78 321.75,-78"/>
<polygon fill="#000000" stroke="none" points="321.75,-76 321.75,-78 517.5,-78 517.5,-76 321.75,-76"/>
<text text-anchor="start" x="354" y="-60.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C252.87,-149.68 261.08,-200.68 327,-199"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.9,-150 259.1,-201 327,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C248.92,-150.32 257.13,-201.32 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-150.75C247.62,-152.43 255.83,-203.43 321.75,-201.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-152.75C245.65,-152.75 253.85,-203.75 321.75,-203.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-154.75C243.67,-153.07 251.88,-204.07 321.75,-205.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C252.57,-126.65 261.36,-175.65 327,-174"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.6,-127 259.4,-176 327,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C248.64,-127.35 257.43,-176.35 327,-178"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-127.75C247.32,-129.4 256.11,-178.4 321.75,-176.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-129.75C245.35,-129.75 254.15,-178.75 321.75,-178.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-131.75C243.39,-130.1 252.18,-179.1 321.75,-180.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C247.13,-148 263.12,-149 327,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C247,-150 263,-151 327,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C246.88,-152 262.87,-153 327,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-150.75C241.88,-150.75 257.87,-151.75 321.75,-151.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-152.75C241.75,-152.75 257.75,-153.75 321.75,-153.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-154.75C241.63,-154.75 257.62,-155.75 321.75,-155.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C246.88,-125 262.87,-124 327,-124"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C247,-127 263,-126 327,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C247.13,-129 263.12,-128 327,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-127.75C241.63,-127.75 257.62,-126.75 321.75,-126.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-129.75C241.75,-129.75 257.75,-128.75 321.75,-128.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-131.75C241.88,-131.75 257.87,-130.75 321.75,-130.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C248.64,-149.65 257.43,-100.65 327,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.6,-150 259.4,-101 327,-101"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C252.57,-150.35 261.36,-101.35 327,-103"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-150.75C243.39,-152.4 252.18,-103.4 321.75,-101.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-152.75C245.35,-152.75 254.15,-103.75 321.75,-103.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-154.75C247.32,-153.1 256.11,-104.1 321.75,-105.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C248.92,-126.68 257.13,-75.68 327,-74"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.9,-127 259.1,-76 327,-76"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C252.87,-127.32 261.08,-76.32 327,-78"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-127.75C243.67,-129.43 251.88,-78.43 321.75,-76.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M177.75,-129.75C245.65,-129.75 253.85,-78.75 321.75,-78.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M177.75,-131.75C247.62,-130.07 255.83,-79.07 321.75,-80.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="865,-324 670,-324 670,-232 865,-232 865,-324"/>
<polygon fill="none" stroke="black" points="670.5,-301 670.5,-324 865.5,-324 865.5,-301 670.5,-301"/>
<text text-anchor="start" x="759" y="-308.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-278 670.5,-301 774.5,-301 774.5,-278 670.5,-278"/>
<text text-anchor="start" x="674.5" y="-285.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-278 774.5,-301 825.5,-301 825.5,-278 774.5,-278"/>
<text text-anchor="start" x="778.5" y="-285.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-278 825.5,-301 865.5,-301 865.5,-278 825.5,-278"/>
<text text-anchor="start" x="829.5" y="-285.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-255 670.5,-278 756.5,-278 756.5,-255 670.5,-255"/>
<text text-anchor="start" x="709.5" y="-262.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-255 756.5,-278 865.5,-278 865.5,-255 756.5,-255"/>
<text text-anchor="start" x="795" y="-262.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-232 670.5,-255 756.5,-255 756.5,-232 670.5,-232"/>
<text text-anchor="start" x="709.5" y="-239.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-232 756.5,-255 865.5,-255 865.5,-232 756.5,-232"/>
<text text-anchor="start" x="796" y="-239.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="850.5,-329.5 661.5,-329.5 661.5,-236 850.5,-236 850.5,-329.5"/>
<polygon fill="none" stroke="black" points="661.5,-305.75 661.5,-329.5 850.5,-329.5 850.5,-305.75 661.5,-305.75"/>
<text text-anchor="start" x="747.75" y="-312.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="661.5,-282 661.5,-305.75 763.25,-305.75 763.25,-282 661.5,-282"/>
<text text-anchor="start" x="665.5" y="-288.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="763.25,-282 763.25,-305.75 812.5,-305.75 812.5,-282 763.25,-282"/>
<text text-anchor="start" x="767.25" y="-288.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="812.5,-282 812.5,-305.75 850.5,-305.75 850.5,-282 812.5,-282"/>
<text text-anchor="start" x="816.5" y="-288.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="661.5,-259 661.5,-282 744.5,-282 744.5,-259 661.5,-259"/>
<text text-anchor="start" x="699.25" y="-264.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="744.5,-259 744.5,-282 850.5,-282 850.5,-259 744.5,-259"/>
<text text-anchor="start" x="782.12" y="-264.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="661.5,-236 661.5,-259 744.5,-259 744.5,-236 661.5,-236"/>
<text text-anchor="start" x="699.25" y="-241.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="744.5,-236 744.5,-259 850.5,-259 850.5,-236 744.5,-236"/>
<text text-anchor="start" x="783.25" y="-241.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="865,-208 670,-208 670,-116 865,-116 865,-208"/>
<polygon fill="none" stroke="black" points="670.5,-185 670.5,-208 865.5,-208 865.5,-185 670.5,-185"/>
<text text-anchor="start" x="759" y="-192.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="670.5,-162 670.5,-185 774.5,-185 774.5,-162 670.5,-162"/>
<text text-anchor="start" x="674.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-162 774.5,-185 825.5,-185 825.5,-162 774.5,-162"/>
<text text-anchor="start" x="778.5" y="-169.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-162 825.5,-185 865.5,-185 865.5,-162 825.5,-162"/>
<text text-anchor="start" x="829.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-139 670.5,-162 756.5,-162 756.5,-139 670.5,-139"/>
<text text-anchor="start" x="709.5" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-139 756.5,-162 865.5,-162 865.5,-139 756.5,-139"/>
<text text-anchor="start" x="795" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-116 670.5,-139 756.5,-139 756.5,-116 670.5,-116"/>
<text text-anchor="start" x="709.5" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-116 756.5,-139 865.5,-139 865.5,-116 756.5,-116"/>
<text text-anchor="start" x="796" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="850.5,-211.5 661.5,-211.5 661.5,-118 850.5,-118 850.5,-211.5"/>
<polygon fill="none" stroke="black" points="661.5,-187.75 661.5,-211.5 850.5,-211.5 850.5,-187.75 661.5,-187.75"/>
<text text-anchor="start" x="747.75" y="-194.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="661.5,-164 661.5,-187.75 763.25,-187.75 763.25,-164 661.5,-164"/>
<text text-anchor="start" x="665.5" y="-170.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="763.25,-164 763.25,-187.75 812.5,-187.75 812.5,-164 763.25,-164"/>
<text text-anchor="start" x="767.25" y="-170.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="812.5,-164 812.5,-187.75 850.5,-187.75 850.5,-164 812.5,-164"/>
<text text-anchor="start" x="816.5" y="-170.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="661.5,-141 661.5,-164 744.5,-164 744.5,-141 661.5,-141"/>
<text text-anchor="start" x="699.25" y="-146.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="744.5,-141 744.5,-164 850.5,-164 850.5,-141 744.5,-141"/>
<text text-anchor="start" x="782.12" y="-146.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="661.5,-118 661.5,-141 744.5,-141 744.5,-118 661.5,-118"/>
<text text-anchor="start" x="699.25" y="-123.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="744.5,-118 744.5,-141 850.5,-141 850.5,-118 744.5,-118"/>
<text text-anchor="start" x="783.25" y="-123.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="865,-92 670,-92 670,0 865,0 865,-92"/>
<polygon fill="none" stroke="black" points="670.5,-69 670.5,-92 865.5,-92 865.5,-69 670.5,-69"/>
<text text-anchor="start" x="759" y="-76.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="670.5,-46 670.5,-69 774.5,-69 774.5,-46 670.5,-46"/>
<text text-anchor="start" x="674.5" y="-53.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-46 774.5,-69 825.5,-69 825.5,-46 774.5,-46"/>
<text text-anchor="start" x="778.5" y="-53.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-46 825.5,-69 865.5,-69 865.5,-46 825.5,-46"/>
<text text-anchor="start" x="829.5" y="-53.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-23 670.5,-46 756.5,-46 756.5,-23 670.5,-23"/>
<text text-anchor="start" x="709.5" y="-30.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-23 756.5,-46 865.5,-46 865.5,-23 756.5,-23"/>
<text text-anchor="start" x="795" y="-30.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,0 670.5,-23 756.5,-23 756.5,0 670.5,0"/>
<text text-anchor="start" x="709.5" y="-7.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,0 756.5,-23 865.5,-23 865.5,0 756.5,0"/>
<text text-anchor="start" x="796" y="-7.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="850.5,-93.5 661.5,-93.5 661.5,0 850.5,0 850.5,-93.5"/>
<polygon fill="none" stroke="black" points="661.5,-69.75 661.5,-93.5 850.5,-93.5 850.5,-69.75 661.5,-69.75"/>
<text text-anchor="start" x="747.75" y="-76.2" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="661.5,-46 661.5,-69.75 763.25,-69.75 763.25,-46 661.5,-46"/>
<text text-anchor="start" x="665.5" y="-52.45" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="763.25,-46 763.25,-69.75 812.5,-69.75 812.5,-46 763.25,-46"/>
<text text-anchor="start" x="767.25" y="-52.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="812.5,-46 812.5,-69.75 850.5,-69.75 850.5,-46 812.5,-46"/>
<text text-anchor="start" x="816.5" y="-52.45" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="661.5,-23 661.5,-46 744.5,-46 744.5,-23 661.5,-23"/>
<text text-anchor="start" x="699.25" y="-28.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="744.5,-23 744.5,-46 850.5,-46 850.5,-23 744.5,-23"/>
<text text-anchor="start" x="782.12" y="-28.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="661.5,0 661.5,-23 744.5,-23 744.5,0 661.5,0"/>
<text text-anchor="start" x="699.25" y="-5.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="744.5,0 744.5,-23 850.5,-23 850.5,0 744.5,0"/>
<text text-anchor="start" x="783.25" y="-5.7" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-199C598.22,-200.89 601.78,-265.89 670,-264"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-201C596.22,-201 599.78,-266 670,-266"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-203C594.22,-201.11 597.78,-266.11 670,-268"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-201.75C590.09,-203.67 592.91,-270.67 661.5,-268.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-203.75C588.09,-203.75 590.91,-270.75 661.5,-270.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-205.75C586.09,-203.83 588.91,-270.83 661.5,-272.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-174C598.59,-175.92 601.41,-242.92 670,-241"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-176C596.59,-176 599.41,-243 670,-243"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-178C594.59,-176.08 597.41,-243.08 670,-245"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-176.75C590.47,-178.69 592.53,-247.69 661.5,-245.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M517.5,-178.75C588.47,-178.75 590.53,-247.75 661.5,-247.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-180.75C586.47,-178.81 588.53,-247.81 661.5,-249.75"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-149C589.88,-149 605.87,-148 670,-148"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-151C590,-151 606,-150 670,-150"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-153C590.13,-153 606.12,-152 670,-152"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-151.75C581.38,-151.75 597.37,-150.75 661.5,-150.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-153.75C581.5,-153.75 597.5,-152.75 661.5,-152.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-155.75C581.63,-155.75 597.62,-154.75 661.5,-154.75"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-124C590.13,-124 606.12,-125 670,-125"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-126C590,-126 606,-127 670,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-128C589.88,-128 605.87,-129 670,-129"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-126.75C581.63,-126.75 597.62,-127.75 661.5,-127.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M517.5,-128.75C581.5,-128.75 597.5,-129.75 661.5,-129.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-130.75C581.38,-130.75 597.37,-131.75 661.5,-131.75"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C594.59,-100.92 597.41,-33.92 670,-32"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-101C596.59,-101 599.41,-34 670,-34"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-103C598.59,-101.08 601.41,-34.08 670,-36"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-101.75C586.47,-103.69 588.53,-34.69 661.5,-32.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-103.75C588.47,-103.75 590.53,-34.75 661.5,-34.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-105.75C590.47,-103.81 592.53,-34.81 661.5,-36.75"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C594.22,-75.89 597.78,-10.89 670,-9"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-76C596.22,-76 599.78,-11 670,-11"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-78C598.22,-76.11 601.78,-11.11 670,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-76.75C586.09,-78.67 588.91,-11.67 661.5,-9.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M517.5,-78.75C588.09,-78.75 590.91,-11.75 661.5,-11.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M517.5,-80.75C590.09,-78.83 592.91,-11.83 661.5,-13.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

52
examples/ex04.gv generated
View File

@ -1,10 +1,10 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
AUTOGENERATED_F_1 [label=<
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -13,7 +13,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_2 [label=<
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -22,7 +22,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_3 [label=<
__F_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -31,7 +31,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_4 [label=<
__F_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -40,7 +40,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_5 [label=<
__F_5 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -49,7 +49,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_6 [label=<
__F_6 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -58,7 +58,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_7 [label=<
__F_7 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -67,7 +67,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_8 [label=<
__F_8 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -76,7 +76,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_9 [label=<
__F_9 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -85,7 +85,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_10 [label=<
__F_10 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -94,7 +94,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_11 [label=<
__F_11 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -103,7 +103,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_12 [label=<
__F_12 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -113,23 +113,23 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#895956:#000000"]
AUTOGENERATED_F_1:e -- W1:w1:w
W1:w1:e -- AUTOGENERATED_F_7:w
__F_1:e -- W1:w1:w
W1:w1:e -- __F_7:w
edge [color="#000000:#ff0000:#000000"]
AUTOGENERATED_F_2:e -- W1:w2:w
W1:w2:e -- AUTOGENERATED_F_8:w
__F_2:e -- W1:w2:w
W1:w2:e -- __F_8:w
edge [color="#000000:#ff8000:#000000"]
AUTOGENERATED_F_3:e -- W1:w3:w
W1:w3:e -- AUTOGENERATED_F_9:w
__F_3:e -- W1:w3:w
W1:w3:e -- __F_9:w
edge [color="#000000:#ffff00:#000000"]
AUTOGENERATED_F_4:e -- W1:w4:w
W1:w4:e -- AUTOGENERATED_F_10:w
__F_4:e -- W1:w4:w
W1:w4:e -- __F_10:w
edge [color="#000000:#00ff00:#000000"]
AUTOGENERATED_F_5:e -- W1:w5:w
W1:w5:e -- AUTOGENERATED_F_11:w
__F_5:e -- W1:w5:w
W1:w5:e -- __F_11:w
edge [color="#000000:#0066ff:#000000"]
AUTOGENERATED_F_6:e -- W1:w6:w
W1:w6:e -- AUTOGENERATED_F_12:w
__F_6:e -- W1:w6:w
W1:w6:e -- __F_12:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>

322
examples/ex04.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex04</title>
<style>
@ -30,219 +30,219 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="673pt" height="287pt"
viewBox="0.00 0.00 673.00 286.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 282.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-282.5 669,-282.5 669,4 -4,4"/>
<!-- AUTOGENERATED_F_1 -->
<svg width="665pt" height="291pt"
viewBox="0.00 0.00 665.25 290.62" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 286.62)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-286.62 661.25,-286.62 661.25,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>AUTOGENERATED_F_1</title>
<polygon fill="#ffffff" stroke="black" points="89,-258 0,-258 0,-235 89,-235 89,-258"/>
<polygon fill="none" stroke="black" points="0.5,-234.5 0.5,-257.5 89.5,-257.5 89.5,-234.5 0.5,-234.5"/>
<text text-anchor="start" x="4.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-263.75 0,-263.75 0,-240 86.75,-240 86.75,-263.75"/>
<polygon fill="none" stroke="black" points="0,-240 0,-263.75 86.75,-263.75 86.75,-240 0,-240"/>
<text text-anchor="start" x="4" y="-246.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1 -->
<g id="node13" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="432,-278.5 233,-278.5 233,-44.5 432,-44.5 432,-278.5"/>
<polygon fill="none" stroke="black" points="233.5,-255.5 233.5,-278.5 432.5,-278.5 432.5,-255.5 233.5,-255.5"/>
<text text-anchor="start" x="322.5" y="-263.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="233.5,-232.5 233.5,-255.5 256.5,-255.5 256.5,-232.5 233.5,-232.5"/>
<text text-anchor="start" x="237.5" y="-240.3" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="256.5,-232.5 256.5,-255.5 388.5,-255.5 388.5,-232.5 256.5,-232.5"/>
<text text-anchor="start" x="260.5" y="-240.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="388.5,-232.5 388.5,-255.5 432.5,-255.5 432.5,-232.5 388.5,-232.5"/>
<text text-anchor="start" x="392.5" y="-240.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="256.5" y="-219.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="307.5" y="-200.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-192.5 233.5,-194.5 432.5,-194.5 432.5,-192.5 233.5,-192.5"/>
<polygon fill="#895956" stroke="transparent" points="233.5,-190.5 233.5,-192.5 432.5,-192.5 432.5,-190.5 233.5,-190.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-188.5 233.5,-190.5 432.5,-190.5 432.5,-188.5 233.5,-188.5"/>
<text text-anchor="start" x="307" y="-175.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-167.5 233.5,-169.5 432.5,-169.5 432.5,-167.5 233.5,-167.5"/>
<polygon fill="#ff0000" stroke="transparent" points="233.5,-165.5 233.5,-167.5 432.5,-167.5 432.5,-165.5 233.5,-165.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-163.5 233.5,-165.5 432.5,-165.5 432.5,-163.5 233.5,-163.5"/>
<text text-anchor="start" x="306.5" y="-150.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-142.5 233.5,-144.5 432.5,-144.5 432.5,-142.5 233.5,-142.5"/>
<polygon fill="#ff8000" stroke="transparent" points="233.5,-140.5 233.5,-142.5 432.5,-142.5 432.5,-140.5 233.5,-140.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-138.5 233.5,-140.5 432.5,-140.5 432.5,-138.5 233.5,-138.5"/>
<text text-anchor="start" x="308" y="-125.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-117.5 233.5,-119.5 432.5,-119.5 432.5,-117.5 233.5,-117.5"/>
<polygon fill="#ffff00" stroke="transparent" points="233.5,-115.5 233.5,-117.5 432.5,-117.5 432.5,-115.5 233.5,-115.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-113.5 233.5,-115.5 432.5,-115.5 432.5,-113.5 233.5,-113.5"/>
<text text-anchor="start" x="306.5" y="-100.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-92.5 233.5,-94.5 432.5,-94.5 432.5,-92.5 233.5,-92.5"/>
<polygon fill="#00ff00" stroke="transparent" points="233.5,-90.5 233.5,-92.5 432.5,-92.5 432.5,-90.5 233.5,-90.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-88.5 233.5,-90.5 432.5,-90.5 432.5,-88.5 233.5,-88.5"/>
<text text-anchor="start" x="307.5" y="-75.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-67.5 233.5,-69.5 432.5,-69.5 432.5,-67.5 233.5,-67.5"/>
<polygon fill="#0066ff" stroke="transparent" points="233.5,-65.5 233.5,-67.5 432.5,-67.5 432.5,-65.5 233.5,-65.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-63.5 233.5,-65.5 432.5,-65.5 432.5,-63.5 233.5,-63.5"/>
<text text-anchor="start" x="256.5" y="-50.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="426.5,-282.62 230.75,-282.62 230.75,-47.12 426.5,-47.12 426.5,-282.62"/>
<polygon fill="none" stroke="black" points="230.75,-258.88 230.75,-282.62 426.5,-282.62 426.5,-258.88 230.75,-258.88"/>
<text text-anchor="start" x="318.12" y="-265.32" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="230.75,-235.12 230.75,-258.88 253,-258.88 253,-235.12 230.75,-235.12"/>
<text text-anchor="start" x="234.75" y="-241.57" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="253,-235.12 253,-258.88 384,-258.88 384,-235.12 253,-235.12"/>
<text text-anchor="start" x="257" y="-241.57" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="384,-235.12 384,-258.88 426.5,-258.88 426.5,-235.12 384,-235.12"/>
<text text-anchor="start" x="388" y="-241.57" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="253.17" y="-219.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="303.88" y="-200.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-195.12 230.75,-197.12 426.5,-197.12 426.5,-195.12 230.75,-195.12"/>
<polygon fill="#895956" stroke="none" points="230.75,-193.12 230.75,-195.12 426.5,-195.12 426.5,-193.12 230.75,-193.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-191.12 230.75,-193.12 426.5,-193.12 426.5,-191.12 230.75,-191.12"/>
<text text-anchor="start" x="303.5" y="-175.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-170.12 230.75,-172.12 426.5,-172.12 426.5,-170.12 230.75,-170.12"/>
<polygon fill="#ff0000" stroke="none" points="230.75,-168.12 230.75,-170.12 426.5,-170.12 426.5,-168.12 230.75,-168.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-166.12 230.75,-168.12 426.5,-168.12 426.5,-166.12 230.75,-166.12"/>
<text text-anchor="start" x="302" y="-150.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-145.12 230.75,-147.12 426.5,-147.12 426.5,-145.12 230.75,-145.12"/>
<polygon fill="#ff8000" stroke="none" points="230.75,-143.12 230.75,-145.12 426.5,-145.12 426.5,-143.12 230.75,-143.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-141.12 230.75,-143.12 426.5,-143.12 426.5,-141.12 230.75,-141.12"/>
<text text-anchor="start" x="304.25" y="-125.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-120.12 230.75,-122.12 426.5,-122.12 426.5,-120.12 230.75,-120.12"/>
<polygon fill="#ffff00" stroke="none" points="230.75,-118.12 230.75,-120.12 426.5,-120.12 426.5,-118.12 230.75,-118.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-116.12 230.75,-118.12 426.5,-118.12 426.5,-116.12 230.75,-116.12"/>
<text text-anchor="start" x="302.75" y="-100.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-95.12 230.75,-97.12 426.5,-97.12 426.5,-95.12 230.75,-95.12"/>
<polygon fill="#00ff00" stroke="none" points="230.75,-93.12 230.75,-95.12 426.5,-95.12 426.5,-93.12 230.75,-93.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-91.12 230.75,-93.12 426.5,-93.12 426.5,-91.12 230.75,-91.12"/>
<text text-anchor="start" x="303.88" y="-75.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-70.12 230.75,-72.12 426.5,-72.12 426.5,-70.12 230.75,-70.12"/>
<polygon fill="#0066ff" stroke="none" points="230.75,-68.12 230.75,-70.12 426.5,-70.12 426.5,-68.12 230.75,-68.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-66.12 230.75,-68.12 426.5,-68.12 426.5,-66.12 230.75,-66.12"/>
<text text-anchor="start" x="253.17" y="-50.83" font-family="arial" font-size="14.00"> </text>
</g>
<!-- AUTOGENERATED_F_1&#45;&#45;W1 -->
<!-- __F_1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>AUTOGENERATED_F_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-244.5C155.53,-246.25 162.51,-191.25 233,-189.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M89,-246.5C157.51,-246.5 164.49,-191.5 233,-191.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-248.5C159.49,-246.75 166.47,-191.75 233,-193.5"/>
<title>__F_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-249.88C153.76,-251.67 159.76,-193.67 230.75,-191.88"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M86.75,-251.88C155.75,-251.88 161.75,-193.88 230.75,-193.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-253.87C157.74,-252.08 163.74,-194.08 230.75,-195.87"/>
</g>
<!-- AUTOGENERATED_F_2 -->
<!-- __F_2 -->
<g id="node2" class="node">
<title>AUTOGENERATED_F_2</title>
<polygon fill="#ffffff" stroke="black" points="89,-211 0,-211 0,-188 89,-188 89,-211"/>
<polygon fill="none" stroke="black" points="0.5,-187.5 0.5,-210.5 89.5,-210.5 89.5,-187.5 0.5,-187.5"/>
<text text-anchor="start" x="4.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-215.75 0,-215.75 0,-192 86.75,-192 86.75,-215.75"/>
<polygon fill="none" stroke="black" points="0,-192 0,-215.75 86.75,-215.75 86.75,-192 0,-192"/>
<text text-anchor="start" x="4" y="-198.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_2&#45;&#45;W1 -->
<!-- __F_2&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>AUTOGENERATED_F_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-197.5C152.79,-198.78 165.47,-165.78 233,-164.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M89,-199.5C154.66,-199.5 167.34,-166.5 233,-166.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-201.5C156.53,-200.22 169.21,-167.22 233,-168.5"/>
<title>__F_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-201.88C150.73,-203.21 163,-168.21 230.75,-166.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M86.75,-203.88C152.61,-203.88 164.89,-168.88 230.75,-168.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-205.87C154.5,-204.54 166.77,-169.54 230.75,-170.87"/>
</g>
<!-- AUTOGENERATED_F_3 -->
<!-- __F_3 -->
<g id="node3" class="node">
<title>AUTOGENERATED_F_3</title>
<polygon fill="#ffffff" stroke="black" points="89,-164 0,-164 0,-141 89,-141 89,-164"/>
<polygon fill="none" stroke="black" points="0.5,-140.5 0.5,-163.5 89.5,-163.5 89.5,-140.5 0.5,-140.5"/>
<text text-anchor="start" x="4.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-167.75 0,-167.75 0,-144 86.75,-144 86.75,-167.75"/>
<polygon fill="none" stroke="black" points="0,-144 0,-167.75 86.75,-167.75 86.75,-144 0,-144"/>
<text text-anchor="start" x="4" y="-150.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_3&#45;&#45;W1 -->
<!-- __F_3&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>AUTOGENERATED_F_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-150.5C152.04,-150.86 167.66,-139.86 233,-139.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M89,-152.5C153.19,-152.5 168.81,-141.5 233,-141.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-154.5C154.34,-154.14 169.96,-143.14 233,-143.5"/>
<title>__F_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-153.88C149.75,-154.29 165.31,-142.29 230.75,-141.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M86.75,-155.88C150.97,-155.88 166.53,-143.88 230.75,-143.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-157.87C152.19,-157.46 167.75,-145.46 230.75,-145.87"/>
</g>
<!-- AUTOGENERATED_F_4 -->
<!-- __F_4 -->
<g id="node4" class="node">
<title>AUTOGENERATED_F_4</title>
<polygon fill="#ffffff" stroke="black" points="89,-117 0,-117 0,-94 89,-94 89,-117"/>
<polygon fill="none" stroke="black" points="0.5,-93.5 0.5,-116.5 89.5,-116.5 89.5,-93.5 0.5,-93.5"/>
<text text-anchor="start" x="4.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-119.75 0,-119.75 0,-96 86.75,-96 86.75,-119.75"/>
<polygon fill="none" stroke="black" points="0,-96 0,-119.75 86.75,-119.75 86.75,-96 0,-96"/>
<text text-anchor="start" x="4" y="-102.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_4&#45;&#45;W1 -->
<!-- __F_4&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>AUTOGENERATED_F_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-103.5C154.34,-103.86 169.96,-114.86 233,-114.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M89,-105.5C153.19,-105.5 168.81,-116.5 233,-116.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-107.5C152.04,-107.14 167.66,-118.14 233,-118.5"/>
<title>__F_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-105.88C152.09,-106.24 167.71,-117.24 230.75,-116.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M86.75,-107.88C150.94,-107.87 166.56,-118.87 230.75,-118.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-109.87C149.79,-109.51 165.41,-120.51 230.75,-120.87"/>
</g>
<!-- AUTOGENERATED_F_5 -->
<!-- __F_5 -->
<g id="node5" class="node">
<title>AUTOGENERATED_F_5</title>
<polygon fill="#ffffff" stroke="black" points="89,-70 0,-70 0,-47 89,-47 89,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 89.5,-69.5 89.5,-46.5 0.5,-46.5"/>
<text text-anchor="start" x="4.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_5</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-71.75 0,-71.75 0,-48 86.75,-48 86.75,-71.75"/>
<polygon fill="none" stroke="black" points="0,-48 0,-71.75 86.75,-71.75 86.75,-48 0,-48"/>
<text text-anchor="start" x="4" y="-54.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_5&#45;&#45;W1 -->
<!-- __F_5&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>AUTOGENERATED_F_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-56.5C156.53,-57.78 169.21,-90.78 233,-89.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M89,-58.5C154.66,-58.5 167.34,-91.5 233,-91.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-60.5C152.79,-59.22 165.47,-92.22 233,-93.5"/>
<title>__F_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-57.88C154.39,-59.19 166.87,-93.19 230.75,-91.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M86.75,-59.88C152.51,-59.88 164.99,-93.88 230.75,-93.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-61.87C150.63,-60.56 163.11,-94.56 230.75,-95.87"/>
</g>
<!-- AUTOGENERATED_F_6 -->
<!-- __F_6 -->
<g id="node6" class="node">
<title>AUTOGENERATED_F_6</title>
<polygon fill="#ffffff" stroke="black" points="89,-23 0,-23 0,0 89,0 89,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 89.5,-22.5 89.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_6</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-23.75 0,-23.75 0,0 86.75,0 86.75,-23.75"/>
<polygon fill="none" stroke="black" points="0,0 0,-23.75 86.75,-23.75 86.75,0 0,0"/>
<text text-anchor="start" x="4" y="-6.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_6&#45;&#45;W1 -->
<!-- __F_6&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>AUTOGENERATED_F_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-9.5C159.49,-11.25 166.47,-66.25 233,-64.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M89,-11.5C157.51,-11.5 164.49,-66.5 233,-66.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-13.5C155.53,-11.75 162.51,-66.75 233,-68.5"/>
<title>__F_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-9.88C157.57,-11.65 163.91,-68.65 230.75,-66.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M86.75,-11.88C155.58,-11.88 161.92,-68.88 230.75,-68.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-13.87C153.59,-12.1 159.93,-69.1 230.75,-70.87"/>
</g>
<!-- AUTOGENERATED_F_7 -->
<!-- __F_7 -->
<g id="node7" class="node">
<title>AUTOGENERATED_F_7</title>
<polygon fill="#ffffff" stroke="black" points="665,-258 576,-258 576,-235 665,-235 665,-258"/>
<polygon fill="none" stroke="black" points="576.5,-234.5 576.5,-257.5 665.5,-257.5 665.5,-234.5 576.5,-234.5"/>
<text text-anchor="start" x="580.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_7</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-263.75 570.5,-263.75 570.5,-240 657.25,-240 657.25,-263.75"/>
<polygon fill="none" stroke="black" points="570.5,-240 570.5,-263.75 657.25,-263.75 657.25,-240 570.5,-240"/>
<text text-anchor="start" x="574.5" y="-246.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_8 -->
<!-- __F_8 -->
<g id="node8" class="node">
<title>AUTOGENERATED_F_8</title>
<polygon fill="#ffffff" stroke="black" points="665,-211 576,-211 576,-188 665,-188 665,-211"/>
<polygon fill="none" stroke="black" points="576.5,-187.5 576.5,-210.5 665.5,-210.5 665.5,-187.5 576.5,-187.5"/>
<text text-anchor="start" x="580.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_8</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-215.75 570.5,-215.75 570.5,-192 657.25,-192 657.25,-215.75"/>
<polygon fill="none" stroke="black" points="570.5,-192 570.5,-215.75 657.25,-215.75 657.25,-192 570.5,-192"/>
<text text-anchor="start" x="574.5" y="-198.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_9 -->
<!-- __F_9 -->
<g id="node9" class="node">
<title>AUTOGENERATED_F_9</title>
<polygon fill="#ffffff" stroke="black" points="665,-164 576,-164 576,-141 665,-141 665,-164"/>
<polygon fill="none" stroke="black" points="576.5,-140.5 576.5,-163.5 665.5,-163.5 665.5,-140.5 576.5,-140.5"/>
<text text-anchor="start" x="580.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_9</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-167.75 570.5,-167.75 570.5,-144 657.25,-144 657.25,-167.75"/>
<polygon fill="none" stroke="black" points="570.5,-144 570.5,-167.75 657.25,-167.75 657.25,-144 570.5,-144"/>
<text text-anchor="start" x="574.5" y="-150.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_10 -->
<!-- __F_10 -->
<g id="node10" class="node">
<title>AUTOGENERATED_F_10</title>
<polygon fill="#ffffff" stroke="black" points="665,-117 576,-117 576,-94 665,-94 665,-117"/>
<polygon fill="none" stroke="black" points="576.5,-93.5 576.5,-116.5 665.5,-116.5 665.5,-93.5 576.5,-93.5"/>
<text text-anchor="start" x="580.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_10</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-119.75 570.5,-119.75 570.5,-96 657.25,-96 657.25,-119.75"/>
<polygon fill="none" stroke="black" points="570.5,-96 570.5,-119.75 657.25,-119.75 657.25,-96 570.5,-96"/>
<text text-anchor="start" x="574.5" y="-102.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_11 -->
<!-- __F_11 -->
<g id="node11" class="node">
<title>AUTOGENERATED_F_11</title>
<polygon fill="#ffffff" stroke="black" points="665,-70 576,-70 576,-47 665,-47 665,-70"/>
<polygon fill="none" stroke="black" points="576.5,-46.5 576.5,-69.5 665.5,-69.5 665.5,-46.5 576.5,-46.5"/>
<text text-anchor="start" x="580.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_11</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-71.75 570.5,-71.75 570.5,-48 657.25,-48 657.25,-71.75"/>
<polygon fill="none" stroke="black" points="570.5,-48 570.5,-71.75 657.25,-71.75 657.25,-48 570.5,-48"/>
<text text-anchor="start" x="574.5" y="-54.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_12 -->
<!-- __F_12 -->
<g id="node12" class="node">
<title>AUTOGENERATED_F_12</title>
<polygon fill="#ffffff" stroke="black" points="665,-23 576,-23 576,0 665,0 665,-23"/>
<polygon fill="none" stroke="black" points="576.5,0.5 576.5,-22.5 665.5,-22.5 665.5,0.5 576.5,0.5"/>
<text text-anchor="start" x="580.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_12</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-23.75 570.5,-23.75 570.5,0 657.25,0 657.25,-23.75"/>
<polygon fill="none" stroke="black" points="570.5,0 570.5,-23.75 657.25,-23.75 657.25,0 570.5,0"/>
<text text-anchor="start" x="574.5" y="-6.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_7 -->
<!-- W1&#45;&#45;__F_7 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-189.5C502.49,-191.25 509.47,-246.25 576,-244.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M432,-191.5C500.51,-191.5 507.49,-246.5 576,-246.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-193.5C498.53,-191.75 505.51,-246.75 576,-248.5"/>
<title>W1:e&#45;&#45;__F_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-191.88C497.49,-193.67 503.49,-251.67 570.5,-249.88"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M426.5,-193.88C495.5,-193.88 501.5,-251.88 570.5,-251.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-195.87C493.51,-194.08 499.51,-252.08 570.5,-253.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_8 -->
<!-- W1&#45;&#45;__F_8 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-164.5C499.53,-165.78 512.21,-198.78 576,-197.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M432,-166.5C497.66,-166.5 510.34,-199.5 576,-199.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-168.5C495.79,-167.22 508.47,-200.22 576,-201.5"/>
<title>W1:e&#45;&#45;__F_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-166.88C494.25,-168.21 506.52,-203.21 570.5,-201.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M426.5,-168.88C492.36,-168.88 504.64,-203.88 570.5,-203.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-170.87C490.48,-169.54 502.75,-204.54 570.5,-205.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_9 -->
<!-- W1&#45;&#45;__F_9 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-139.5C497.34,-139.86 512.96,-150.86 576,-150.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M432,-141.5C496.19,-141.5 511.81,-152.5 576,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-143.5C495.04,-143.14 510.66,-154.14 576,-154.5"/>
<title>W1:e&#45;&#45;__F_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-141.88C491.94,-142.29 507.5,-154.29 570.5,-153.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M426.5,-143.88C490.72,-143.88 506.28,-155.88 570.5,-155.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-145.87C489.5,-145.46 505.06,-157.46 570.5,-157.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_10 -->
<!-- W1&#45;&#45;__F_10 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-114.5C495.04,-114.86 510.66,-103.86 576,-103.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M432,-116.5C496.19,-116.5 511.81,-105.5 576,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-118.5C497.34,-118.14 512.96,-107.14 576,-107.5"/>
<title>W1:e&#45;&#45;__F_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-116.88C489.54,-117.24 505.16,-106.24 570.5,-105.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M426.5,-118.88C490.69,-118.87 506.31,-107.87 570.5,-107.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-120.87C491.84,-120.51 507.46,-109.51 570.5,-109.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_11 -->
<!-- W1&#45;&#45;__F_11 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-89.5C495.79,-90.78 508.47,-57.78 576,-56.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M432,-91.5C497.66,-91.5 510.34,-58.5 576,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-93.5C499.53,-92.22 512.21,-59.22 576,-60.5"/>
<title>W1:e&#45;&#45;__F_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-91.88C490.38,-93.19 502.86,-59.19 570.5,-57.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M426.5,-93.88C492.26,-93.88 504.74,-59.88 570.5,-59.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-95.87C494.14,-94.56 506.62,-60.56 570.5,-61.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_12 -->
<!-- W1&#45;&#45;__F_12 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-64.5C498.53,-66.25 505.51,-11.25 576,-9.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M432,-66.5C500.51,-66.5 507.49,-11.5 576,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-68.5C502.49,-66.75 509.47,-11.75 576,-13.5"/>
<title>W1:e&#45;&#45;__F_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-66.88C493.34,-68.65 499.68,-11.65 570.5,-9.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M426.5,-68.88C495.33,-68.88 501.67,-11.88 570.5,-11.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-70.87C497.32,-69.1 503.66,-12.1 570.5,-13.87"/>
</g>
</g>
</svg>

BIN
examples/ex04.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 69 KiB

320
examples/ex04.svg generated
View File

@ -1,219 +1,219 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="673pt" height="287pt"
viewBox="0.00 0.00 673.00 286.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 282.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-282.5 669,-282.5 669,4 -4,4"/>
<!-- AUTOGENERATED_F_1 -->
<svg width="665pt" height="291pt"
viewBox="0.00 0.00 665.25 290.62" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 286.62)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-286.62 661.25,-286.62 661.25,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>AUTOGENERATED_F_1</title>
<polygon fill="#ffffff" stroke="black" points="89,-258 0,-258 0,-235 89,-235 89,-258"/>
<polygon fill="none" stroke="black" points="0.5,-234.5 0.5,-257.5 89.5,-257.5 89.5,-234.5 0.5,-234.5"/>
<text text-anchor="start" x="4.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-263.75 0,-263.75 0,-240 86.75,-240 86.75,-263.75"/>
<polygon fill="none" stroke="black" points="0,-240 0,-263.75 86.75,-263.75 86.75,-240 0,-240"/>
<text text-anchor="start" x="4" y="-246.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1 -->
<g id="node13" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="432,-278.5 233,-278.5 233,-44.5 432,-44.5 432,-278.5"/>
<polygon fill="none" stroke="black" points="233.5,-255.5 233.5,-278.5 432.5,-278.5 432.5,-255.5 233.5,-255.5"/>
<text text-anchor="start" x="322.5" y="-263.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="233.5,-232.5 233.5,-255.5 256.5,-255.5 256.5,-232.5 233.5,-232.5"/>
<text text-anchor="start" x="237.5" y="-240.3" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="256.5,-232.5 256.5,-255.5 388.5,-255.5 388.5,-232.5 256.5,-232.5"/>
<text text-anchor="start" x="260.5" y="-240.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="388.5,-232.5 388.5,-255.5 432.5,-255.5 432.5,-232.5 388.5,-232.5"/>
<text text-anchor="start" x="392.5" y="-240.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="256.5" y="-219.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="307.5" y="-200.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-192.5 233.5,-194.5 432.5,-194.5 432.5,-192.5 233.5,-192.5"/>
<polygon fill="#895956" stroke="transparent" points="233.5,-190.5 233.5,-192.5 432.5,-192.5 432.5,-190.5 233.5,-190.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-188.5 233.5,-190.5 432.5,-190.5 432.5,-188.5 233.5,-188.5"/>
<text text-anchor="start" x="307" y="-175.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-167.5 233.5,-169.5 432.5,-169.5 432.5,-167.5 233.5,-167.5"/>
<polygon fill="#ff0000" stroke="transparent" points="233.5,-165.5 233.5,-167.5 432.5,-167.5 432.5,-165.5 233.5,-165.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-163.5 233.5,-165.5 432.5,-165.5 432.5,-163.5 233.5,-163.5"/>
<text text-anchor="start" x="306.5" y="-150.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-142.5 233.5,-144.5 432.5,-144.5 432.5,-142.5 233.5,-142.5"/>
<polygon fill="#ff8000" stroke="transparent" points="233.5,-140.5 233.5,-142.5 432.5,-142.5 432.5,-140.5 233.5,-140.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-138.5 233.5,-140.5 432.5,-140.5 432.5,-138.5 233.5,-138.5"/>
<text text-anchor="start" x="308" y="-125.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-117.5 233.5,-119.5 432.5,-119.5 432.5,-117.5 233.5,-117.5"/>
<polygon fill="#ffff00" stroke="transparent" points="233.5,-115.5 233.5,-117.5 432.5,-117.5 432.5,-115.5 233.5,-115.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-113.5 233.5,-115.5 432.5,-115.5 432.5,-113.5 233.5,-113.5"/>
<text text-anchor="start" x="306.5" y="-100.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-92.5 233.5,-94.5 432.5,-94.5 432.5,-92.5 233.5,-92.5"/>
<polygon fill="#00ff00" stroke="transparent" points="233.5,-90.5 233.5,-92.5 432.5,-92.5 432.5,-90.5 233.5,-90.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-88.5 233.5,-90.5 432.5,-90.5 432.5,-88.5 233.5,-88.5"/>
<text text-anchor="start" x="307.5" y="-75.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-67.5 233.5,-69.5 432.5,-69.5 432.5,-67.5 233.5,-67.5"/>
<polygon fill="#0066ff" stroke="transparent" points="233.5,-65.5 233.5,-67.5 432.5,-67.5 432.5,-65.5 233.5,-65.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-63.5 233.5,-65.5 432.5,-65.5 432.5,-63.5 233.5,-63.5"/>
<text text-anchor="start" x="256.5" y="-50.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="426.5,-282.62 230.75,-282.62 230.75,-47.12 426.5,-47.12 426.5,-282.62"/>
<polygon fill="none" stroke="black" points="230.75,-258.88 230.75,-282.62 426.5,-282.62 426.5,-258.88 230.75,-258.88"/>
<text text-anchor="start" x="318.12" y="-265.32" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="230.75,-235.12 230.75,-258.88 253,-258.88 253,-235.12 230.75,-235.12"/>
<text text-anchor="start" x="234.75" y="-241.57" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="253,-235.12 253,-258.88 384,-258.88 384,-235.12 253,-235.12"/>
<text text-anchor="start" x="257" y="-241.57" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="384,-235.12 384,-258.88 426.5,-258.88 426.5,-235.12 384,-235.12"/>
<text text-anchor="start" x="388" y="-241.57" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="253.17" y="-219.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="303.88" y="-200.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-195.12 230.75,-197.12 426.5,-197.12 426.5,-195.12 230.75,-195.12"/>
<polygon fill="#895956" stroke="none" points="230.75,-193.12 230.75,-195.12 426.5,-195.12 426.5,-193.12 230.75,-193.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-191.12 230.75,-193.12 426.5,-193.12 426.5,-191.12 230.75,-191.12"/>
<text text-anchor="start" x="303.5" y="-175.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-170.12 230.75,-172.12 426.5,-172.12 426.5,-170.12 230.75,-170.12"/>
<polygon fill="#ff0000" stroke="none" points="230.75,-168.12 230.75,-170.12 426.5,-170.12 426.5,-168.12 230.75,-168.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-166.12 230.75,-168.12 426.5,-168.12 426.5,-166.12 230.75,-166.12"/>
<text text-anchor="start" x="302" y="-150.82" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-145.12 230.75,-147.12 426.5,-147.12 426.5,-145.12 230.75,-145.12"/>
<polygon fill="#ff8000" stroke="none" points="230.75,-143.12 230.75,-145.12 426.5,-145.12 426.5,-143.12 230.75,-143.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-141.12 230.75,-143.12 426.5,-143.12 426.5,-141.12 230.75,-141.12"/>
<text text-anchor="start" x="304.25" y="-125.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-120.12 230.75,-122.12 426.5,-122.12 426.5,-120.12 230.75,-120.12"/>
<polygon fill="#ffff00" stroke="none" points="230.75,-118.12 230.75,-120.12 426.5,-120.12 426.5,-118.12 230.75,-118.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-116.12 230.75,-118.12 426.5,-118.12 426.5,-116.12 230.75,-116.12"/>
<text text-anchor="start" x="302.75" y="-100.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-95.12 230.75,-97.12 426.5,-97.12 426.5,-95.12 230.75,-95.12"/>
<polygon fill="#00ff00" stroke="none" points="230.75,-93.12 230.75,-95.12 426.5,-95.12 426.5,-93.12 230.75,-93.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-91.12 230.75,-93.12 426.5,-93.12 426.5,-91.12 230.75,-91.12"/>
<text text-anchor="start" x="303.88" y="-75.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="230.75,-70.12 230.75,-72.12 426.5,-72.12 426.5,-70.12 230.75,-70.12"/>
<polygon fill="#0066ff" stroke="none" points="230.75,-68.12 230.75,-70.12 426.5,-70.12 426.5,-68.12 230.75,-68.12"/>
<polygon fill="#000000" stroke="none" points="230.75,-66.12 230.75,-68.12 426.5,-68.12 426.5,-66.12 230.75,-66.12"/>
<text text-anchor="start" x="253.17" y="-50.83" font-family="arial" font-size="14.00"> </text>
</g>
<!-- AUTOGENERATED_F_1&#45;&#45;W1 -->
<!-- __F_1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>AUTOGENERATED_F_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-244.5C155.53,-246.25 162.51,-191.25 233,-189.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M89,-246.5C157.51,-246.5 164.49,-191.5 233,-191.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-248.5C159.49,-246.75 166.47,-191.75 233,-193.5"/>
<title>__F_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-249.88C153.76,-251.67 159.76,-193.67 230.75,-191.88"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M86.75,-251.88C155.75,-251.88 161.75,-193.88 230.75,-193.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-253.87C157.74,-252.08 163.74,-194.08 230.75,-195.87"/>
</g>
<!-- AUTOGENERATED_F_2 -->
<!-- __F_2 -->
<g id="node2" class="node">
<title>AUTOGENERATED_F_2</title>
<polygon fill="#ffffff" stroke="black" points="89,-211 0,-211 0,-188 89,-188 89,-211"/>
<polygon fill="none" stroke="black" points="0.5,-187.5 0.5,-210.5 89.5,-210.5 89.5,-187.5 0.5,-187.5"/>
<text text-anchor="start" x="4.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-215.75 0,-215.75 0,-192 86.75,-192 86.75,-215.75"/>
<polygon fill="none" stroke="black" points="0,-192 0,-215.75 86.75,-215.75 86.75,-192 0,-192"/>
<text text-anchor="start" x="4" y="-198.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_2&#45;&#45;W1 -->
<!-- __F_2&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>AUTOGENERATED_F_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-197.5C152.79,-198.78 165.47,-165.78 233,-164.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M89,-199.5C154.66,-199.5 167.34,-166.5 233,-166.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-201.5C156.53,-200.22 169.21,-167.22 233,-168.5"/>
<title>__F_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-201.88C150.73,-203.21 163,-168.21 230.75,-166.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M86.75,-203.88C152.61,-203.88 164.89,-168.88 230.75,-168.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-205.87C154.5,-204.54 166.77,-169.54 230.75,-170.87"/>
</g>
<!-- AUTOGENERATED_F_3 -->
<!-- __F_3 -->
<g id="node3" class="node">
<title>AUTOGENERATED_F_3</title>
<polygon fill="#ffffff" stroke="black" points="89,-164 0,-164 0,-141 89,-141 89,-164"/>
<polygon fill="none" stroke="black" points="0.5,-140.5 0.5,-163.5 89.5,-163.5 89.5,-140.5 0.5,-140.5"/>
<text text-anchor="start" x="4.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-167.75 0,-167.75 0,-144 86.75,-144 86.75,-167.75"/>
<polygon fill="none" stroke="black" points="0,-144 0,-167.75 86.75,-167.75 86.75,-144 0,-144"/>
<text text-anchor="start" x="4" y="-150.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_3&#45;&#45;W1 -->
<!-- __F_3&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>AUTOGENERATED_F_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-150.5C152.04,-150.86 167.66,-139.86 233,-139.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M89,-152.5C153.19,-152.5 168.81,-141.5 233,-141.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-154.5C154.34,-154.14 169.96,-143.14 233,-143.5"/>
<title>__F_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-153.88C149.75,-154.29 165.31,-142.29 230.75,-141.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M86.75,-155.88C150.97,-155.88 166.53,-143.88 230.75,-143.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-157.87C152.19,-157.46 167.75,-145.46 230.75,-145.87"/>
</g>
<!-- AUTOGENERATED_F_4 -->
<!-- __F_4 -->
<g id="node4" class="node">
<title>AUTOGENERATED_F_4</title>
<polygon fill="#ffffff" stroke="black" points="89,-117 0,-117 0,-94 89,-94 89,-117"/>
<polygon fill="none" stroke="black" points="0.5,-93.5 0.5,-116.5 89.5,-116.5 89.5,-93.5 0.5,-93.5"/>
<text text-anchor="start" x="4.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-119.75 0,-119.75 0,-96 86.75,-96 86.75,-119.75"/>
<polygon fill="none" stroke="black" points="0,-96 0,-119.75 86.75,-119.75 86.75,-96 0,-96"/>
<text text-anchor="start" x="4" y="-102.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_4&#45;&#45;W1 -->
<!-- __F_4&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>AUTOGENERATED_F_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-103.5C154.34,-103.86 169.96,-114.86 233,-114.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M89,-105.5C153.19,-105.5 168.81,-116.5 233,-116.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-107.5C152.04,-107.14 167.66,-118.14 233,-118.5"/>
<title>__F_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-105.88C152.09,-106.24 167.71,-117.24 230.75,-116.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M86.75,-107.88C150.94,-107.87 166.56,-118.87 230.75,-118.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-109.87C149.79,-109.51 165.41,-120.51 230.75,-120.87"/>
</g>
<!-- AUTOGENERATED_F_5 -->
<!-- __F_5 -->
<g id="node5" class="node">
<title>AUTOGENERATED_F_5</title>
<polygon fill="#ffffff" stroke="black" points="89,-70 0,-70 0,-47 89,-47 89,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 89.5,-69.5 89.5,-46.5 0.5,-46.5"/>
<text text-anchor="start" x="4.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_5</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-71.75 0,-71.75 0,-48 86.75,-48 86.75,-71.75"/>
<polygon fill="none" stroke="black" points="0,-48 0,-71.75 86.75,-71.75 86.75,-48 0,-48"/>
<text text-anchor="start" x="4" y="-54.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_5&#45;&#45;W1 -->
<!-- __F_5&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>AUTOGENERATED_F_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-56.5C156.53,-57.78 169.21,-90.78 233,-89.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M89,-58.5C154.66,-58.5 167.34,-91.5 233,-91.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-60.5C152.79,-59.22 165.47,-92.22 233,-93.5"/>
<title>__F_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-57.88C154.39,-59.19 166.87,-93.19 230.75,-91.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M86.75,-59.88C152.51,-59.88 164.99,-93.88 230.75,-93.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-61.87C150.63,-60.56 163.11,-94.56 230.75,-95.87"/>
</g>
<!-- AUTOGENERATED_F_6 -->
<!-- __F_6 -->
<g id="node6" class="node">
<title>AUTOGENERATED_F_6</title>
<polygon fill="#ffffff" stroke="black" points="89,-23 0,-23 0,0 89,0 89,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 89.5,-22.5 89.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_6</title>
<polygon fill="#ffffff" stroke="black" points="86.75,-23.75 0,-23.75 0,0 86.75,0 86.75,-23.75"/>
<polygon fill="none" stroke="black" points="0,0 0,-23.75 86.75,-23.75 86.75,0 0,0"/>
<text text-anchor="start" x="4" y="-6.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_6&#45;&#45;W1 -->
<!-- __F_6&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>AUTOGENERATED_F_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-9.5C159.49,-11.25 166.47,-66.25 233,-64.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M89,-11.5C157.51,-11.5 164.49,-66.5 233,-66.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-13.5C155.53,-11.75 162.51,-66.75 233,-68.5"/>
<title>__F_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-9.88C157.57,-11.65 163.91,-68.65 230.75,-66.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M86.75,-11.88C155.58,-11.88 161.92,-68.88 230.75,-68.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M86.75,-13.87C153.59,-12.1 159.93,-69.1 230.75,-70.87"/>
</g>
<!-- AUTOGENERATED_F_7 -->
<!-- __F_7 -->
<g id="node7" class="node">
<title>AUTOGENERATED_F_7</title>
<polygon fill="#ffffff" stroke="black" points="665,-258 576,-258 576,-235 665,-235 665,-258"/>
<polygon fill="none" stroke="black" points="576.5,-234.5 576.5,-257.5 665.5,-257.5 665.5,-234.5 576.5,-234.5"/>
<text text-anchor="start" x="580.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_7</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-263.75 570.5,-263.75 570.5,-240 657.25,-240 657.25,-263.75"/>
<polygon fill="none" stroke="black" points="570.5,-240 570.5,-263.75 657.25,-263.75 657.25,-240 570.5,-240"/>
<text text-anchor="start" x="574.5" y="-246.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_8 -->
<!-- __F_8 -->
<g id="node8" class="node">
<title>AUTOGENERATED_F_8</title>
<polygon fill="#ffffff" stroke="black" points="665,-211 576,-211 576,-188 665,-188 665,-211"/>
<polygon fill="none" stroke="black" points="576.5,-187.5 576.5,-210.5 665.5,-210.5 665.5,-187.5 576.5,-187.5"/>
<text text-anchor="start" x="580.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_8</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-215.75 570.5,-215.75 570.5,-192 657.25,-192 657.25,-215.75"/>
<polygon fill="none" stroke="black" points="570.5,-192 570.5,-215.75 657.25,-215.75 657.25,-192 570.5,-192"/>
<text text-anchor="start" x="574.5" y="-198.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_9 -->
<!-- __F_9 -->
<g id="node9" class="node">
<title>AUTOGENERATED_F_9</title>
<polygon fill="#ffffff" stroke="black" points="665,-164 576,-164 576,-141 665,-141 665,-164"/>
<polygon fill="none" stroke="black" points="576.5,-140.5 576.5,-163.5 665.5,-163.5 665.5,-140.5 576.5,-140.5"/>
<text text-anchor="start" x="580.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_9</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-167.75 570.5,-167.75 570.5,-144 657.25,-144 657.25,-167.75"/>
<polygon fill="none" stroke="black" points="570.5,-144 570.5,-167.75 657.25,-167.75 657.25,-144 570.5,-144"/>
<text text-anchor="start" x="574.5" y="-150.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_10 -->
<!-- __F_10 -->
<g id="node10" class="node">
<title>AUTOGENERATED_F_10</title>
<polygon fill="#ffffff" stroke="black" points="665,-117 576,-117 576,-94 665,-94 665,-117"/>
<polygon fill="none" stroke="black" points="576.5,-93.5 576.5,-116.5 665.5,-116.5 665.5,-93.5 576.5,-93.5"/>
<text text-anchor="start" x="580.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_10</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-119.75 570.5,-119.75 570.5,-96 657.25,-96 657.25,-119.75"/>
<polygon fill="none" stroke="black" points="570.5,-96 570.5,-119.75 657.25,-119.75 657.25,-96 570.5,-96"/>
<text text-anchor="start" x="574.5" y="-102.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_11 -->
<!-- __F_11 -->
<g id="node11" class="node">
<title>AUTOGENERATED_F_11</title>
<polygon fill="#ffffff" stroke="black" points="665,-70 576,-70 576,-47 665,-47 665,-70"/>
<polygon fill="none" stroke="black" points="576.5,-46.5 576.5,-69.5 665.5,-69.5 665.5,-46.5 576.5,-46.5"/>
<text text-anchor="start" x="580.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_11</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-71.75 570.5,-71.75 570.5,-48 657.25,-48 657.25,-71.75"/>
<polygon fill="none" stroke="black" points="570.5,-48 570.5,-71.75 657.25,-71.75 657.25,-48 570.5,-48"/>
<text text-anchor="start" x="574.5" y="-54.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- AUTOGENERATED_F_12 -->
<!-- __F_12 -->
<g id="node12" class="node">
<title>AUTOGENERATED_F_12</title>
<polygon fill="#ffffff" stroke="black" points="665,-23 576,-23 576,0 665,0 665,-23"/>
<polygon fill="none" stroke="black" points="576.5,0.5 576.5,-22.5 665.5,-22.5 665.5,0.5 576.5,0.5"/>
<text text-anchor="start" x="580.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_12</title>
<polygon fill="#ffffff" stroke="black" points="657.25,-23.75 570.5,-23.75 570.5,0 657.25,0 657.25,-23.75"/>
<polygon fill="none" stroke="black" points="570.5,0 570.5,-23.75 657.25,-23.75 657.25,0 570.5,0"/>
<text text-anchor="start" x="574.5" y="-6.45" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_7 -->
<!-- W1&#45;&#45;__F_7 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-189.5C502.49,-191.25 509.47,-246.25 576,-244.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M432,-191.5C500.51,-191.5 507.49,-246.5 576,-246.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-193.5C498.53,-191.75 505.51,-246.75 576,-248.5"/>
<title>W1:e&#45;&#45;__F_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-191.88C497.49,-193.67 503.49,-251.67 570.5,-249.88"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M426.5,-193.88C495.5,-193.88 501.5,-251.88 570.5,-251.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-195.87C493.51,-194.08 499.51,-252.08 570.5,-253.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_8 -->
<!-- W1&#45;&#45;__F_8 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-164.5C499.53,-165.78 512.21,-198.78 576,-197.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M432,-166.5C497.66,-166.5 510.34,-199.5 576,-199.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-168.5C495.79,-167.22 508.47,-200.22 576,-201.5"/>
<title>W1:e&#45;&#45;__F_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-166.88C494.25,-168.21 506.52,-203.21 570.5,-201.88"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M426.5,-168.88C492.36,-168.88 504.64,-203.88 570.5,-203.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-170.87C490.48,-169.54 502.75,-204.54 570.5,-205.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_9 -->
<!-- W1&#45;&#45;__F_9 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-139.5C497.34,-139.86 512.96,-150.86 576,-150.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M432,-141.5C496.19,-141.5 511.81,-152.5 576,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-143.5C495.04,-143.14 510.66,-154.14 576,-154.5"/>
<title>W1:e&#45;&#45;__F_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-141.88C491.94,-142.29 507.5,-154.29 570.5,-153.88"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M426.5,-143.88C490.72,-143.88 506.28,-155.88 570.5,-155.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-145.87C489.5,-145.46 505.06,-157.46 570.5,-157.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_10 -->
<!-- W1&#45;&#45;__F_10 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-114.5C495.04,-114.86 510.66,-103.86 576,-103.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M432,-116.5C496.19,-116.5 511.81,-105.5 576,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-118.5C497.34,-118.14 512.96,-107.14 576,-107.5"/>
<title>W1:e&#45;&#45;__F_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-116.88C489.54,-117.24 505.16,-106.24 570.5,-105.88"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M426.5,-118.88C490.69,-118.87 506.31,-107.87 570.5,-107.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-120.87C491.84,-120.51 507.46,-109.51 570.5,-109.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_11 -->
<!-- W1&#45;&#45;__F_11 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-89.5C495.79,-90.78 508.47,-57.78 576,-56.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M432,-91.5C497.66,-91.5 510.34,-58.5 576,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-93.5C499.53,-92.22 512.21,-59.22 576,-60.5"/>
<title>W1:e&#45;&#45;__F_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-91.88C490.38,-93.19 502.86,-59.19 570.5,-57.88"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M426.5,-93.88C492.26,-93.88 504.74,-59.88 570.5,-59.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-95.87C494.14,-94.56 506.62,-60.56 570.5,-61.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_12 -->
<!-- W1&#45;&#45;__F_12 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-64.5C498.53,-66.25 505.51,-11.25 576,-9.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M432,-66.5C500.51,-66.5 507.49,-11.5 576,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-68.5C502.49,-66.75 509.47,-11.75 576,-13.5"/>
<title>W1:e&#45;&#45;__F_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-66.88C493.34,-68.65 499.68,-11.65 570.5,-9.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M426.5,-68.88C495.33,-68.88 501.67,-11.88 570.5,-11.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M426.5,-70.87C497.32,-69.1 503.66,-12.1 570.5,-13.87"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

4
examples/ex05.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

422
examples/ex05.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex05</title>
<style>
@ -30,301 +30,301 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="1535pt" height="192pt"
viewBox="0.00 0.00 1535.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 188)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-188 1531,-188 1531,4 -4,4"/>
<svg width="1502pt" height="194pt"
viewBox="0.00 0.00 1502.00 193.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 189.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-189.5 1498,-189.5 1498,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-152 0,-152 0,-14 187,-14 187,-152"/>
<polygon fill="none" stroke="black" points="0.5,-129 0.5,-152 187.5,-152 187.5,-129 0.5,-129"/>
<text text-anchor="start" x="85" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-106 0.5,-129 96.5,-129 96.5,-106 0.5,-106"/>
<text text-anchor="start" x="4.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-106 96.5,-129 147.5,-129 147.5,-106 96.5,-106"/>
<text text-anchor="start" x="100.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-106 147.5,-129 187.5,-129 187.5,-106 147.5,-106"/>
<text text-anchor="start" x="151.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-83 0.5,-106 106.5,-106 106.5,-83 0.5,-83"/>
<text text-anchor="start" x="37.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-83 106.5,-106 187.5,-106 187.5,-83 106.5,-83"/>
<text text-anchor="start" x="143" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-60 0.5,-83 106.5,-83 106.5,-60 0.5,-60"/>
<text text-anchor="start" x="38.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-60 106.5,-83 187.5,-83 187.5,-60 106.5,-60"/>
<text text-anchor="start" x="143" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-37 0.5,-60 106.5,-60 106.5,-37 0.5,-37"/>
<text text-anchor="start" x="39.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="106.5,-37 106.5,-60 187.5,-60 187.5,-37 106.5,-37"/>
<text text-anchor="start" x="143" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-14 0.5,-37 106.5,-37 106.5,-14 0.5,-14"/>
<text text-anchor="start" x="39" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="106.5,-14 106.5,-37 187.5,-37 187.5,-14 106.5,-14"/>
<text text-anchor="start" x="143" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="180,-152.5 0,-152.5 0,-13 180,-13 180,-152.5"/>
<polygon fill="none" stroke="black" points="0,-128.75 0,-152.5 180,-152.5 180,-128.75 0,-128.75"/>
<text text-anchor="start" x="81.75" y="-135.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-105 0,-128.75 92.75,-128.75 92.75,-105 0,-105"/>
<text text-anchor="start" x="4" y="-111.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="92.75,-105 92.75,-128.75 142,-128.75 142,-105 92.75,-105"/>
<text text-anchor="start" x="96.75" y="-111.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="142,-105 142,-128.75 180,-128.75 180,-105 142,-105"/>
<text text-anchor="start" x="146" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-82 0,-105 101.5,-105 101.5,-82 0,-82"/>
<text text-anchor="start" x="35.38" y="-87.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="101.5,-82 101.5,-105 180,-105 180,-82 101.5,-82"/>
<text text-anchor="start" x="137" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-59 0,-82 101.5,-82 101.5,-59 0,-59"/>
<text text-anchor="start" x="36.5" y="-64.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="101.5,-59 101.5,-82 180,-82 180,-59 101.5,-59"/>
<text text-anchor="start" x="137" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-36 0,-59 101.5,-59 101.5,-36 0,-36"/>
<text text-anchor="start" x="37.62" y="-41.7" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="101.5,-36 101.5,-59 180,-59 180,-36 101.5,-36"/>
<text text-anchor="start" x="137" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-13 0,-36 101.5,-36 101.5,-13 0,-13"/>
<text text-anchor="start" x="36.88" y="-18.7" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="101.5,-13 101.5,-36 180,-36 180,-13 101.5,-13"/>
<text text-anchor="start" x="137" y="-18.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node4" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-184 331,-184 331,0 526,0 526,-184"/>
<polygon fill="none" stroke="black" points="331.5,-161 331.5,-184 526.5,-184 526.5,-161 331.5,-161"/>
<text text-anchor="start" x="418.5" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-138 331.5,-161 369.5,-161 369.5,-138 331.5,-138"/>
<text text-anchor="start" x="339.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="369.5,-138 369.5,-161 400.5,-161 400.5,-138 369.5,-138"/>
<text text-anchor="start" x="377.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="400.5,-138 400.5,-161 475.5,-161 475.5,-138 400.5,-138"/>
<text text-anchor="start" x="408" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="475.5,-138 475.5,-161 526.5,-161 526.5,-138 475.5,-138"/>
<text text-anchor="start" x="483" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="363.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="333.5" y="-105.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="402" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-98 331.5,-100 526.5,-100 526.5,-98 331.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="331.5,-96 331.5,-98 526.5,-98 526.5,-96 331.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-94 331.5,-96 526.5,-96 526.5,-94 331.5,-94"/>
<text text-anchor="start" x="334" y="-80.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="401.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="461" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-73 331.5,-75 526.5,-75 526.5,-73 331.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="331.5,-71 331.5,-73 526.5,-73 526.5,-71 331.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-69 331.5,-71 526.5,-71 526.5,-69 331.5,-69"/>
<text text-anchor="start" x="335.5" y="-55.8" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="402" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-48 331.5,-50 526.5,-50 526.5,-48 331.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-46 331.5,-48 526.5,-48 526.5,-46 331.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-44 331.5,-46 526.5,-46 526.5,-44 331.5,-44"/>
<text text-anchor="start" x="334.5" y="-30.8" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="402.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-23 331.5,-25 526.5,-25 526.5,-23 331.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="331.5,-21 331.5,-23 526.5,-23 526.5,-21 331.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 526.5,-21 526.5,-19 331.5,-19"/>
<text text-anchor="start" x="363.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="513,-185.5 324,-185.5 324,0 513,0 513,-185.5"/>
<polygon fill="none" stroke="black" points="324,-161.75 324,-185.5 513,-185.5 513,-161.75 324,-161.75"/>
<text text-anchor="start" x="408" y="-168.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324,-138 324,-161.75 360.19,-161.75 360.19,-138 324,-138"/>
<text text-anchor="start" x="331.59" y="-144.45" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="360.19,-138 360.19,-161.75 389.62,-161.75 389.62,-138 360.19,-138"/>
<text text-anchor="start" x="367.78" y="-144.45" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="389.62,-138 389.62,-161.75 463.31,-161.75 463.31,-138 389.62,-138"/>
<text text-anchor="start" x="397.22" y="-144.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="463.31,-138 463.31,-161.75 513,-161.75 513,-138 463.31,-138"/>
<text text-anchor="start" x="470.91" y="-144.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="355.12" y="-122.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="325.88" y="-103.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="392.62" y="-103.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="448.88" y="-103.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-98 324,-100 513,-100 513,-98 324,-98"/>
<polygon fill="#ff66cc" stroke="none" points="324,-96 324,-98 513,-98 513,-96 324,-96"/>
<polygon fill="#000000" stroke="none" points="324,-94 324,-96 513,-96 513,-94 324,-94"/>
<text text-anchor="start" x="327" y="-78.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="391.88" y="-78.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="450" y="-78.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-73 324,-75 513,-75 513,-73 324,-73"/>
<polygon fill="#00ffff" stroke="none" points="324,-71 324,-73 513,-73 513,-71 324,-71"/>
<polygon fill="#000000" stroke="none" points="324,-69 324,-71 513,-71 513,-69 324,-69"/>
<text text-anchor="start" x="328.12" y="-53.7" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="392.62" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="451.12" y="-53.7" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="324,-48 324,-50 513,-50 513,-48 324,-48"/>
<polygon fill="#ffff00" stroke="none" points="324,-46 324,-48 513,-48 513,-46 324,-46"/>
<polygon fill="#000000" stroke="none" points="324,-44 324,-46 513,-46 513,-44 324,-44"/>
<text text-anchor="start" x="327.38" y="-28.7" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="393" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="450.38" y="-28.7" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="324,-23 324,-25 513,-25 513,-23 324,-23"/>
<polygon fill="#8000ff" stroke="none" points="324,-21 324,-23 513,-23 513,-21 324,-21"/>
<polygon fill="#000000" stroke="none" points="324,-19 324,-21 513,-21 513,-19 324,-19"/>
<text text-anchor="start" x="355.12" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-93C251.25,-93.02 267.24,-95.02 331,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M187,-95C251.01,-95 266.99,-97 331,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-97C250.76,-96.98 266.75,-98.98 331,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-91.75C244.38,-91.78 260.36,-94.78 324,-94.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M180,-93.75C244.01,-93.75 259.99,-96.75 324,-96.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-95.75C243.64,-95.72 259.62,-98.72 324,-98.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-69C251.13,-69 267.12,-70 331,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M187,-71C251,-71 267,-72 331,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-73C250.88,-73 266.87,-74 331,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-68.75C244.13,-68.75 260.12,-69.75 324,-69.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M180,-70.75C244,-70.75 260,-71.75 324,-71.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-72.75C243.88,-72.75 259.87,-73.75 324,-73.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-46C250.88,-46 266.87,-45 331,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-48C251,-48 267,-47 331,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-50C251.13,-50 267.12,-49 331,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-45.75C243.88,-45.75 259.87,-44.75 324,-44.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M180,-47.75C244,-47.75 260,-46.75 324,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-49.75C244.13,-49.75 260.12,-48.75 324,-48.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-23C250.64,-23.03 266.62,-20.03 331,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M187,-25C251.01,-25 266.99,-22 331,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-27C251.38,-26.97 267.36,-23.97 331,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-22.75C243.64,-22.78 259.62,-19.78 324,-19.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M180,-24.75C244.01,-24.75 259.99,-21.75 324,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-26.75C244.38,-26.72 260.36,-23.72 324,-23.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="857,-152 670,-152 670,-14 857,-14 857,-152"/>
<polygon fill="none" stroke="black" points="670.5,-129 670.5,-152 857.5,-152 857.5,-129 670.5,-129"/>
<text text-anchor="start" x="755" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-106 670.5,-129 766.5,-129 766.5,-106 670.5,-106"/>
<text text-anchor="start" x="674.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="766.5,-106 766.5,-129 817.5,-129 817.5,-106 766.5,-106"/>
<text text-anchor="start" x="770.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="817.5,-106 817.5,-129 857.5,-129 857.5,-106 817.5,-106"/>
<text text-anchor="start" x="821.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-83 670.5,-106 725.5,-106 725.5,-83 670.5,-83"/>
<text text-anchor="start" x="694" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="725.5,-83 725.5,-106 803.5,-106 803.5,-83 725.5,-83"/>
<text text-anchor="start" x="748.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="803.5,-83 803.5,-106 857.5,-106 857.5,-83 803.5,-83"/>
<text text-anchor="start" x="826.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="670.5,-60 670.5,-83 725.5,-83 725.5,-60 670.5,-60"/>
<text text-anchor="start" x="694" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="725.5,-60 725.5,-83 803.5,-83 803.5,-60 725.5,-60"/>
<text text-anchor="start" x="749.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="803.5,-60 803.5,-83 857.5,-83 857.5,-60 803.5,-60"/>
<text text-anchor="start" x="826.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="670.5,-37 670.5,-60 725.5,-60 725.5,-37 670.5,-37"/>
<text text-anchor="start" x="694" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="725.5,-37 725.5,-60 803.5,-60 803.5,-37 725.5,-37"/>
<text text-anchor="start" x="750.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="803.5,-37 803.5,-60 857.5,-60 857.5,-37 803.5,-37"/>
<text text-anchor="start" x="826.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="670.5,-14 670.5,-37 725.5,-37 725.5,-14 670.5,-14"/>
<text text-anchor="start" x="694" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="725.5,-14 725.5,-37 803.5,-37 803.5,-14 725.5,-14"/>
<text text-anchor="start" x="750" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="803.5,-14 803.5,-37 857.5,-37 857.5,-14 803.5,-14"/>
<text text-anchor="start" x="826.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="837,-152.5 657,-152.5 657,-13 837,-13 837,-152.5"/>
<polygon fill="none" stroke="black" points="657,-128.75 657,-152.5 837,-152.5 837,-128.75 657,-128.75"/>
<text text-anchor="start" x="738.75" y="-135.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="657,-105 657,-128.75 749.75,-128.75 749.75,-105 657,-105"/>
<text text-anchor="start" x="661" y="-111.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="749.75,-105 749.75,-128.75 799,-128.75 799,-105 749.75,-105"/>
<text text-anchor="start" x="753.75" y="-111.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="799,-105 799,-128.75 837,-128.75 837,-105 799,-105"/>
<text text-anchor="start" x="803" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="657,-82 657,-105 709.33,-105 709.33,-82 657,-82"/>
<text text-anchor="start" x="679.42" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="709.33,-82 709.33,-105 784.67,-105 784.67,-82 709.33,-82"/>
<text text-anchor="start" x="731.62" y="-87.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="784.67,-82 784.67,-105 837,-105 837,-82 784.67,-82"/>
<text text-anchor="start" x="807.08" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="657,-59 657,-82 709.33,-82 709.33,-59 657,-59"/>
<text text-anchor="start" x="679.42" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="709.33,-59 709.33,-82 784.67,-82 784.67,-59 709.33,-59"/>
<text text-anchor="start" x="732.75" y="-64.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="784.67,-59 784.67,-82 837,-82 837,-59 784.67,-59"/>
<text text-anchor="start" x="807.08" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="657,-36 657,-59 709.33,-59 709.33,-36 657,-36"/>
<text text-anchor="start" x="679.42" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="709.33,-36 709.33,-59 784.67,-59 784.67,-36 709.33,-36"/>
<text text-anchor="start" x="733.88" y="-41.7" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="784.67,-36 784.67,-59 837,-59 837,-36 784.67,-36"/>
<text text-anchor="start" x="807.08" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="657,-13 657,-36 709.33,-36 709.33,-13 657,-13"/>
<text text-anchor="start" x="679.42" y="-18.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="709.33,-13 709.33,-36 784.67,-36 784.67,-13 709.33,-13"/>
<text text-anchor="start" x="733.12" y="-18.7" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="784.67,-13 784.67,-36 837,-36 837,-13 784.67,-13"/>
<text text-anchor="start" x="807.08" y="-18.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W2 -->
<g id="node5" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1196,-184 1001,-184 1001,0 1196,0 1196,-184"/>
<polygon fill="none" stroke="black" points="1001.5,-161 1001.5,-184 1196.5,-184 1196.5,-161 1001.5,-161"/>
<text text-anchor="start" x="1088.5" y="-168.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="1001.5,-138 1001.5,-161 1039.5,-161 1039.5,-138 1001.5,-138"/>
<text text-anchor="start" x="1009.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1039.5,-138 1039.5,-161 1070.5,-161 1070.5,-138 1039.5,-138"/>
<text text-anchor="start" x="1047.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1070.5,-138 1070.5,-161 1145.5,-161 1145.5,-138 1070.5,-138"/>
<text text-anchor="start" x="1078" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1145.5,-138 1145.5,-161 1196.5,-161 1196.5,-138 1145.5,-138"/>
<text text-anchor="start" x="1153" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1033.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1003.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1072" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1130.5" y="-105.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-98 1001.5,-100 1196.5,-100 1196.5,-98 1001.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="1001.5,-96 1001.5,-98 1196.5,-98 1196.5,-96 1001.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-94 1001.5,-96 1196.5,-96 1196.5,-94 1001.5,-94"/>
<text text-anchor="start" x="1004" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1071.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131" y="-80.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-73 1001.5,-75 1196.5,-75 1196.5,-73 1001.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="1001.5,-71 1001.5,-73 1196.5,-73 1196.5,-71 1001.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-69 1001.5,-71 1196.5,-71 1196.5,-69 1001.5,-69"/>
<text text-anchor="start" x="1005.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1072" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1132.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-48 1001.5,-50 1196.5,-50 1196.5,-48 1001.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="1001.5,-46 1001.5,-48 1196.5,-48 1196.5,-46 1001.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-44 1001.5,-46 1196.5,-46 1196.5,-44 1001.5,-44"/>
<text text-anchor="start" x="1004.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1072.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-23 1001.5,-25 1196.5,-25 1196.5,-23 1001.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="1001.5,-21 1001.5,-23 1196.5,-23 1196.5,-21 1001.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-19 1001.5,-21 1196.5,-21 1196.5,-19 1001.5,-19"/>
<text text-anchor="start" x="1033.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1170,-185.5 981,-185.5 981,0 1170,0 1170,-185.5"/>
<polygon fill="none" stroke="black" points="981,-161.75 981,-185.5 1170,-185.5 1170,-161.75 981,-161.75"/>
<text text-anchor="start" x="1065" y="-168.2" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="981,-138 981,-161.75 1017.19,-161.75 1017.19,-138 981,-138"/>
<text text-anchor="start" x="988.59" y="-144.45" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1017.19,-138 1017.19,-161.75 1046.62,-161.75 1046.62,-138 1017.19,-138"/>
<text text-anchor="start" x="1024.78" y="-144.45" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1046.62,-138 1046.62,-161.75 1120.31,-161.75 1120.31,-138 1046.62,-138"/>
<text text-anchor="start" x="1054.22" y="-144.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1120.31,-138 1120.31,-161.75 1170,-161.75 1170,-138 1120.31,-138"/>
<text text-anchor="start" x="1127.91" y="-144.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1012.12" y="-122.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="982.88" y="-103.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1049.62" y="-103.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1105.88" y="-103.7" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="981,-98 981,-100 1170,-100 1170,-98 981,-98"/>
<polygon fill="#ff66cc" stroke="none" points="981,-96 981,-98 1170,-98 1170,-96 981,-96"/>
<polygon fill="#000000" stroke="none" points="981,-94 981,-96 1170,-96 1170,-94 981,-94"/>
<text text-anchor="start" x="984" y="-78.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1048.88" y="-78.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1107" y="-78.7" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="981,-73 981,-75 1170,-75 1170,-73 981,-73"/>
<polygon fill="#00ffff" stroke="none" points="981,-71 981,-73 1170,-73 1170,-71 981,-71"/>
<polygon fill="#000000" stroke="none" points="981,-69 981,-71 1170,-71 1170,-69 981,-69"/>
<text text-anchor="start" x="985.12" y="-53.7" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1049.62" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1108.12" y="-53.7" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="981,-48 981,-50 1170,-50 1170,-48 981,-48"/>
<polygon fill="#ffff00" stroke="none" points="981,-46 981,-48 1170,-48 1170,-46 981,-46"/>
<polygon fill="#000000" stroke="none" points="981,-44 981,-46 1170,-46 1170,-44 981,-44"/>
<text text-anchor="start" x="984.38" y="-28.7" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1050" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1107.38" y="-28.7" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="981,-23 981,-25 1170,-25 1170,-23 981,-23"/>
<polygon fill="#8000ff" stroke="none" points="981,-21 981,-23 1170,-23 1170,-21 981,-21"/>
<polygon fill="#000000" stroke="none" points="981,-19 981,-21 1170,-21 1170,-19 981,-19"/>
<text text-anchor="start" x="1012.12" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-93C921.25,-93.02 937.24,-95.02 1001,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M857,-95C921.01,-95 936.99,-97 1001,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-97C920.76,-96.98 936.75,-98.98 1001,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-91.75C901.38,-91.78 917.36,-94.78 981,-94.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M837,-93.75C901.01,-93.75 916.99,-96.75 981,-96.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-95.75C900.64,-95.72 916.62,-98.72 981,-98.75"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-69C921.13,-69 937.12,-70 1001,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M857,-71C921,-71 937,-72 1001,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-73C920.88,-73 936.87,-74 1001,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-68.75C901.13,-68.75 917.12,-69.75 981,-69.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M837,-70.75C901,-70.75 917,-71.75 981,-71.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-72.75C900.88,-72.75 916.87,-73.75 981,-73.75"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-46C920.88,-46 936.87,-45 1001,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M857,-48C921,-48 937,-47 1001,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-50C921.13,-50 937.12,-49 1001,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-45.75C900.88,-45.75 916.87,-44.75 981,-44.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M837,-47.75C901,-47.75 917,-46.75 981,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-49.75C901.13,-49.75 917.12,-48.75 981,-48.75"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-23C920.64,-23.03 936.62,-20.03 1001,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M857,-25C921.01,-25 936.99,-22 1001,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-27C921.38,-26.97 937.36,-23.97 1001,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-22.75C900.64,-22.78 916.62,-19.78 981,-19.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M837,-24.75C901.01,-24.75 916.99,-21.75 981,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-26.75C901.38,-26.72 917.36,-23.72 981,-23.75"/>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="1527,-152 1340,-152 1340,-14 1527,-14 1527,-152"/>
<polygon fill="none" stroke="black" points="1340.5,-129 1340.5,-152 1527.5,-152 1527.5,-129 1340.5,-129"/>
<text text-anchor="start" x="1425" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1340.5,-106 1340.5,-129 1436.5,-129 1436.5,-106 1340.5,-106"/>
<text text-anchor="start" x="1344.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1436.5,-106 1436.5,-129 1487.5,-129 1487.5,-106 1436.5,-106"/>
<text text-anchor="start" x="1440.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1487.5,-106 1487.5,-129 1527.5,-129 1527.5,-106 1487.5,-106"/>
<text text-anchor="start" x="1491.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1340.5,-83 1340.5,-106 1422.5,-106 1422.5,-83 1340.5,-83"/>
<text text-anchor="start" x="1377.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1422.5,-83 1422.5,-106 1527.5,-106 1527.5,-83 1422.5,-83"/>
<text text-anchor="start" x="1459" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1340.5,-60 1340.5,-83 1422.5,-83 1422.5,-60 1340.5,-60"/>
<text text-anchor="start" x="1377.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1422.5,-60 1422.5,-83 1527.5,-83 1527.5,-60 1422.5,-60"/>
<text text-anchor="start" x="1460" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1340.5,-37 1340.5,-60 1422.5,-60 1422.5,-37 1340.5,-37"/>
<text text-anchor="start" x="1377.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1422.5,-37 1422.5,-60 1527.5,-60 1527.5,-37 1422.5,-37"/>
<text text-anchor="start" x="1461" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1340.5,-14 1340.5,-37 1422.5,-37 1422.5,-14 1340.5,-14"/>
<text text-anchor="start" x="1377.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1422.5,-14 1422.5,-37 1527.5,-37 1527.5,-14 1422.5,-14"/>
<text text-anchor="start" x="1460.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="1494,-152.5 1314,-152.5 1314,-13 1494,-13 1494,-152.5"/>
<polygon fill="none" stroke="black" points="1314,-128.75 1314,-152.5 1494,-152.5 1494,-128.75 1314,-128.75"/>
<text text-anchor="start" x="1395.75" y="-135.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1314,-105 1314,-128.75 1406.75,-128.75 1406.75,-105 1314,-105"/>
<text text-anchor="start" x="1318" y="-111.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1406.75,-105 1406.75,-128.75 1456,-128.75 1456,-105 1406.75,-105"/>
<text text-anchor="start" x="1410.75" y="-111.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1456,-105 1456,-128.75 1494,-128.75 1494,-105 1456,-105"/>
<text text-anchor="start" x="1460" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1314,-82 1314,-105 1392.5,-105 1392.5,-82 1314,-82"/>
<text text-anchor="start" x="1349.5" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1392.5,-82 1392.5,-105 1494,-105 1494,-82 1392.5,-82"/>
<text text-anchor="start" x="1427.88" y="-87.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1314,-59 1314,-82 1392.5,-82 1392.5,-59 1314,-59"/>
<text text-anchor="start" x="1349.5" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1392.5,-59 1392.5,-82 1494,-82 1494,-59 1392.5,-59"/>
<text text-anchor="start" x="1429" y="-64.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1314,-36 1314,-59 1392.5,-59 1392.5,-36 1314,-36"/>
<text text-anchor="start" x="1349.5" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1392.5,-36 1392.5,-59 1494,-59 1494,-36 1392.5,-36"/>
<text text-anchor="start" x="1430.12" y="-41.7" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1314,-13 1314,-36 1392.5,-36 1392.5,-13 1314,-13"/>
<text text-anchor="start" x="1349.5" y="-18.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1392.5,-13 1392.5,-36 1494,-36 1494,-13 1392.5,-13"/>
<text text-anchor="start" x="1429.38" y="-18.7" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-95C589.76,-95.02 605.75,-93.02 670,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M526,-97C590.01,-97 605.99,-95 670,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C590.25,-98.98 606.24,-96.98 670,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-94.75C576.64,-94.78 592.62,-91.78 657,-91.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M513,-96.75C577.01,-96.75 592.99,-93.75 657,-93.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-98.75C577.38,-98.72 593.36,-95.72 657,-95.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-70C589.88,-70 605.87,-69 670,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M526,-72C590,-72 606,-71 670,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C590.13,-74 606.12,-73 670,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-69.75C576.88,-69.75 592.87,-68.75 657,-68.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M513,-71.75C577,-71.75 593,-70.75 657,-70.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-73.75C577.13,-73.75 593.12,-72.75 657,-72.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-45C590.13,-45 606.12,-46 670,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M526,-47C590,-47 606,-48 670,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-49C589.88,-49 605.87,-50 670,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-44.75C577.13,-44.75 593.12,-45.75 657,-45.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M513,-46.75C577,-46.75 593,-47.75 657,-47.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-48.75C576.88,-48.75 592.87,-49.75 657,-49.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-20C590.38,-20.03 606.36,-23.03 670,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M526,-22C590.01,-22 605.99,-25 670,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-24C589.64,-23.97 605.62,-26.97 670,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-19.75C577.38,-19.78 593.36,-22.78 657,-22.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M513,-21.75C577.01,-21.75 592.99,-24.75 657,-24.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-23.75C576.64,-23.72 592.62,-26.72 657,-26.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-95C1259.76,-95.02 1275.75,-93.02 1340,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1196,-97C1260.01,-97 1275.99,-95 1340,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-99C1260.25,-98.98 1276.24,-96.98 1340,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-94.75C1233.64,-94.78 1249.62,-91.78 1314,-91.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1170,-96.75C1234.01,-96.75 1249.99,-93.75 1314,-93.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-98.75C1234.38,-98.72 1250.36,-95.72 1314,-95.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-70C1259.88,-70 1275.87,-69 1340,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1196,-72C1260,-72 1276,-71 1340,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-74C1260.13,-74 1276.12,-73 1340,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-69.75C1233.88,-69.75 1249.87,-68.75 1314,-68.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1170,-71.75C1234,-71.75 1250,-70.75 1314,-70.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-73.75C1234.13,-73.75 1250.12,-72.75 1314,-72.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-45C1260.13,-45 1276.12,-46 1340,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1196,-47C1260,-47 1276,-48 1340,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-49C1259.88,-49 1275.87,-50 1340,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-44.75C1234.13,-44.75 1250.12,-45.75 1314,-45.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1170,-46.75C1234,-46.75 1250,-47.75 1314,-47.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-48.75C1233.88,-48.75 1249.87,-49.75 1314,-49.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-20C1260.38,-20.03 1276.36,-23.03 1340,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1196,-22C1260.01,-22 1275.99,-25 1340,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-24C1259.64,-23.97 1275.62,-26.97 1340,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-19.75C1234.38,-19.78 1250.36,-22.78 1314,-22.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1170,-21.75C1234.01,-21.75 1249.99,-24.75 1314,-24.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-23.75C1233.64,-23.72 1249.62,-26.72 1314,-26.75"/>
</g>
</g>
</svg>

BIN
examples/ex05.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 44 KiB

420
examples/ex05.svg generated
View File

@ -1,301 +1,301 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="1535pt" height="192pt"
viewBox="0.00 0.00 1535.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 188)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-188 1531,-188 1531,4 -4,4"/>
<svg width="1502pt" height="194pt"
viewBox="0.00 0.00 1502.00 193.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 189.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-189.5 1498,-189.5 1498,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-152 0,-152 0,-14 187,-14 187,-152"/>
<polygon fill="none" stroke="black" points="0.5,-129 0.5,-152 187.5,-152 187.5,-129 0.5,-129"/>
<text text-anchor="start" x="85" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-106 0.5,-129 96.5,-129 96.5,-106 0.5,-106"/>
<text text-anchor="start" x="4.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-106 96.5,-129 147.5,-129 147.5,-106 96.5,-106"/>
<text text-anchor="start" x="100.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-106 147.5,-129 187.5,-129 187.5,-106 147.5,-106"/>
<text text-anchor="start" x="151.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-83 0.5,-106 106.5,-106 106.5,-83 0.5,-83"/>
<text text-anchor="start" x="37.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-83 106.5,-106 187.5,-106 187.5,-83 106.5,-83"/>
<text text-anchor="start" x="143" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-60 0.5,-83 106.5,-83 106.5,-60 0.5,-60"/>
<text text-anchor="start" x="38.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-60 106.5,-83 187.5,-83 187.5,-60 106.5,-60"/>
<text text-anchor="start" x="143" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-37 0.5,-60 106.5,-60 106.5,-37 0.5,-37"/>
<text text-anchor="start" x="39.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="106.5,-37 106.5,-60 187.5,-60 187.5,-37 106.5,-37"/>
<text text-anchor="start" x="143" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-14 0.5,-37 106.5,-37 106.5,-14 0.5,-14"/>
<text text-anchor="start" x="39" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="106.5,-14 106.5,-37 187.5,-37 187.5,-14 106.5,-14"/>
<text text-anchor="start" x="143" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="180,-152.5 0,-152.5 0,-13 180,-13 180,-152.5"/>
<polygon fill="none" stroke="black" points="0,-128.75 0,-152.5 180,-152.5 180,-128.75 0,-128.75"/>
<text text-anchor="start" x="81.75" y="-135.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-105 0,-128.75 92.75,-128.75 92.75,-105 0,-105"/>
<text text-anchor="start" x="4" y="-111.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="92.75,-105 92.75,-128.75 142,-128.75 142,-105 92.75,-105"/>
<text text-anchor="start" x="96.75" y="-111.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="142,-105 142,-128.75 180,-128.75 180,-105 142,-105"/>
<text text-anchor="start" x="146" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-82 0,-105 101.5,-105 101.5,-82 0,-82"/>
<text text-anchor="start" x="35.38" y="-87.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="101.5,-82 101.5,-105 180,-105 180,-82 101.5,-82"/>
<text text-anchor="start" x="137" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-59 0,-82 101.5,-82 101.5,-59 0,-59"/>
<text text-anchor="start" x="36.5" y="-64.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="101.5,-59 101.5,-82 180,-82 180,-59 101.5,-59"/>
<text text-anchor="start" x="137" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-36 0,-59 101.5,-59 101.5,-36 0,-36"/>
<text text-anchor="start" x="37.62" y="-41.7" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="101.5,-36 101.5,-59 180,-59 180,-36 101.5,-36"/>
<text text-anchor="start" x="137" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-13 0,-36 101.5,-36 101.5,-13 0,-13"/>
<text text-anchor="start" x="36.88" y="-18.7" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="101.5,-13 101.5,-36 180,-36 180,-13 101.5,-13"/>
<text text-anchor="start" x="137" y="-18.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node4" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-184 331,-184 331,0 526,0 526,-184"/>
<polygon fill="none" stroke="black" points="331.5,-161 331.5,-184 526.5,-184 526.5,-161 331.5,-161"/>
<text text-anchor="start" x="418.5" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-138 331.5,-161 369.5,-161 369.5,-138 331.5,-138"/>
<text text-anchor="start" x="339.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="369.5,-138 369.5,-161 400.5,-161 400.5,-138 369.5,-138"/>
<text text-anchor="start" x="377.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="400.5,-138 400.5,-161 475.5,-161 475.5,-138 400.5,-138"/>
<text text-anchor="start" x="408" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="475.5,-138 475.5,-161 526.5,-161 526.5,-138 475.5,-138"/>
<text text-anchor="start" x="483" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="363.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="333.5" y="-105.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="402" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-98 331.5,-100 526.5,-100 526.5,-98 331.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="331.5,-96 331.5,-98 526.5,-98 526.5,-96 331.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-94 331.5,-96 526.5,-96 526.5,-94 331.5,-94"/>
<text text-anchor="start" x="334" y="-80.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="401.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="461" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-73 331.5,-75 526.5,-75 526.5,-73 331.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="331.5,-71 331.5,-73 526.5,-73 526.5,-71 331.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-69 331.5,-71 526.5,-71 526.5,-69 331.5,-69"/>
<text text-anchor="start" x="335.5" y="-55.8" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="402" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-48 331.5,-50 526.5,-50 526.5,-48 331.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-46 331.5,-48 526.5,-48 526.5,-46 331.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-44 331.5,-46 526.5,-46 526.5,-44 331.5,-44"/>
<text text-anchor="start" x="334.5" y="-30.8" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="402.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-23 331.5,-25 526.5,-25 526.5,-23 331.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="331.5,-21 331.5,-23 526.5,-23 526.5,-21 331.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 526.5,-21 526.5,-19 331.5,-19"/>
<text text-anchor="start" x="363.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="513,-185.5 324,-185.5 324,0 513,0 513,-185.5"/>
<polygon fill="none" stroke="black" points="324,-161.75 324,-185.5 513,-185.5 513,-161.75 324,-161.75"/>
<text text-anchor="start" x="408" y="-168.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324,-138 324,-161.75 360.19,-161.75 360.19,-138 324,-138"/>
<text text-anchor="start" x="331.59" y="-144.45" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="360.19,-138 360.19,-161.75 389.62,-161.75 389.62,-138 360.19,-138"/>
<text text-anchor="start" x="367.78" y="-144.45" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="389.62,-138 389.62,-161.75 463.31,-161.75 463.31,-138 389.62,-138"/>
<text text-anchor="start" x="397.22" y="-144.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="463.31,-138 463.31,-161.75 513,-161.75 513,-138 463.31,-138"/>
<text text-anchor="start" x="470.91" y="-144.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="355.12" y="-122.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="325.88" y="-103.7" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="392.62" y="-103.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="448.88" y="-103.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-98 324,-100 513,-100 513,-98 324,-98"/>
<polygon fill="#ff66cc" stroke="none" points="324,-96 324,-98 513,-98 513,-96 324,-96"/>
<polygon fill="#000000" stroke="none" points="324,-94 324,-96 513,-96 513,-94 324,-94"/>
<text text-anchor="start" x="327" y="-78.7" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="391.88" y="-78.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="450" y="-78.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-73 324,-75 513,-75 513,-73 324,-73"/>
<polygon fill="#00ffff" stroke="none" points="324,-71 324,-73 513,-73 513,-71 324,-71"/>
<polygon fill="#000000" stroke="none" points="324,-69 324,-71 513,-71 513,-69 324,-69"/>
<text text-anchor="start" x="328.12" y="-53.7" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="392.62" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="451.12" y="-53.7" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="324,-48 324,-50 513,-50 513,-48 324,-48"/>
<polygon fill="#ffff00" stroke="none" points="324,-46 324,-48 513,-48 513,-46 324,-46"/>
<polygon fill="#000000" stroke="none" points="324,-44 324,-46 513,-46 513,-44 324,-44"/>
<text text-anchor="start" x="327.38" y="-28.7" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="393" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="450.38" y="-28.7" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="324,-23 324,-25 513,-25 513,-23 324,-23"/>
<polygon fill="#8000ff" stroke="none" points="324,-21 324,-23 513,-23 513,-21 324,-21"/>
<polygon fill="#000000" stroke="none" points="324,-19 324,-21 513,-21 513,-19 324,-19"/>
<text text-anchor="start" x="355.12" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-93C251.25,-93.02 267.24,-95.02 331,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M187,-95C251.01,-95 266.99,-97 331,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-97C250.76,-96.98 266.75,-98.98 331,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-91.75C244.38,-91.78 260.36,-94.78 324,-94.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M180,-93.75C244.01,-93.75 259.99,-96.75 324,-96.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-95.75C243.64,-95.72 259.62,-98.72 324,-98.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-69C251.13,-69 267.12,-70 331,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M187,-71C251,-71 267,-72 331,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-73C250.88,-73 266.87,-74 331,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-68.75C244.13,-68.75 260.12,-69.75 324,-69.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M180,-70.75C244,-70.75 260,-71.75 324,-71.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-72.75C243.88,-72.75 259.87,-73.75 324,-73.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-46C250.88,-46 266.87,-45 331,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-48C251,-48 267,-47 331,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-50C251.13,-50 267.12,-49 331,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-45.75C243.88,-45.75 259.87,-44.75 324,-44.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M180,-47.75C244,-47.75 260,-46.75 324,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-49.75C244.13,-49.75 260.12,-48.75 324,-48.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-23C250.64,-23.03 266.62,-20.03 331,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M187,-25C251.01,-25 266.99,-22 331,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-27C251.38,-26.97 267.36,-23.97 331,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-22.75C243.64,-22.78 259.62,-19.78 324,-19.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M180,-24.75C244.01,-24.75 259.99,-21.75 324,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-26.75C244.38,-26.72 260.36,-23.72 324,-23.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="857,-152 670,-152 670,-14 857,-14 857,-152"/>
<polygon fill="none" stroke="black" points="670.5,-129 670.5,-152 857.5,-152 857.5,-129 670.5,-129"/>
<text text-anchor="start" x="755" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-106 670.5,-129 766.5,-129 766.5,-106 670.5,-106"/>
<text text-anchor="start" x="674.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="766.5,-106 766.5,-129 817.5,-129 817.5,-106 766.5,-106"/>
<text text-anchor="start" x="770.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="817.5,-106 817.5,-129 857.5,-129 857.5,-106 817.5,-106"/>
<text text-anchor="start" x="821.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-83 670.5,-106 725.5,-106 725.5,-83 670.5,-83"/>
<text text-anchor="start" x="694" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="725.5,-83 725.5,-106 803.5,-106 803.5,-83 725.5,-83"/>
<text text-anchor="start" x="748.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="803.5,-83 803.5,-106 857.5,-106 857.5,-83 803.5,-83"/>
<text text-anchor="start" x="826.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="670.5,-60 670.5,-83 725.5,-83 725.5,-60 670.5,-60"/>
<text text-anchor="start" x="694" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="725.5,-60 725.5,-83 803.5,-83 803.5,-60 725.5,-60"/>
<text text-anchor="start" x="749.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="803.5,-60 803.5,-83 857.5,-83 857.5,-60 803.5,-60"/>
<text text-anchor="start" x="826.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="670.5,-37 670.5,-60 725.5,-60 725.5,-37 670.5,-37"/>
<text text-anchor="start" x="694" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="725.5,-37 725.5,-60 803.5,-60 803.5,-37 725.5,-37"/>
<text text-anchor="start" x="750.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="803.5,-37 803.5,-60 857.5,-60 857.5,-37 803.5,-37"/>
<text text-anchor="start" x="826.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="670.5,-14 670.5,-37 725.5,-37 725.5,-14 670.5,-14"/>
<text text-anchor="start" x="694" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="725.5,-14 725.5,-37 803.5,-37 803.5,-14 725.5,-14"/>
<text text-anchor="start" x="750" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="803.5,-14 803.5,-37 857.5,-37 857.5,-14 803.5,-14"/>
<text text-anchor="start" x="826.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="837,-152.5 657,-152.5 657,-13 837,-13 837,-152.5"/>
<polygon fill="none" stroke="black" points="657,-128.75 657,-152.5 837,-152.5 837,-128.75 657,-128.75"/>
<text text-anchor="start" x="738.75" y="-135.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="657,-105 657,-128.75 749.75,-128.75 749.75,-105 657,-105"/>
<text text-anchor="start" x="661" y="-111.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="749.75,-105 749.75,-128.75 799,-128.75 799,-105 749.75,-105"/>
<text text-anchor="start" x="753.75" y="-111.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="799,-105 799,-128.75 837,-128.75 837,-105 799,-105"/>
<text text-anchor="start" x="803" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="657,-82 657,-105 709.33,-105 709.33,-82 657,-82"/>
<text text-anchor="start" x="679.42" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="709.33,-82 709.33,-105 784.67,-105 784.67,-82 709.33,-82"/>
<text text-anchor="start" x="731.62" y="-87.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="784.67,-82 784.67,-105 837,-105 837,-82 784.67,-82"/>
<text text-anchor="start" x="807.08" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="657,-59 657,-82 709.33,-82 709.33,-59 657,-59"/>
<text text-anchor="start" x="679.42" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="709.33,-59 709.33,-82 784.67,-82 784.67,-59 709.33,-59"/>
<text text-anchor="start" x="732.75" y="-64.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="784.67,-59 784.67,-82 837,-82 837,-59 784.67,-59"/>
<text text-anchor="start" x="807.08" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="657,-36 657,-59 709.33,-59 709.33,-36 657,-36"/>
<text text-anchor="start" x="679.42" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="709.33,-36 709.33,-59 784.67,-59 784.67,-36 709.33,-36"/>
<text text-anchor="start" x="733.88" y="-41.7" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="784.67,-36 784.67,-59 837,-59 837,-36 784.67,-36"/>
<text text-anchor="start" x="807.08" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="657,-13 657,-36 709.33,-36 709.33,-13 657,-13"/>
<text text-anchor="start" x="679.42" y="-18.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="709.33,-13 709.33,-36 784.67,-36 784.67,-13 709.33,-13"/>
<text text-anchor="start" x="733.12" y="-18.7" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="784.67,-13 784.67,-36 837,-36 837,-13 784.67,-13"/>
<text text-anchor="start" x="807.08" y="-18.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W2 -->
<g id="node5" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1196,-184 1001,-184 1001,0 1196,0 1196,-184"/>
<polygon fill="none" stroke="black" points="1001.5,-161 1001.5,-184 1196.5,-184 1196.5,-161 1001.5,-161"/>
<text text-anchor="start" x="1088.5" y="-168.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="1001.5,-138 1001.5,-161 1039.5,-161 1039.5,-138 1001.5,-138"/>
<text text-anchor="start" x="1009.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1039.5,-138 1039.5,-161 1070.5,-161 1070.5,-138 1039.5,-138"/>
<text text-anchor="start" x="1047.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1070.5,-138 1070.5,-161 1145.5,-161 1145.5,-138 1070.5,-138"/>
<text text-anchor="start" x="1078" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1145.5,-138 1145.5,-161 1196.5,-161 1196.5,-138 1145.5,-138"/>
<text text-anchor="start" x="1153" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1033.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1003.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1072" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1130.5" y="-105.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-98 1001.5,-100 1196.5,-100 1196.5,-98 1001.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="1001.5,-96 1001.5,-98 1196.5,-98 1196.5,-96 1001.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-94 1001.5,-96 1196.5,-96 1196.5,-94 1001.5,-94"/>
<text text-anchor="start" x="1004" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1071.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131" y="-80.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-73 1001.5,-75 1196.5,-75 1196.5,-73 1001.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="1001.5,-71 1001.5,-73 1196.5,-73 1196.5,-71 1001.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-69 1001.5,-71 1196.5,-71 1196.5,-69 1001.5,-69"/>
<text text-anchor="start" x="1005.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1072" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1132.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-48 1001.5,-50 1196.5,-50 1196.5,-48 1001.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="1001.5,-46 1001.5,-48 1196.5,-48 1196.5,-46 1001.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-44 1001.5,-46 1196.5,-46 1196.5,-44 1001.5,-44"/>
<text text-anchor="start" x="1004.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1072.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-23 1001.5,-25 1196.5,-25 1196.5,-23 1001.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="1001.5,-21 1001.5,-23 1196.5,-23 1196.5,-21 1001.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-19 1001.5,-21 1196.5,-21 1196.5,-19 1001.5,-19"/>
<text text-anchor="start" x="1033.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1170,-185.5 981,-185.5 981,0 1170,0 1170,-185.5"/>
<polygon fill="none" stroke="black" points="981,-161.75 981,-185.5 1170,-185.5 1170,-161.75 981,-161.75"/>
<text text-anchor="start" x="1065" y="-168.2" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="981,-138 981,-161.75 1017.19,-161.75 1017.19,-138 981,-138"/>
<text text-anchor="start" x="988.59" y="-144.45" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1017.19,-138 1017.19,-161.75 1046.62,-161.75 1046.62,-138 1017.19,-138"/>
<text text-anchor="start" x="1024.78" y="-144.45" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1046.62,-138 1046.62,-161.75 1120.31,-161.75 1120.31,-138 1046.62,-138"/>
<text text-anchor="start" x="1054.22" y="-144.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1120.31,-138 1120.31,-161.75 1170,-161.75 1170,-138 1120.31,-138"/>
<text text-anchor="start" x="1127.91" y="-144.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1012.12" y="-122.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="982.88" y="-103.7" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1049.62" y="-103.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1105.88" y="-103.7" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="981,-98 981,-100 1170,-100 1170,-98 981,-98"/>
<polygon fill="#ff66cc" stroke="none" points="981,-96 981,-98 1170,-98 1170,-96 981,-96"/>
<polygon fill="#000000" stroke="none" points="981,-94 981,-96 1170,-96 1170,-94 981,-94"/>
<text text-anchor="start" x="984" y="-78.7" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1048.88" y="-78.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1107" y="-78.7" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="981,-73 981,-75 1170,-75 1170,-73 981,-73"/>
<polygon fill="#00ffff" stroke="none" points="981,-71 981,-73 1170,-73 1170,-71 981,-71"/>
<polygon fill="#000000" stroke="none" points="981,-69 981,-71 1170,-71 1170,-69 981,-69"/>
<text text-anchor="start" x="985.12" y="-53.7" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1049.62" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1108.12" y="-53.7" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="981,-48 981,-50 1170,-50 1170,-48 981,-48"/>
<polygon fill="#ffff00" stroke="none" points="981,-46 981,-48 1170,-48 1170,-46 981,-46"/>
<polygon fill="#000000" stroke="none" points="981,-44 981,-46 1170,-46 1170,-44 981,-44"/>
<text text-anchor="start" x="984.38" y="-28.7" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1050" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1107.38" y="-28.7" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="981,-23 981,-25 1170,-25 1170,-23 981,-23"/>
<polygon fill="#8000ff" stroke="none" points="981,-21 981,-23 1170,-23 1170,-21 981,-21"/>
<polygon fill="#000000" stroke="none" points="981,-19 981,-21 1170,-21 1170,-19 981,-19"/>
<text text-anchor="start" x="1012.12" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-93C921.25,-93.02 937.24,-95.02 1001,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M857,-95C921.01,-95 936.99,-97 1001,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-97C920.76,-96.98 936.75,-98.98 1001,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-91.75C901.38,-91.78 917.36,-94.78 981,-94.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M837,-93.75C901.01,-93.75 916.99,-96.75 981,-96.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-95.75C900.64,-95.72 916.62,-98.72 981,-98.75"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-69C921.13,-69 937.12,-70 1001,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M857,-71C921,-71 937,-72 1001,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-73C920.88,-73 936.87,-74 1001,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-68.75C901.13,-68.75 917.12,-69.75 981,-69.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M837,-70.75C901,-70.75 917,-71.75 981,-71.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-72.75C900.88,-72.75 916.87,-73.75 981,-73.75"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-46C920.88,-46 936.87,-45 1001,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M857,-48C921,-48 937,-47 1001,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-50C921.13,-50 937.12,-49 1001,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-45.75C900.88,-45.75 916.87,-44.75 981,-44.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M837,-47.75C901,-47.75 917,-46.75 981,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-49.75C901.13,-49.75 917.12,-48.75 981,-48.75"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-23C920.64,-23.03 936.62,-20.03 1001,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M857,-25C921.01,-25 936.99,-22 1001,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-27C921.38,-26.97 937.36,-23.97 1001,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-22.75C900.64,-22.78 916.62,-19.78 981,-19.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M837,-24.75C901.01,-24.75 916.99,-21.75 981,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M837,-26.75C901.38,-26.72 917.36,-23.72 981,-23.75"/>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="1527,-152 1340,-152 1340,-14 1527,-14 1527,-152"/>
<polygon fill="none" stroke="black" points="1340.5,-129 1340.5,-152 1527.5,-152 1527.5,-129 1340.5,-129"/>
<text text-anchor="start" x="1425" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1340.5,-106 1340.5,-129 1436.5,-129 1436.5,-106 1340.5,-106"/>
<text text-anchor="start" x="1344.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1436.5,-106 1436.5,-129 1487.5,-129 1487.5,-106 1436.5,-106"/>
<text text-anchor="start" x="1440.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1487.5,-106 1487.5,-129 1527.5,-129 1527.5,-106 1487.5,-106"/>
<text text-anchor="start" x="1491.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1340.5,-83 1340.5,-106 1422.5,-106 1422.5,-83 1340.5,-83"/>
<text text-anchor="start" x="1377.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1422.5,-83 1422.5,-106 1527.5,-106 1527.5,-83 1422.5,-83"/>
<text text-anchor="start" x="1459" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1340.5,-60 1340.5,-83 1422.5,-83 1422.5,-60 1340.5,-60"/>
<text text-anchor="start" x="1377.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1422.5,-60 1422.5,-83 1527.5,-83 1527.5,-60 1422.5,-60"/>
<text text-anchor="start" x="1460" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1340.5,-37 1340.5,-60 1422.5,-60 1422.5,-37 1340.5,-37"/>
<text text-anchor="start" x="1377.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1422.5,-37 1422.5,-60 1527.5,-60 1527.5,-37 1422.5,-37"/>
<text text-anchor="start" x="1461" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1340.5,-14 1340.5,-37 1422.5,-37 1422.5,-14 1340.5,-14"/>
<text text-anchor="start" x="1377.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1422.5,-14 1422.5,-37 1527.5,-37 1527.5,-14 1422.5,-14"/>
<text text-anchor="start" x="1460.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="1494,-152.5 1314,-152.5 1314,-13 1494,-13 1494,-152.5"/>
<polygon fill="none" stroke="black" points="1314,-128.75 1314,-152.5 1494,-152.5 1494,-128.75 1314,-128.75"/>
<text text-anchor="start" x="1395.75" y="-135.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1314,-105 1314,-128.75 1406.75,-128.75 1406.75,-105 1314,-105"/>
<text text-anchor="start" x="1318" y="-111.45" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1406.75,-105 1406.75,-128.75 1456,-128.75 1456,-105 1406.75,-105"/>
<text text-anchor="start" x="1410.75" y="-111.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1456,-105 1456,-128.75 1494,-128.75 1494,-105 1456,-105"/>
<text text-anchor="start" x="1460" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1314,-82 1314,-105 1392.5,-105 1392.5,-82 1314,-82"/>
<text text-anchor="start" x="1349.5" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1392.5,-82 1392.5,-105 1494,-105 1494,-82 1392.5,-82"/>
<text text-anchor="start" x="1427.88" y="-87.7" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1314,-59 1314,-82 1392.5,-82 1392.5,-59 1314,-59"/>
<text text-anchor="start" x="1349.5" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1392.5,-59 1392.5,-82 1494,-82 1494,-59 1392.5,-59"/>
<text text-anchor="start" x="1429" y="-64.7" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1314,-36 1314,-59 1392.5,-59 1392.5,-36 1314,-36"/>
<text text-anchor="start" x="1349.5" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1392.5,-36 1392.5,-59 1494,-59 1494,-36 1392.5,-36"/>
<text text-anchor="start" x="1430.12" y="-41.7" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1314,-13 1314,-36 1392.5,-36 1392.5,-13 1314,-13"/>
<text text-anchor="start" x="1349.5" y="-18.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1392.5,-13 1392.5,-36 1494,-36 1494,-13 1392.5,-13"/>
<text text-anchor="start" x="1429.38" y="-18.7" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-95C589.76,-95.02 605.75,-93.02 670,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M526,-97C590.01,-97 605.99,-95 670,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C590.25,-98.98 606.24,-96.98 670,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-94.75C576.64,-94.78 592.62,-91.78 657,-91.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M513,-96.75C577.01,-96.75 592.99,-93.75 657,-93.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-98.75C577.38,-98.72 593.36,-95.72 657,-95.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-70C589.88,-70 605.87,-69 670,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M526,-72C590,-72 606,-71 670,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C590.13,-74 606.12,-73 670,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-69.75C576.88,-69.75 592.87,-68.75 657,-68.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M513,-71.75C577,-71.75 593,-70.75 657,-70.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-73.75C577.13,-73.75 593.12,-72.75 657,-72.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-45C590.13,-45 606.12,-46 670,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M526,-47C590,-47 606,-48 670,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-49C589.88,-49 605.87,-50 670,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-44.75C577.13,-44.75 593.12,-45.75 657,-45.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M513,-46.75C577,-46.75 593,-47.75 657,-47.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-48.75C576.88,-48.75 592.87,-49.75 657,-49.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-20C590.38,-20.03 606.36,-23.03 670,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M526,-22C590.01,-22 605.99,-25 670,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-24C589.64,-23.97 605.62,-26.97 670,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-19.75C577.38,-19.78 593.36,-22.78 657,-22.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M513,-21.75C577.01,-21.75 592.99,-24.75 657,-24.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M513,-23.75C576.64,-23.72 592.62,-26.72 657,-26.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-95C1259.76,-95.02 1275.75,-93.02 1340,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1196,-97C1260.01,-97 1275.99,-95 1340,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-99C1260.25,-98.98 1276.24,-96.98 1340,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-94.75C1233.64,-94.78 1249.62,-91.78 1314,-91.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1170,-96.75C1234.01,-96.75 1249.99,-93.75 1314,-93.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-98.75C1234.38,-98.72 1250.36,-95.72 1314,-95.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-70C1259.88,-70 1275.87,-69 1340,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1196,-72C1260,-72 1276,-71 1340,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-74C1260.13,-74 1276.12,-73 1340,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-69.75C1233.88,-69.75 1249.87,-68.75 1314,-68.75"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1170,-71.75C1234,-71.75 1250,-70.75 1314,-70.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-73.75C1234.13,-73.75 1250.12,-72.75 1314,-72.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-45C1260.13,-45 1276.12,-46 1340,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1196,-47C1260,-47 1276,-48 1340,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-49C1259.88,-49 1275.87,-50 1340,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-44.75C1234.13,-44.75 1250.12,-45.75 1314,-45.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1170,-46.75C1234,-46.75 1250,-47.75 1314,-47.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-48.75C1233.88,-48.75 1249.87,-49.75 1314,-49.75"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-20C1260.38,-20.03 1276.36,-23.03 1340,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1196,-22C1260.01,-22 1275.99,-25 1340,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-24C1259.64,-23.97 1275.62,-26.97 1340,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-19.75C1234.38,-19.78 1250.36,-22.78 1314,-22.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1170,-21.75C1234.01,-21.75 1249.99,-24.75 1314,-24.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1170,-23.75C1233.64,-23.72 1249.62,-26.72 1314,-26.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

8
examples/ex06.bom.tsv generated
View File

@ -1,6 +1,6 @@
Id Description Qty Unit Designators
1 Connector, Molex KK 254, female, 4 pins 6 X1, X2, X3, X4, X5, X6
2 Wire, 0.25 mm², PK 1.0 m W1, W2, W3, W4, W5
3 Wire, 0.25 mm², TQ 1.0 m W1, W2, W3, W4, W5
4 Wire, 0.25 mm², VT 1.0 m W1, W2, W3, W4, W5
5 Wire, 0.25 mm², YE 1.0 m W1, W2, W3, W4, W5
2 Wire, 0.25 mm², PK 1 m W1, W2, W3, W4, W5
3 Wire, 0.25 mm², TQ 1 m W1, W2, W3, W4, W5
4 Wire, 0.25 mm², VT 1 m W1, W2, W3, W4, W5
5 Wire, 0.25 mm², YE 1 m W1, W2, W3, W4, W5

1 Id Description Qty Unit Designators
2 1 Connector, Molex KK 254, female, 4 pins 6 X1, X2, X3, X4, X5, X6
3 2 Wire, 0.25 mm², PK 1.0 1 m W1, W2, W3, W4, W5
4 3 Wire, 0.25 mm², TQ 1.0 1 m W1, W2, W3, W4, W5
5 4 Wire, 0.25 mm², VT 1.0 1 m W1, W2, W3, W4, W5
6 5 Wire, 0.25 mm², YE 1.0 1 m W1, W2, W3, W4, W5

4
examples/ex06.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

910
examples/ex06.html generated

File diff suppressed because it is too large Load Diff

BIN
examples/ex06.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 KiB

After

Width:  |  Height:  |  Size: 332 KiB

900
examples/ex06.svg generated

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

4
examples/ex07.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

142
examples/ex07.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex07</title>
<style>
@ -30,105 +30,105 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="858pt" height="153pt"
viewBox="0.00 0.00 858.00 152.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148.5 854,-148.5 854,4 -4,4"/>
<svg width="837pt" height="156pt"
viewBox="0.00 0.00 837.00 156.12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 152.12)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-152.12 833,-152.12 833,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="212,-115 0,-115 0,0 212,0 212,-115"/>
<polygon fill="none" stroke="black" points="0,-91.5 0,-114.5 212,-114.5 212,-91.5 0,-91.5"/>
<text text-anchor="start" x="97" y="-99.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-68.5 0,-91.5 98,-91.5 98,-68.5 0,-68.5"/>
<text text-anchor="start" x="8.5" y="-76.3" font-family="arial" font-size="14.00">TE 776164&#45;1</text>
<polygon fill="none" stroke="black" points="98,-68.5 98,-91.5 157,-91.5 157,-68.5 98,-68.5"/>
<text text-anchor="start" x="106" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="157,-68.5 157,-91.5 212,-91.5 212,-68.5 157,-68.5"/>
<text text-anchor="start" x="165" y="-76.3" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-45.5 0,-68.5 212,-68.5 212,-45.5 0,-45.5"/>
<text text-anchor="start" x="102" y="-53.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-22.5 0,-45.5 212,-45.5 212,-22.5 0,-22.5"/>
<text text-anchor="start" x="102" y="-30.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 212,-22.5 212,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="#ffffff" stroke="black" points="204.5,-118.75 0,-118.75 0,0 204.5,0 204.5,-118.75"/>
<polygon fill="none" stroke="black" points="0,-95 0,-118.75 204.5,-118.75 204.5,-95 0,-95"/>
<text text-anchor="start" x="94" y="-101.45" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-71.25 0,-95 93.92,-95 93.92,-71.25 0,-71.25"/>
<text text-anchor="start" x="7.96" y="-77.7" font-family="arial" font-size="14.00">TE 776164&#45;1</text>
<polygon fill="none" stroke="black" points="93.92,-71.25 93.92,-95 151.08,-95 151.08,-71.25 93.92,-71.25"/>
<text text-anchor="start" x="101.88" y="-77.7" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="151.08,-71.25 151.08,-95 204.5,-95 204.5,-71.25 151.08,-71.25"/>
<text text-anchor="start" x="159.04" y="-77.7" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-47.5 0,-71.25 204.5,-71.25 204.5,-47.5 0,-47.5"/>
<text text-anchor="start" x="98.5" y="-53.95" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-23.75 0,-47.5 204.5,-47.5 204.5,-23.75 0,-23.75"/>
<text text-anchor="start" x="98.5" y="-30.2" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,0 0,-23.75 204.5,-23.75 204.5,0 0,0"/>
<text text-anchor="start" x="4" y="-6.45" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1 -->
<g id="node3" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="494,-144.5 356,-144.5 356,-10.5 494,-10.5 494,-144.5"/>
<polygon fill="none" stroke="black" points="356,-121.5 356,-144.5 494,-144.5 494,-121.5 356,-121.5"/>
<text text-anchor="start" x="416" y="-129.3" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="356,-98.5 356,-121.5 387,-121.5 387,-98.5 356,-98.5"/>
<text text-anchor="start" x="364" y="-106.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="387,-98.5 387,-121.5 455,-121.5 455,-98.5 387,-98.5"/>
<text text-anchor="start" x="395" y="-106.3" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="455,-98.5 455,-121.5 494,-121.5 494,-98.5 455,-98.5"/>
<text text-anchor="start" x="462.5" y="-106.3" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="370.5" y="-85.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="358" y="-66.3" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="392" y="-66.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-66.3" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="transparent" points="356,-58.5 356,-60.5 494,-60.5 494,-58.5 356,-58.5"/>
<polygon fill="#ffff00" stroke="transparent" points="356,-56.5 356,-58.5 494,-58.5 494,-56.5 356,-56.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-54.5 356,-56.5 494,-56.5 494,-54.5 356,-54.5"/>
<text text-anchor="start" x="358" y="-41.3" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="391" y="-41.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-41.3" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="transparent" points="356,-33.5 356,-35.5 494,-35.5 494,-33.5 356,-33.5"/>
<polygon fill="#00ff00" stroke="transparent" points="356,-31.5 356,-33.5 494,-33.5 494,-31.5 356,-31.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-29.5 356,-31.5 494,-31.5 494,-29.5 356,-29.5"/>
<text text-anchor="start" x="370.5" y="-16.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="480.5,-148.12 348.5,-148.12 348.5,-12.62 480.5,-12.62 480.5,-148.12"/>
<polygon fill="none" stroke="black" points="348.5,-124.38 348.5,-148.12 480.5,-148.12 480.5,-124.38 348.5,-124.38"/>
<text text-anchor="start" x="405.88" y="-130.82" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="348.5,-100.62 348.5,-124.38 377,-124.38 377,-100.62 348.5,-100.62"/>
<text text-anchor="start" x="355.62" y="-107.08" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="377,-100.62 377,-124.38 443,-124.38 443,-100.62 377,-100.62"/>
<text text-anchor="start" x="384.12" y="-107.08" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="443,-100.62 443,-124.38 480.5,-124.38 480.5,-100.62 443,-100.62"/>
<text text-anchor="start" x="450.12" y="-107.08" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="362.12" y="-85.33" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="350.12" y="-66.33" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="383" y="-66.33" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="451.12" y="-66.33" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="none" points="348.5,-60.62 348.5,-62.62 480.5,-62.62 480.5,-60.62 348.5,-60.62"/>
<polygon fill="#ffff00" stroke="none" points="348.5,-58.62 348.5,-60.62 480.5,-60.62 480.5,-58.62 348.5,-58.62"/>
<polygon fill="#000000" stroke="none" points="348.5,-56.62 348.5,-58.62 480.5,-58.62 480.5,-56.62 348.5,-56.62"/>
<text text-anchor="start" x="350.12" y="-41.33" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="381.5" y="-41.33" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="451.12" y="-41.33" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="348.5,-35.62 348.5,-37.62 480.5,-37.62 480.5,-35.62 348.5,-35.62"/>
<polygon fill="#00ff00" stroke="none" points="348.5,-33.62 348.5,-35.62 480.5,-35.62 480.5,-33.62 348.5,-33.62"/>
<polygon fill="#000000" stroke="none" points="348.5,-31.62 348.5,-33.62 480.5,-33.62 480.5,-31.62 348.5,-31.62"/>
<text text-anchor="start" x="362.12" y="-16.32" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-54.5C276.13,-54.5 292.12,-55.5 356,-55.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M212,-56.5C276,-56.5 292,-57.5 356,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-58.5C275.88,-58.5 291.87,-59.5 356,-59.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-57.38C268.5,-57.38 284.5,-57.38 348.5,-57.38"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M204.5,-59.38C268.5,-59.38 284.5,-59.38 348.5,-59.38"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-61.37C268.5,-61.38 284.5,-61.38 348.5,-61.37"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-31.5C275.88,-31.5 291.87,-30.5 356,-30.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M212,-33.5C276,-33.5 292,-32.5 356,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-35.5C276.13,-35.5 292.12,-34.5 356,-34.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-33.38C268.38,-33.38 284.37,-32.38 348.5,-32.38"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M204.5,-35.38C268.5,-35.38 284.5,-34.38 348.5,-34.38"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-37.37C268.63,-37.37 284.62,-36.37 348.5,-36.37"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="850,-115 638,-115 638,0 850,0 850,-115"/>
<polygon fill="none" stroke="black" points="638,-91.5 638,-114.5 850,-114.5 850,-91.5 638,-91.5"/>
<text text-anchor="start" x="735" y="-99.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638,-68.5 638,-91.5 711,-91.5 711,-68.5 638,-68.5"/>
<text text-anchor="start" x="654.5" y="-76.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="711,-68.5 711,-91.5 786,-91.5 786,-68.5 711,-68.5"/>
<text text-anchor="start" x="727" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="786,-68.5 786,-91.5 850,-91.5 850,-68.5 786,-68.5"/>
<text text-anchor="start" x="802" y="-76.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="638,-45.5 638,-68.5 850,-68.5 850,-45.5 638,-45.5"/>
<text text-anchor="start" x="740" y="-53.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="638,-22.5 638,-45.5 850,-45.5 850,-22.5 638,-22.5"/>
<text text-anchor="start" x="740" y="-30.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="638,0.5 638,-22.5 850,-22.5 850,0.5 638,0.5"/>
<text text-anchor="start" x="642" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="#ffffff" stroke="black" points="829,-118.75 624.5,-118.75 624.5,0 829,0 829,-118.75"/>
<polygon fill="none" stroke="black" points="624.5,-95 624.5,-118.75 829,-118.75 829,-95 624.5,-95"/>
<text text-anchor="start" x="718.5" y="-101.45" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="624.5,-71.25 624.5,-95 694.42,-95 694.42,-71.25 624.5,-71.25"/>
<text text-anchor="start" x="640.33" y="-77.7" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="694.42,-71.25 694.42,-95 767.33,-95 767.33,-71.25 694.42,-71.25"/>
<text text-anchor="start" x="710.25" y="-77.7" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="767.33,-71.25 767.33,-95 829,-95 829,-71.25 767.33,-71.25"/>
<text text-anchor="start" x="783.17" y="-77.7" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="624.5,-47.5 624.5,-71.25 829,-71.25 829,-47.5 624.5,-47.5"/>
<text text-anchor="start" x="723" y="-53.95" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="624.5,-23.75 624.5,-47.5 829,-47.5 829,-23.75 624.5,-23.75"/>
<text text-anchor="start" x="723" y="-30.2" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="624.5,0 624.5,-23.75 829,-23.75 829,0 624.5,0"/>
<text text-anchor="start" x="628.5" y="-6.45" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-55.5C557.16,-56.48 571.4,-32.48 638,-31.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M494,-57.5C558.88,-57.5 573.12,-33.5 638,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-59.5C560.6,-58.52 574.84,-34.52 638,-35.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-57.38C543.66,-58.35 557.9,-34.35 624.5,-33.38"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M480.5,-59.37C545.38,-59.37 559.62,-35.38 624.5,-35.37"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-61.37C547.1,-60.4 561.34,-36.4 624.5,-37.37"/>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-30.5C560.6,-31.48 574.84,-55.48 638,-54.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-32.5C558.88,-32.5 573.12,-56.5 638,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-34.5C557.16,-33.52 571.4,-57.52 638,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-32.38C547.2,-33.39 561.29,-58.39 624.5,-57.38"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M480.5,-34.38C545.46,-34.38 559.54,-59.38 624.5,-59.38"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-36.37C543.71,-35.36 557.8,-60.36 624.5,-61.37"/>
</g>
</g>
</svg>

BIN
examples/ex07.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

140
examples/ex07.svg generated
View File

@ -1,105 +1,105 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="858pt" height="153pt"
viewBox="0.00 0.00 858.00 152.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148.5 854,-148.5 854,4 -4,4"/>
<svg width="837pt" height="156pt"
viewBox="0.00 0.00 837.00 156.12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 152.12)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-152.12 833,-152.12 833,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="212,-115 0,-115 0,0 212,0 212,-115"/>
<polygon fill="none" stroke="black" points="0,-91.5 0,-114.5 212,-114.5 212,-91.5 0,-91.5"/>
<text text-anchor="start" x="97" y="-99.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-68.5 0,-91.5 98,-91.5 98,-68.5 0,-68.5"/>
<text text-anchor="start" x="8.5" y="-76.3" font-family="arial" font-size="14.00">TE 776164&#45;1</text>
<polygon fill="none" stroke="black" points="98,-68.5 98,-91.5 157,-91.5 157,-68.5 98,-68.5"/>
<text text-anchor="start" x="106" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="157,-68.5 157,-91.5 212,-91.5 212,-68.5 157,-68.5"/>
<text text-anchor="start" x="165" y="-76.3" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-45.5 0,-68.5 212,-68.5 212,-45.5 0,-45.5"/>
<text text-anchor="start" x="102" y="-53.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-22.5 0,-45.5 212,-45.5 212,-22.5 0,-22.5"/>
<text text-anchor="start" x="102" y="-30.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 212,-22.5 212,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="#ffffff" stroke="black" points="204.5,-118.75 0,-118.75 0,0 204.5,0 204.5,-118.75"/>
<polygon fill="none" stroke="black" points="0,-95 0,-118.75 204.5,-118.75 204.5,-95 0,-95"/>
<text text-anchor="start" x="94" y="-101.45" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-71.25 0,-95 93.92,-95 93.92,-71.25 0,-71.25"/>
<text text-anchor="start" x="7.96" y="-77.7" font-family="arial" font-size="14.00">TE 776164&#45;1</text>
<polygon fill="none" stroke="black" points="93.92,-71.25 93.92,-95 151.08,-95 151.08,-71.25 93.92,-71.25"/>
<text text-anchor="start" x="101.88" y="-77.7" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="151.08,-71.25 151.08,-95 204.5,-95 204.5,-71.25 151.08,-71.25"/>
<text text-anchor="start" x="159.04" y="-77.7" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-47.5 0,-71.25 204.5,-71.25 204.5,-47.5 0,-47.5"/>
<text text-anchor="start" x="98.5" y="-53.95" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-23.75 0,-47.5 204.5,-47.5 204.5,-23.75 0,-23.75"/>
<text text-anchor="start" x="98.5" y="-30.2" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,0 0,-23.75 204.5,-23.75 204.5,0 0,0"/>
<text text-anchor="start" x="4" y="-6.45" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1 -->
<g id="node3" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="494,-144.5 356,-144.5 356,-10.5 494,-10.5 494,-144.5"/>
<polygon fill="none" stroke="black" points="356,-121.5 356,-144.5 494,-144.5 494,-121.5 356,-121.5"/>
<text text-anchor="start" x="416" y="-129.3" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="356,-98.5 356,-121.5 387,-121.5 387,-98.5 356,-98.5"/>
<text text-anchor="start" x="364" y="-106.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="387,-98.5 387,-121.5 455,-121.5 455,-98.5 387,-98.5"/>
<text text-anchor="start" x="395" y="-106.3" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="455,-98.5 455,-121.5 494,-121.5 494,-98.5 455,-98.5"/>
<text text-anchor="start" x="462.5" y="-106.3" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="370.5" y="-85.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="358" y="-66.3" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="392" y="-66.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-66.3" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="transparent" points="356,-58.5 356,-60.5 494,-60.5 494,-58.5 356,-58.5"/>
<polygon fill="#ffff00" stroke="transparent" points="356,-56.5 356,-58.5 494,-58.5 494,-56.5 356,-56.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-54.5 356,-56.5 494,-56.5 494,-54.5 356,-54.5"/>
<text text-anchor="start" x="358" y="-41.3" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="391" y="-41.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-41.3" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="transparent" points="356,-33.5 356,-35.5 494,-35.5 494,-33.5 356,-33.5"/>
<polygon fill="#00ff00" stroke="transparent" points="356,-31.5 356,-33.5 494,-33.5 494,-31.5 356,-31.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-29.5 356,-31.5 494,-31.5 494,-29.5 356,-29.5"/>
<text text-anchor="start" x="370.5" y="-16.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="480.5,-148.12 348.5,-148.12 348.5,-12.62 480.5,-12.62 480.5,-148.12"/>
<polygon fill="none" stroke="black" points="348.5,-124.38 348.5,-148.12 480.5,-148.12 480.5,-124.38 348.5,-124.38"/>
<text text-anchor="start" x="405.88" y="-130.82" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="348.5,-100.62 348.5,-124.38 377,-124.38 377,-100.62 348.5,-100.62"/>
<text text-anchor="start" x="355.62" y="-107.08" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="377,-100.62 377,-124.38 443,-124.38 443,-100.62 377,-100.62"/>
<text text-anchor="start" x="384.12" y="-107.08" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="443,-100.62 443,-124.38 480.5,-124.38 480.5,-100.62 443,-100.62"/>
<text text-anchor="start" x="450.12" y="-107.08" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="362.12" y="-85.33" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="350.12" y="-66.33" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="383" y="-66.33" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="451.12" y="-66.33" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="none" points="348.5,-60.62 348.5,-62.62 480.5,-62.62 480.5,-60.62 348.5,-60.62"/>
<polygon fill="#ffff00" stroke="none" points="348.5,-58.62 348.5,-60.62 480.5,-60.62 480.5,-58.62 348.5,-58.62"/>
<polygon fill="#000000" stroke="none" points="348.5,-56.62 348.5,-58.62 480.5,-58.62 480.5,-56.62 348.5,-56.62"/>
<text text-anchor="start" x="350.12" y="-41.33" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="381.5" y="-41.33" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="451.12" y="-41.33" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="348.5,-35.62 348.5,-37.62 480.5,-37.62 480.5,-35.62 348.5,-35.62"/>
<polygon fill="#00ff00" stroke="none" points="348.5,-33.62 348.5,-35.62 480.5,-35.62 480.5,-33.62 348.5,-33.62"/>
<polygon fill="#000000" stroke="none" points="348.5,-31.62 348.5,-33.62 480.5,-33.62 480.5,-31.62 348.5,-31.62"/>
<text text-anchor="start" x="362.12" y="-16.32" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-54.5C276.13,-54.5 292.12,-55.5 356,-55.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M212,-56.5C276,-56.5 292,-57.5 356,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-58.5C275.88,-58.5 291.87,-59.5 356,-59.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-57.38C268.5,-57.38 284.5,-57.38 348.5,-57.38"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M204.5,-59.38C268.5,-59.38 284.5,-59.38 348.5,-59.38"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-61.37C268.5,-61.38 284.5,-61.38 348.5,-61.37"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-31.5C275.88,-31.5 291.87,-30.5 356,-30.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M212,-33.5C276,-33.5 292,-32.5 356,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-35.5C276.13,-35.5 292.12,-34.5 356,-34.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-33.38C268.38,-33.38 284.37,-32.38 348.5,-32.38"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M204.5,-35.38C268.5,-35.38 284.5,-34.38 348.5,-34.38"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M204.5,-37.37C268.63,-37.37 284.62,-36.37 348.5,-36.37"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="850,-115 638,-115 638,0 850,0 850,-115"/>
<polygon fill="none" stroke="black" points="638,-91.5 638,-114.5 850,-114.5 850,-91.5 638,-91.5"/>
<text text-anchor="start" x="735" y="-99.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638,-68.5 638,-91.5 711,-91.5 711,-68.5 638,-68.5"/>
<text text-anchor="start" x="654.5" y="-76.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="711,-68.5 711,-91.5 786,-91.5 786,-68.5 711,-68.5"/>
<text text-anchor="start" x="727" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="786,-68.5 786,-91.5 850,-91.5 850,-68.5 786,-68.5"/>
<text text-anchor="start" x="802" y="-76.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="638,-45.5 638,-68.5 850,-68.5 850,-45.5 638,-45.5"/>
<text text-anchor="start" x="740" y="-53.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="638,-22.5 638,-45.5 850,-45.5 850,-22.5 638,-22.5"/>
<text text-anchor="start" x="740" y="-30.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="638,0.5 638,-22.5 850,-22.5 850,0.5 638,0.5"/>
<text text-anchor="start" x="642" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="#ffffff" stroke="black" points="829,-118.75 624.5,-118.75 624.5,0 829,0 829,-118.75"/>
<polygon fill="none" stroke="black" points="624.5,-95 624.5,-118.75 829,-118.75 829,-95 624.5,-95"/>
<text text-anchor="start" x="718.5" y="-101.45" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="624.5,-71.25 624.5,-95 694.42,-95 694.42,-71.25 624.5,-71.25"/>
<text text-anchor="start" x="640.33" y="-77.7" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="694.42,-71.25 694.42,-95 767.33,-95 767.33,-71.25 694.42,-71.25"/>
<text text-anchor="start" x="710.25" y="-77.7" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="767.33,-71.25 767.33,-95 829,-95 829,-71.25 767.33,-71.25"/>
<text text-anchor="start" x="783.17" y="-77.7" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="624.5,-47.5 624.5,-71.25 829,-71.25 829,-47.5 624.5,-47.5"/>
<text text-anchor="start" x="723" y="-53.95" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="624.5,-23.75 624.5,-47.5 829,-47.5 829,-23.75 624.5,-23.75"/>
<text text-anchor="start" x="723" y="-30.2" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="624.5,0 624.5,-23.75 829,-23.75 829,0 624.5,0"/>
<text text-anchor="start" x="628.5" y="-6.45" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-55.5C557.16,-56.48 571.4,-32.48 638,-31.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M494,-57.5C558.88,-57.5 573.12,-33.5 638,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-59.5C560.6,-58.52 574.84,-34.52 638,-35.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-57.38C543.66,-58.35 557.9,-34.35 624.5,-33.38"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M480.5,-59.37C545.38,-59.37 559.62,-35.38 624.5,-35.37"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-61.37C547.1,-60.4 561.34,-36.4 624.5,-37.37"/>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-30.5C560.6,-31.48 574.84,-55.48 638,-54.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-32.5C558.88,-32.5 573.12,-56.5 638,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-34.5C557.16,-33.52 571.4,-57.52 638,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-32.38C547.2,-33.39 561.29,-58.39 624.5,-57.38"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M480.5,-34.38C545.46,-34.38 559.54,-59.38 624.5,-59.38"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M480.5,-36.37C543.71,-35.36 557.8,-60.36 624.5,-61.37"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

4
examples/ex08.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

166
examples/ex08.html generated

File diff suppressed because one or more lines are too long

BIN
examples/ex08.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 56 KiB

164
examples/ex08.svg generated

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

4
examples/ex09.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

812
examples/ex09.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex09</title>
<style>
@ -30,524 +30,524 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="835pt" height="1158pt"
viewBox="0.00 0.00 835.00 1158.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1154)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1154 831,-1154 831,4 -4,4"/>
<svg width="813pt" height="1196pt"
viewBox="0.00 0.00 812.75 1195.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1191.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-1191.5 808.75,-1191.5 808.75,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="134,-732.5 0,-732.5 0,-387.5 134,-387.5 134,-732.5"/>
<polygon fill="none" stroke="black" points="0,-709 0,-732 134,-732 134,-709 0,-709"/>
<text text-anchor="start" x="58" y="-716.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-686 0,-709 48,-709 48,-686 0,-686"/>
<text text-anchor="start" x="4" y="-693.8" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48,-686 48,-709 87,-709 87,-686 48,-686"/>
<text text-anchor="start" x="52" y="-693.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="87,-686 87,-709 134,-709 134,-686 87,-686"/>
<text text-anchor="start" x="91" y="-693.8" font-family="arial" font-size="14.00">25&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-663 0,-686 100,-686 100,-663 0,-663"/>
<text text-anchor="start" x="9.5" y="-670.8" font-family="arial" font-size="14.00">SENSE_P_1</text>
<polygon fill="none" stroke="black" points="100,-663 100,-686 134,-686 134,-663 100,-663"/>
<text text-anchor="start" x="113" y="-670.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-640 0,-663 100,-663 100,-640 0,-640"/>
<text text-anchor="start" x="9.5" y="-647.8" font-family="arial" font-size="14.00">SENSE_N_1</text>
<polygon fill="none" stroke="black" points="100,-640 100,-663 134,-663 134,-640 100,-640"/>
<text text-anchor="start" x="109" y="-647.8" font-family="arial" font-size="14.00">14</text>
<polygon fill="none" stroke="black" points="0,-617 0,-640 100,-640 100,-617 0,-617"/>
<text text-anchor="start" x="9.5" y="-624.8" font-family="arial" font-size="14.00">SENSE_P_2</text>
<polygon fill="none" stroke="black" points="100,-617 100,-640 134,-640 134,-617 100,-617"/>
<text text-anchor="start" x="113" y="-624.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-594 0,-617 100,-617 100,-594 0,-594"/>
<text text-anchor="start" x="9.5" y="-601.8" font-family="arial" font-size="14.00">SENSE_N_2</text>
<polygon fill="none" stroke="black" points="100,-594 100,-617 134,-617 134,-594 100,-594"/>
<text text-anchor="start" x="109" y="-601.8" font-family="arial" font-size="14.00">16</text>
<polygon fill="none" stroke="black" points="0,-571 0,-594 100,-594 100,-571 0,-571"/>
<text text-anchor="start" x="9.5" y="-578.8" font-family="arial" font-size="14.00">SENSE_P_3</text>
<polygon fill="none" stroke="black" points="100,-571 100,-594 134,-594 134,-571 100,-571"/>
<text text-anchor="start" x="113" y="-578.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-548 0,-571 100,-571 100,-548 0,-548"/>
<text text-anchor="start" x="9.5" y="-555.8" font-family="arial" font-size="14.00">SENSE_N_3</text>
<polygon fill="none" stroke="black" points="100,-548 100,-571 134,-571 134,-548 100,-548"/>
<text text-anchor="start" x="109" y="-555.8" font-family="arial" font-size="14.00">18</text>
<polygon fill="none" stroke="black" points="0,-525 0,-548 100,-548 100,-525 0,-525"/>
<text text-anchor="start" x="9.5" y="-532.8" font-family="arial" font-size="14.00">SENSE_P_4</text>
<polygon fill="none" stroke="black" points="100,-525 100,-548 134,-548 134,-525 100,-525"/>
<text text-anchor="start" x="113" y="-532.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-502 0,-525 100,-525 100,-502 0,-502"/>
<text text-anchor="start" x="9.5" y="-509.8" font-family="arial" font-size="14.00">SENSE_N_4</text>
<polygon fill="none" stroke="black" points="100,-502 100,-525 134,-525 134,-502 100,-502"/>
<text text-anchor="start" x="109" y="-509.8" font-family="arial" font-size="14.00">20</text>
<polygon fill="none" stroke="black" points="0,-479 0,-502 100,-502 100,-479 0,-479"/>
<text text-anchor="start" x="9.5" y="-486.8" font-family="arial" font-size="14.00">SENSE_P_5</text>
<polygon fill="none" stroke="black" points="100,-479 100,-502 134,-502 134,-479 100,-479"/>
<text text-anchor="start" x="113" y="-486.8" font-family="arial" font-size="14.00">9</text>
<polygon fill="none" stroke="black" points="0,-456 0,-479 100,-479 100,-456 0,-456"/>
<text text-anchor="start" x="9.5" y="-463.8" font-family="arial" font-size="14.00">SENSE_N_5</text>
<polygon fill="none" stroke="black" points="100,-456 100,-479 134,-479 134,-456 100,-456"/>
<text text-anchor="start" x="109" y="-463.8" font-family="arial" font-size="14.00">22</text>
<polygon fill="none" stroke="black" points="0,-433 0,-456 100,-456 100,-433 0,-433"/>
<text text-anchor="start" x="9.5" y="-440.8" font-family="arial" font-size="14.00">SENSE_P_6</text>
<polygon fill="none" stroke="black" points="100,-433 100,-456 134,-456 134,-433 100,-433"/>
<text text-anchor="start" x="109.5" y="-440.8" font-family="arial" font-size="14.00">11</text>
<polygon fill="none" stroke="black" points="0,-410 0,-433 100,-433 100,-410 0,-410"/>
<text text-anchor="start" x="9.5" y="-417.8" font-family="arial" font-size="14.00">SENSE_N_6</text>
<polygon fill="none" stroke="black" points="100,-410 100,-433 134,-433 134,-410 100,-410"/>
<text text-anchor="start" x="109" y="-417.8" font-family="arial" font-size="14.00">24</text>
<polygon fill="none" stroke="black" points="0,-387 0,-410 100,-410 100,-387 0,-387"/>
<text text-anchor="start" x="34" y="-394.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100,-387 100,-410 134,-410 134,-387 100,-387"/>
<text text-anchor="start" x="109" y="-394.8" font-family="arial" font-size="14.00">13</text>
<polygon fill="#ffffff" stroke="black" points="129.75,-752 0,-752 0,-405.5 129.75,-405.5 129.75,-752"/>
<polygon fill="none" stroke="black" points="0,-728.25 0,-752 129.75,-752 129.75,-728.25 0,-728.25"/>
<text text-anchor="start" x="56.62" y="-734.7" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-704.5 0,-728.25 46.25,-728.25 46.25,-704.5 0,-704.5"/>
<text text-anchor="start" x="4" y="-710.95" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="46.25,-704.5 46.25,-728.25 84.25,-728.25 84.25,-704.5 46.25,-704.5"/>
<text text-anchor="start" x="50.25" y="-710.95" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="84.25,-704.5 84.25,-728.25 129.75,-728.25 129.75,-704.5 84.25,-704.5"/>
<text text-anchor="start" x="88.25" y="-710.95" font-family="arial" font-size="14.00">25&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-681.5 0,-704.5 96.38,-704.5 96.38,-681.5 0,-681.5"/>
<text text-anchor="start" x="9.56" y="-687.2" font-family="arial" font-size="14.00">SENSE_P_1</text>
<polygon fill="none" stroke="black" points="96.38,-681.5 96.38,-704.5 129.75,-704.5 129.75,-681.5 96.38,-681.5"/>
<text text-anchor="start" x="109.31" y="-687.2" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-658.5 0,-681.5 96.38,-681.5 96.38,-658.5 0,-658.5"/>
<text text-anchor="start" x="9.19" y="-664.2" font-family="arial" font-size="14.00">SENSE_N_1</text>
<polygon fill="none" stroke="black" points="96.38,-658.5 96.38,-681.5 129.75,-681.5 129.75,-658.5 96.38,-658.5"/>
<text text-anchor="start" x="105.56" y="-664.2" font-family="arial" font-size="14.00">14</text>
<polygon fill="none" stroke="black" points="0,-635.5 0,-658.5 96.38,-658.5 96.38,-635.5 0,-635.5"/>
<text text-anchor="start" x="9.56" y="-641.2" font-family="arial" font-size="14.00">SENSE_P_2</text>
<polygon fill="none" stroke="black" points="96.38,-635.5 96.38,-658.5 129.75,-658.5 129.75,-635.5 96.38,-635.5"/>
<text text-anchor="start" x="109.31" y="-641.2" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-612.5 0,-635.5 96.38,-635.5 96.38,-612.5 0,-612.5"/>
<text text-anchor="start" x="9.19" y="-618.2" font-family="arial" font-size="14.00">SENSE_N_2</text>
<polygon fill="none" stroke="black" points="96.38,-612.5 96.38,-635.5 129.75,-635.5 129.75,-612.5 96.38,-612.5"/>
<text text-anchor="start" x="105.56" y="-618.2" font-family="arial" font-size="14.00">16</text>
<polygon fill="none" stroke="black" points="0,-589.5 0,-612.5 96.38,-612.5 96.38,-589.5 0,-589.5"/>
<text text-anchor="start" x="9.56" y="-595.2" font-family="arial" font-size="14.00">SENSE_P_3</text>
<polygon fill="none" stroke="black" points="96.38,-589.5 96.38,-612.5 129.75,-612.5 129.75,-589.5 96.38,-589.5"/>
<text text-anchor="start" x="109.31" y="-595.2" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-566.5 0,-589.5 96.38,-589.5 96.38,-566.5 0,-566.5"/>
<text text-anchor="start" x="9.19" y="-572.2" font-family="arial" font-size="14.00">SENSE_N_3</text>
<polygon fill="none" stroke="black" points="96.38,-566.5 96.38,-589.5 129.75,-589.5 129.75,-566.5 96.38,-566.5"/>
<text text-anchor="start" x="105.56" y="-572.2" font-family="arial" font-size="14.00">18</text>
<polygon fill="none" stroke="black" points="0,-543.5 0,-566.5 96.38,-566.5 96.38,-543.5 0,-543.5"/>
<text text-anchor="start" x="9.56" y="-549.2" font-family="arial" font-size="14.00">SENSE_P_4</text>
<polygon fill="none" stroke="black" points="96.38,-543.5 96.38,-566.5 129.75,-566.5 129.75,-543.5 96.38,-543.5"/>
<text text-anchor="start" x="109.31" y="-549.2" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-520.5 0,-543.5 96.38,-543.5 96.38,-520.5 0,-520.5"/>
<text text-anchor="start" x="9.19" y="-526.2" font-family="arial" font-size="14.00">SENSE_N_4</text>
<polygon fill="none" stroke="black" points="96.38,-520.5 96.38,-543.5 129.75,-543.5 129.75,-520.5 96.38,-520.5"/>
<text text-anchor="start" x="105.56" y="-526.2" font-family="arial" font-size="14.00">20</text>
<polygon fill="none" stroke="black" points="0,-497.5 0,-520.5 96.38,-520.5 96.38,-497.5 0,-497.5"/>
<text text-anchor="start" x="9.56" y="-503.2" font-family="arial" font-size="14.00">SENSE_P_5</text>
<polygon fill="none" stroke="black" points="96.38,-497.5 96.38,-520.5 129.75,-520.5 129.75,-497.5 96.38,-497.5"/>
<text text-anchor="start" x="109.31" y="-503.2" font-family="arial" font-size="14.00">9</text>
<polygon fill="none" stroke="black" points="0,-474.5 0,-497.5 96.38,-497.5 96.38,-474.5 0,-474.5"/>
<text text-anchor="start" x="9.19" y="-480.2" font-family="arial" font-size="14.00">SENSE_N_5</text>
<polygon fill="none" stroke="black" points="96.38,-474.5 96.38,-497.5 129.75,-497.5 129.75,-474.5 96.38,-474.5"/>
<text text-anchor="start" x="105.56" y="-480.2" font-family="arial" font-size="14.00">22</text>
<polygon fill="none" stroke="black" points="0,-451.5 0,-474.5 96.38,-474.5 96.38,-451.5 0,-451.5"/>
<text text-anchor="start" x="9.56" y="-457.2" font-family="arial" font-size="14.00">SENSE_P_6</text>
<polygon fill="none" stroke="black" points="96.38,-451.5 96.38,-474.5 129.75,-474.5 129.75,-451.5 96.38,-451.5"/>
<text text-anchor="start" x="105.94" y="-457.2" font-family="arial" font-size="14.00">11</text>
<polygon fill="none" stroke="black" points="0,-428.5 0,-451.5 96.38,-451.5 96.38,-428.5 0,-428.5"/>
<text text-anchor="start" x="9.19" y="-434.2" font-family="arial" font-size="14.00">SENSE_N_6</text>
<polygon fill="none" stroke="black" points="96.38,-428.5 96.38,-451.5 129.75,-451.5 129.75,-428.5 96.38,-428.5"/>
<text text-anchor="start" x="105.56" y="-434.2" font-family="arial" font-size="14.00">24</text>
<polygon fill="none" stroke="black" points="0,-405.5 0,-428.5 96.38,-428.5 96.38,-405.5 0,-405.5"/>
<text text-anchor="start" x="32.81" y="-411.2" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="96.38,-405.5 96.38,-428.5 129.75,-428.5 129.75,-405.5 96.38,-405.5"/>
<text text-anchor="start" x="105.56" y="-411.2" font-family="arial" font-size="14.00">13</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="552,-800 278,-800 278,-328 552,-328 552,-800"/>
<polygon fill="none" stroke="black" points="278,-777 278,-800 552,-800 552,-777 278,-777"/>
<text text-anchor="start" x="404.5" y="-784.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="278,-754 278,-777 335,-777 335,-754 278,-754"/>
<text text-anchor="start" x="295" y="-761.8" font-family="arial" font-size="14.00">12x</text>
<polygon fill="none" stroke="black" points="335,-754 335,-777 428,-777 428,-754 335,-754"/>
<text text-anchor="start" x="351.5" y="-761.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="428,-754 428,-777 483,-777 483,-754 428,-754"/>
<text text-anchor="start" x="444.5" y="-761.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="483,-754 483,-777 552,-777 552,-754 483,-754"/>
<text text-anchor="start" x="499.5" y="-761.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="339" y="-740.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="280" y="-721.8" font-family="arial" font-size="14.00">X1:14:SENSE_N_1</text>
<text text-anchor="start" x="418" y="-721.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="509.5" y="-721.8" font-family="arial" font-size="14.00">X2:z2</text>
<polygon fill="#000000" stroke="transparent" points="278,-714 278,-716 552,-716 552,-714 278,-714"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-712 278,-714 552,-714 552,-712 278,-712"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-710 278,-712 552,-712 552,-710 278,-710"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-708 278,-710 552,-710 552,-708 278,-708"/>
<polygon fill="#000000" stroke="transparent" points="278,-706 278,-708 552,-708 552,-706 278,-706"/>
<text text-anchor="start" x="284.5" y="-692.8" font-family="arial" font-size="14.00">X1:1:SENSE_P_1</text>
<text text-anchor="start" x="420" y="-692.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="509" y="-692.8" font-family="arial" font-size="14.00">X2:d4</text>
<polygon fill="#000000" stroke="transparent" points="278,-685 278,-687 552,-687 552,-685 278,-685"/>
<polygon fill="#895956" stroke="transparent" points="278,-683 278,-685 552,-685 552,-683 278,-683"/>
<polygon fill="#895956" stroke="transparent" points="278,-681 278,-683 552,-683 552,-681 278,-681"/>
<polygon fill="#895956" stroke="transparent" points="278,-679 278,-681 552,-681 552,-679 278,-679"/>
<polygon fill="#000000" stroke="transparent" points="278,-677 278,-679 552,-679 552,-677 278,-677"/>
<text text-anchor="start" x="280" y="-663.8" font-family="arial" font-size="14.00">X1:16:SENSE_N_2</text>
<text text-anchor="start" x="419.5" y="-663.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="509.5" y="-663.8" font-family="arial" font-size="14.00">X2:z8</text>
<polygon fill="#000000" stroke="transparent" points="278,-656 278,-658 552,-658 552,-656 278,-656"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-654 278,-656 552,-656 552,-654 278,-654"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-652 278,-654 552,-654 552,-652 278,-652"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-650 278,-652 552,-652 552,-650 278,-650"/>
<polygon fill="#000000" stroke="transparent" points="278,-648 278,-650 552,-650 552,-648 278,-648"/>
<text text-anchor="start" x="284.5" y="-634.8" font-family="arial" font-size="14.00">X1:3:SENSE_P_2</text>
<text text-anchor="start" x="420.5" y="-634.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-634.8" font-family="arial" font-size="14.00">X2:d10</text>
<polygon fill="#000000" stroke="transparent" points="278,-627 278,-629 552,-629 552,-627 278,-627"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-625 278,-627 552,-627 552,-625 278,-625"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-623 278,-625 552,-625 552,-623 278,-623"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-621 278,-623 552,-623 552,-621 278,-621"/>
<polygon fill="#000000" stroke="transparent" points="278,-619 278,-621 552,-621 552,-619 278,-619"/>
<text text-anchor="start" x="280" y="-605.8" font-family="arial" font-size="14.00">X1:18:SENSE_N_3</text>
<text text-anchor="start" x="420" y="-605.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:GY &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-605.8" font-family="arial" font-size="14.00">X2:z14</text>
<polygon fill="#000000" stroke="transparent" points="278,-598 278,-600 552,-600 552,-598 278,-598"/>
<polygon fill="#999999" stroke="transparent" points="278,-596 278,-598 552,-598 552,-596 278,-596"/>
<polygon fill="#999999" stroke="transparent" points="278,-594 278,-596 552,-596 552,-594 278,-594"/>
<polygon fill="#999999" stroke="transparent" points="278,-592 278,-594 552,-594 552,-592 278,-592"/>
<polygon fill="#000000" stroke="transparent" points="278,-590 278,-592 552,-592 552,-590 278,-590"/>
<text text-anchor="start" x="284.5" y="-576.8" font-family="arial" font-size="14.00">X1:5:SENSE_P_3</text>
<text text-anchor="start" x="420.5" y="-576.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-576.8" font-family="arial" font-size="14.00">X2:d16</text>
<polygon fill="#000000" stroke="transparent" points="278,-569 278,-571 552,-571 552,-569 278,-569"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-567 278,-569 552,-569 552,-567 278,-567"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-565 278,-567 552,-567 552,-565 278,-565"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-563 278,-565 552,-565 552,-563 278,-563"/>
<polygon fill="#000000" stroke="transparent" points="278,-561 278,-563 552,-563 552,-561 278,-561"/>
<text text-anchor="start" x="280" y="-547.8" font-family="arial" font-size="14.00">X1:20:SENSE_N_4</text>
<text text-anchor="start" x="420" y="-547.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-547.8" font-family="arial" font-size="14.00">X2:z18</text>
<polygon fill="#000000" stroke="transparent" points="278,-540 278,-542 552,-542 552,-540 278,-540"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-538 278,-540 552,-540 552,-538 278,-538"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-536 278,-538 552,-538 552,-536 278,-536"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-534 278,-536 552,-536 552,-534 278,-534"/>
<polygon fill="#000000" stroke="transparent" points="278,-532 278,-534 552,-534 552,-532 278,-532"/>
<text text-anchor="start" x="284.5" y="-518.8" font-family="arial" font-size="14.00">X1:7:SENSE_P_4</text>
<text text-anchor="start" x="420" y="-518.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-518.8" font-family="arial" font-size="14.00">X2:d20</text>
<polygon fill="#000000" stroke="transparent" points="278,-511 278,-513 552,-513 552,-511 278,-511"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-509 278,-511 552,-511 552,-509 278,-509"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-507 278,-509 552,-509 552,-507 278,-507"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-505 278,-507 552,-507 552,-505 278,-505"/>
<polygon fill="#000000" stroke="transparent" points="278,-503 278,-505 552,-505 552,-503 278,-503"/>
<text text-anchor="start" x="280" y="-489.8" font-family="arial" font-size="14.00">X1:22:SENSE_N_5</text>
<text text-anchor="start" x="420.5" y="-489.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;9:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-489.8" font-family="arial" font-size="14.00">X2:z24</text>
<polygon fill="#000000" stroke="transparent" points="278,-482 278,-484 552,-484 552,-482 278,-482"/>
<polygon fill="#000000" stroke="transparent" points="278,-480 278,-482 552,-482 552,-480 278,-480"/>
<polygon fill="#000000" stroke="transparent" points="278,-478 278,-480 552,-480 552,-478 278,-478"/>
<polygon fill="#000000" stroke="transparent" points="278,-476 278,-478 552,-478 552,-476 278,-476"/>
<polygon fill="#000000" stroke="transparent" points="278,-474 278,-476 552,-476 552,-474 278,-474"/>
<text text-anchor="start" x="284.5" y="-460.8" font-family="arial" font-size="14.00">X1:9:SENSE_P_5</text>
<text text-anchor="start" x="417" y="-460.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;10:VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-460.8" font-family="arial" font-size="14.00">X2:d26</text>
<polygon fill="#000000" stroke="transparent" points="278,-453 278,-455 552,-455 552,-453 278,-453"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-451 278,-453 552,-453 552,-451 278,-451"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-449 278,-451 552,-451 552,-449 278,-449"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-447 278,-449 552,-449 552,-447 278,-447"/>
<polygon fill="#000000" stroke="transparent" points="278,-445 278,-447 552,-447 552,-445 278,-445"/>
<text text-anchor="start" x="280" y="-431.8" font-family="arial" font-size="14.00">X1:24:SENSE_N_6</text>
<text text-anchor="start" x="407" y="-431.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;11:GYPK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-431.8" font-family="arial" font-size="14.00">X2:z30</text>
<polygon fill="#000000" stroke="transparent" points="278,-424 278,-426 552,-426 552,-424 278,-424"/>
<polygon fill="#999999" stroke="transparent" points="278,-422 278,-424 552,-424 552,-422 278,-422"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-420 278,-422 552,-422 552,-420 278,-420"/>
<polygon fill="#999999" stroke="transparent" points="278,-418 278,-420 552,-420 552,-418 278,-418"/>
<polygon fill="#000000" stroke="transparent" points="278,-416 278,-418 552,-418 552,-416 278,-416"/>
<text text-anchor="start" x="281" y="-402.8" font-family="arial" font-size="14.00">X1:11:SENSE_P_6</text>
<text text-anchor="start" x="406" y="-402.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;12:RDBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-402.8" font-family="arial" font-size="14.00">X2:d32</text>
<polygon fill="#000000" stroke="transparent" points="278,-395 278,-397 552,-397 552,-395 278,-395"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-393 278,-395 552,-395 552,-393 278,-393"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-391 278,-393 552,-393 552,-391 278,-391"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-389 278,-391 552,-391 552,-389 278,-389"/>
<polygon fill="#000000" stroke="transparent" points="278,-387 278,-389 552,-389 552,-387 278,-387"/>
<text text-anchor="start" x="339" y="-373.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="305" y="-354.8" font-family="arial" font-size="14.00">X1:13:GND</text>
<text text-anchor="start" x="434" y="-354.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="278,-347 278,-349 552,-349 552,-347 278,-347"/>
<text text-anchor="start" x="339" y="-333.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="534.75,-820.5 273.75,-820.5 273.75,-347 534.75,-347 534.75,-820.5"/>
<polygon fill="none" stroke="black" points="273.75,-796.75 273.75,-820.5 534.75,-820.5 534.75,-796.75 273.75,-796.75"/>
<text text-anchor="start" x="393.75" y="-803.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="273.75,-773 273.75,-796.75 326.81,-796.75 326.81,-773 273.75,-773"/>
<text text-anchor="start" x="289.41" y="-779.45" font-family="arial" font-size="14.00">12x</text>
<polygon fill="none" stroke="black" points="326.81,-773 326.81,-796.75 416.62,-796.75 416.62,-773 326.81,-773"/>
<text text-anchor="start" x="342.47" y="-779.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="416.62,-773 416.62,-796.75 468.94,-796.75 468.94,-773 416.62,-773"/>
<text text-anchor="start" x="432.28" y="-779.45" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="468.94,-773 468.94,-796.75 534.75,-796.75 534.75,-773 468.94,-773"/>
<text text-anchor="start" x="484.59" y="-779.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="332.38" y="-757.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="275.75" y="-738.7" font-family="arial" font-size="14.00">X1:14:SENSE_N_1</text>
<text text-anchor="start" x="407.62" y="-738.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="494.5" y="-738.7" font-family="arial" font-size="14.00">X2:z2</text>
<polygon fill="#000000" stroke="none" points="273.75,-733 273.75,-735 534.75,-735 534.75,-733 273.75,-733"/>
<polygon fill="#ffffff" stroke="none" points="273.75,-731 273.75,-733 534.75,-733 534.75,-731 273.75,-731"/>
<polygon fill="#ffffff" stroke="none" points="273.75,-729 273.75,-731 534.75,-731 534.75,-729 273.75,-729"/>
<polygon fill="#ffffff" stroke="none" points="273.75,-727 273.75,-729 534.75,-729 534.75,-727 273.75,-727"/>
<polygon fill="#000000" stroke="none" points="273.75,-725 273.75,-727 534.75,-727 534.75,-725 273.75,-725"/>
<text text-anchor="start" x="279.88" y="-709.7" font-family="arial" font-size="14.00">X1:1:SENSE_P_1</text>
<text text-anchor="start" x="409.88" y="-709.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="494.12" y="-709.7" font-family="arial" font-size="14.00">X2:d4</text>
<polygon fill="#000000" stroke="none" points="273.75,-704 273.75,-706 534.75,-706 534.75,-704 273.75,-704"/>
<polygon fill="#895956" stroke="none" points="273.75,-702 273.75,-704 534.75,-704 534.75,-702 273.75,-702"/>
<polygon fill="#895956" stroke="none" points="273.75,-700 273.75,-702 534.75,-702 534.75,-700 273.75,-700"/>
<polygon fill="#895956" stroke="none" points="273.75,-698 273.75,-700 534.75,-700 534.75,-698 273.75,-698"/>
<polygon fill="#000000" stroke="none" points="273.75,-696 273.75,-698 534.75,-698 534.75,-696 273.75,-696"/>
<text text-anchor="start" x="275.75" y="-680.7" font-family="arial" font-size="14.00">X1:16:SENSE_N_2</text>
<text text-anchor="start" x="408.75" y="-680.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="494.5" y="-680.7" font-family="arial" font-size="14.00">X2:z8</text>
<polygon fill="#000000" stroke="none" points="273.75,-675 273.75,-677 534.75,-677 534.75,-675 273.75,-675"/>
<polygon fill="#00ff00" stroke="none" points="273.75,-673 273.75,-675 534.75,-675 534.75,-673 273.75,-673"/>
<polygon fill="#00ff00" stroke="none" points="273.75,-671 273.75,-673 534.75,-673 534.75,-671 273.75,-671"/>
<polygon fill="#00ff00" stroke="none" points="273.75,-669 273.75,-671 534.75,-671 534.75,-669 273.75,-669"/>
<polygon fill="#000000" stroke="none" points="273.75,-667 273.75,-669 534.75,-669 534.75,-667 273.75,-667"/>
<text text-anchor="start" x="279.88" y="-651.7" font-family="arial" font-size="14.00">X1:3:SENSE_P_2</text>
<text text-anchor="start" x="410.25" y="-651.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-651.7" font-family="arial" font-size="14.00">X2:d10</text>
<polygon fill="#000000" stroke="none" points="273.75,-646 273.75,-648 534.75,-648 534.75,-646 273.75,-646"/>
<polygon fill="#ffff00" stroke="none" points="273.75,-644 273.75,-646 534.75,-646 534.75,-644 273.75,-644"/>
<polygon fill="#ffff00" stroke="none" points="273.75,-642 273.75,-644 534.75,-644 534.75,-642 273.75,-642"/>
<polygon fill="#ffff00" stroke="none" points="273.75,-640 273.75,-642 534.75,-642 534.75,-640 273.75,-640"/>
<polygon fill="#000000" stroke="none" points="273.75,-638 273.75,-640 534.75,-640 534.75,-638 273.75,-638"/>
<text text-anchor="start" x="275.75" y="-622.7" font-family="arial" font-size="14.00">X1:18:SENSE_N_3</text>
<text text-anchor="start" x="409.12" y="-622.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:GY &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-622.7" font-family="arial" font-size="14.00">X2:z14</text>
<polygon fill="#000000" stroke="none" points="273.75,-617 273.75,-619 534.75,-619 534.75,-617 273.75,-617"/>
<polygon fill="#999999" stroke="none" points="273.75,-615 273.75,-617 534.75,-617 534.75,-615 273.75,-615"/>
<polygon fill="#999999" stroke="none" points="273.75,-613 273.75,-615 534.75,-615 534.75,-613 273.75,-613"/>
<polygon fill="#999999" stroke="none" points="273.75,-611 273.75,-613 534.75,-613 534.75,-611 273.75,-611"/>
<polygon fill="#000000" stroke="none" points="273.75,-609 273.75,-611 534.75,-611 534.75,-609 273.75,-609"/>
<text text-anchor="start" x="279.88" y="-593.7" font-family="arial" font-size="14.00">X1:5:SENSE_P_3</text>
<text text-anchor="start" x="410.25" y="-593.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-593.7" font-family="arial" font-size="14.00">X2:d16</text>
<polygon fill="#000000" stroke="none" points="273.75,-588 273.75,-590 534.75,-590 534.75,-588 273.75,-588"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-586 273.75,-588 534.75,-588 534.75,-586 273.75,-586"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-584 273.75,-586 534.75,-586 534.75,-584 273.75,-584"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-582 273.75,-584 534.75,-584 534.75,-582 273.75,-582"/>
<polygon fill="#000000" stroke="none" points="273.75,-580 273.75,-582 534.75,-582 534.75,-580 273.75,-580"/>
<text text-anchor="start" x="275.75" y="-564.7" font-family="arial" font-size="14.00">X1:20:SENSE_N_4</text>
<text text-anchor="start" x="409.88" y="-564.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-564.7" font-family="arial" font-size="14.00">X2:z18</text>
<polygon fill="#000000" stroke="none" points="273.75,-559 273.75,-561 534.75,-561 534.75,-559 273.75,-559"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-557 273.75,-559 534.75,-559 534.75,-557 273.75,-557"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-555 273.75,-557 534.75,-557 534.75,-555 273.75,-555"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-553 273.75,-555 534.75,-555 534.75,-553 273.75,-553"/>
<polygon fill="#000000" stroke="none" points="273.75,-551 273.75,-553 534.75,-553 534.75,-551 273.75,-551"/>
<text text-anchor="start" x="279.88" y="-535.7" font-family="arial" font-size="14.00">X1:7:SENSE_P_4</text>
<text text-anchor="start" x="409.5" y="-535.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-535.7" font-family="arial" font-size="14.00">X2:d20</text>
<polygon fill="#000000" stroke="none" points="273.75,-530 273.75,-532 534.75,-532 534.75,-530 273.75,-530"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-528 273.75,-530 534.75,-530 534.75,-528 273.75,-528"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-526 273.75,-528 534.75,-528 534.75,-526 273.75,-526"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-524 273.75,-526 534.75,-526 534.75,-524 273.75,-524"/>
<polygon fill="#000000" stroke="none" points="273.75,-522 273.75,-524 534.75,-524 534.75,-522 273.75,-522"/>
<text text-anchor="start" x="275.75" y="-506.7" font-family="arial" font-size="14.00">X1:22:SENSE_N_5</text>
<text text-anchor="start" x="410.25" y="-506.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;9:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-506.7" font-family="arial" font-size="14.00">X2:z24</text>
<polygon fill="#000000" stroke="none" points="273.75,-501 273.75,-503 534.75,-503 534.75,-501 273.75,-501"/>
<polygon fill="#000000" stroke="none" points="273.75,-499 273.75,-501 534.75,-501 534.75,-499 273.75,-499"/>
<polygon fill="#000000" stroke="none" points="273.75,-497 273.75,-499 534.75,-499 534.75,-497 273.75,-497"/>
<polygon fill="#000000" stroke="none" points="273.75,-495 273.75,-497 534.75,-497 534.75,-495 273.75,-495"/>
<polygon fill="#000000" stroke="none" points="273.75,-493 273.75,-495 534.75,-495 534.75,-493 273.75,-493"/>
<text text-anchor="start" x="279.88" y="-477.7" font-family="arial" font-size="14.00">X1:9:SENSE_P_5</text>
<text text-anchor="start" x="406.88" y="-477.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;10:VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-477.7" font-family="arial" font-size="14.00">X2:d26</text>
<polygon fill="#000000" stroke="none" points="273.75,-472 273.75,-474 534.75,-474 534.75,-472 273.75,-472"/>
<polygon fill="#8000ff" stroke="none" points="273.75,-470 273.75,-472 534.75,-472 534.75,-470 273.75,-470"/>
<polygon fill="#8000ff" stroke="none" points="273.75,-468 273.75,-470 534.75,-470 534.75,-468 273.75,-468"/>
<polygon fill="#8000ff" stroke="none" points="273.75,-466 273.75,-468 534.75,-468 534.75,-466 273.75,-466"/>
<polygon fill="#000000" stroke="none" points="273.75,-464 273.75,-466 534.75,-466 534.75,-464 273.75,-464"/>
<text text-anchor="start" x="275.75" y="-448.7" font-family="arial" font-size="14.00">X1:24:SENSE_N_6</text>
<text text-anchor="start" x="396.75" y="-448.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;11:GYPK &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-448.7" font-family="arial" font-size="14.00">X2:z30</text>
<polygon fill="#000000" stroke="none" points="273.75,-443 273.75,-445 534.75,-445 534.75,-443 273.75,-443"/>
<polygon fill="#999999" stroke="none" points="273.75,-441 273.75,-443 534.75,-443 534.75,-441 273.75,-441"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-439 273.75,-441 534.75,-441 534.75,-439 273.75,-439"/>
<polygon fill="#999999" stroke="none" points="273.75,-437 273.75,-439 534.75,-439 534.75,-437 273.75,-437"/>
<polygon fill="#000000" stroke="none" points="273.75,-435 273.75,-437 534.75,-437 534.75,-435 273.75,-435"/>
<text text-anchor="start" x="276.5" y="-419.7" font-family="arial" font-size="14.00">X1:11:SENSE_P_6</text>
<text text-anchor="start" x="396.38" y="-419.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;12:RDBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-419.7" font-family="arial" font-size="14.00">X2:d32</text>
<polygon fill="#000000" stroke="none" points="273.75,-414 273.75,-416 534.75,-416 534.75,-414 273.75,-414"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-412 273.75,-414 534.75,-414 534.75,-412 273.75,-412"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-410 273.75,-412 534.75,-412 534.75,-410 273.75,-410"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-408 273.75,-410 534.75,-410 534.75,-408 273.75,-408"/>
<polygon fill="#000000" stroke="none" points="273.75,-406 273.75,-408 534.75,-408 534.75,-406 273.75,-406"/>
<text text-anchor="start" x="332.38" y="-390.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="299.38" y="-371.7" font-family="arial" font-size="14.00">X1:13:GND</text>
<text text-anchor="start" x="423" y="-371.7" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="273.75,-366 273.75,-368 534.75,-368 534.75,-366 273.75,-366"/>
<text text-anchor="start" x="332.38" y="-350.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-671C199.69,-671.34 215.54,-678.34 278,-678"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-673C198.88,-673.17 214.73,-680.17 278,-680"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-675C198.08,-675 213.92,-682 278,-682"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-677C197.27,-676.83 213.12,-683.83 278,-684"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-679C196.46,-678.66 212.31,-685.66 278,-686"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-688.75C195.66,-689.18 211.46,-697.18 273.75,-696.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M129.75,-690.75C194.75,-690.97 210.55,-698.97 273.75,-698.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M129.75,-692.75C193.85,-692.75 209.65,-700.75 273.75,-700.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M129.75,-694.75C192.95,-694.53 208.75,-702.53 273.75,-702.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-696.75C192.04,-696.32 207.84,-704.32 273.75,-704.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-648C207.15,-651.62 212.82,-710.62 278,-707"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-650C205.15,-651.81 210.83,-710.81 278,-709"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-652C203.16,-652 208.84,-711 278,-711"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-654C201.17,-652.19 206.85,-711.19 278,-713"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-656C199.18,-652.38 204.85,-711.38 278,-715"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-665.75C203.07,-669.4 208.4,-729.4 273.75,-725.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M129.75,-667.75C201.08,-669.57 206.41,-729.57 273.75,-727.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M129.75,-669.75C199.08,-669.75 204.42,-729.75 273.75,-729.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M129.75,-671.75C197.09,-669.93 202.42,-729.93 273.75,-731.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-673.75C195.1,-670.1 200.43,-730.1 273.75,-733.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-625C196.84,-625.18 212.76,-620.18 278,-620"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-627C197.44,-627.09 213.36,-622.09 278,-622"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-629C198.04,-629 213.96,-624 278,-624"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-631C198.64,-630.91 214.56,-625.91 278,-626"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-633C199.24,-632.82 215.16,-627.82 278,-628"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-642.75C192.8,-642.87 208.75,-638.87 273.75,-638.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M129.75,-644.75C193.29,-644.81 209.24,-640.81 273.75,-640.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M129.75,-646.75C193.77,-646.75 209.73,-642.75 273.75,-642.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M129.75,-648.75C194.26,-648.69 210.21,-644.69 273.75,-644.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-650.75C194.75,-650.63 210.7,-646.63 273.75,-646.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-602C205.25,-605.22 214.6,-652.22 278,-649"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-604C203.28,-605.61 212.64,-652.61 278,-651"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-606C201.32,-606 210.68,-653 278,-653"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-608C199.36,-606.39 208.72,-653.39 278,-655"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-610C197.4,-606.78 206.75,-653.78 278,-657"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-619.75C201.14,-623.01 210.22,-671.01 273.75,-667.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M129.75,-621.75C199.18,-623.38 208.25,-671.38 273.75,-669.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M129.75,-623.75C197.21,-623.75 206.29,-671.75 273.75,-671.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M129.75,-625.75C195.25,-624.12 204.32,-672.12 273.75,-673.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-627.75C193.28,-624.49 202.36,-672.49 273.75,-675.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-579C195.45,-580.34 210.57,-563.34 278,-562"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-581C196.95,-581.67 212.06,-564.67 278,-564"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-583C198.44,-583 213.56,-566 278,-566"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-585C199.94,-584.33 215.05,-567.33 278,-568"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-587C201.43,-585.66 216.55,-568.66 278,-570"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-596.75C191.24,-597.99 206.46,-581.99 273.75,-580.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-598.75C192.69,-599.37 207.91,-583.37 273.75,-582.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-600.75C194.14,-600.75 209.36,-584.75 273.75,-584.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-602.75C195.59,-602.13 210.81,-586.13 273.75,-586.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-604.75C197.04,-603.51 212.26,-587.51 273.75,-588.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-555C203.76,-557.73 215.82,-593.73 278,-591"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-557C201.87,-558.36 213.93,-594.36 278,-593"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-559C199.97,-559 212.03,-595 278,-595"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-561C198.07,-559.64 210.13,-595.64 278,-597"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-563C196.18,-560.27 208.24,-596.27 278,-599"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-573.75C199.51,-576.48 211.57,-612.48 273.75,-609.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-575.75C197.62,-577.11 209.68,-613.11 273.75,-611.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-577.75C195.72,-577.75 207.78,-613.75 273.75,-613.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-579.75C193.82,-578.39 205.88,-614.39 273.75,-615.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-581.75C191.93,-579.02 203.99,-615.02 273.75,-617.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-532C195.6,-534.25 209.2,-506.25 278,-504"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-534C197.4,-535.13 211,-507.13 278,-506"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-536C199.2,-536 212.8,-508 278,-508"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-538C201,-536.87 214.6,-508.87 278,-510"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-540C202.8,-537.75 216.4,-509.75 278,-512"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-550.75C191.35,-553 204.95,-525 273.75,-522.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-552.75C193.15,-553.88 206.75,-525.88 273.75,-524.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-554.75C194.95,-554.75 208.55,-526.75 273.75,-526.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-556.75C196.75,-555.62 210.35,-527.62 273.75,-528.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-558.75C198.55,-556.5 212.15,-528.5 273.75,-530.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-509C202.32,-510.96 216.56,-534.96 278,-533"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-511C200.6,-511.98 214.84,-535.98 278,-535"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-513C198.88,-513 213.12,-537 278,-537"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-515C197.16,-514.02 211.4,-538.02 278,-539"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-517C195.44,-515.04 209.68,-539.04 278,-541"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-527.75C198.07,-529.71 212.31,-553.71 273.75,-551.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-529.75C196.35,-530.73 210.59,-554.73 273.75,-553.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-531.75C194.63,-531.75 208.87,-555.75 273.75,-555.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-533.75C192.91,-532.77 207.15,-556.77 273.75,-557.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-535.75C191.19,-533.79 205.43,-557.79 273.75,-559.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge17" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-486C196.57,-488.93 207.72,-448.93 278,-446"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-488C198.5,-489.46 209.65,-449.46 278,-448"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-490C200.42,-490 211.58,-450 278,-450"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-492C202.35,-490.54 213.5,-450.54 278,-452"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-494C204.28,-491.07 215.43,-451.07 278,-454"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-504.75C192.32,-507.68 203.47,-467.68 273.75,-464.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M129.75,-506.75C194.25,-508.21 205.4,-468.21 273.75,-466.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M129.75,-508.75C196.17,-508.75 207.33,-468.75 273.75,-468.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M129.75,-510.75C198.1,-509.29 209.25,-469.29 273.75,-470.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-512.75C200.03,-509.82 211.18,-469.82 273.75,-472.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge19" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-463C200.66,-463.83 216.22,-475.83 278,-475"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-465C199.44,-465.42 215,-477.42 278,-477"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-467C198.22,-467 213.78,-479 278,-479"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-469C197,-468.58 212.56,-480.58 278,-481"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-471C195.78,-470.17 211.34,-482.17 278,-483"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-481.75C196.41,-482.58 211.97,-494.58 273.75,-493.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-483.75C195.19,-484.17 210.75,-496.17 273.75,-495.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-485.75C193.97,-485.75 209.53,-497.75 273.75,-497.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-487.75C192.75,-487.33 208.31,-499.33 273.75,-499.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-489.75C191.53,-488.92 207.09,-500.92 273.75,-501.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge21" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-440C198.09,-443.4 206,-391.4 278,-388"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-442C200.07,-443.7 207.98,-391.7 278,-390"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-444C202.05,-444 209.95,-392 278,-392"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-446C204.02,-444.3 211.93,-392.3 278,-394"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-448C206,-444.6 213.91,-392.6 278,-396"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-458.75C193.84,-462.15 201.75,-410.15 273.75,-406.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-460.75C195.82,-462.45 203.73,-410.45 273.75,-408.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-462.75C197.8,-462.75 205.7,-410.75 273.75,-410.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-464.75C199.77,-463.05 207.68,-411.05 273.75,-412.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-466.75C201.75,-463.35 209.66,-411.35 273.75,-414.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge23" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-417C198,-417 214,-417 278,-417"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-419C198,-419 214,-419 278,-419"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-421C198,-421 214,-421 278,-421"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-423C198,-423 214,-423 278,-423"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-425C198,-425 214,-425 278,-425"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-435.75C193.75,-435.75 209.75,-435.75 273.75,-435.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-437.75C193.75,-437.75 209.75,-437.75 273.75,-437.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-439.75C193.75,-439.75 209.75,-439.75 273.75,-439.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-441.75C193.75,-441.75 209.75,-441.75 273.75,-441.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-443.75C193.75,-443.75 209.75,-443.75 273.75,-443.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge25" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-398C201.75,-398 210.25,-348 278,-348"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-416.75C197.5,-416.75 206,-366.75 273.75,-366.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="827,-1150 696,-1150 696,0 827,0 827,-1150"/>
<polygon fill="none" stroke="black" points="696.5,-1127 696.5,-1150 827.5,-1150 827.5,-1127 696.5,-1127"/>
<text text-anchor="start" x="753" y="-1134.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="696.5,-1104 696.5,-1127 729.5,-1127 729.5,-1104 696.5,-1104"/>
<text text-anchor="start" x="700.5" y="-1111.8" font-family="arial" font-size="14.00">F48</text>
<polygon fill="none" stroke="black" points="729.5,-1104 729.5,-1127 780.5,-1127 780.5,-1104 729.5,-1104"/>
<text text-anchor="start" x="733.5" y="-1111.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="780.5,-1104 780.5,-1127 827.5,-1127 827.5,-1104 780.5,-1104"/>
<text text-anchor="start" x="784.5" y="-1111.8" font-family="arial" font-size="14.00">48&#45;pin</text>
<polygon fill="none" stroke="black" points="696.5,-1081 696.5,-1104 827.5,-1104 827.5,-1081 696.5,-1081"/>
<text text-anchor="start" x="754.5" y="-1088.8" font-family="arial" font-size="14.00">z2</text>
<polygon fill="none" stroke="black" points="696.5,-1058 696.5,-1081 827.5,-1081 827.5,-1058 696.5,-1058"/>
<text text-anchor="start" x="754" y="-1065.8" font-family="arial" font-size="14.00">b2</text>
<polygon fill="none" stroke="black" points="696.5,-1035 696.5,-1058 827.5,-1058 827.5,-1035 696.5,-1035"/>
<text text-anchor="start" x="754" y="-1042.8" font-family="arial" font-size="14.00">d2</text>
<polygon fill="none" stroke="black" points="696.5,-1012 696.5,-1035 827.5,-1035 827.5,-1012 696.5,-1012"/>
<text text-anchor="start" x="754.5" y="-1019.8" font-family="arial" font-size="14.00">z4</text>
<polygon fill="none" stroke="black" points="696.5,-989 696.5,-1012 827.5,-1012 827.5,-989 696.5,-989"/>
<text text-anchor="start" x="754" y="-996.8" font-family="arial" font-size="14.00">b4</text>
<polygon fill="none" stroke="black" points="696.5,-966 696.5,-989 827.5,-989 827.5,-966 696.5,-966"/>
<text text-anchor="start" x="754" y="-973.8" font-family="arial" font-size="14.00">d4</text>
<polygon fill="none" stroke="black" points="696.5,-943 696.5,-966 827.5,-966 827.5,-943 696.5,-943"/>
<text text-anchor="start" x="754.5" y="-950.8" font-family="arial" font-size="14.00">z6</text>
<polygon fill="none" stroke="black" points="696.5,-920 696.5,-943 827.5,-943 827.5,-920 696.5,-920"/>
<text text-anchor="start" x="754" y="-927.8" font-family="arial" font-size="14.00">b6</text>
<polygon fill="none" stroke="black" points="696.5,-897 696.5,-920 827.5,-920 827.5,-897 696.5,-897"/>
<text text-anchor="start" x="754" y="-904.8" font-family="arial" font-size="14.00">d6</text>
<polygon fill="none" stroke="black" points="696.5,-874 696.5,-897 827.5,-897 827.5,-874 696.5,-874"/>
<text text-anchor="start" x="754.5" y="-881.8" font-family="arial" font-size="14.00">z8</text>
<polygon fill="none" stroke="black" points="696.5,-851 696.5,-874 827.5,-874 827.5,-851 696.5,-851"/>
<text text-anchor="start" x="754" y="-858.8" font-family="arial" font-size="14.00">b8</text>
<polygon fill="none" stroke="black" points="696.5,-828 696.5,-851 827.5,-851 827.5,-828 696.5,-828"/>
<text text-anchor="start" x="754" y="-835.8" font-family="arial" font-size="14.00">d8</text>
<polygon fill="none" stroke="black" points="696.5,-805 696.5,-828 827.5,-828 827.5,-805 696.5,-805"/>
<text text-anchor="start" x="750.5" y="-812.8" font-family="arial" font-size="14.00">z10</text>
<polygon fill="none" stroke="black" points="696.5,-782 696.5,-805 827.5,-805 827.5,-782 696.5,-782"/>
<text text-anchor="start" x="750" y="-789.8" font-family="arial" font-size="14.00">b10</text>
<polygon fill="none" stroke="black" points="696.5,-759 696.5,-782 827.5,-782 827.5,-759 696.5,-759"/>
<text text-anchor="start" x="750" y="-766.8" font-family="arial" font-size="14.00">d10</text>
<polygon fill="none" stroke="black" points="696.5,-736 696.5,-759 827.5,-759 827.5,-736 696.5,-736"/>
<text text-anchor="start" x="750.5" y="-743.8" font-family="arial" font-size="14.00">z12</text>
<polygon fill="none" stroke="black" points="696.5,-713 696.5,-736 827.5,-736 827.5,-713 696.5,-713"/>
<text text-anchor="start" x="750" y="-720.8" font-family="arial" font-size="14.00">b12</text>
<polygon fill="none" stroke="black" points="696.5,-690 696.5,-713 827.5,-713 827.5,-690 696.5,-690"/>
<text text-anchor="start" x="750" y="-697.8" font-family="arial" font-size="14.00">d12</text>
<polygon fill="none" stroke="black" points="696.5,-667 696.5,-690 827.5,-690 827.5,-667 696.5,-667"/>
<text text-anchor="start" x="750.5" y="-674.8" font-family="arial" font-size="14.00">z14</text>
<polygon fill="none" stroke="black" points="696.5,-644 696.5,-667 827.5,-667 827.5,-644 696.5,-644"/>
<text text-anchor="start" x="750" y="-651.8" font-family="arial" font-size="14.00">b14</text>
<polygon fill="none" stroke="black" points="696.5,-621 696.5,-644 827.5,-644 827.5,-621 696.5,-621"/>
<text text-anchor="start" x="750" y="-628.8" font-family="arial" font-size="14.00">d14</text>
<polygon fill="none" stroke="black" points="696.5,-598 696.5,-621 827.5,-621 827.5,-598 696.5,-598"/>
<text text-anchor="start" x="750.5" y="-605.8" font-family="arial" font-size="14.00">z16</text>
<polygon fill="none" stroke="black" points="696.5,-575 696.5,-598 827.5,-598 827.5,-575 696.5,-575"/>
<text text-anchor="start" x="750" y="-582.8" font-family="arial" font-size="14.00">b16</text>
<polygon fill="none" stroke="black" points="696.5,-552 696.5,-575 827.5,-575 827.5,-552 696.5,-552"/>
<text text-anchor="start" x="750" y="-559.8" font-family="arial" font-size="14.00">d16</text>
<polygon fill="none" stroke="black" points="696.5,-529 696.5,-552 827.5,-552 827.5,-529 696.5,-529"/>
<text text-anchor="start" x="750.5" y="-536.8" font-family="arial" font-size="14.00">z18</text>
<polygon fill="none" stroke="black" points="696.5,-506 696.5,-529 827.5,-529 827.5,-506 696.5,-506"/>
<text text-anchor="start" x="750" y="-513.8" font-family="arial" font-size="14.00">b18</text>
<polygon fill="none" stroke="black" points="696.5,-483 696.5,-506 827.5,-506 827.5,-483 696.5,-483"/>
<text text-anchor="start" x="750" y="-490.8" font-family="arial" font-size="14.00">d18</text>
<polygon fill="none" stroke="black" points="696.5,-460 696.5,-483 827.5,-483 827.5,-460 696.5,-460"/>
<text text-anchor="start" x="750.5" y="-467.8" font-family="arial" font-size="14.00">z20</text>
<polygon fill="none" stroke="black" points="696.5,-437 696.5,-460 827.5,-460 827.5,-437 696.5,-437"/>
<text text-anchor="start" x="750" y="-444.8" font-family="arial" font-size="14.00">b20</text>
<polygon fill="none" stroke="black" points="696.5,-414 696.5,-437 827.5,-437 827.5,-414 696.5,-414"/>
<text text-anchor="start" x="750" y="-421.8" font-family="arial" font-size="14.00">d20</text>
<polygon fill="none" stroke="black" points="696.5,-391 696.5,-414 827.5,-414 827.5,-391 696.5,-391"/>
<text text-anchor="start" x="750.5" y="-398.8" font-family="arial" font-size="14.00">z22</text>
<polygon fill="none" stroke="black" points="696.5,-368 696.5,-391 827.5,-391 827.5,-368 696.5,-368"/>
<text text-anchor="start" x="750" y="-375.8" font-family="arial" font-size="14.00">b22</text>
<polygon fill="none" stroke="black" points="696.5,-345 696.5,-368 827.5,-368 827.5,-345 696.5,-345"/>
<text text-anchor="start" x="750" y="-352.8" font-family="arial" font-size="14.00">d22</text>
<polygon fill="none" stroke="black" points="696.5,-322 696.5,-345 827.5,-345 827.5,-322 696.5,-322"/>
<text text-anchor="start" x="750.5" y="-329.8" font-family="arial" font-size="14.00">z24</text>
<polygon fill="none" stroke="black" points="696.5,-299 696.5,-322 827.5,-322 827.5,-299 696.5,-299"/>
<text text-anchor="start" x="750" y="-306.8" font-family="arial" font-size="14.00">b24</text>
<polygon fill="none" stroke="black" points="696.5,-276 696.5,-299 827.5,-299 827.5,-276 696.5,-276"/>
<text text-anchor="start" x="750" y="-283.8" font-family="arial" font-size="14.00">d24</text>
<polygon fill="none" stroke="black" points="696.5,-253 696.5,-276 827.5,-276 827.5,-253 696.5,-253"/>
<text text-anchor="start" x="750.5" y="-260.8" font-family="arial" font-size="14.00">z26</text>
<polygon fill="none" stroke="black" points="696.5,-230 696.5,-253 827.5,-253 827.5,-230 696.5,-230"/>
<text text-anchor="start" x="750" y="-237.8" font-family="arial" font-size="14.00">b26</text>
<polygon fill="none" stroke="black" points="696.5,-207 696.5,-230 827.5,-230 827.5,-207 696.5,-207"/>
<text text-anchor="start" x="750" y="-214.8" font-family="arial" font-size="14.00">d26</text>
<polygon fill="none" stroke="black" points="696.5,-184 696.5,-207 827.5,-207 827.5,-184 696.5,-184"/>
<text text-anchor="start" x="750.5" y="-191.8" font-family="arial" font-size="14.00">z28</text>
<polygon fill="none" stroke="black" points="696.5,-161 696.5,-184 827.5,-184 827.5,-161 696.5,-161"/>
<text text-anchor="start" x="750" y="-168.8" font-family="arial" font-size="14.00">b28</text>
<polygon fill="none" stroke="black" points="696.5,-138 696.5,-161 827.5,-161 827.5,-138 696.5,-138"/>
<text text-anchor="start" x="750" y="-145.8" font-family="arial" font-size="14.00">d28</text>
<polygon fill="none" stroke="black" points="696.5,-115 696.5,-138 827.5,-138 827.5,-115 696.5,-115"/>
<text text-anchor="start" x="750.5" y="-122.8" font-family="arial" font-size="14.00">z30</text>
<polygon fill="none" stroke="black" points="696.5,-92 696.5,-115 827.5,-115 827.5,-92 696.5,-92"/>
<text text-anchor="start" x="750" y="-99.8" font-family="arial" font-size="14.00">b30</text>
<polygon fill="none" stroke="black" points="696.5,-69 696.5,-92 827.5,-92 827.5,-69 696.5,-69"/>
<text text-anchor="start" x="750" y="-76.8" font-family="arial" font-size="14.00">d30</text>
<polygon fill="none" stroke="black" points="696.5,-46 696.5,-69 827.5,-69 827.5,-46 696.5,-46"/>
<text text-anchor="start" x="750.5" y="-53.8" font-family="arial" font-size="14.00">z32</text>
<polygon fill="none" stroke="black" points="696.5,-23 696.5,-46 827.5,-46 827.5,-23 696.5,-23"/>
<text text-anchor="start" x="750" y="-30.8" font-family="arial" font-size="14.00">b32</text>
<polygon fill="none" stroke="black" points="696.5,0 696.5,-23 827.5,-23 827.5,0 696.5,0"/>
<text text-anchor="start" x="750" y="-7.8" font-family="arial" font-size="14.00">d32</text>
<polygon fill="#ffffff" stroke="black" points="804.75,-1187.5 678.75,-1187.5 678.75,0 804.75,0 804.75,-1187.5"/>
<polygon fill="none" stroke="black" points="678.75,-1163.75 678.75,-1187.5 804.75,-1187.5 804.75,-1163.75 678.75,-1163.75"/>
<text text-anchor="start" x="733.5" y="-1170.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="678.75,-1140 678.75,-1163.75 710,-1163.75 710,-1140 678.75,-1140"/>
<text text-anchor="start" x="682.75" y="-1146.45" font-family="arial" font-size="14.00">F48</text>
<polygon fill="none" stroke="black" points="710,-1140 710,-1163.75 759.25,-1163.75 759.25,-1140 710,-1140"/>
<text text-anchor="start" x="714" y="-1146.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="759.25,-1140 759.25,-1163.75 804.75,-1163.75 804.75,-1140 759.25,-1140"/>
<text text-anchor="start" x="763.25" y="-1146.45" font-family="arial" font-size="14.00">48&#45;pin</text>
<polygon fill="none" stroke="black" points="678.75,-1116.25 678.75,-1140 804.75,-1140 804.75,-1116.25 678.75,-1116.25"/>
<text text-anchor="start" x="734.62" y="-1122.7" font-family="arial" font-size="14.00">z2</text>
<polygon fill="none" stroke="black" points="678.75,-1092.5 678.75,-1116.25 804.75,-1116.25 804.75,-1092.5 678.75,-1092.5"/>
<text text-anchor="start" x="734.25" y="-1098.95" font-family="arial" font-size="14.00">b2</text>
<polygon fill="none" stroke="black" points="678.75,-1068.75 678.75,-1092.5 804.75,-1092.5 804.75,-1068.75 678.75,-1068.75"/>
<text text-anchor="start" x="734.25" y="-1075.2" font-family="arial" font-size="14.00">d2</text>
<polygon fill="none" stroke="black" points="678.75,-1045 678.75,-1068.75 804.75,-1068.75 804.75,-1045 678.75,-1045"/>
<text text-anchor="start" x="734.62" y="-1051.45" font-family="arial" font-size="14.00">z4</text>
<polygon fill="none" stroke="black" points="678.75,-1021.25 678.75,-1045 804.75,-1045 804.75,-1021.25 678.75,-1021.25"/>
<text text-anchor="start" x="734.25" y="-1027.7" font-family="arial" font-size="14.00">b4</text>
<polygon fill="none" stroke="black" points="678.75,-997.5 678.75,-1021.25 804.75,-1021.25 804.75,-997.5 678.75,-997.5"/>
<text text-anchor="start" x="734.25" y="-1003.95" font-family="arial" font-size="14.00">d4</text>
<polygon fill="none" stroke="black" points="678.75,-973.75 678.75,-997.5 804.75,-997.5 804.75,-973.75 678.75,-973.75"/>
<text text-anchor="start" x="734.62" y="-980.2" font-family="arial" font-size="14.00">z6</text>
<polygon fill="none" stroke="black" points="678.75,-950 678.75,-973.75 804.75,-973.75 804.75,-950 678.75,-950"/>
<text text-anchor="start" x="734.25" y="-956.45" font-family="arial" font-size="14.00">b6</text>
<polygon fill="none" stroke="black" points="678.75,-926.25 678.75,-950 804.75,-950 804.75,-926.25 678.75,-926.25"/>
<text text-anchor="start" x="734.25" y="-932.7" font-family="arial" font-size="14.00">d6</text>
<polygon fill="none" stroke="black" points="678.75,-902.5 678.75,-926.25 804.75,-926.25 804.75,-902.5 678.75,-902.5"/>
<text text-anchor="start" x="734.62" y="-908.95" font-family="arial" font-size="14.00">z8</text>
<polygon fill="none" stroke="black" points="678.75,-878.75 678.75,-902.5 804.75,-902.5 804.75,-878.75 678.75,-878.75"/>
<text text-anchor="start" x="734.25" y="-885.2" font-family="arial" font-size="14.00">b8</text>
<polygon fill="none" stroke="black" points="678.75,-855 678.75,-878.75 804.75,-878.75 804.75,-855 678.75,-855"/>
<text text-anchor="start" x="734.25" y="-861.45" font-family="arial" font-size="14.00">d8</text>
<polygon fill="none" stroke="black" points="678.75,-831.25 678.75,-855 804.75,-855 804.75,-831.25 678.75,-831.25"/>
<text text-anchor="start" x="730.88" y="-837.7" font-family="arial" font-size="14.00">z10</text>
<polygon fill="none" stroke="black" points="678.75,-807.5 678.75,-831.25 804.75,-831.25 804.75,-807.5 678.75,-807.5"/>
<text text-anchor="start" x="730.5" y="-813.95" font-family="arial" font-size="14.00">b10</text>
<polygon fill="none" stroke="black" points="678.75,-783.75 678.75,-807.5 804.75,-807.5 804.75,-783.75 678.75,-783.75"/>
<text text-anchor="start" x="730.5" y="-790.2" font-family="arial" font-size="14.00">d10</text>
<polygon fill="none" stroke="black" points="678.75,-760 678.75,-783.75 804.75,-783.75 804.75,-760 678.75,-760"/>
<text text-anchor="start" x="730.88" y="-766.45" font-family="arial" font-size="14.00">z12</text>
<polygon fill="none" stroke="black" points="678.75,-736.25 678.75,-760 804.75,-760 804.75,-736.25 678.75,-736.25"/>
<text text-anchor="start" x="730.5" y="-742.7" font-family="arial" font-size="14.00">b12</text>
<polygon fill="none" stroke="black" points="678.75,-712.5 678.75,-736.25 804.75,-736.25 804.75,-712.5 678.75,-712.5"/>
<text text-anchor="start" x="730.5" y="-718.95" font-family="arial" font-size="14.00">d12</text>
<polygon fill="none" stroke="black" points="678.75,-688.75 678.75,-712.5 804.75,-712.5 804.75,-688.75 678.75,-688.75"/>
<text text-anchor="start" x="730.88" y="-695.2" font-family="arial" font-size="14.00">z14</text>
<polygon fill="none" stroke="black" points="678.75,-665 678.75,-688.75 804.75,-688.75 804.75,-665 678.75,-665"/>
<text text-anchor="start" x="730.5" y="-671.45" font-family="arial" font-size="14.00">b14</text>
<polygon fill="none" stroke="black" points="678.75,-641.25 678.75,-665 804.75,-665 804.75,-641.25 678.75,-641.25"/>
<text text-anchor="start" x="730.5" y="-647.7" font-family="arial" font-size="14.00">d14</text>
<polygon fill="none" stroke="black" points="678.75,-617.5 678.75,-641.25 804.75,-641.25 804.75,-617.5 678.75,-617.5"/>
<text text-anchor="start" x="730.88" y="-623.95" font-family="arial" font-size="14.00">z16</text>
<polygon fill="none" stroke="black" points="678.75,-593.75 678.75,-617.5 804.75,-617.5 804.75,-593.75 678.75,-593.75"/>
<text text-anchor="start" x="730.5" y="-600.2" font-family="arial" font-size="14.00">b16</text>
<polygon fill="none" stroke="black" points="678.75,-570 678.75,-593.75 804.75,-593.75 804.75,-570 678.75,-570"/>
<text text-anchor="start" x="730.5" y="-576.45" font-family="arial" font-size="14.00">d16</text>
<polygon fill="none" stroke="black" points="678.75,-546.25 678.75,-570 804.75,-570 804.75,-546.25 678.75,-546.25"/>
<text text-anchor="start" x="730.88" y="-552.7" font-family="arial" font-size="14.00">z18</text>
<polygon fill="none" stroke="black" points="678.75,-522.5 678.75,-546.25 804.75,-546.25 804.75,-522.5 678.75,-522.5"/>
<text text-anchor="start" x="730.5" y="-528.95" font-family="arial" font-size="14.00">b18</text>
<polygon fill="none" stroke="black" points="678.75,-498.75 678.75,-522.5 804.75,-522.5 804.75,-498.75 678.75,-498.75"/>
<text text-anchor="start" x="730.5" y="-505.2" font-family="arial" font-size="14.00">d18</text>
<polygon fill="none" stroke="black" points="678.75,-475 678.75,-498.75 804.75,-498.75 804.75,-475 678.75,-475"/>
<text text-anchor="start" x="730.88" y="-481.45" font-family="arial" font-size="14.00">z20</text>
<polygon fill="none" stroke="black" points="678.75,-451.25 678.75,-475 804.75,-475 804.75,-451.25 678.75,-451.25"/>
<text text-anchor="start" x="730.5" y="-457.7" font-family="arial" font-size="14.00">b20</text>
<polygon fill="none" stroke="black" points="678.75,-427.5 678.75,-451.25 804.75,-451.25 804.75,-427.5 678.75,-427.5"/>
<text text-anchor="start" x="730.5" y="-433.95" font-family="arial" font-size="14.00">d20</text>
<polygon fill="none" stroke="black" points="678.75,-403.75 678.75,-427.5 804.75,-427.5 804.75,-403.75 678.75,-403.75"/>
<text text-anchor="start" x="730.88" y="-410.2" font-family="arial" font-size="14.00">z22</text>
<polygon fill="none" stroke="black" points="678.75,-380 678.75,-403.75 804.75,-403.75 804.75,-380 678.75,-380"/>
<text text-anchor="start" x="730.5" y="-386.45" font-family="arial" font-size="14.00">b22</text>
<polygon fill="none" stroke="black" points="678.75,-356.25 678.75,-380 804.75,-380 804.75,-356.25 678.75,-356.25"/>
<text text-anchor="start" x="730.5" y="-362.7" font-family="arial" font-size="14.00">d22</text>
<polygon fill="none" stroke="black" points="678.75,-332.5 678.75,-356.25 804.75,-356.25 804.75,-332.5 678.75,-332.5"/>
<text text-anchor="start" x="730.88" y="-338.95" font-family="arial" font-size="14.00">z24</text>
<polygon fill="none" stroke="black" points="678.75,-308.75 678.75,-332.5 804.75,-332.5 804.75,-308.75 678.75,-308.75"/>
<text text-anchor="start" x="730.5" y="-315.2" font-family="arial" font-size="14.00">b24</text>
<polygon fill="none" stroke="black" points="678.75,-285 678.75,-308.75 804.75,-308.75 804.75,-285 678.75,-285"/>
<text text-anchor="start" x="730.5" y="-291.45" font-family="arial" font-size="14.00">d24</text>
<polygon fill="none" stroke="black" points="678.75,-261.25 678.75,-285 804.75,-285 804.75,-261.25 678.75,-261.25"/>
<text text-anchor="start" x="730.88" y="-267.7" font-family="arial" font-size="14.00">z26</text>
<polygon fill="none" stroke="black" points="678.75,-237.5 678.75,-261.25 804.75,-261.25 804.75,-237.5 678.75,-237.5"/>
<text text-anchor="start" x="730.5" y="-243.95" font-family="arial" font-size="14.00">b26</text>
<polygon fill="none" stroke="black" points="678.75,-213.75 678.75,-237.5 804.75,-237.5 804.75,-213.75 678.75,-213.75"/>
<text text-anchor="start" x="730.5" y="-220.2" font-family="arial" font-size="14.00">d26</text>
<polygon fill="none" stroke="black" points="678.75,-190 678.75,-213.75 804.75,-213.75 804.75,-190 678.75,-190"/>
<text text-anchor="start" x="730.88" y="-196.45" font-family="arial" font-size="14.00">z28</text>
<polygon fill="none" stroke="black" points="678.75,-166.25 678.75,-190 804.75,-190 804.75,-166.25 678.75,-166.25"/>
<text text-anchor="start" x="730.5" y="-172.7" font-family="arial" font-size="14.00">b28</text>
<polygon fill="none" stroke="black" points="678.75,-142.5 678.75,-166.25 804.75,-166.25 804.75,-142.5 678.75,-142.5"/>
<text text-anchor="start" x="730.5" y="-148.95" font-family="arial" font-size="14.00">d28</text>
<polygon fill="none" stroke="black" points="678.75,-118.75 678.75,-142.5 804.75,-142.5 804.75,-118.75 678.75,-118.75"/>
<text text-anchor="start" x="730.88" y="-125.2" font-family="arial" font-size="14.00">z30</text>
<polygon fill="none" stroke="black" points="678.75,-95 678.75,-118.75 804.75,-118.75 804.75,-95 678.75,-95"/>
<text text-anchor="start" x="730.5" y="-101.45" font-family="arial" font-size="14.00">b30</text>
<polygon fill="none" stroke="black" points="678.75,-71.25 678.75,-95 804.75,-95 804.75,-71.25 678.75,-71.25"/>
<text text-anchor="start" x="730.5" y="-77.7" font-family="arial" font-size="14.00">d30</text>
<polygon fill="none" stroke="black" points="678.75,-47.5 678.75,-71.25 804.75,-71.25 804.75,-47.5 678.75,-47.5"/>
<text text-anchor="start" x="730.88" y="-53.95" font-family="arial" font-size="14.00">z32</text>
<polygon fill="none" stroke="black" points="678.75,-23.75 678.75,-47.5 804.75,-47.5 804.75,-23.75 678.75,-23.75"/>
<text text-anchor="start" x="730.5" y="-30.2" font-family="arial" font-size="14.00">b32</text>
<polygon fill="none" stroke="black" points="678.75,0 678.75,-23.75 804.75,-23.75 804.75,0 678.75,0"/>
<text text-anchor="start" x="730.5" y="-6.45" font-family="arial" font-size="14.00">d32</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-678C701.87,-683.79 553.28,-979.79 696,-974"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-680C700.08,-682.9 551.49,-978.9 696,-976"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-682C698.3,-682 549.7,-978 696,-978"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-684C696.51,-681.1 547.92,-977.1 696,-980"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-686C694.72,-680.21 546.13,-976.21 696,-982"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-696.75C689.82,-702.58 530.79,-1011.58 678.75,-1005.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M534.75,-698.75C688.04,-701.67 529.01,-1010.67 678.75,-1007.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M534.75,-700.75C686.26,-700.75 527.24,-1009.75 678.75,-1009.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M534.75,-702.75C684.49,-699.83 525.46,-1008.83 678.75,-1011.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-704.75C682.71,-698.92 523.68,-1007.92 678.75,-1013.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-707C736.91,-712.99 518.03,-1094.99 696,-1089"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-709C735.18,-711.99 516.3,-1093.99 696,-1091"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-711C733.44,-711 514.56,-1093 696,-1093"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-713C731.7,-710.01 512.82,-1092.01 696,-1095"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-715C729.97,-709.01 511.09,-1091.01 696,-1097"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-725.75C726.32,-731.77 494.09,-1129.77 678.75,-1123.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M534.75,-727.75C724.59,-730.76 492.37,-1128.76 678.75,-1125.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M534.75,-729.75C722.86,-729.75 490.64,-1127.75 678.75,-1127.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M534.75,-731.75C721.13,-728.74 488.91,-1126.74 678.75,-1129.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-733.75C719.41,-727.73 487.18,-1125.73 678.75,-1131.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-620C647.32,-625.02 608.41,-772.02 696,-767"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-622C645.39,-624.51 606.48,-771.51 696,-769"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-624C643.46,-624 604.54,-771 696,-771"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-626C641.52,-623.49 602.61,-770.49 696,-773"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-628C639.59,-622.98 600.68,-769.98 696,-775"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-638.75C631.98,-643.83 589.22,-796.83 678.75,-791.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M534.75,-640.75C630.06,-643.29 587.3,-796.29 678.75,-793.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M534.75,-642.75C628.13,-642.75 585.37,-795.75 678.75,-795.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M534.75,-644.75C626.2,-642.21 583.44,-795.21 678.75,-797.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-646.75C624.28,-641.67 581.52,-794.67 678.75,-799.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-649C677.42,-654.57 577.94,-887.57 696,-882"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-651C675.58,-653.79 576.1,-886.79 696,-884"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-653C673.74,-653 574.26,-886 696,-886"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-655C671.9,-652.21 572.42,-885.21 696,-888"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-657C670.06,-651.43 570.58,-884.43 696,-890"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-667.75C663.95,-673.36 556.87,-916.36 678.75,-910.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M534.75,-669.75C662.12,-672.56 555.04,-915.56 678.75,-912.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M534.75,-671.75C660.29,-671.75 553.21,-914.75 678.75,-914.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M534.75,-673.75C658.46,-670.94 551.38,-913.94 678.75,-916.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-675.75C656.63,-670.14 549.55,-913.14 678.75,-918.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-562C615.28,-562.07 631.25,-559.07 696,-559"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-564C615.64,-564.03 631.62,-561.03 696,-561"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-566C616.01,-566 631.99,-563 696,-563"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-568C616.38,-567.97 632.36,-564.97 696,-565"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-570C616.75,-569.93 632.72,-566.93 696,-567"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-580.75C598.03,-580.82 614,-577.82 678.75,-577.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-582.75C598.39,-582.78 614.37,-579.78 678.75,-579.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-584.75C598.76,-584.75 614.74,-581.75 678.75,-581.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-586.75C599.13,-586.72 615.11,-583.72 678.75,-583.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-588.75C599.5,-588.68 615.47,-585.68 678.75,-585.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-591C630.09,-595.2 625.9,-679.2 696,-675"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-593C628.09,-595.1 623.9,-679.1 696,-677"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-595C626.09,-595 621.91,-679 696,-679"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-597C624.1,-594.9 619.91,-678.9 696,-681"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-599C622.1,-594.8 617.91,-678.8 696,-683"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-609.75C613.52,-614 607.97,-701 678.75,-696.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-611.75C611.52,-613.88 605.97,-700.88 678.75,-698.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-613.75C609.52,-613.75 603.98,-700.75 678.75,-700.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-615.75C607.53,-613.62 601.98,-700.62 678.75,-702.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-617.75C605.53,-613.5 599.98,-700.5 678.75,-704.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-504C621.87,-508.18 618.13,-425.18 696,-421"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-506C623.87,-508.09 620.13,-425.09 696,-423"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-508C625.87,-508 622.13,-425 696,-425"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-510C627.87,-507.91 624.13,-424.91 696,-427"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-512C629.87,-507.82 626.13,-424.82 696,-429"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-522.75C605.53,-527 599.98,-440 678.75,-435.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-524.75C607.53,-526.88 601.98,-439.88 678.75,-437.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-526.75C609.52,-526.75 603.98,-439.75 678.75,-439.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-528.75C611.52,-526.62 605.97,-439.62 678.75,-441.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-530.75C613.52,-526.5 607.97,-439.5 678.75,-443.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-533C616.75,-533.07 632.72,-536.07 696,-536"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-535C616.38,-535.03 632.36,-538.03 696,-538"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-537C616.01,-537 631.99,-540 696,-540"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-539C615.64,-538.97 631.62,-541.97 696,-542"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-541C615.28,-540.93 631.25,-543.93 696,-544"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-551.75C599.25,-551.78 615.24,-553.78 678.75,-553.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-553.75C599,-553.77 614.99,-555.77 678.75,-555.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-555.75C598.76,-555.75 614.74,-557.75 678.75,-557.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-557.75C598.51,-557.73 614.5,-559.73 678.75,-559.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-559.75C598.26,-559.72 614.25,-561.72 678.75,-561.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge18" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-446C669.68,-451.57 570.96,-219.57 696,-214"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-448C671.52,-450.78 572.8,-218.78 696,-216"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-450C673.36,-450 574.64,-218 696,-218"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-452C675.2,-449.22 576.48,-217.22 696,-220"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-454C677.04,-448.43 578.32,-216.43 696,-222"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-464.75C656.63,-470.36 549.55,-227.36 678.75,-221.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M534.75,-466.75C658.46,-469.56 551.38,-226.56 678.75,-223.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M534.75,-468.75C660.29,-468.75 553.21,-225.75 678.75,-225.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M534.75,-470.75C662.12,-467.94 555.04,-224.94 678.75,-227.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-472.75C663.95,-467.14 556.87,-224.14 678.75,-229.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge20" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-475C639.27,-480.01 600.99,-334.01 696,-329"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-477C641.21,-479.51 602.93,-333.51 696,-331"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-479C643.14,-479 604.86,-333 696,-333"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-481C645.07,-478.49 606.79,-332.49 696,-335"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-483C647.01,-477.99 608.73,-331.99 696,-337"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-493.75C624.28,-498.83 581.52,-345.83 678.75,-340.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-495.75C626.2,-498.29 583.44,-345.29 678.75,-342.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-497.75C628.13,-497.75 585.37,-344.75 678.75,-344.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-499.75C630.06,-497.21 587.3,-344.21 678.75,-346.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-501.75C631.98,-496.67 589.22,-343.67 678.75,-348.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge22" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-388C729.55,-393.99 511.5,-12.99 696,-7"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-390C731.29,-392.99 513.24,-11.99 696,-9"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-392C733.02,-392 514.98,-11 696,-11"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-394C734.76,-391.01 516.71,-10.01 696,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-396C736.5,-390.01 518.45,-9.01 696,-15"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-406.75C719.82,-412.77 486.77,-13.77 678.75,-7.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-408.75C721.55,-411.76 488.49,-12.76 678.75,-9.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-410.75C723.28,-410.75 490.22,-11.75 678.75,-11.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-412.75C725.01,-409.74 491.95,-10.74 678.75,-13.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-414.75C726.73,-408.73 493.68,-9.73 678.75,-15.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge24" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-417C694.32,-422.79 546.53,-127.79 696,-122"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-419C696.11,-421.9 548.31,-126.9 696,-124"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-421C697.9,-421 550.1,-126 696,-126"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-423C699.69,-420.1 551.89,-125.1 696,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-425C701.47,-419.21 553.68,-124.21 696,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-435.75C682.71,-441.58 523.68,-132.58 678.75,-126.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-437.75C684.49,-440.67 525.46,-131.67 678.75,-128.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-439.75C686.26,-439.75 527.24,-130.75 678.75,-130.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-441.75C688.04,-438.83 529.01,-129.83 678.75,-132.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-443.75C689.82,-437.92 530.79,-128.92 678.75,-134.75"/>
</g>
</g>
</svg>

BIN
examples/ex09.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 272 KiB

810
examples/ex09.svg generated
View File

@ -1,524 +1,524 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="835pt" height="1158pt"
viewBox="0.00 0.00 835.00 1158.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1154)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1154 831,-1154 831,4 -4,4"/>
<svg width="813pt" height="1196pt"
viewBox="0.00 0.00 812.75 1195.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1191.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-1191.5 808.75,-1191.5 808.75,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="134,-732.5 0,-732.5 0,-387.5 134,-387.5 134,-732.5"/>
<polygon fill="none" stroke="black" points="0,-709 0,-732 134,-732 134,-709 0,-709"/>
<text text-anchor="start" x="58" y="-716.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-686 0,-709 48,-709 48,-686 0,-686"/>
<text text-anchor="start" x="4" y="-693.8" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48,-686 48,-709 87,-709 87,-686 48,-686"/>
<text text-anchor="start" x="52" y="-693.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="87,-686 87,-709 134,-709 134,-686 87,-686"/>
<text text-anchor="start" x="91" y="-693.8" font-family="arial" font-size="14.00">25&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-663 0,-686 100,-686 100,-663 0,-663"/>
<text text-anchor="start" x="9.5" y="-670.8" font-family="arial" font-size="14.00">SENSE_P_1</text>
<polygon fill="none" stroke="black" points="100,-663 100,-686 134,-686 134,-663 100,-663"/>
<text text-anchor="start" x="113" y="-670.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-640 0,-663 100,-663 100,-640 0,-640"/>
<text text-anchor="start" x="9.5" y="-647.8" font-family="arial" font-size="14.00">SENSE_N_1</text>
<polygon fill="none" stroke="black" points="100,-640 100,-663 134,-663 134,-640 100,-640"/>
<text text-anchor="start" x="109" y="-647.8" font-family="arial" font-size="14.00">14</text>
<polygon fill="none" stroke="black" points="0,-617 0,-640 100,-640 100,-617 0,-617"/>
<text text-anchor="start" x="9.5" y="-624.8" font-family="arial" font-size="14.00">SENSE_P_2</text>
<polygon fill="none" stroke="black" points="100,-617 100,-640 134,-640 134,-617 100,-617"/>
<text text-anchor="start" x="113" y="-624.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-594 0,-617 100,-617 100,-594 0,-594"/>
<text text-anchor="start" x="9.5" y="-601.8" font-family="arial" font-size="14.00">SENSE_N_2</text>
<polygon fill="none" stroke="black" points="100,-594 100,-617 134,-617 134,-594 100,-594"/>
<text text-anchor="start" x="109" y="-601.8" font-family="arial" font-size="14.00">16</text>
<polygon fill="none" stroke="black" points="0,-571 0,-594 100,-594 100,-571 0,-571"/>
<text text-anchor="start" x="9.5" y="-578.8" font-family="arial" font-size="14.00">SENSE_P_3</text>
<polygon fill="none" stroke="black" points="100,-571 100,-594 134,-594 134,-571 100,-571"/>
<text text-anchor="start" x="113" y="-578.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-548 0,-571 100,-571 100,-548 0,-548"/>
<text text-anchor="start" x="9.5" y="-555.8" font-family="arial" font-size="14.00">SENSE_N_3</text>
<polygon fill="none" stroke="black" points="100,-548 100,-571 134,-571 134,-548 100,-548"/>
<text text-anchor="start" x="109" y="-555.8" font-family="arial" font-size="14.00">18</text>
<polygon fill="none" stroke="black" points="0,-525 0,-548 100,-548 100,-525 0,-525"/>
<text text-anchor="start" x="9.5" y="-532.8" font-family="arial" font-size="14.00">SENSE_P_4</text>
<polygon fill="none" stroke="black" points="100,-525 100,-548 134,-548 134,-525 100,-525"/>
<text text-anchor="start" x="113" y="-532.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-502 0,-525 100,-525 100,-502 0,-502"/>
<text text-anchor="start" x="9.5" y="-509.8" font-family="arial" font-size="14.00">SENSE_N_4</text>
<polygon fill="none" stroke="black" points="100,-502 100,-525 134,-525 134,-502 100,-502"/>
<text text-anchor="start" x="109" y="-509.8" font-family="arial" font-size="14.00">20</text>
<polygon fill="none" stroke="black" points="0,-479 0,-502 100,-502 100,-479 0,-479"/>
<text text-anchor="start" x="9.5" y="-486.8" font-family="arial" font-size="14.00">SENSE_P_5</text>
<polygon fill="none" stroke="black" points="100,-479 100,-502 134,-502 134,-479 100,-479"/>
<text text-anchor="start" x="113" y="-486.8" font-family="arial" font-size="14.00">9</text>
<polygon fill="none" stroke="black" points="0,-456 0,-479 100,-479 100,-456 0,-456"/>
<text text-anchor="start" x="9.5" y="-463.8" font-family="arial" font-size="14.00">SENSE_N_5</text>
<polygon fill="none" stroke="black" points="100,-456 100,-479 134,-479 134,-456 100,-456"/>
<text text-anchor="start" x="109" y="-463.8" font-family="arial" font-size="14.00">22</text>
<polygon fill="none" stroke="black" points="0,-433 0,-456 100,-456 100,-433 0,-433"/>
<text text-anchor="start" x="9.5" y="-440.8" font-family="arial" font-size="14.00">SENSE_P_6</text>
<polygon fill="none" stroke="black" points="100,-433 100,-456 134,-456 134,-433 100,-433"/>
<text text-anchor="start" x="109.5" y="-440.8" font-family="arial" font-size="14.00">11</text>
<polygon fill="none" stroke="black" points="0,-410 0,-433 100,-433 100,-410 0,-410"/>
<text text-anchor="start" x="9.5" y="-417.8" font-family="arial" font-size="14.00">SENSE_N_6</text>
<polygon fill="none" stroke="black" points="100,-410 100,-433 134,-433 134,-410 100,-410"/>
<text text-anchor="start" x="109" y="-417.8" font-family="arial" font-size="14.00">24</text>
<polygon fill="none" stroke="black" points="0,-387 0,-410 100,-410 100,-387 0,-387"/>
<text text-anchor="start" x="34" y="-394.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100,-387 100,-410 134,-410 134,-387 100,-387"/>
<text text-anchor="start" x="109" y="-394.8" font-family="arial" font-size="14.00">13</text>
<polygon fill="#ffffff" stroke="black" points="129.75,-752 0,-752 0,-405.5 129.75,-405.5 129.75,-752"/>
<polygon fill="none" stroke="black" points="0,-728.25 0,-752 129.75,-752 129.75,-728.25 0,-728.25"/>
<text text-anchor="start" x="56.62" y="-734.7" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-704.5 0,-728.25 46.25,-728.25 46.25,-704.5 0,-704.5"/>
<text text-anchor="start" x="4" y="-710.95" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="46.25,-704.5 46.25,-728.25 84.25,-728.25 84.25,-704.5 46.25,-704.5"/>
<text text-anchor="start" x="50.25" y="-710.95" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="84.25,-704.5 84.25,-728.25 129.75,-728.25 129.75,-704.5 84.25,-704.5"/>
<text text-anchor="start" x="88.25" y="-710.95" font-family="arial" font-size="14.00">25&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-681.5 0,-704.5 96.38,-704.5 96.38,-681.5 0,-681.5"/>
<text text-anchor="start" x="9.56" y="-687.2" font-family="arial" font-size="14.00">SENSE_P_1</text>
<polygon fill="none" stroke="black" points="96.38,-681.5 96.38,-704.5 129.75,-704.5 129.75,-681.5 96.38,-681.5"/>
<text text-anchor="start" x="109.31" y="-687.2" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-658.5 0,-681.5 96.38,-681.5 96.38,-658.5 0,-658.5"/>
<text text-anchor="start" x="9.19" y="-664.2" font-family="arial" font-size="14.00">SENSE_N_1</text>
<polygon fill="none" stroke="black" points="96.38,-658.5 96.38,-681.5 129.75,-681.5 129.75,-658.5 96.38,-658.5"/>
<text text-anchor="start" x="105.56" y="-664.2" font-family="arial" font-size="14.00">14</text>
<polygon fill="none" stroke="black" points="0,-635.5 0,-658.5 96.38,-658.5 96.38,-635.5 0,-635.5"/>
<text text-anchor="start" x="9.56" y="-641.2" font-family="arial" font-size="14.00">SENSE_P_2</text>
<polygon fill="none" stroke="black" points="96.38,-635.5 96.38,-658.5 129.75,-658.5 129.75,-635.5 96.38,-635.5"/>
<text text-anchor="start" x="109.31" y="-641.2" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-612.5 0,-635.5 96.38,-635.5 96.38,-612.5 0,-612.5"/>
<text text-anchor="start" x="9.19" y="-618.2" font-family="arial" font-size="14.00">SENSE_N_2</text>
<polygon fill="none" stroke="black" points="96.38,-612.5 96.38,-635.5 129.75,-635.5 129.75,-612.5 96.38,-612.5"/>
<text text-anchor="start" x="105.56" y="-618.2" font-family="arial" font-size="14.00">16</text>
<polygon fill="none" stroke="black" points="0,-589.5 0,-612.5 96.38,-612.5 96.38,-589.5 0,-589.5"/>
<text text-anchor="start" x="9.56" y="-595.2" font-family="arial" font-size="14.00">SENSE_P_3</text>
<polygon fill="none" stroke="black" points="96.38,-589.5 96.38,-612.5 129.75,-612.5 129.75,-589.5 96.38,-589.5"/>
<text text-anchor="start" x="109.31" y="-595.2" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-566.5 0,-589.5 96.38,-589.5 96.38,-566.5 0,-566.5"/>
<text text-anchor="start" x="9.19" y="-572.2" font-family="arial" font-size="14.00">SENSE_N_3</text>
<polygon fill="none" stroke="black" points="96.38,-566.5 96.38,-589.5 129.75,-589.5 129.75,-566.5 96.38,-566.5"/>
<text text-anchor="start" x="105.56" y="-572.2" font-family="arial" font-size="14.00">18</text>
<polygon fill="none" stroke="black" points="0,-543.5 0,-566.5 96.38,-566.5 96.38,-543.5 0,-543.5"/>
<text text-anchor="start" x="9.56" y="-549.2" font-family="arial" font-size="14.00">SENSE_P_4</text>
<polygon fill="none" stroke="black" points="96.38,-543.5 96.38,-566.5 129.75,-566.5 129.75,-543.5 96.38,-543.5"/>
<text text-anchor="start" x="109.31" y="-549.2" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-520.5 0,-543.5 96.38,-543.5 96.38,-520.5 0,-520.5"/>
<text text-anchor="start" x="9.19" y="-526.2" font-family="arial" font-size="14.00">SENSE_N_4</text>
<polygon fill="none" stroke="black" points="96.38,-520.5 96.38,-543.5 129.75,-543.5 129.75,-520.5 96.38,-520.5"/>
<text text-anchor="start" x="105.56" y="-526.2" font-family="arial" font-size="14.00">20</text>
<polygon fill="none" stroke="black" points="0,-497.5 0,-520.5 96.38,-520.5 96.38,-497.5 0,-497.5"/>
<text text-anchor="start" x="9.56" y="-503.2" font-family="arial" font-size="14.00">SENSE_P_5</text>
<polygon fill="none" stroke="black" points="96.38,-497.5 96.38,-520.5 129.75,-520.5 129.75,-497.5 96.38,-497.5"/>
<text text-anchor="start" x="109.31" y="-503.2" font-family="arial" font-size="14.00">9</text>
<polygon fill="none" stroke="black" points="0,-474.5 0,-497.5 96.38,-497.5 96.38,-474.5 0,-474.5"/>
<text text-anchor="start" x="9.19" y="-480.2" font-family="arial" font-size="14.00">SENSE_N_5</text>
<polygon fill="none" stroke="black" points="96.38,-474.5 96.38,-497.5 129.75,-497.5 129.75,-474.5 96.38,-474.5"/>
<text text-anchor="start" x="105.56" y="-480.2" font-family="arial" font-size="14.00">22</text>
<polygon fill="none" stroke="black" points="0,-451.5 0,-474.5 96.38,-474.5 96.38,-451.5 0,-451.5"/>
<text text-anchor="start" x="9.56" y="-457.2" font-family="arial" font-size="14.00">SENSE_P_6</text>
<polygon fill="none" stroke="black" points="96.38,-451.5 96.38,-474.5 129.75,-474.5 129.75,-451.5 96.38,-451.5"/>
<text text-anchor="start" x="105.94" y="-457.2" font-family="arial" font-size="14.00">11</text>
<polygon fill="none" stroke="black" points="0,-428.5 0,-451.5 96.38,-451.5 96.38,-428.5 0,-428.5"/>
<text text-anchor="start" x="9.19" y="-434.2" font-family="arial" font-size="14.00">SENSE_N_6</text>
<polygon fill="none" stroke="black" points="96.38,-428.5 96.38,-451.5 129.75,-451.5 129.75,-428.5 96.38,-428.5"/>
<text text-anchor="start" x="105.56" y="-434.2" font-family="arial" font-size="14.00">24</text>
<polygon fill="none" stroke="black" points="0,-405.5 0,-428.5 96.38,-428.5 96.38,-405.5 0,-405.5"/>
<text text-anchor="start" x="32.81" y="-411.2" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="96.38,-405.5 96.38,-428.5 129.75,-428.5 129.75,-405.5 96.38,-405.5"/>
<text text-anchor="start" x="105.56" y="-411.2" font-family="arial" font-size="14.00">13</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="552,-800 278,-800 278,-328 552,-328 552,-800"/>
<polygon fill="none" stroke="black" points="278,-777 278,-800 552,-800 552,-777 278,-777"/>
<text text-anchor="start" x="404.5" y="-784.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="278,-754 278,-777 335,-777 335,-754 278,-754"/>
<text text-anchor="start" x="295" y="-761.8" font-family="arial" font-size="14.00">12x</text>
<polygon fill="none" stroke="black" points="335,-754 335,-777 428,-777 428,-754 335,-754"/>
<text text-anchor="start" x="351.5" y="-761.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="428,-754 428,-777 483,-777 483,-754 428,-754"/>
<text text-anchor="start" x="444.5" y="-761.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="483,-754 483,-777 552,-777 552,-754 483,-754"/>
<text text-anchor="start" x="499.5" y="-761.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="339" y="-740.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="280" y="-721.8" font-family="arial" font-size="14.00">X1:14:SENSE_N_1</text>
<text text-anchor="start" x="418" y="-721.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="509.5" y="-721.8" font-family="arial" font-size="14.00">X2:z2</text>
<polygon fill="#000000" stroke="transparent" points="278,-714 278,-716 552,-716 552,-714 278,-714"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-712 278,-714 552,-714 552,-712 278,-712"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-710 278,-712 552,-712 552,-710 278,-710"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-708 278,-710 552,-710 552,-708 278,-708"/>
<polygon fill="#000000" stroke="transparent" points="278,-706 278,-708 552,-708 552,-706 278,-706"/>
<text text-anchor="start" x="284.5" y="-692.8" font-family="arial" font-size="14.00">X1:1:SENSE_P_1</text>
<text text-anchor="start" x="420" y="-692.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="509" y="-692.8" font-family="arial" font-size="14.00">X2:d4</text>
<polygon fill="#000000" stroke="transparent" points="278,-685 278,-687 552,-687 552,-685 278,-685"/>
<polygon fill="#895956" stroke="transparent" points="278,-683 278,-685 552,-685 552,-683 278,-683"/>
<polygon fill="#895956" stroke="transparent" points="278,-681 278,-683 552,-683 552,-681 278,-681"/>
<polygon fill="#895956" stroke="transparent" points="278,-679 278,-681 552,-681 552,-679 278,-679"/>
<polygon fill="#000000" stroke="transparent" points="278,-677 278,-679 552,-679 552,-677 278,-677"/>
<text text-anchor="start" x="280" y="-663.8" font-family="arial" font-size="14.00">X1:16:SENSE_N_2</text>
<text text-anchor="start" x="419.5" y="-663.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="509.5" y="-663.8" font-family="arial" font-size="14.00">X2:z8</text>
<polygon fill="#000000" stroke="transparent" points="278,-656 278,-658 552,-658 552,-656 278,-656"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-654 278,-656 552,-656 552,-654 278,-654"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-652 278,-654 552,-654 552,-652 278,-652"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-650 278,-652 552,-652 552,-650 278,-650"/>
<polygon fill="#000000" stroke="transparent" points="278,-648 278,-650 552,-650 552,-648 278,-648"/>
<text text-anchor="start" x="284.5" y="-634.8" font-family="arial" font-size="14.00">X1:3:SENSE_P_2</text>
<text text-anchor="start" x="420.5" y="-634.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-634.8" font-family="arial" font-size="14.00">X2:d10</text>
<polygon fill="#000000" stroke="transparent" points="278,-627 278,-629 552,-629 552,-627 278,-627"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-625 278,-627 552,-627 552,-625 278,-625"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-623 278,-625 552,-625 552,-623 278,-623"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-621 278,-623 552,-623 552,-621 278,-621"/>
<polygon fill="#000000" stroke="transparent" points="278,-619 278,-621 552,-621 552,-619 278,-619"/>
<text text-anchor="start" x="280" y="-605.8" font-family="arial" font-size="14.00">X1:18:SENSE_N_3</text>
<text text-anchor="start" x="420" y="-605.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:GY &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-605.8" font-family="arial" font-size="14.00">X2:z14</text>
<polygon fill="#000000" stroke="transparent" points="278,-598 278,-600 552,-600 552,-598 278,-598"/>
<polygon fill="#999999" stroke="transparent" points="278,-596 278,-598 552,-598 552,-596 278,-596"/>
<polygon fill="#999999" stroke="transparent" points="278,-594 278,-596 552,-596 552,-594 278,-594"/>
<polygon fill="#999999" stroke="transparent" points="278,-592 278,-594 552,-594 552,-592 278,-592"/>
<polygon fill="#000000" stroke="transparent" points="278,-590 278,-592 552,-592 552,-590 278,-590"/>
<text text-anchor="start" x="284.5" y="-576.8" font-family="arial" font-size="14.00">X1:5:SENSE_P_3</text>
<text text-anchor="start" x="420.5" y="-576.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-576.8" font-family="arial" font-size="14.00">X2:d16</text>
<polygon fill="#000000" stroke="transparent" points="278,-569 278,-571 552,-571 552,-569 278,-569"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-567 278,-569 552,-569 552,-567 278,-567"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-565 278,-567 552,-567 552,-565 278,-565"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-563 278,-565 552,-565 552,-563 278,-563"/>
<polygon fill="#000000" stroke="transparent" points="278,-561 278,-563 552,-563 552,-561 278,-561"/>
<text text-anchor="start" x="280" y="-547.8" font-family="arial" font-size="14.00">X1:20:SENSE_N_4</text>
<text text-anchor="start" x="420" y="-547.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-547.8" font-family="arial" font-size="14.00">X2:z18</text>
<polygon fill="#000000" stroke="transparent" points="278,-540 278,-542 552,-542 552,-540 278,-540"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-538 278,-540 552,-540 552,-538 278,-538"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-536 278,-538 552,-538 552,-536 278,-536"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-534 278,-536 552,-536 552,-534 278,-534"/>
<polygon fill="#000000" stroke="transparent" points="278,-532 278,-534 552,-534 552,-532 278,-532"/>
<text text-anchor="start" x="284.5" y="-518.8" font-family="arial" font-size="14.00">X1:7:SENSE_P_4</text>
<text text-anchor="start" x="420" y="-518.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-518.8" font-family="arial" font-size="14.00">X2:d20</text>
<polygon fill="#000000" stroke="transparent" points="278,-511 278,-513 552,-513 552,-511 278,-511"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-509 278,-511 552,-511 552,-509 278,-509"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-507 278,-509 552,-509 552,-507 278,-507"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-505 278,-507 552,-507 552,-505 278,-505"/>
<polygon fill="#000000" stroke="transparent" points="278,-503 278,-505 552,-505 552,-503 278,-503"/>
<text text-anchor="start" x="280" y="-489.8" font-family="arial" font-size="14.00">X1:22:SENSE_N_5</text>
<text text-anchor="start" x="420.5" y="-489.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;9:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-489.8" font-family="arial" font-size="14.00">X2:z24</text>
<polygon fill="#000000" stroke="transparent" points="278,-482 278,-484 552,-484 552,-482 278,-482"/>
<polygon fill="#000000" stroke="transparent" points="278,-480 278,-482 552,-482 552,-480 278,-480"/>
<polygon fill="#000000" stroke="transparent" points="278,-478 278,-480 552,-480 552,-478 278,-478"/>
<polygon fill="#000000" stroke="transparent" points="278,-476 278,-478 552,-478 552,-476 278,-476"/>
<polygon fill="#000000" stroke="transparent" points="278,-474 278,-476 552,-476 552,-474 278,-474"/>
<text text-anchor="start" x="284.5" y="-460.8" font-family="arial" font-size="14.00">X1:9:SENSE_P_5</text>
<text text-anchor="start" x="417" y="-460.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;10:VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-460.8" font-family="arial" font-size="14.00">X2:d26</text>
<polygon fill="#000000" stroke="transparent" points="278,-453 278,-455 552,-455 552,-453 278,-453"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-451 278,-453 552,-453 552,-451 278,-451"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-449 278,-451 552,-451 552,-449 278,-449"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-447 278,-449 552,-449 552,-447 278,-447"/>
<polygon fill="#000000" stroke="transparent" points="278,-445 278,-447 552,-447 552,-445 278,-445"/>
<text text-anchor="start" x="280" y="-431.8" font-family="arial" font-size="14.00">X1:24:SENSE_N_6</text>
<text text-anchor="start" x="407" y="-431.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;11:GYPK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-431.8" font-family="arial" font-size="14.00">X2:z30</text>
<polygon fill="#000000" stroke="transparent" points="278,-424 278,-426 552,-426 552,-424 278,-424"/>
<polygon fill="#999999" stroke="transparent" points="278,-422 278,-424 552,-424 552,-422 278,-422"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-420 278,-422 552,-422 552,-420 278,-420"/>
<polygon fill="#999999" stroke="transparent" points="278,-418 278,-420 552,-420 552,-418 278,-418"/>
<polygon fill="#000000" stroke="transparent" points="278,-416 278,-418 552,-418 552,-416 278,-416"/>
<text text-anchor="start" x="281" y="-402.8" font-family="arial" font-size="14.00">X1:11:SENSE_P_6</text>
<text text-anchor="start" x="406" y="-402.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;12:RDBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-402.8" font-family="arial" font-size="14.00">X2:d32</text>
<polygon fill="#000000" stroke="transparent" points="278,-395 278,-397 552,-397 552,-395 278,-395"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-393 278,-395 552,-395 552,-393 278,-393"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-391 278,-393 552,-393 552,-391 278,-391"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-389 278,-391 552,-391 552,-389 278,-389"/>
<polygon fill="#000000" stroke="transparent" points="278,-387 278,-389 552,-389 552,-387 278,-387"/>
<text text-anchor="start" x="339" y="-373.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="305" y="-354.8" font-family="arial" font-size="14.00">X1:13:GND</text>
<text text-anchor="start" x="434" y="-354.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="278,-347 278,-349 552,-349 552,-347 278,-347"/>
<text text-anchor="start" x="339" y="-333.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="534.75,-820.5 273.75,-820.5 273.75,-347 534.75,-347 534.75,-820.5"/>
<polygon fill="none" stroke="black" points="273.75,-796.75 273.75,-820.5 534.75,-820.5 534.75,-796.75 273.75,-796.75"/>
<text text-anchor="start" x="393.75" y="-803.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="273.75,-773 273.75,-796.75 326.81,-796.75 326.81,-773 273.75,-773"/>
<text text-anchor="start" x="289.41" y="-779.45" font-family="arial" font-size="14.00">12x</text>
<polygon fill="none" stroke="black" points="326.81,-773 326.81,-796.75 416.62,-796.75 416.62,-773 326.81,-773"/>
<text text-anchor="start" x="342.47" y="-779.45" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="416.62,-773 416.62,-796.75 468.94,-796.75 468.94,-773 416.62,-773"/>
<text text-anchor="start" x="432.28" y="-779.45" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="468.94,-773 468.94,-796.75 534.75,-796.75 534.75,-773 468.94,-773"/>
<text text-anchor="start" x="484.59" y="-779.45" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="332.38" y="-757.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="275.75" y="-738.7" font-family="arial" font-size="14.00">X1:14:SENSE_N_1</text>
<text text-anchor="start" x="407.62" y="-738.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="494.5" y="-738.7" font-family="arial" font-size="14.00">X2:z2</text>
<polygon fill="#000000" stroke="none" points="273.75,-733 273.75,-735 534.75,-735 534.75,-733 273.75,-733"/>
<polygon fill="#ffffff" stroke="none" points="273.75,-731 273.75,-733 534.75,-733 534.75,-731 273.75,-731"/>
<polygon fill="#ffffff" stroke="none" points="273.75,-729 273.75,-731 534.75,-731 534.75,-729 273.75,-729"/>
<polygon fill="#ffffff" stroke="none" points="273.75,-727 273.75,-729 534.75,-729 534.75,-727 273.75,-727"/>
<polygon fill="#000000" stroke="none" points="273.75,-725 273.75,-727 534.75,-727 534.75,-725 273.75,-725"/>
<text text-anchor="start" x="279.88" y="-709.7" font-family="arial" font-size="14.00">X1:1:SENSE_P_1</text>
<text text-anchor="start" x="409.88" y="-709.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="494.12" y="-709.7" font-family="arial" font-size="14.00">X2:d4</text>
<polygon fill="#000000" stroke="none" points="273.75,-704 273.75,-706 534.75,-706 534.75,-704 273.75,-704"/>
<polygon fill="#895956" stroke="none" points="273.75,-702 273.75,-704 534.75,-704 534.75,-702 273.75,-702"/>
<polygon fill="#895956" stroke="none" points="273.75,-700 273.75,-702 534.75,-702 534.75,-700 273.75,-700"/>
<polygon fill="#895956" stroke="none" points="273.75,-698 273.75,-700 534.75,-700 534.75,-698 273.75,-698"/>
<polygon fill="#000000" stroke="none" points="273.75,-696 273.75,-698 534.75,-698 534.75,-696 273.75,-696"/>
<text text-anchor="start" x="275.75" y="-680.7" font-family="arial" font-size="14.00">X1:16:SENSE_N_2</text>
<text text-anchor="start" x="408.75" y="-680.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="494.5" y="-680.7" font-family="arial" font-size="14.00">X2:z8</text>
<polygon fill="#000000" stroke="none" points="273.75,-675 273.75,-677 534.75,-677 534.75,-675 273.75,-675"/>
<polygon fill="#00ff00" stroke="none" points="273.75,-673 273.75,-675 534.75,-675 534.75,-673 273.75,-673"/>
<polygon fill="#00ff00" stroke="none" points="273.75,-671 273.75,-673 534.75,-673 534.75,-671 273.75,-671"/>
<polygon fill="#00ff00" stroke="none" points="273.75,-669 273.75,-671 534.75,-671 534.75,-669 273.75,-669"/>
<polygon fill="#000000" stroke="none" points="273.75,-667 273.75,-669 534.75,-669 534.75,-667 273.75,-667"/>
<text text-anchor="start" x="279.88" y="-651.7" font-family="arial" font-size="14.00">X1:3:SENSE_P_2</text>
<text text-anchor="start" x="410.25" y="-651.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-651.7" font-family="arial" font-size="14.00">X2:d10</text>
<polygon fill="#000000" stroke="none" points="273.75,-646 273.75,-648 534.75,-648 534.75,-646 273.75,-646"/>
<polygon fill="#ffff00" stroke="none" points="273.75,-644 273.75,-646 534.75,-646 534.75,-644 273.75,-644"/>
<polygon fill="#ffff00" stroke="none" points="273.75,-642 273.75,-644 534.75,-644 534.75,-642 273.75,-642"/>
<polygon fill="#ffff00" stroke="none" points="273.75,-640 273.75,-642 534.75,-642 534.75,-640 273.75,-640"/>
<polygon fill="#000000" stroke="none" points="273.75,-638 273.75,-640 534.75,-640 534.75,-638 273.75,-638"/>
<text text-anchor="start" x="275.75" y="-622.7" font-family="arial" font-size="14.00">X1:18:SENSE_N_3</text>
<text text-anchor="start" x="409.12" y="-622.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:GY &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-622.7" font-family="arial" font-size="14.00">X2:z14</text>
<polygon fill="#000000" stroke="none" points="273.75,-617 273.75,-619 534.75,-619 534.75,-617 273.75,-617"/>
<polygon fill="#999999" stroke="none" points="273.75,-615 273.75,-617 534.75,-617 534.75,-615 273.75,-615"/>
<polygon fill="#999999" stroke="none" points="273.75,-613 273.75,-615 534.75,-615 534.75,-613 273.75,-613"/>
<polygon fill="#999999" stroke="none" points="273.75,-611 273.75,-613 534.75,-613 534.75,-611 273.75,-611"/>
<polygon fill="#000000" stroke="none" points="273.75,-609 273.75,-611 534.75,-611 534.75,-609 273.75,-609"/>
<text text-anchor="start" x="279.88" y="-593.7" font-family="arial" font-size="14.00">X1:5:SENSE_P_3</text>
<text text-anchor="start" x="410.25" y="-593.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-593.7" font-family="arial" font-size="14.00">X2:d16</text>
<polygon fill="#000000" stroke="none" points="273.75,-588 273.75,-590 534.75,-590 534.75,-588 273.75,-588"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-586 273.75,-588 534.75,-588 534.75,-586 273.75,-586"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-584 273.75,-586 534.75,-586 534.75,-584 273.75,-584"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-582 273.75,-584 534.75,-584 534.75,-582 273.75,-582"/>
<polygon fill="#000000" stroke="none" points="273.75,-580 273.75,-582 534.75,-582 534.75,-580 273.75,-580"/>
<text text-anchor="start" x="275.75" y="-564.7" font-family="arial" font-size="14.00">X1:20:SENSE_N_4</text>
<text text-anchor="start" x="409.88" y="-564.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-564.7" font-family="arial" font-size="14.00">X2:z18</text>
<polygon fill="#000000" stroke="none" points="273.75,-559 273.75,-561 534.75,-561 534.75,-559 273.75,-559"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-557 273.75,-559 534.75,-559 534.75,-557 273.75,-557"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-555 273.75,-557 534.75,-557 534.75,-555 273.75,-555"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-553 273.75,-555 534.75,-555 534.75,-553 273.75,-553"/>
<polygon fill="#000000" stroke="none" points="273.75,-551 273.75,-553 534.75,-553 534.75,-551 273.75,-551"/>
<text text-anchor="start" x="279.88" y="-535.7" font-family="arial" font-size="14.00">X1:7:SENSE_P_4</text>
<text text-anchor="start" x="409.5" y="-535.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-535.7" font-family="arial" font-size="14.00">X2:d20</text>
<polygon fill="#000000" stroke="none" points="273.75,-530 273.75,-532 534.75,-532 534.75,-530 273.75,-530"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-528 273.75,-530 534.75,-530 534.75,-528 273.75,-528"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-526 273.75,-528 534.75,-528 534.75,-526 273.75,-526"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-524 273.75,-526 534.75,-526 534.75,-524 273.75,-524"/>
<polygon fill="#000000" stroke="none" points="273.75,-522 273.75,-524 534.75,-524 534.75,-522 273.75,-522"/>
<text text-anchor="start" x="275.75" y="-506.7" font-family="arial" font-size="14.00">X1:22:SENSE_N_5</text>
<text text-anchor="start" x="410.25" y="-506.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;9:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-506.7" font-family="arial" font-size="14.00">X2:z24</text>
<polygon fill="#000000" stroke="none" points="273.75,-501 273.75,-503 534.75,-503 534.75,-501 273.75,-501"/>
<polygon fill="#000000" stroke="none" points="273.75,-499 273.75,-501 534.75,-501 534.75,-499 273.75,-499"/>
<polygon fill="#000000" stroke="none" points="273.75,-497 273.75,-499 534.75,-499 534.75,-497 273.75,-497"/>
<polygon fill="#000000" stroke="none" points="273.75,-495 273.75,-497 534.75,-497 534.75,-495 273.75,-495"/>
<polygon fill="#000000" stroke="none" points="273.75,-493 273.75,-495 534.75,-495 534.75,-493 273.75,-493"/>
<text text-anchor="start" x="279.88" y="-477.7" font-family="arial" font-size="14.00">X1:9:SENSE_P_5</text>
<text text-anchor="start" x="406.88" y="-477.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;10:VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-477.7" font-family="arial" font-size="14.00">X2:d26</text>
<polygon fill="#000000" stroke="none" points="273.75,-472 273.75,-474 534.75,-474 534.75,-472 273.75,-472"/>
<polygon fill="#8000ff" stroke="none" points="273.75,-470 273.75,-472 534.75,-472 534.75,-470 273.75,-470"/>
<polygon fill="#8000ff" stroke="none" points="273.75,-468 273.75,-470 534.75,-470 534.75,-468 273.75,-468"/>
<polygon fill="#8000ff" stroke="none" points="273.75,-466 273.75,-468 534.75,-468 534.75,-466 273.75,-466"/>
<polygon fill="#000000" stroke="none" points="273.75,-464 273.75,-466 534.75,-466 534.75,-464 273.75,-464"/>
<text text-anchor="start" x="275.75" y="-448.7" font-family="arial" font-size="14.00">X1:24:SENSE_N_6</text>
<text text-anchor="start" x="396.75" y="-448.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;11:GYPK &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.75" y="-448.7" font-family="arial" font-size="14.00">X2:z30</text>
<polygon fill="#000000" stroke="none" points="273.75,-443 273.75,-445 534.75,-445 534.75,-443 273.75,-443"/>
<polygon fill="#999999" stroke="none" points="273.75,-441 273.75,-443 534.75,-443 534.75,-441 273.75,-441"/>
<polygon fill="#ff66cc" stroke="none" points="273.75,-439 273.75,-441 534.75,-441 534.75,-439 273.75,-439"/>
<polygon fill="#999999" stroke="none" points="273.75,-437 273.75,-439 534.75,-439 534.75,-437 273.75,-437"/>
<polygon fill="#000000" stroke="none" points="273.75,-435 273.75,-437 534.75,-437 534.75,-435 273.75,-435"/>
<text text-anchor="start" x="276.5" y="-419.7" font-family="arial" font-size="14.00">X1:11:SENSE_P_6</text>
<text text-anchor="start" x="396.38" y="-419.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;12:RDBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="490.38" y="-419.7" font-family="arial" font-size="14.00">X2:d32</text>
<polygon fill="#000000" stroke="none" points="273.75,-414 273.75,-416 534.75,-416 534.75,-414 273.75,-414"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-412 273.75,-414 534.75,-414 534.75,-412 273.75,-412"/>
<polygon fill="#0066ff" stroke="none" points="273.75,-410 273.75,-412 534.75,-412 534.75,-410 273.75,-410"/>
<polygon fill="#ff0000" stroke="none" points="273.75,-408 273.75,-410 534.75,-410 534.75,-408 273.75,-408"/>
<polygon fill="#000000" stroke="none" points="273.75,-406 273.75,-408 534.75,-408 534.75,-406 273.75,-406"/>
<text text-anchor="start" x="332.38" y="-390.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="299.38" y="-371.7" font-family="arial" font-size="14.00">X1:13:GND</text>
<text text-anchor="start" x="423" y="-371.7" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="273.75,-366 273.75,-368 534.75,-368 534.75,-366 273.75,-366"/>
<text text-anchor="start" x="332.38" y="-350.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-671C199.69,-671.34 215.54,-678.34 278,-678"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-673C198.88,-673.17 214.73,-680.17 278,-680"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-675C198.08,-675 213.92,-682 278,-682"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-677C197.27,-676.83 213.12,-683.83 278,-684"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-679C196.46,-678.66 212.31,-685.66 278,-686"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-688.75C195.66,-689.18 211.46,-697.18 273.75,-696.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M129.75,-690.75C194.75,-690.97 210.55,-698.97 273.75,-698.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M129.75,-692.75C193.85,-692.75 209.65,-700.75 273.75,-700.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M129.75,-694.75C192.95,-694.53 208.75,-702.53 273.75,-702.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-696.75C192.04,-696.32 207.84,-704.32 273.75,-704.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-648C207.15,-651.62 212.82,-710.62 278,-707"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-650C205.15,-651.81 210.83,-710.81 278,-709"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-652C203.16,-652 208.84,-711 278,-711"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-654C201.17,-652.19 206.85,-711.19 278,-713"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-656C199.18,-652.38 204.85,-711.38 278,-715"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-665.75C203.07,-669.4 208.4,-729.4 273.75,-725.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M129.75,-667.75C201.08,-669.57 206.41,-729.57 273.75,-727.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M129.75,-669.75C199.08,-669.75 204.42,-729.75 273.75,-729.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M129.75,-671.75C197.09,-669.93 202.42,-729.93 273.75,-731.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-673.75C195.1,-670.1 200.43,-730.1 273.75,-733.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-625C196.84,-625.18 212.76,-620.18 278,-620"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-627C197.44,-627.09 213.36,-622.09 278,-622"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-629C198.04,-629 213.96,-624 278,-624"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-631C198.64,-630.91 214.56,-625.91 278,-626"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-633C199.24,-632.82 215.16,-627.82 278,-628"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-642.75C192.8,-642.87 208.75,-638.87 273.75,-638.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M129.75,-644.75C193.29,-644.81 209.24,-640.81 273.75,-640.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M129.75,-646.75C193.77,-646.75 209.73,-642.75 273.75,-642.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M129.75,-648.75C194.26,-648.69 210.21,-644.69 273.75,-644.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-650.75C194.75,-650.63 210.7,-646.63 273.75,-646.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-602C205.25,-605.22 214.6,-652.22 278,-649"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-604C203.28,-605.61 212.64,-652.61 278,-651"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-606C201.32,-606 210.68,-653 278,-653"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-608C199.36,-606.39 208.72,-653.39 278,-655"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-610C197.4,-606.78 206.75,-653.78 278,-657"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-619.75C201.14,-623.01 210.22,-671.01 273.75,-667.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M129.75,-621.75C199.18,-623.38 208.25,-671.38 273.75,-669.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M129.75,-623.75C197.21,-623.75 206.29,-671.75 273.75,-671.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M129.75,-625.75C195.25,-624.12 204.32,-672.12 273.75,-673.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-627.75C193.28,-624.49 202.36,-672.49 273.75,-675.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-579C195.45,-580.34 210.57,-563.34 278,-562"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-581C196.95,-581.67 212.06,-564.67 278,-564"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-583C198.44,-583 213.56,-566 278,-566"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-585C199.94,-584.33 215.05,-567.33 278,-568"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-587C201.43,-585.66 216.55,-568.66 278,-570"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-596.75C191.24,-597.99 206.46,-581.99 273.75,-580.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-598.75C192.69,-599.37 207.91,-583.37 273.75,-582.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-600.75C194.14,-600.75 209.36,-584.75 273.75,-584.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-602.75C195.59,-602.13 210.81,-586.13 273.75,-586.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-604.75C197.04,-603.51 212.26,-587.51 273.75,-588.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-555C203.76,-557.73 215.82,-593.73 278,-591"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-557C201.87,-558.36 213.93,-594.36 278,-593"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-559C199.97,-559 212.03,-595 278,-595"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-561C198.07,-559.64 210.13,-595.64 278,-597"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-563C196.18,-560.27 208.24,-596.27 278,-599"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-573.75C199.51,-576.48 211.57,-612.48 273.75,-609.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-575.75C197.62,-577.11 209.68,-613.11 273.75,-611.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-577.75C195.72,-577.75 207.78,-613.75 273.75,-613.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-579.75C193.82,-578.39 205.88,-614.39 273.75,-615.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-581.75C191.93,-579.02 203.99,-615.02 273.75,-617.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-532C195.6,-534.25 209.2,-506.25 278,-504"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-534C197.4,-535.13 211,-507.13 278,-506"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-536C199.2,-536 212.8,-508 278,-508"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-538C201,-536.87 214.6,-508.87 278,-510"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-540C202.8,-537.75 216.4,-509.75 278,-512"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-550.75C191.35,-553 204.95,-525 273.75,-522.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-552.75C193.15,-553.88 206.75,-525.88 273.75,-524.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-554.75C194.95,-554.75 208.55,-526.75 273.75,-526.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-556.75C196.75,-555.62 210.35,-527.62 273.75,-528.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-558.75C198.55,-556.5 212.15,-528.5 273.75,-530.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-509C202.32,-510.96 216.56,-534.96 278,-533"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-511C200.6,-511.98 214.84,-535.98 278,-535"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-513C198.88,-513 213.12,-537 278,-537"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-515C197.16,-514.02 211.4,-538.02 278,-539"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-517C195.44,-515.04 209.68,-539.04 278,-541"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-527.75C198.07,-529.71 212.31,-553.71 273.75,-551.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-529.75C196.35,-530.73 210.59,-554.73 273.75,-553.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-531.75C194.63,-531.75 208.87,-555.75 273.75,-555.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-533.75C192.91,-532.77 207.15,-556.77 273.75,-557.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-535.75C191.19,-533.79 205.43,-557.79 273.75,-559.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge17" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-486C196.57,-488.93 207.72,-448.93 278,-446"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-488C198.5,-489.46 209.65,-449.46 278,-448"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-490C200.42,-490 211.58,-450 278,-450"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-492C202.35,-490.54 213.5,-450.54 278,-452"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-494C204.28,-491.07 215.43,-451.07 278,-454"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-504.75C192.32,-507.68 203.47,-467.68 273.75,-464.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M129.75,-506.75C194.25,-508.21 205.4,-468.21 273.75,-466.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M129.75,-508.75C196.17,-508.75 207.33,-468.75 273.75,-468.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M129.75,-510.75C198.1,-509.29 209.25,-469.29 273.75,-470.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-512.75C200.03,-509.82 211.18,-469.82 273.75,-472.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge19" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-463C200.66,-463.83 216.22,-475.83 278,-475"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-465C199.44,-465.42 215,-477.42 278,-477"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-467C198.22,-467 213.78,-479 278,-479"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-469C197,-468.58 212.56,-480.58 278,-481"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-471C195.78,-470.17 211.34,-482.17 278,-483"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-481.75C196.41,-482.58 211.97,-494.58 273.75,-493.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-483.75C195.19,-484.17 210.75,-496.17 273.75,-495.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-485.75C193.97,-485.75 209.53,-497.75 273.75,-497.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-487.75C192.75,-487.33 208.31,-499.33 273.75,-499.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-489.75C191.53,-488.92 207.09,-500.92 273.75,-501.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge21" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-440C198.09,-443.4 206,-391.4 278,-388"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-442C200.07,-443.7 207.98,-391.7 278,-390"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-444C202.05,-444 209.95,-392 278,-392"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-446C204.02,-444.3 211.93,-392.3 278,-394"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-448C206,-444.6 213.91,-392.6 278,-396"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-458.75C193.84,-462.15 201.75,-410.15 273.75,-406.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-460.75C195.82,-462.45 203.73,-410.45 273.75,-408.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M129.75,-462.75C197.8,-462.75 205.7,-410.75 273.75,-410.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M129.75,-464.75C199.77,-463.05 207.68,-411.05 273.75,-412.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-466.75C201.75,-463.35 209.66,-411.35 273.75,-414.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge23" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-417C198,-417 214,-417 278,-417"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-419C198,-419 214,-419 278,-419"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-421C198,-421 214,-421 278,-421"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-423C198,-423 214,-423 278,-423"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-425C198,-425 214,-425 278,-425"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-435.75C193.75,-435.75 209.75,-435.75 273.75,-435.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-437.75C193.75,-437.75 209.75,-437.75 273.75,-437.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M129.75,-439.75C193.75,-439.75 209.75,-439.75 273.75,-439.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M129.75,-441.75C193.75,-441.75 209.75,-441.75 273.75,-441.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-443.75C193.75,-443.75 209.75,-443.75 273.75,-443.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge25" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-398C201.75,-398 210.25,-348 278,-348"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M129.75,-416.75C197.5,-416.75 206,-366.75 273.75,-366.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="827,-1150 696,-1150 696,0 827,0 827,-1150"/>
<polygon fill="none" stroke="black" points="696.5,-1127 696.5,-1150 827.5,-1150 827.5,-1127 696.5,-1127"/>
<text text-anchor="start" x="753" y="-1134.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="696.5,-1104 696.5,-1127 729.5,-1127 729.5,-1104 696.5,-1104"/>
<text text-anchor="start" x="700.5" y="-1111.8" font-family="arial" font-size="14.00">F48</text>
<polygon fill="none" stroke="black" points="729.5,-1104 729.5,-1127 780.5,-1127 780.5,-1104 729.5,-1104"/>
<text text-anchor="start" x="733.5" y="-1111.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="780.5,-1104 780.5,-1127 827.5,-1127 827.5,-1104 780.5,-1104"/>
<text text-anchor="start" x="784.5" y="-1111.8" font-family="arial" font-size="14.00">48&#45;pin</text>
<polygon fill="none" stroke="black" points="696.5,-1081 696.5,-1104 827.5,-1104 827.5,-1081 696.5,-1081"/>
<text text-anchor="start" x="754.5" y="-1088.8" font-family="arial" font-size="14.00">z2</text>
<polygon fill="none" stroke="black" points="696.5,-1058 696.5,-1081 827.5,-1081 827.5,-1058 696.5,-1058"/>
<text text-anchor="start" x="754" y="-1065.8" font-family="arial" font-size="14.00">b2</text>
<polygon fill="none" stroke="black" points="696.5,-1035 696.5,-1058 827.5,-1058 827.5,-1035 696.5,-1035"/>
<text text-anchor="start" x="754" y="-1042.8" font-family="arial" font-size="14.00">d2</text>
<polygon fill="none" stroke="black" points="696.5,-1012 696.5,-1035 827.5,-1035 827.5,-1012 696.5,-1012"/>
<text text-anchor="start" x="754.5" y="-1019.8" font-family="arial" font-size="14.00">z4</text>
<polygon fill="none" stroke="black" points="696.5,-989 696.5,-1012 827.5,-1012 827.5,-989 696.5,-989"/>
<text text-anchor="start" x="754" y="-996.8" font-family="arial" font-size="14.00">b4</text>
<polygon fill="none" stroke="black" points="696.5,-966 696.5,-989 827.5,-989 827.5,-966 696.5,-966"/>
<text text-anchor="start" x="754" y="-973.8" font-family="arial" font-size="14.00">d4</text>
<polygon fill="none" stroke="black" points="696.5,-943 696.5,-966 827.5,-966 827.5,-943 696.5,-943"/>
<text text-anchor="start" x="754.5" y="-950.8" font-family="arial" font-size="14.00">z6</text>
<polygon fill="none" stroke="black" points="696.5,-920 696.5,-943 827.5,-943 827.5,-920 696.5,-920"/>
<text text-anchor="start" x="754" y="-927.8" font-family="arial" font-size="14.00">b6</text>
<polygon fill="none" stroke="black" points="696.5,-897 696.5,-920 827.5,-920 827.5,-897 696.5,-897"/>
<text text-anchor="start" x="754" y="-904.8" font-family="arial" font-size="14.00">d6</text>
<polygon fill="none" stroke="black" points="696.5,-874 696.5,-897 827.5,-897 827.5,-874 696.5,-874"/>
<text text-anchor="start" x="754.5" y="-881.8" font-family="arial" font-size="14.00">z8</text>
<polygon fill="none" stroke="black" points="696.5,-851 696.5,-874 827.5,-874 827.5,-851 696.5,-851"/>
<text text-anchor="start" x="754" y="-858.8" font-family="arial" font-size="14.00">b8</text>
<polygon fill="none" stroke="black" points="696.5,-828 696.5,-851 827.5,-851 827.5,-828 696.5,-828"/>
<text text-anchor="start" x="754" y="-835.8" font-family="arial" font-size="14.00">d8</text>
<polygon fill="none" stroke="black" points="696.5,-805 696.5,-828 827.5,-828 827.5,-805 696.5,-805"/>
<text text-anchor="start" x="750.5" y="-812.8" font-family="arial" font-size="14.00">z10</text>
<polygon fill="none" stroke="black" points="696.5,-782 696.5,-805 827.5,-805 827.5,-782 696.5,-782"/>
<text text-anchor="start" x="750" y="-789.8" font-family="arial" font-size="14.00">b10</text>
<polygon fill="none" stroke="black" points="696.5,-759 696.5,-782 827.5,-782 827.5,-759 696.5,-759"/>
<text text-anchor="start" x="750" y="-766.8" font-family="arial" font-size="14.00">d10</text>
<polygon fill="none" stroke="black" points="696.5,-736 696.5,-759 827.5,-759 827.5,-736 696.5,-736"/>
<text text-anchor="start" x="750.5" y="-743.8" font-family="arial" font-size="14.00">z12</text>
<polygon fill="none" stroke="black" points="696.5,-713 696.5,-736 827.5,-736 827.5,-713 696.5,-713"/>
<text text-anchor="start" x="750" y="-720.8" font-family="arial" font-size="14.00">b12</text>
<polygon fill="none" stroke="black" points="696.5,-690 696.5,-713 827.5,-713 827.5,-690 696.5,-690"/>
<text text-anchor="start" x="750" y="-697.8" font-family="arial" font-size="14.00">d12</text>
<polygon fill="none" stroke="black" points="696.5,-667 696.5,-690 827.5,-690 827.5,-667 696.5,-667"/>
<text text-anchor="start" x="750.5" y="-674.8" font-family="arial" font-size="14.00">z14</text>
<polygon fill="none" stroke="black" points="696.5,-644 696.5,-667 827.5,-667 827.5,-644 696.5,-644"/>
<text text-anchor="start" x="750" y="-651.8" font-family="arial" font-size="14.00">b14</text>
<polygon fill="none" stroke="black" points="696.5,-621 696.5,-644 827.5,-644 827.5,-621 696.5,-621"/>
<text text-anchor="start" x="750" y="-628.8" font-family="arial" font-size="14.00">d14</text>
<polygon fill="none" stroke="black" points="696.5,-598 696.5,-621 827.5,-621 827.5,-598 696.5,-598"/>
<text text-anchor="start" x="750.5" y="-605.8" font-family="arial" font-size="14.00">z16</text>
<polygon fill="none" stroke="black" points="696.5,-575 696.5,-598 827.5,-598 827.5,-575 696.5,-575"/>
<text text-anchor="start" x="750" y="-582.8" font-family="arial" font-size="14.00">b16</text>
<polygon fill="none" stroke="black" points="696.5,-552 696.5,-575 827.5,-575 827.5,-552 696.5,-552"/>
<text text-anchor="start" x="750" y="-559.8" font-family="arial" font-size="14.00">d16</text>
<polygon fill="none" stroke="black" points="696.5,-529 696.5,-552 827.5,-552 827.5,-529 696.5,-529"/>
<text text-anchor="start" x="750.5" y="-536.8" font-family="arial" font-size="14.00">z18</text>
<polygon fill="none" stroke="black" points="696.5,-506 696.5,-529 827.5,-529 827.5,-506 696.5,-506"/>
<text text-anchor="start" x="750" y="-513.8" font-family="arial" font-size="14.00">b18</text>
<polygon fill="none" stroke="black" points="696.5,-483 696.5,-506 827.5,-506 827.5,-483 696.5,-483"/>
<text text-anchor="start" x="750" y="-490.8" font-family="arial" font-size="14.00">d18</text>
<polygon fill="none" stroke="black" points="696.5,-460 696.5,-483 827.5,-483 827.5,-460 696.5,-460"/>
<text text-anchor="start" x="750.5" y="-467.8" font-family="arial" font-size="14.00">z20</text>
<polygon fill="none" stroke="black" points="696.5,-437 696.5,-460 827.5,-460 827.5,-437 696.5,-437"/>
<text text-anchor="start" x="750" y="-444.8" font-family="arial" font-size="14.00">b20</text>
<polygon fill="none" stroke="black" points="696.5,-414 696.5,-437 827.5,-437 827.5,-414 696.5,-414"/>
<text text-anchor="start" x="750" y="-421.8" font-family="arial" font-size="14.00">d20</text>
<polygon fill="none" stroke="black" points="696.5,-391 696.5,-414 827.5,-414 827.5,-391 696.5,-391"/>
<text text-anchor="start" x="750.5" y="-398.8" font-family="arial" font-size="14.00">z22</text>
<polygon fill="none" stroke="black" points="696.5,-368 696.5,-391 827.5,-391 827.5,-368 696.5,-368"/>
<text text-anchor="start" x="750" y="-375.8" font-family="arial" font-size="14.00">b22</text>
<polygon fill="none" stroke="black" points="696.5,-345 696.5,-368 827.5,-368 827.5,-345 696.5,-345"/>
<text text-anchor="start" x="750" y="-352.8" font-family="arial" font-size="14.00">d22</text>
<polygon fill="none" stroke="black" points="696.5,-322 696.5,-345 827.5,-345 827.5,-322 696.5,-322"/>
<text text-anchor="start" x="750.5" y="-329.8" font-family="arial" font-size="14.00">z24</text>
<polygon fill="none" stroke="black" points="696.5,-299 696.5,-322 827.5,-322 827.5,-299 696.5,-299"/>
<text text-anchor="start" x="750" y="-306.8" font-family="arial" font-size="14.00">b24</text>
<polygon fill="none" stroke="black" points="696.5,-276 696.5,-299 827.5,-299 827.5,-276 696.5,-276"/>
<text text-anchor="start" x="750" y="-283.8" font-family="arial" font-size="14.00">d24</text>
<polygon fill="none" stroke="black" points="696.5,-253 696.5,-276 827.5,-276 827.5,-253 696.5,-253"/>
<text text-anchor="start" x="750.5" y="-260.8" font-family="arial" font-size="14.00">z26</text>
<polygon fill="none" stroke="black" points="696.5,-230 696.5,-253 827.5,-253 827.5,-230 696.5,-230"/>
<text text-anchor="start" x="750" y="-237.8" font-family="arial" font-size="14.00">b26</text>
<polygon fill="none" stroke="black" points="696.5,-207 696.5,-230 827.5,-230 827.5,-207 696.5,-207"/>
<text text-anchor="start" x="750" y="-214.8" font-family="arial" font-size="14.00">d26</text>
<polygon fill="none" stroke="black" points="696.5,-184 696.5,-207 827.5,-207 827.5,-184 696.5,-184"/>
<text text-anchor="start" x="750.5" y="-191.8" font-family="arial" font-size="14.00">z28</text>
<polygon fill="none" stroke="black" points="696.5,-161 696.5,-184 827.5,-184 827.5,-161 696.5,-161"/>
<text text-anchor="start" x="750" y="-168.8" font-family="arial" font-size="14.00">b28</text>
<polygon fill="none" stroke="black" points="696.5,-138 696.5,-161 827.5,-161 827.5,-138 696.5,-138"/>
<text text-anchor="start" x="750" y="-145.8" font-family="arial" font-size="14.00">d28</text>
<polygon fill="none" stroke="black" points="696.5,-115 696.5,-138 827.5,-138 827.5,-115 696.5,-115"/>
<text text-anchor="start" x="750.5" y="-122.8" font-family="arial" font-size="14.00">z30</text>
<polygon fill="none" stroke="black" points="696.5,-92 696.5,-115 827.5,-115 827.5,-92 696.5,-92"/>
<text text-anchor="start" x="750" y="-99.8" font-family="arial" font-size="14.00">b30</text>
<polygon fill="none" stroke="black" points="696.5,-69 696.5,-92 827.5,-92 827.5,-69 696.5,-69"/>
<text text-anchor="start" x="750" y="-76.8" font-family="arial" font-size="14.00">d30</text>
<polygon fill="none" stroke="black" points="696.5,-46 696.5,-69 827.5,-69 827.5,-46 696.5,-46"/>
<text text-anchor="start" x="750.5" y="-53.8" font-family="arial" font-size="14.00">z32</text>
<polygon fill="none" stroke="black" points="696.5,-23 696.5,-46 827.5,-46 827.5,-23 696.5,-23"/>
<text text-anchor="start" x="750" y="-30.8" font-family="arial" font-size="14.00">b32</text>
<polygon fill="none" stroke="black" points="696.5,0 696.5,-23 827.5,-23 827.5,0 696.5,0"/>
<text text-anchor="start" x="750" y="-7.8" font-family="arial" font-size="14.00">d32</text>
<polygon fill="#ffffff" stroke="black" points="804.75,-1187.5 678.75,-1187.5 678.75,0 804.75,0 804.75,-1187.5"/>
<polygon fill="none" stroke="black" points="678.75,-1163.75 678.75,-1187.5 804.75,-1187.5 804.75,-1163.75 678.75,-1163.75"/>
<text text-anchor="start" x="733.5" y="-1170.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="678.75,-1140 678.75,-1163.75 710,-1163.75 710,-1140 678.75,-1140"/>
<text text-anchor="start" x="682.75" y="-1146.45" font-family="arial" font-size="14.00">F48</text>
<polygon fill="none" stroke="black" points="710,-1140 710,-1163.75 759.25,-1163.75 759.25,-1140 710,-1140"/>
<text text-anchor="start" x="714" y="-1146.45" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="759.25,-1140 759.25,-1163.75 804.75,-1163.75 804.75,-1140 759.25,-1140"/>
<text text-anchor="start" x="763.25" y="-1146.45" font-family="arial" font-size="14.00">48&#45;pin</text>
<polygon fill="none" stroke="black" points="678.75,-1116.25 678.75,-1140 804.75,-1140 804.75,-1116.25 678.75,-1116.25"/>
<text text-anchor="start" x="734.62" y="-1122.7" font-family="arial" font-size="14.00">z2</text>
<polygon fill="none" stroke="black" points="678.75,-1092.5 678.75,-1116.25 804.75,-1116.25 804.75,-1092.5 678.75,-1092.5"/>
<text text-anchor="start" x="734.25" y="-1098.95" font-family="arial" font-size="14.00">b2</text>
<polygon fill="none" stroke="black" points="678.75,-1068.75 678.75,-1092.5 804.75,-1092.5 804.75,-1068.75 678.75,-1068.75"/>
<text text-anchor="start" x="734.25" y="-1075.2" font-family="arial" font-size="14.00">d2</text>
<polygon fill="none" stroke="black" points="678.75,-1045 678.75,-1068.75 804.75,-1068.75 804.75,-1045 678.75,-1045"/>
<text text-anchor="start" x="734.62" y="-1051.45" font-family="arial" font-size="14.00">z4</text>
<polygon fill="none" stroke="black" points="678.75,-1021.25 678.75,-1045 804.75,-1045 804.75,-1021.25 678.75,-1021.25"/>
<text text-anchor="start" x="734.25" y="-1027.7" font-family="arial" font-size="14.00">b4</text>
<polygon fill="none" stroke="black" points="678.75,-997.5 678.75,-1021.25 804.75,-1021.25 804.75,-997.5 678.75,-997.5"/>
<text text-anchor="start" x="734.25" y="-1003.95" font-family="arial" font-size="14.00">d4</text>
<polygon fill="none" stroke="black" points="678.75,-973.75 678.75,-997.5 804.75,-997.5 804.75,-973.75 678.75,-973.75"/>
<text text-anchor="start" x="734.62" y="-980.2" font-family="arial" font-size="14.00">z6</text>
<polygon fill="none" stroke="black" points="678.75,-950 678.75,-973.75 804.75,-973.75 804.75,-950 678.75,-950"/>
<text text-anchor="start" x="734.25" y="-956.45" font-family="arial" font-size="14.00">b6</text>
<polygon fill="none" stroke="black" points="678.75,-926.25 678.75,-950 804.75,-950 804.75,-926.25 678.75,-926.25"/>
<text text-anchor="start" x="734.25" y="-932.7" font-family="arial" font-size="14.00">d6</text>
<polygon fill="none" stroke="black" points="678.75,-902.5 678.75,-926.25 804.75,-926.25 804.75,-902.5 678.75,-902.5"/>
<text text-anchor="start" x="734.62" y="-908.95" font-family="arial" font-size="14.00">z8</text>
<polygon fill="none" stroke="black" points="678.75,-878.75 678.75,-902.5 804.75,-902.5 804.75,-878.75 678.75,-878.75"/>
<text text-anchor="start" x="734.25" y="-885.2" font-family="arial" font-size="14.00">b8</text>
<polygon fill="none" stroke="black" points="678.75,-855 678.75,-878.75 804.75,-878.75 804.75,-855 678.75,-855"/>
<text text-anchor="start" x="734.25" y="-861.45" font-family="arial" font-size="14.00">d8</text>
<polygon fill="none" stroke="black" points="678.75,-831.25 678.75,-855 804.75,-855 804.75,-831.25 678.75,-831.25"/>
<text text-anchor="start" x="730.88" y="-837.7" font-family="arial" font-size="14.00">z10</text>
<polygon fill="none" stroke="black" points="678.75,-807.5 678.75,-831.25 804.75,-831.25 804.75,-807.5 678.75,-807.5"/>
<text text-anchor="start" x="730.5" y="-813.95" font-family="arial" font-size="14.00">b10</text>
<polygon fill="none" stroke="black" points="678.75,-783.75 678.75,-807.5 804.75,-807.5 804.75,-783.75 678.75,-783.75"/>
<text text-anchor="start" x="730.5" y="-790.2" font-family="arial" font-size="14.00">d10</text>
<polygon fill="none" stroke="black" points="678.75,-760 678.75,-783.75 804.75,-783.75 804.75,-760 678.75,-760"/>
<text text-anchor="start" x="730.88" y="-766.45" font-family="arial" font-size="14.00">z12</text>
<polygon fill="none" stroke="black" points="678.75,-736.25 678.75,-760 804.75,-760 804.75,-736.25 678.75,-736.25"/>
<text text-anchor="start" x="730.5" y="-742.7" font-family="arial" font-size="14.00">b12</text>
<polygon fill="none" stroke="black" points="678.75,-712.5 678.75,-736.25 804.75,-736.25 804.75,-712.5 678.75,-712.5"/>
<text text-anchor="start" x="730.5" y="-718.95" font-family="arial" font-size="14.00">d12</text>
<polygon fill="none" stroke="black" points="678.75,-688.75 678.75,-712.5 804.75,-712.5 804.75,-688.75 678.75,-688.75"/>
<text text-anchor="start" x="730.88" y="-695.2" font-family="arial" font-size="14.00">z14</text>
<polygon fill="none" stroke="black" points="678.75,-665 678.75,-688.75 804.75,-688.75 804.75,-665 678.75,-665"/>
<text text-anchor="start" x="730.5" y="-671.45" font-family="arial" font-size="14.00">b14</text>
<polygon fill="none" stroke="black" points="678.75,-641.25 678.75,-665 804.75,-665 804.75,-641.25 678.75,-641.25"/>
<text text-anchor="start" x="730.5" y="-647.7" font-family="arial" font-size="14.00">d14</text>
<polygon fill="none" stroke="black" points="678.75,-617.5 678.75,-641.25 804.75,-641.25 804.75,-617.5 678.75,-617.5"/>
<text text-anchor="start" x="730.88" y="-623.95" font-family="arial" font-size="14.00">z16</text>
<polygon fill="none" stroke="black" points="678.75,-593.75 678.75,-617.5 804.75,-617.5 804.75,-593.75 678.75,-593.75"/>
<text text-anchor="start" x="730.5" y="-600.2" font-family="arial" font-size="14.00">b16</text>
<polygon fill="none" stroke="black" points="678.75,-570 678.75,-593.75 804.75,-593.75 804.75,-570 678.75,-570"/>
<text text-anchor="start" x="730.5" y="-576.45" font-family="arial" font-size="14.00">d16</text>
<polygon fill="none" stroke="black" points="678.75,-546.25 678.75,-570 804.75,-570 804.75,-546.25 678.75,-546.25"/>
<text text-anchor="start" x="730.88" y="-552.7" font-family="arial" font-size="14.00">z18</text>
<polygon fill="none" stroke="black" points="678.75,-522.5 678.75,-546.25 804.75,-546.25 804.75,-522.5 678.75,-522.5"/>
<text text-anchor="start" x="730.5" y="-528.95" font-family="arial" font-size="14.00">b18</text>
<polygon fill="none" stroke="black" points="678.75,-498.75 678.75,-522.5 804.75,-522.5 804.75,-498.75 678.75,-498.75"/>
<text text-anchor="start" x="730.5" y="-505.2" font-family="arial" font-size="14.00">d18</text>
<polygon fill="none" stroke="black" points="678.75,-475 678.75,-498.75 804.75,-498.75 804.75,-475 678.75,-475"/>
<text text-anchor="start" x="730.88" y="-481.45" font-family="arial" font-size="14.00">z20</text>
<polygon fill="none" stroke="black" points="678.75,-451.25 678.75,-475 804.75,-475 804.75,-451.25 678.75,-451.25"/>
<text text-anchor="start" x="730.5" y="-457.7" font-family="arial" font-size="14.00">b20</text>
<polygon fill="none" stroke="black" points="678.75,-427.5 678.75,-451.25 804.75,-451.25 804.75,-427.5 678.75,-427.5"/>
<text text-anchor="start" x="730.5" y="-433.95" font-family="arial" font-size="14.00">d20</text>
<polygon fill="none" stroke="black" points="678.75,-403.75 678.75,-427.5 804.75,-427.5 804.75,-403.75 678.75,-403.75"/>
<text text-anchor="start" x="730.88" y="-410.2" font-family="arial" font-size="14.00">z22</text>
<polygon fill="none" stroke="black" points="678.75,-380 678.75,-403.75 804.75,-403.75 804.75,-380 678.75,-380"/>
<text text-anchor="start" x="730.5" y="-386.45" font-family="arial" font-size="14.00">b22</text>
<polygon fill="none" stroke="black" points="678.75,-356.25 678.75,-380 804.75,-380 804.75,-356.25 678.75,-356.25"/>
<text text-anchor="start" x="730.5" y="-362.7" font-family="arial" font-size="14.00">d22</text>
<polygon fill="none" stroke="black" points="678.75,-332.5 678.75,-356.25 804.75,-356.25 804.75,-332.5 678.75,-332.5"/>
<text text-anchor="start" x="730.88" y="-338.95" font-family="arial" font-size="14.00">z24</text>
<polygon fill="none" stroke="black" points="678.75,-308.75 678.75,-332.5 804.75,-332.5 804.75,-308.75 678.75,-308.75"/>
<text text-anchor="start" x="730.5" y="-315.2" font-family="arial" font-size="14.00">b24</text>
<polygon fill="none" stroke="black" points="678.75,-285 678.75,-308.75 804.75,-308.75 804.75,-285 678.75,-285"/>
<text text-anchor="start" x="730.5" y="-291.45" font-family="arial" font-size="14.00">d24</text>
<polygon fill="none" stroke="black" points="678.75,-261.25 678.75,-285 804.75,-285 804.75,-261.25 678.75,-261.25"/>
<text text-anchor="start" x="730.88" y="-267.7" font-family="arial" font-size="14.00">z26</text>
<polygon fill="none" stroke="black" points="678.75,-237.5 678.75,-261.25 804.75,-261.25 804.75,-237.5 678.75,-237.5"/>
<text text-anchor="start" x="730.5" y="-243.95" font-family="arial" font-size="14.00">b26</text>
<polygon fill="none" stroke="black" points="678.75,-213.75 678.75,-237.5 804.75,-237.5 804.75,-213.75 678.75,-213.75"/>
<text text-anchor="start" x="730.5" y="-220.2" font-family="arial" font-size="14.00">d26</text>
<polygon fill="none" stroke="black" points="678.75,-190 678.75,-213.75 804.75,-213.75 804.75,-190 678.75,-190"/>
<text text-anchor="start" x="730.88" y="-196.45" font-family="arial" font-size="14.00">z28</text>
<polygon fill="none" stroke="black" points="678.75,-166.25 678.75,-190 804.75,-190 804.75,-166.25 678.75,-166.25"/>
<text text-anchor="start" x="730.5" y="-172.7" font-family="arial" font-size="14.00">b28</text>
<polygon fill="none" stroke="black" points="678.75,-142.5 678.75,-166.25 804.75,-166.25 804.75,-142.5 678.75,-142.5"/>
<text text-anchor="start" x="730.5" y="-148.95" font-family="arial" font-size="14.00">d28</text>
<polygon fill="none" stroke="black" points="678.75,-118.75 678.75,-142.5 804.75,-142.5 804.75,-118.75 678.75,-118.75"/>
<text text-anchor="start" x="730.88" y="-125.2" font-family="arial" font-size="14.00">z30</text>
<polygon fill="none" stroke="black" points="678.75,-95 678.75,-118.75 804.75,-118.75 804.75,-95 678.75,-95"/>
<text text-anchor="start" x="730.5" y="-101.45" font-family="arial" font-size="14.00">b30</text>
<polygon fill="none" stroke="black" points="678.75,-71.25 678.75,-95 804.75,-95 804.75,-71.25 678.75,-71.25"/>
<text text-anchor="start" x="730.5" y="-77.7" font-family="arial" font-size="14.00">d30</text>
<polygon fill="none" stroke="black" points="678.75,-47.5 678.75,-71.25 804.75,-71.25 804.75,-47.5 678.75,-47.5"/>
<text text-anchor="start" x="730.88" y="-53.95" font-family="arial" font-size="14.00">z32</text>
<polygon fill="none" stroke="black" points="678.75,-23.75 678.75,-47.5 804.75,-47.5 804.75,-23.75 678.75,-23.75"/>
<text text-anchor="start" x="730.5" y="-30.2" font-family="arial" font-size="14.00">b32</text>
<polygon fill="none" stroke="black" points="678.75,0 678.75,-23.75 804.75,-23.75 804.75,0 678.75,0"/>
<text text-anchor="start" x="730.5" y="-6.45" font-family="arial" font-size="14.00">d32</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-678C701.87,-683.79 553.28,-979.79 696,-974"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-680C700.08,-682.9 551.49,-978.9 696,-976"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-682C698.3,-682 549.7,-978 696,-978"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-684C696.51,-681.1 547.92,-977.1 696,-980"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-686C694.72,-680.21 546.13,-976.21 696,-982"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-696.75C689.82,-702.58 530.79,-1011.58 678.75,-1005.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M534.75,-698.75C688.04,-701.67 529.01,-1010.67 678.75,-1007.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M534.75,-700.75C686.26,-700.75 527.24,-1009.75 678.75,-1009.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M534.75,-702.75C684.49,-699.83 525.46,-1008.83 678.75,-1011.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-704.75C682.71,-698.92 523.68,-1007.92 678.75,-1013.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-707C736.91,-712.99 518.03,-1094.99 696,-1089"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-709C735.18,-711.99 516.3,-1093.99 696,-1091"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-711C733.44,-711 514.56,-1093 696,-1093"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-713C731.7,-710.01 512.82,-1092.01 696,-1095"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-715C729.97,-709.01 511.09,-1091.01 696,-1097"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-725.75C726.32,-731.77 494.09,-1129.77 678.75,-1123.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M534.75,-727.75C724.59,-730.76 492.37,-1128.76 678.75,-1125.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M534.75,-729.75C722.86,-729.75 490.64,-1127.75 678.75,-1127.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M534.75,-731.75C721.13,-728.74 488.91,-1126.74 678.75,-1129.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-733.75C719.41,-727.73 487.18,-1125.73 678.75,-1131.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-620C647.32,-625.02 608.41,-772.02 696,-767"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-622C645.39,-624.51 606.48,-771.51 696,-769"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-624C643.46,-624 604.54,-771 696,-771"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-626C641.52,-623.49 602.61,-770.49 696,-773"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-628C639.59,-622.98 600.68,-769.98 696,-775"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-638.75C631.98,-643.83 589.22,-796.83 678.75,-791.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M534.75,-640.75C630.06,-643.29 587.3,-796.29 678.75,-793.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M534.75,-642.75C628.13,-642.75 585.37,-795.75 678.75,-795.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M534.75,-644.75C626.2,-642.21 583.44,-795.21 678.75,-797.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-646.75C624.28,-641.67 581.52,-794.67 678.75,-799.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-649C677.42,-654.57 577.94,-887.57 696,-882"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-651C675.58,-653.79 576.1,-886.79 696,-884"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-653C673.74,-653 574.26,-886 696,-886"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-655C671.9,-652.21 572.42,-885.21 696,-888"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-657C670.06,-651.43 570.58,-884.43 696,-890"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-667.75C663.95,-673.36 556.87,-916.36 678.75,-910.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M534.75,-669.75C662.12,-672.56 555.04,-915.56 678.75,-912.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M534.75,-671.75C660.29,-671.75 553.21,-914.75 678.75,-914.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M534.75,-673.75C658.46,-670.94 551.38,-913.94 678.75,-916.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-675.75C656.63,-670.14 549.55,-913.14 678.75,-918.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-562C615.28,-562.07 631.25,-559.07 696,-559"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-564C615.64,-564.03 631.62,-561.03 696,-561"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-566C616.01,-566 631.99,-563 696,-563"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-568C616.38,-567.97 632.36,-564.97 696,-565"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-570C616.75,-569.93 632.72,-566.93 696,-567"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-580.75C598.03,-580.82 614,-577.82 678.75,-577.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-582.75C598.39,-582.78 614.37,-579.78 678.75,-579.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-584.75C598.76,-584.75 614.74,-581.75 678.75,-581.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-586.75C599.13,-586.72 615.11,-583.72 678.75,-583.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-588.75C599.5,-588.68 615.47,-585.68 678.75,-585.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-591C630.09,-595.2 625.9,-679.2 696,-675"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-593C628.09,-595.1 623.9,-679.1 696,-677"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-595C626.09,-595 621.91,-679 696,-679"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-597C624.1,-594.9 619.91,-678.9 696,-681"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-599C622.1,-594.8 617.91,-678.8 696,-683"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-609.75C613.52,-614 607.97,-701 678.75,-696.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-611.75C611.52,-613.88 605.97,-700.88 678.75,-698.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-613.75C609.52,-613.75 603.98,-700.75 678.75,-700.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-615.75C607.53,-613.62 601.98,-700.62 678.75,-702.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-617.75C605.53,-613.5 599.98,-700.5 678.75,-704.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-504C621.87,-508.18 618.13,-425.18 696,-421"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-506C623.87,-508.09 620.13,-425.09 696,-423"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-508C625.87,-508 622.13,-425 696,-425"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-510C627.87,-507.91 624.13,-424.91 696,-427"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-512C629.87,-507.82 626.13,-424.82 696,-429"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-522.75C605.53,-527 599.98,-440 678.75,-435.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-524.75C607.53,-526.88 601.98,-439.88 678.75,-437.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-526.75C609.52,-526.75 603.98,-439.75 678.75,-439.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-528.75C611.52,-526.62 605.97,-439.62 678.75,-441.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-530.75C613.52,-526.5 607.97,-439.5 678.75,-443.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-533C616.75,-533.07 632.72,-536.07 696,-536"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-535C616.38,-535.03 632.36,-538.03 696,-538"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-537C616.01,-537 631.99,-540 696,-540"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-539C615.64,-538.97 631.62,-541.97 696,-542"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-541C615.28,-540.93 631.25,-543.93 696,-544"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-551.75C599.25,-551.78 615.24,-553.78 678.75,-553.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-553.75C599,-553.77 614.99,-555.77 678.75,-555.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-555.75C598.76,-555.75 614.74,-557.75 678.75,-557.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-557.75C598.51,-557.73 614.5,-559.73 678.75,-559.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-559.75C598.26,-559.72 614.25,-561.72 678.75,-561.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge18" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-446C669.68,-451.57 570.96,-219.57 696,-214"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-448C671.52,-450.78 572.8,-218.78 696,-216"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-450C673.36,-450 574.64,-218 696,-218"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-452C675.2,-449.22 576.48,-217.22 696,-220"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-454C677.04,-448.43 578.32,-216.43 696,-222"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-464.75C656.63,-470.36 549.55,-227.36 678.75,-221.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M534.75,-466.75C658.46,-469.56 551.38,-226.56 678.75,-223.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M534.75,-468.75C660.29,-468.75 553.21,-225.75 678.75,-225.75"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M534.75,-470.75C662.12,-467.94 555.04,-224.94 678.75,-227.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-472.75C663.95,-467.14 556.87,-224.14 678.75,-229.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge20" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-475C639.27,-480.01 600.99,-334.01 696,-329"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-477C641.21,-479.51 602.93,-333.51 696,-331"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-479C643.14,-479 604.86,-333 696,-333"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-481C645.07,-478.49 606.79,-332.49 696,-335"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-483C647.01,-477.99 608.73,-331.99 696,-337"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-493.75C624.28,-498.83 581.52,-345.83 678.75,-340.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-495.75C626.2,-498.29 583.44,-345.29 678.75,-342.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-497.75C628.13,-497.75 585.37,-344.75 678.75,-344.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-499.75C630.06,-497.21 587.3,-344.21 678.75,-346.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-501.75C631.98,-496.67 589.22,-343.67 678.75,-348.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge22" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-388C729.55,-393.99 511.5,-12.99 696,-7"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-390C731.29,-392.99 513.24,-11.99 696,-9"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-392C733.02,-392 514.98,-11 696,-11"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-394C734.76,-391.01 516.71,-10.01 696,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-396C736.5,-390.01 518.45,-9.01 696,-15"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-406.75C719.82,-412.77 486.77,-13.77 678.75,-7.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-408.75C721.55,-411.76 488.49,-12.76 678.75,-9.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M534.75,-410.75C723.28,-410.75 490.22,-11.75 678.75,-11.75"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534.75,-412.75C725.01,-409.74 491.95,-10.74 678.75,-13.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-414.75C726.73,-408.73 493.68,-9.73 678.75,-15.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge24" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-417C694.32,-422.79 546.53,-127.79 696,-122"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-419C696.11,-421.9 548.31,-126.9 696,-124"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-421C697.9,-421 550.1,-126 696,-126"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-423C699.69,-420.1 551.89,-125.1 696,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-425C701.47,-419.21 553.68,-124.21 696,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-435.75C682.71,-441.58 523.68,-132.58 678.75,-126.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-437.75C684.49,-440.67 525.46,-131.67 678.75,-128.75"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M534.75,-439.75C686.26,-439.75 527.24,-130.75 678.75,-130.75"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M534.75,-441.75C688.04,-438.83 529.01,-129.83 678.75,-132.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534.75,-443.75C689.82,-437.92 530.79,-128.92 678.75,-134.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 46 KiB

4
examples/ex10.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

490
examples/ex10.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex10</title>
<style>
@ -30,327 +30,327 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="1120pt" height="324pt"
viewBox="0.00 0.00 1120.00 324.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 320)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-320 1116,-320 1116,4 -4,4"/>
<svg width="1089pt" height="326pt"
viewBox="0.00 0.00 1089.00 325.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 321.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-321.5 1085,-321.5 1085,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="298,-264 0,-264 0,-34 298,-34 298,-264"/>
<polygon fill="none" stroke="black" points="0,-241 0,-264 298,-264 298,-241 0,-241"/>
<text text-anchor="start" x="140" y="-248.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-218 0,-241 219,-241 219,-218 0,-218"/>
<text text-anchor="start" x="4" y="-225.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="219,-218 219,-241 258,-241 258,-218 219,-218"/>
<text text-anchor="start" x="223" y="-225.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="258,-218 258,-241 298,-241 298,-218 258,-218"/>
<text text-anchor="start" x="262" y="-225.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-195 0,-218 160,-218 160,-195 0,-195"/>
<text text-anchor="start" x="66" y="-202.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="160,-195 160,-218 298,-218 298,-195 160,-195"/>
<text text-anchor="start" x="225" y="-202.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-172 0,-195 160,-195 160,-172 0,-172"/>
<text text-anchor="start" x="67.5" y="-179.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="160,-172 160,-195 298,-195 298,-172 160,-172"/>
<text text-anchor="start" x="225" y="-179.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-149 0,-172 160,-172 160,-149 0,-149"/>
<text text-anchor="start" x="66" y="-156.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="160,-149 160,-172 298,-172 298,-149 160,-149"/>
<text text-anchor="start" x="225" y="-156.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-126 0,-149 160,-149 160,-126 0,-126"/>
<text text-anchor="start" x="65.5" y="-133.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="160,-126 160,-149 298,-149 298,-126 160,-126"/>
<text text-anchor="start" x="225" y="-133.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-103 0,-126 160,-126 160,-103 0,-103"/>
<text text-anchor="start" x="67.5" y="-110.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="160,-103 160,-126 298,-126 298,-103 160,-103"/>
<text text-anchor="start" x="225" y="-110.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-80 0,-103 160,-103 160,-80 0,-80"/>
<text text-anchor="start" x="67.5" y="-87.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="160,-80 160,-103 298,-103 298,-80 160,-80"/>
<text text-anchor="start" x="225" y="-87.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-57 0,-80 160,-80 160,-57 0,-57"/>
<text text-anchor="start" x="65.5" y="-64.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="160,-57 160,-80 298,-80 298,-57 160,-57"/>
<text text-anchor="start" x="225" y="-64.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-34 0,-57 160,-57 160,-34 0,-34"/>
<text text-anchor="start" x="67.5" y="-41.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="160,-34 160,-57 298,-57 298,-34 160,-34"/>
<text text-anchor="start" x="225" y="-41.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="#ffffff" stroke="black" points="286.5,-264.5 0,-264.5 0,-33 286.5,-33 286.5,-264.5"/>
<polygon fill="none" stroke="black" points="0,-240.75 0,-264.5 286.5,-264.5 286.5,-240.75 0,-240.75"/>
<text text-anchor="start" x="135" y="-247.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-217 0,-240.75 210.5,-240.75 210.5,-217 0,-217"/>
<text text-anchor="start" x="4" y="-223.45" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="210.5,-217 210.5,-240.75 248.5,-240.75 248.5,-217 210.5,-217"/>
<text text-anchor="start" x="214.5" y="-223.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="248.5,-217 248.5,-240.75 286.5,-240.75 286.5,-217 248.5,-217"/>
<text text-anchor="start" x="252.5" y="-223.45" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-194 0,-217 153.25,-217 153.25,-194 0,-194"/>
<text text-anchor="start" x="63.12" y="-199.7" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="153.25,-194 153.25,-217 286.5,-217 286.5,-194 153.25,-194"/>
<text text-anchor="start" x="216.12" y="-199.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-171 0,-194 153.25,-194 153.25,-171 0,-171"/>
<text text-anchor="start" x="65" y="-176.7" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-171 153.25,-194 286.5,-194 286.5,-171 153.25,-171"/>
<text text-anchor="start" x="216.12" y="-176.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-148 0,-171 153.25,-171 153.25,-148 0,-148"/>
<text text-anchor="start" x="63.12" y="-153.7" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="153.25,-148 153.25,-171 286.5,-171 286.5,-148 153.25,-148"/>
<text text-anchor="start" x="216.12" y="-153.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-125 0,-148 153.25,-148 153.25,-125 0,-125"/>
<text text-anchor="start" x="62.75" y="-130.7" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="153.25,-125 153.25,-148 286.5,-148 286.5,-125 153.25,-125"/>
<text text-anchor="start" x="216.12" y="-130.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-102 0,-125 153.25,-125 153.25,-102 0,-102"/>
<text text-anchor="start" x="64.62" y="-107.7" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-102 153.25,-125 286.5,-125 286.5,-102 153.25,-102"/>
<text text-anchor="start" x="216.12" y="-107.7" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-79 0,-102 153.25,-102 153.25,-79 0,-79"/>
<text text-anchor="start" x="65" y="-84.7" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-79 153.25,-102 286.5,-102 286.5,-79 153.25,-79"/>
<text text-anchor="start" x="216.12" y="-84.7" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-56 0,-79 153.25,-79 153.25,-56 0,-56"/>
<text text-anchor="start" x="62.75" y="-61.7" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="153.25,-56 153.25,-79 286.5,-79 286.5,-56 153.25,-56"/>
<text text-anchor="start" x="216.12" y="-61.7" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-33 0,-56 153.25,-56 153.25,-33 0,-33"/>
<text text-anchor="start" x="64.62" y="-38.7" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-33 153.25,-56 286.5,-56 286.5,-33 153.25,-33"/>
<text text-anchor="start" x="216.12" y="-38.7" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="670,-316 442,-316 442,0 670,0 670,-316"/>
<polygon fill="none" stroke="black" points="442,-293 442,-316 670,-316 670,-293 442,-293"/>
<text text-anchor="start" x="545.5" y="-300.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="442,-270 442,-293 509,-293 509,-270 442,-270"/>
<text text-anchor="start" x="454" y="-277.8" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="509,-270 509,-293 548,-293 548,-270 509,-270"/>
<text text-anchor="start" x="521" y="-277.8" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="548,-270 548,-293 623,-293 623,-270 548,-270"/>
<text text-anchor="start" x="559.5" y="-277.8" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="623,-270 623,-293 670,-293 670,-270 623,-270"/>
<text text-anchor="start" x="634.5" y="-277.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="473" y="-256.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="444.5" y="-237.8" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="510" y="-237.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-237.8" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="transparent" points="442,-230 442,-232 670,-232 670,-230 442,-230"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-228 442,-230 670,-230 670,-228 442,-228"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-226 442,-228 670,-228 670,-226 442,-226"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-224 442,-226 670,-226 670,-224 442,-224"/>
<polygon fill="#000000" stroke="transparent" points="442,-222 442,-224 670,-224 670,-222 442,-222"/>
<text text-anchor="start" x="446.5" y="-208.8" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="522" y="-208.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-208.8" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-201 442,-203 670,-203 670,-201 442,-201"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-199 442,-201 670,-201 670,-199 442,-199"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-197 442,-199 670,-199 670,-197 442,-197"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-195 442,-197 670,-197 670,-195 442,-195"/>
<polygon fill="#000000" stroke="transparent" points="442,-193 442,-195 670,-195 670,-193 442,-193"/>
<text text-anchor="start" x="444.5" y="-179.8" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="510" y="-179.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-179.8" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="transparent" points="442,-172 442,-174 670,-174 670,-172 442,-172"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-170 442,-172 670,-172 670,-170 442,-170"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-168 442,-170 670,-170 670,-168 442,-168"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-166 442,-168 670,-168 670,-166 442,-166"/>
<polygon fill="#000000" stroke="transparent" points="442,-164 442,-166 670,-166 670,-164 442,-164"/>
<text text-anchor="start" x="444" y="-150.8" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="522.5" y="-150.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-150.8" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="transparent" points="442,-143 442,-145 670,-145 670,-143 442,-143"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-141 442,-143 670,-143 670,-141 442,-141"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-139 442,-141 670,-141 670,-139 442,-139"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-137 442,-139 670,-139 670,-137 442,-137"/>
<polygon fill="#000000" stroke="transparent" points="442,-135 442,-137 670,-137 670,-135 442,-135"/>
<text text-anchor="start" x="446" y="-121.8" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="511" y="-121.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-121.8" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-114 442,-116 670,-116 670,-114 442,-114"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-112 442,-114 670,-114 670,-112 442,-112"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-110 442,-112 670,-112 670,-110 442,-110"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-108 442,-110 670,-110 670,-108 442,-108"/>
<polygon fill="#000000" stroke="transparent" points="442,-106 442,-108 670,-108 670,-106 442,-106"/>
<text text-anchor="start" x="446.5" y="-92.8" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="521.5" y="-92.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-92.8" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-85 442,-87 670,-87 670,-85 442,-85"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-83 442,-85 670,-85 670,-83 442,-83"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-81 442,-83 670,-83 670,-81 442,-81"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-79 442,-81 670,-81 670,-79 442,-79"/>
<polygon fill="#000000" stroke="transparent" points="442,-77 442,-79 670,-79 670,-77 442,-77"/>
<text text-anchor="start" x="444" y="-63.8" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="511" y="-63.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-63.8" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="transparent" points="442,-56 442,-58 670,-58 670,-56 442,-56"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-54 442,-56 670,-56 670,-54 442,-54"/>
<polygon fill="#895956" stroke="transparent" points="442,-52 442,-54 670,-54 670,-52 442,-52"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-50 442,-52 670,-52 670,-50 442,-50"/>
<polygon fill="#000000" stroke="transparent" points="442,-48 442,-50 670,-50 670,-48 442,-48"/>
<text text-anchor="start" x="446" y="-34.8" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="522.5" y="-34.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-34.8" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-27 442,-29 670,-29 670,-27 442,-27"/>
<polygon fill="#895956" stroke="transparent" points="442,-25 442,-27 670,-27 670,-25 442,-25"/>
<polygon fill="#895956" stroke="transparent" points="442,-23 442,-25 670,-25 670,-23 442,-23"/>
<polygon fill="#895956" stroke="transparent" points="442,-21 442,-23 670,-23 670,-21 442,-21"/>
<polygon fill="#000000" stroke="transparent" points="442,-19 442,-21 670,-21 670,-19 442,-19"/>
<text text-anchor="start" x="473" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="650.5,-317.5 430.5,-317.5 430.5,0 650.5,0 650.5,-317.5"/>
<polygon fill="none" stroke="black" points="430.5,-293.75 430.5,-317.5 650.5,-317.5 650.5,-293.75 430.5,-293.75"/>
<text text-anchor="start" x="530" y="-300.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="430.5,-270 430.5,-293.75 494.12,-293.75 494.12,-270 430.5,-270"/>
<text text-anchor="start" x="441.69" y="-276.45" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="494.12,-270 494.12,-293.75 530.75,-293.75 530.75,-270 494.12,-270"/>
<text text-anchor="start" x="505.31" y="-276.45" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="530.75,-270 530.75,-293.75 604.88,-293.75 604.88,-270 530.75,-270"/>
<text text-anchor="start" x="541.94" y="-276.45" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="604.88,-270 604.88,-293.75 650.5,-293.75 650.5,-270 604.88,-270"/>
<text text-anchor="start" x="616.06" y="-276.45" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="460.12" y="-254.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="432.75" y="-235.7" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="495.88" y="-235.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.75" y="-235.7" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="none" points="430.5,-230 430.5,-232 650.5,-232 650.5,-230 430.5,-230"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-228 430.5,-230 650.5,-230 650.5,-228 430.5,-228"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-226 430.5,-228 650.5,-228 650.5,-226 430.5,-226"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-224 430.5,-226 650.5,-226 650.5,-224 430.5,-224"/>
<polygon fill="#000000" stroke="none" points="430.5,-222 430.5,-224 650.5,-224 650.5,-222 430.5,-222"/>
<text text-anchor="start" x="434.62" y="-206.7" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="507.5" y="-206.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.62" y="-206.7" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-201 430.5,-203 650.5,-203 650.5,-201 430.5,-201"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-199 430.5,-201 650.5,-201 650.5,-199 430.5,-199"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-197 430.5,-199 650.5,-199 650.5,-197 430.5,-197"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-195 430.5,-197 650.5,-197 650.5,-195 430.5,-195"/>
<polygon fill="#000000" stroke="none" points="430.5,-193 430.5,-195 650.5,-195 650.5,-193 430.5,-193"/>
<text text-anchor="start" x="432.75" y="-177.7" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="495.12" y="-177.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.75" y="-177.7" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="none" points="430.5,-172 430.5,-174 650.5,-174 650.5,-172 430.5,-172"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-170 430.5,-172 650.5,-172 650.5,-170 430.5,-170"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-168 430.5,-170 650.5,-170 650.5,-168 430.5,-168"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-166 430.5,-168 650.5,-168 650.5,-166 430.5,-166"/>
<polygon fill="#000000" stroke="none" points="430.5,-164 430.5,-166 650.5,-166 650.5,-164 430.5,-164"/>
<text text-anchor="start" x="432.38" y="-148.7" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="508.62" y="-148.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.38" y="-148.7" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="none" points="430.5,-143 430.5,-145 650.5,-145 650.5,-143 430.5,-143"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-141 430.5,-143 650.5,-143 650.5,-141 430.5,-141"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-139 430.5,-141 650.5,-141 650.5,-139 430.5,-139"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-137 430.5,-139 650.5,-139 650.5,-137 430.5,-137"/>
<polygon fill="#000000" stroke="none" points="430.5,-135 430.5,-137 650.5,-137 650.5,-135 430.5,-135"/>
<text text-anchor="start" x="434.25" y="-119.7" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="497" y="-119.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.25" y="-119.7" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-114 430.5,-116 650.5,-116 650.5,-114 430.5,-114"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-112 430.5,-114 650.5,-114 650.5,-112 430.5,-112"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-110 430.5,-112 650.5,-112 650.5,-110 430.5,-110"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-108 430.5,-110 650.5,-110 650.5,-108 430.5,-108"/>
<polygon fill="#000000" stroke="none" points="430.5,-106 430.5,-108 650.5,-108 650.5,-106 430.5,-106"/>
<text text-anchor="start" x="434.62" y="-90.7" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="506.75" y="-90.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.62" y="-90.7" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-85 430.5,-87 650.5,-87 650.5,-85 430.5,-85"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-83 430.5,-85 650.5,-85 650.5,-83 430.5,-83"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-81 430.5,-83 650.5,-83 650.5,-81 430.5,-81"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-79 430.5,-81 650.5,-81 650.5,-79 430.5,-79"/>
<polygon fill="#000000" stroke="none" points="430.5,-77 430.5,-79 650.5,-79 650.5,-77 430.5,-77"/>
<text text-anchor="start" x="432.38" y="-61.7" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="497" y="-61.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.38" y="-61.7" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="none" points="430.5,-56 430.5,-58 650.5,-58 650.5,-56 430.5,-56"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-54 430.5,-56 650.5,-56 650.5,-54 430.5,-54"/>
<polygon fill="#895956" stroke="none" points="430.5,-52 430.5,-54 650.5,-54 650.5,-52 430.5,-52"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-50 430.5,-52 650.5,-52 650.5,-50 430.5,-50"/>
<polygon fill="#000000" stroke="none" points="430.5,-48 430.5,-50 650.5,-50 650.5,-48 430.5,-48"/>
<text text-anchor="start" x="434.25" y="-32.7" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="508.62" y="-32.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.25" y="-32.7" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-27 430.5,-29 650.5,-29 650.5,-27 430.5,-27"/>
<polygon fill="#895956" stroke="none" points="430.5,-25 430.5,-27 650.5,-27 650.5,-25 430.5,-25"/>
<polygon fill="#895956" stroke="none" points="430.5,-23 430.5,-25 650.5,-25 650.5,-23 430.5,-23"/>
<polygon fill="#895956" stroke="none" points="430.5,-21 430.5,-23 650.5,-23 650.5,-21 430.5,-21"/>
<polygon fill="#000000" stroke="none" points="430.5,-19 430.5,-21 650.5,-21 650.5,-19 430.5,-19"/>
<text text-anchor="start" x="460.12" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-203C365.83,-204.62 380.6,-224.62 442,-223"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-205C364.22,-205.81 378.99,-225.81 442,-225"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-207C362.61,-207 377.39,-227 442,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-209C361.01,-208.19 375.78,-228.19 442,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-211C359.4,-209.38 374.17,-229.38 442,-231"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-201.75C354.46,-203.46 369.1,-224.46 430.5,-222.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-203.75C352.82,-204.61 367.46,-225.61 430.5,-224.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-205.75C351.18,-205.75 365.82,-226.75 430.5,-226.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-207.75C349.54,-206.89 364.18,-227.89 430.5,-228.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-209.75C347.9,-208.04 362.54,-229.04 430.5,-230.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-180C364.99,-181.04 380.39,-195.04 442,-194"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-182C363.65,-182.52 379.04,-196.52 442,-196"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-184C362.3,-184 377.7,-198 442,-198"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-186C360.96,-185.48 376.35,-199.48 442,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-188C359.61,-186.96 375.01,-200.96 442,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-178.75C353.65,-179.89 368.95,-194.89 430.5,-193.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-180.75C352.25,-181.32 367.55,-196.32 430.5,-195.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-182.75C350.85,-182.75 366.15,-197.75 430.5,-197.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-184.75C349.45,-184.18 364.75,-199.18 430.5,-199.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-186.75C348.05,-185.61 363.35,-200.61 430.5,-201.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-157C363.91,-157.43 379.71,-165.43 442,-165"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-159C363,-159.22 378.8,-167.22 442,-167"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-161C362.1,-161 377.9,-169 442,-169"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-163C361.2,-162.78 377,-170.78 442,-171"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-165C360.29,-164.57 376.09,-172.57 442,-173"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-155.75C352.61,-156.28 368.36,-165.28 430.5,-164.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-157.75C351.62,-158.01 367.37,-167.01 430.5,-166.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-159.75C350.62,-159.75 366.38,-168.75 430.5,-168.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-161.75C349.63,-161.49 365.38,-170.49 430.5,-170.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-163.75C348.64,-163.22 364.39,-172.22 430.5,-172.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-133C362.75,-133.07 378.72,-136.07 442,-136"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-135C362.38,-135.03 378.36,-138.03 442,-138"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-137C362.01,-137 377.99,-140 442,-140"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-139C361.64,-138.97 377.62,-141.97 442,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-141C361.28,-140.93 377.25,-143.93 442,-144"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-132.75C351.25,-132.82 367.22,-135.82 430.5,-135.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-134.75C350.88,-134.78 366.86,-137.78 430.5,-137.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-136.75C350.51,-136.75 366.49,-139.75 430.5,-139.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-138.75C350.14,-138.72 366.12,-141.72 430.5,-141.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-140.75C349.78,-140.68 365.75,-143.68 430.5,-143.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-110C361.28,-110.07 377.25,-107.07 442,-107"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-112C361.64,-112.03 377.62,-109.03 442,-109"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-114C362.01,-114 377.99,-111 442,-111"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-116C362.38,-115.97 378.36,-112.97 442,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-118C362.75,-117.93 378.72,-114.93 442,-115"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-109.75C349.78,-109.82 365.75,-106.82 430.5,-106.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-111.75C350.14,-111.78 366.12,-108.78 430.5,-108.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-113.75C350.51,-113.75 366.49,-110.75 430.5,-110.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-115.75C350.88,-115.72 366.86,-112.72 430.5,-112.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-117.75C351.25,-117.68 367.22,-114.68 430.5,-114.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-87C360.14,-87.53 375.89,-78.53 442,-78"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-89C361.13,-89.26 376.88,-80.26 442,-80"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-91C362.12,-91 377.88,-82 442,-82"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-93C363.12,-92.74 378.87,-83.74 442,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-95C364.11,-94.47 379.86,-85.47 442,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-86.75C348.64,-87.28 364.39,-78.28 430.5,-77.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-88.75C349.63,-89.01 365.38,-80.01 430.5,-79.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-90.75C350.62,-90.75 366.38,-81.75 430.5,-81.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-92.75C351.62,-92.49 367.37,-83.49 430.5,-83.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-94.75C352.61,-94.22 368.36,-85.22 430.5,-85.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-64C359.55,-65.14 374.85,-50.14 442,-49"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-66C360.95,-66.57 376.25,-51.57 442,-51"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-68C362.35,-68 377.65,-53 442,-53"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-70C363.75,-69.43 379.05,-54.43 442,-55"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-72C365.15,-70.86 380.45,-55.86 442,-57"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-63.75C348.05,-64.89 363.35,-49.89 430.5,-48.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-65.75C349.45,-66.32 364.75,-51.32 430.5,-50.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-67.75C350.85,-67.75 366.15,-52.75 430.5,-52.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-69.75C352.25,-69.18 367.55,-54.18 430.5,-54.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-71.75C353.65,-70.61 368.95,-55.61 430.5,-56.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-41C359.4,-42.71 374.04,-21.71 442,-20"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-43C361.04,-43.86 375.68,-22.86 442,-22"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-45C362.68,-45 377.32,-24 442,-24"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-47C364.32,-46.14 378.96,-25.14 442,-26"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-49C365.96,-47.29 380.6,-26.29 442,-28"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-40.75C347.9,-42.46 362.54,-21.46 430.5,-19.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-42.75C349.54,-43.61 364.18,-22.61 430.5,-21.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-44.75C351.18,-44.75 365.82,-23.75 430.5,-23.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-46.75C352.82,-45.89 367.46,-24.89 430.5,-25.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-48.75C354.46,-47.04 369.1,-26.04 430.5,-27.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="1112,-278 814,-278 814,-48 1112,-48 1112,-278"/>
<polygon fill="none" stroke="black" points="814,-255 814,-278 1112,-278 1112,-255 814,-255"/>
<text text-anchor="start" x="954" y="-262.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="814,-232 814,-255 1033,-255 1033,-232 814,-232"/>
<text text-anchor="start" x="818" y="-239.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1033,-232 1033,-255 1072,-255 1072,-232 1033,-232"/>
<text text-anchor="start" x="1037" y="-239.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1072,-232 1072,-255 1112,-255 1112,-232 1072,-232"/>
<text text-anchor="start" x="1076" y="-239.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="814,-209 814,-232 953,-232 953,-209 814,-209"/>
<text text-anchor="start" x="879.5" y="-216.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="953,-209 953,-232 1112,-232 1112,-209 953,-209"/>
<text text-anchor="start" x="1018.5" y="-216.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="814,-186 814,-209 953,-209 953,-186 814,-186"/>
<text text-anchor="start" x="879.5" y="-193.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="953,-186 953,-209 1112,-209 1112,-186 953,-186"/>
<text text-anchor="start" x="1020" y="-193.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="814,-163 814,-186 953,-186 953,-163 814,-163"/>
<text text-anchor="start" x="879.5" y="-170.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="953,-163 953,-186 1112,-186 1112,-163 953,-163"/>
<text text-anchor="start" x="1018.5" y="-170.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="814,-140 814,-163 953,-163 953,-140 814,-140"/>
<text text-anchor="start" x="879.5" y="-147.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="953,-140 953,-163 1112,-163 1112,-140 953,-140"/>
<text text-anchor="start" x="1018" y="-147.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="814,-117 814,-140 953,-140 953,-117 814,-117"/>
<text text-anchor="start" x="879.5" y="-124.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="953,-117 953,-140 1112,-140 1112,-117 953,-117"/>
<text text-anchor="start" x="1020" y="-124.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="814,-94 814,-117 953,-117 953,-94 814,-94"/>
<text text-anchor="start" x="879.5" y="-101.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="953,-94 953,-117 1112,-117 1112,-94 953,-94"/>
<text text-anchor="start" x="1020" y="-101.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="814,-71 814,-94 953,-94 953,-71 814,-71"/>
<text text-anchor="start" x="879.5" y="-78.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="953,-71 953,-94 1112,-94 1112,-71 953,-71"/>
<text text-anchor="start" x="1018" y="-78.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="814,-48 814,-71 953,-71 953,-48 814,-48"/>
<text text-anchor="start" x="879.5" y="-55.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="953,-48 953,-71 1112,-71 1112,-48 953,-48"/>
<text text-anchor="start" x="1020" y="-55.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="#ffffff" stroke="black" points="1081,-278.5 794.5,-278.5 794.5,-47 1081,-47 1081,-278.5"/>
<polygon fill="none" stroke="black" points="794.5,-254.75 794.5,-278.5 1081,-278.5 1081,-254.75 794.5,-254.75"/>
<text text-anchor="start" x="929.5" y="-261.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="794.5,-231 794.5,-254.75 1005,-254.75 1005,-231 794.5,-231"/>
<text text-anchor="start" x="798.5" y="-237.45" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1005,-231 1005,-254.75 1043,-254.75 1043,-231 1005,-231"/>
<text text-anchor="start" x="1009" y="-237.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1043,-231 1043,-254.75 1081,-254.75 1081,-231 1043,-231"/>
<text text-anchor="start" x="1047" y="-237.45" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="794.5,-208 794.5,-231 927.75,-231 927.75,-208 794.5,-208"/>
<text text-anchor="start" x="857.38" y="-213.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="927.75,-208 927.75,-231 1081,-231 1081,-208 927.75,-208"/>
<text text-anchor="start" x="990.88" y="-213.7" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="794.5,-185 794.5,-208 927.75,-208 927.75,-185 794.5,-185"/>
<text text-anchor="start" x="857.38" y="-190.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="927.75,-185 927.75,-208 1081,-208 1081,-185 927.75,-185"/>
<text text-anchor="start" x="992.75" y="-190.7" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="794.5,-162 794.5,-185 927.75,-185 927.75,-162 794.5,-162"/>
<text text-anchor="start" x="857.38" y="-167.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="927.75,-162 927.75,-185 1081,-185 1081,-162 927.75,-162"/>
<text text-anchor="start" x="990.88" y="-167.7" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="794.5,-139 794.5,-162 927.75,-162 927.75,-139 794.5,-139"/>
<text text-anchor="start" x="857.38" y="-144.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="927.75,-139 927.75,-162 1081,-162 1081,-139 927.75,-139"/>
<text text-anchor="start" x="990.5" y="-144.7" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="794.5,-116 794.5,-139 927.75,-139 927.75,-116 794.5,-116"/>
<text text-anchor="start" x="857.38" y="-121.7" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="927.75,-116 927.75,-139 1081,-139 1081,-116 927.75,-116"/>
<text text-anchor="start" x="992.38" y="-121.7" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="794.5,-93 794.5,-116 927.75,-116 927.75,-93 794.5,-93"/>
<text text-anchor="start" x="857.38" y="-98.7" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="927.75,-93 927.75,-116 1081,-116 1081,-93 927.75,-93"/>
<text text-anchor="start" x="992.75" y="-98.7" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="794.5,-70 794.5,-93 927.75,-93 927.75,-70 794.5,-70"/>
<text text-anchor="start" x="857.38" y="-75.7" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="927.75,-70 927.75,-93 1081,-93 1081,-70 927.75,-70"/>
<text text-anchor="start" x="990.5" y="-75.7" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="794.5,-47 794.5,-70 927.75,-70 927.75,-47 794.5,-47"/>
<text text-anchor="start" x="857.38" y="-52.7" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="927.75,-47 927.75,-70 1081,-70 1081,-47 927.75,-47"/>
<text text-anchor="start" x="992.38" y="-52.7" font-family="arial" font-size="14.00">DC&#45;</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-223C734.09,-226.4 742,-174.4 814,-171"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-225C736.07,-226.7 743.98,-174.7 814,-173"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-227C738.05,-227 745.95,-175 814,-175"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-229C740.02,-227.3 747.93,-175.3 814,-177"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-231C742,-227.6 749.91,-175.6 814,-179"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-222.75C714.74,-226.18 722.34,-173.18 794.5,-169.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-224.75C716.72,-226.47 724.32,-173.47 794.5,-171.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-226.75C718.7,-226.75 726.3,-173.75 794.5,-173.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-228.75C720.68,-227.03 728.28,-174.03 794.5,-175.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-230.75C722.66,-227.32 730.26,-174.32 794.5,-177.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-194C742.2,-198.36 733.83,-105.36 814,-101"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-196C744.19,-198.18 735.82,-105.18 814,-103"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-198C746.19,-198 737.81,-105 814,-105"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-200C748.18,-197.82 739.81,-104.82 814,-107"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-202C750.17,-197.64 741.8,-104.64 814,-109"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-193.75C722.7,-198.11 714.33,-105.11 794.5,-100.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-195.75C724.69,-197.93 716.32,-104.93 794.5,-102.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-197.75C726.69,-197.75 718.31,-104.75 794.5,-104.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-199.75C728.68,-197.57 720.31,-104.57 794.5,-106.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-201.75C730.67,-197.39 722.3,-104.39 794.5,-108.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-165C742,-168.4 749.91,-220.4 814,-217"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-167C740.02,-168.7 747.93,-220.7 814,-219"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-169C738.05,-169 745.95,-221 814,-221"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-171C736.07,-169.3 743.98,-221.3 814,-223"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-173C734.09,-169.6 742,-221.6 814,-225"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-164.75C722.34,-168.11 730.55,-219.11 794.5,-215.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-166.75C720.37,-168.43 728.58,-219.43 794.5,-217.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-168.75C718.4,-168.75 726.6,-219.75 794.5,-219.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-170.75C716.42,-169.07 724.63,-220.07 794.5,-221.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-172.75C714.45,-169.39 722.66,-220.39 794.5,-223.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-136C735.02,-139.59 741.02,-81.59 814,-78"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-138C737.01,-139.79 743.01,-81.79 814,-80"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-140C739,-140 745,-82 814,-82"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-142C740.99,-140.21 746.99,-82.21 814,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-144C742.98,-140.41 748.98,-82.41 814,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-135.75C715.52,-139.34 721.52,-81.34 794.5,-77.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-137.75C717.51,-139.54 723.51,-81.54 794.5,-79.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-139.75C719.5,-139.75 725.5,-81.75 794.5,-81.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-141.75C721.49,-139.96 727.49,-81.96 794.5,-83.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-143.75C723.48,-140.16 729.48,-82.16 794.5,-85.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-107C734.09,-110.4 742,-58.4 814,-55"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-109C736.07,-110.7 743.98,-58.7 814,-57"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-111C738.05,-111 745.95,-59 814,-59"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-113C740.02,-111.3 747.93,-59.3 814,-61"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-115C742,-111.6 749.91,-59.6 814,-63"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-106.75C714.59,-110.15 722.5,-58.15 794.5,-54.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-108.75C716.57,-110.45 724.48,-58.45 794.5,-56.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-110.75C718.55,-110.75 726.45,-58.75 794.5,-58.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-112.75C720.52,-111.05 728.43,-59.05 794.5,-60.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-114.75C722.5,-111.35 730.41,-59.35 794.5,-62.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-78C756.12,-82.69 735.76,-198.69 814,-194"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-80C754.15,-82.35 733.79,-198.35 814,-196"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-82C752.18,-82 731.82,-198 814,-198"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-84C750.21,-81.65 729.85,-197.65 814,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-86C748.24,-81.31 727.88,-197.31 814,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-77.75C736.35,-82.43 716.54,-197.43 794.5,-192.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-79.75C734.38,-82.09 714.57,-197.09 794.5,-194.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-81.75C732.4,-81.75 712.6,-196.75 794.5,-196.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-83.75C730.43,-81.41 710.62,-196.41 794.5,-198.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-85.75C728.46,-81.07 708.65,-196.07 794.5,-200.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-49C751.39,-53.44 740.56,-151.44 814,-147"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-51C749.4,-53.22 738.57,-151.22 814,-149"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-53C747.42,-53 736.58,-151 814,-151"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-55C745.43,-52.78 734.6,-150.78 814,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-57C743.44,-52.56 732.61,-150.56 814,-155"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-48.75C731.89,-53.19 721.06,-151.19 794.5,-146.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-50.75C729.9,-52.97 719.07,-150.97 794.5,-148.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-52.75C727.92,-52.75 717.08,-150.75 794.5,-150.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-54.75C725.93,-52.53 715.1,-150.53 794.5,-152.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-56.75C723.94,-52.31 713.11,-150.31 794.5,-154.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-20C752.91,-24.53 739.02,-128.53 814,-124"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-22C750.93,-24.26 737.04,-128.26 814,-126"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-24C748.95,-24 735.05,-128 814,-128"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-26C746.96,-23.74 733.07,-127.74 814,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-28C744.98,-23.47 731.09,-127.47 814,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-19.75C733.41,-24.28 719.52,-128.28 794.5,-123.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-21.75C731.43,-24.01 717.54,-128.01 794.5,-125.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-23.75C729.45,-23.75 715.55,-127.75 794.5,-127.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-25.75C727.46,-23.49 713.57,-127.49 794.5,-129.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-27.75C725.48,-23.22 711.59,-127.22 794.5,-131.75"/>
</g>
</g>
</svg>

BIN
examples/ex10.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

488
examples/ex10.svg generated
View File

@ -1,327 +1,327 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="1120pt" height="324pt"
viewBox="0.00 0.00 1120.00 324.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 320)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-320 1116,-320 1116,4 -4,4"/>
<svg width="1089pt" height="326pt"
viewBox="0.00 0.00 1089.00 325.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 321.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-321.5 1085,-321.5 1085,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="298,-264 0,-264 0,-34 298,-34 298,-264"/>
<polygon fill="none" stroke="black" points="0,-241 0,-264 298,-264 298,-241 0,-241"/>
<text text-anchor="start" x="140" y="-248.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-218 0,-241 219,-241 219,-218 0,-218"/>
<text text-anchor="start" x="4" y="-225.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="219,-218 219,-241 258,-241 258,-218 219,-218"/>
<text text-anchor="start" x="223" y="-225.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="258,-218 258,-241 298,-241 298,-218 258,-218"/>
<text text-anchor="start" x="262" y="-225.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-195 0,-218 160,-218 160,-195 0,-195"/>
<text text-anchor="start" x="66" y="-202.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="160,-195 160,-218 298,-218 298,-195 160,-195"/>
<text text-anchor="start" x="225" y="-202.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-172 0,-195 160,-195 160,-172 0,-172"/>
<text text-anchor="start" x="67.5" y="-179.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="160,-172 160,-195 298,-195 298,-172 160,-172"/>
<text text-anchor="start" x="225" y="-179.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-149 0,-172 160,-172 160,-149 0,-149"/>
<text text-anchor="start" x="66" y="-156.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="160,-149 160,-172 298,-172 298,-149 160,-149"/>
<text text-anchor="start" x="225" y="-156.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-126 0,-149 160,-149 160,-126 0,-126"/>
<text text-anchor="start" x="65.5" y="-133.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="160,-126 160,-149 298,-149 298,-126 160,-126"/>
<text text-anchor="start" x="225" y="-133.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-103 0,-126 160,-126 160,-103 0,-103"/>
<text text-anchor="start" x="67.5" y="-110.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="160,-103 160,-126 298,-126 298,-103 160,-103"/>
<text text-anchor="start" x="225" y="-110.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-80 0,-103 160,-103 160,-80 0,-80"/>
<text text-anchor="start" x="67.5" y="-87.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="160,-80 160,-103 298,-103 298,-80 160,-80"/>
<text text-anchor="start" x="225" y="-87.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-57 0,-80 160,-80 160,-57 0,-57"/>
<text text-anchor="start" x="65.5" y="-64.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="160,-57 160,-80 298,-80 298,-57 160,-57"/>
<text text-anchor="start" x="225" y="-64.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-34 0,-57 160,-57 160,-34 0,-34"/>
<text text-anchor="start" x="67.5" y="-41.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="160,-34 160,-57 298,-57 298,-34 160,-34"/>
<text text-anchor="start" x="225" y="-41.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="#ffffff" stroke="black" points="286.5,-264.5 0,-264.5 0,-33 286.5,-33 286.5,-264.5"/>
<polygon fill="none" stroke="black" points="0,-240.75 0,-264.5 286.5,-264.5 286.5,-240.75 0,-240.75"/>
<text text-anchor="start" x="135" y="-247.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-217 0,-240.75 210.5,-240.75 210.5,-217 0,-217"/>
<text text-anchor="start" x="4" y="-223.45" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="210.5,-217 210.5,-240.75 248.5,-240.75 248.5,-217 210.5,-217"/>
<text text-anchor="start" x="214.5" y="-223.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="248.5,-217 248.5,-240.75 286.5,-240.75 286.5,-217 248.5,-217"/>
<text text-anchor="start" x="252.5" y="-223.45" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-194 0,-217 153.25,-217 153.25,-194 0,-194"/>
<text text-anchor="start" x="63.12" y="-199.7" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="153.25,-194 153.25,-217 286.5,-217 286.5,-194 153.25,-194"/>
<text text-anchor="start" x="216.12" y="-199.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-171 0,-194 153.25,-194 153.25,-171 0,-171"/>
<text text-anchor="start" x="65" y="-176.7" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-171 153.25,-194 286.5,-194 286.5,-171 153.25,-171"/>
<text text-anchor="start" x="216.12" y="-176.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-148 0,-171 153.25,-171 153.25,-148 0,-148"/>
<text text-anchor="start" x="63.12" y="-153.7" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="153.25,-148 153.25,-171 286.5,-171 286.5,-148 153.25,-148"/>
<text text-anchor="start" x="216.12" y="-153.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-125 0,-148 153.25,-148 153.25,-125 0,-125"/>
<text text-anchor="start" x="62.75" y="-130.7" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="153.25,-125 153.25,-148 286.5,-148 286.5,-125 153.25,-125"/>
<text text-anchor="start" x="216.12" y="-130.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-102 0,-125 153.25,-125 153.25,-102 0,-102"/>
<text text-anchor="start" x="64.62" y="-107.7" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-102 153.25,-125 286.5,-125 286.5,-102 153.25,-102"/>
<text text-anchor="start" x="216.12" y="-107.7" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-79 0,-102 153.25,-102 153.25,-79 0,-79"/>
<text text-anchor="start" x="65" y="-84.7" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-79 153.25,-102 286.5,-102 286.5,-79 153.25,-79"/>
<text text-anchor="start" x="216.12" y="-84.7" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-56 0,-79 153.25,-79 153.25,-56 0,-56"/>
<text text-anchor="start" x="62.75" y="-61.7" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="153.25,-56 153.25,-79 286.5,-79 286.5,-56 153.25,-56"/>
<text text-anchor="start" x="216.12" y="-61.7" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-33 0,-56 153.25,-56 153.25,-33 0,-33"/>
<text text-anchor="start" x="64.62" y="-38.7" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="153.25,-33 153.25,-56 286.5,-56 286.5,-33 153.25,-33"/>
<text text-anchor="start" x="216.12" y="-38.7" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="670,-316 442,-316 442,0 670,0 670,-316"/>
<polygon fill="none" stroke="black" points="442,-293 442,-316 670,-316 670,-293 442,-293"/>
<text text-anchor="start" x="545.5" y="-300.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="442,-270 442,-293 509,-293 509,-270 442,-270"/>
<text text-anchor="start" x="454" y="-277.8" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="509,-270 509,-293 548,-293 548,-270 509,-270"/>
<text text-anchor="start" x="521" y="-277.8" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="548,-270 548,-293 623,-293 623,-270 548,-270"/>
<text text-anchor="start" x="559.5" y="-277.8" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="623,-270 623,-293 670,-293 670,-270 623,-270"/>
<text text-anchor="start" x="634.5" y="-277.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="473" y="-256.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="444.5" y="-237.8" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="510" y="-237.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-237.8" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="transparent" points="442,-230 442,-232 670,-232 670,-230 442,-230"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-228 442,-230 670,-230 670,-228 442,-228"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-226 442,-228 670,-228 670,-226 442,-226"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-224 442,-226 670,-226 670,-224 442,-224"/>
<polygon fill="#000000" stroke="transparent" points="442,-222 442,-224 670,-224 670,-222 442,-222"/>
<text text-anchor="start" x="446.5" y="-208.8" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="522" y="-208.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-208.8" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-201 442,-203 670,-203 670,-201 442,-201"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-199 442,-201 670,-201 670,-199 442,-199"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-197 442,-199 670,-199 670,-197 442,-197"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-195 442,-197 670,-197 670,-195 442,-195"/>
<polygon fill="#000000" stroke="transparent" points="442,-193 442,-195 670,-195 670,-193 442,-193"/>
<text text-anchor="start" x="444.5" y="-179.8" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="510" y="-179.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-179.8" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="transparent" points="442,-172 442,-174 670,-174 670,-172 442,-172"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-170 442,-172 670,-172 670,-170 442,-170"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-168 442,-170 670,-170 670,-168 442,-168"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-166 442,-168 670,-168 670,-166 442,-166"/>
<polygon fill="#000000" stroke="transparent" points="442,-164 442,-166 670,-166 670,-164 442,-164"/>
<text text-anchor="start" x="444" y="-150.8" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="522.5" y="-150.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-150.8" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="transparent" points="442,-143 442,-145 670,-145 670,-143 442,-143"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-141 442,-143 670,-143 670,-141 442,-141"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-139 442,-141 670,-141 670,-139 442,-139"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-137 442,-139 670,-139 670,-137 442,-137"/>
<polygon fill="#000000" stroke="transparent" points="442,-135 442,-137 670,-137 670,-135 442,-135"/>
<text text-anchor="start" x="446" y="-121.8" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="511" y="-121.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-121.8" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-114 442,-116 670,-116 670,-114 442,-114"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-112 442,-114 670,-114 670,-112 442,-112"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-110 442,-112 670,-112 670,-110 442,-110"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-108 442,-110 670,-110 670,-108 442,-108"/>
<polygon fill="#000000" stroke="transparent" points="442,-106 442,-108 670,-108 670,-106 442,-106"/>
<text text-anchor="start" x="446.5" y="-92.8" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="521.5" y="-92.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-92.8" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-85 442,-87 670,-87 670,-85 442,-85"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-83 442,-85 670,-85 670,-83 442,-83"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-81 442,-83 670,-83 670,-81 442,-81"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-79 442,-81 670,-81 670,-79 442,-79"/>
<polygon fill="#000000" stroke="transparent" points="442,-77 442,-79 670,-79 670,-77 442,-77"/>
<text text-anchor="start" x="444" y="-63.8" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="511" y="-63.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-63.8" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="transparent" points="442,-56 442,-58 670,-58 670,-56 442,-56"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-54 442,-56 670,-56 670,-54 442,-54"/>
<polygon fill="#895956" stroke="transparent" points="442,-52 442,-54 670,-54 670,-52 442,-52"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-50 442,-52 670,-52 670,-50 442,-50"/>
<polygon fill="#000000" stroke="transparent" points="442,-48 442,-50 670,-50 670,-48 442,-48"/>
<text text-anchor="start" x="446" y="-34.8" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="522.5" y="-34.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-34.8" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-27 442,-29 670,-29 670,-27 442,-27"/>
<polygon fill="#895956" stroke="transparent" points="442,-25 442,-27 670,-27 670,-25 442,-25"/>
<polygon fill="#895956" stroke="transparent" points="442,-23 442,-25 670,-25 670,-23 442,-23"/>
<polygon fill="#895956" stroke="transparent" points="442,-21 442,-23 670,-23 670,-21 442,-21"/>
<polygon fill="#000000" stroke="transparent" points="442,-19 442,-21 670,-21 670,-19 442,-19"/>
<text text-anchor="start" x="473" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="650.5,-317.5 430.5,-317.5 430.5,0 650.5,0 650.5,-317.5"/>
<polygon fill="none" stroke="black" points="430.5,-293.75 430.5,-317.5 650.5,-317.5 650.5,-293.75 430.5,-293.75"/>
<text text-anchor="start" x="530" y="-300.2" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="430.5,-270 430.5,-293.75 494.12,-293.75 494.12,-270 430.5,-270"/>
<text text-anchor="start" x="441.69" y="-276.45" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="494.12,-270 494.12,-293.75 530.75,-293.75 530.75,-270 494.12,-270"/>
<text text-anchor="start" x="505.31" y="-276.45" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="530.75,-270 530.75,-293.75 604.88,-293.75 604.88,-270 530.75,-270"/>
<text text-anchor="start" x="541.94" y="-276.45" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="604.88,-270 604.88,-293.75 650.5,-293.75 650.5,-270 604.88,-270"/>
<text text-anchor="start" x="616.06" y="-276.45" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="460.12" y="-254.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="432.75" y="-235.7" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="495.88" y="-235.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.75" y="-235.7" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="none" points="430.5,-230 430.5,-232 650.5,-232 650.5,-230 430.5,-230"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-228 430.5,-230 650.5,-230 650.5,-228 430.5,-228"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-226 430.5,-228 650.5,-228 650.5,-226 430.5,-226"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-224 430.5,-226 650.5,-226 650.5,-224 430.5,-224"/>
<polygon fill="#000000" stroke="none" points="430.5,-222 430.5,-224 650.5,-224 650.5,-222 430.5,-222"/>
<text text-anchor="start" x="434.62" y="-206.7" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="507.5" y="-206.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.62" y="-206.7" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-201 430.5,-203 650.5,-203 650.5,-201 430.5,-201"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-199 430.5,-201 650.5,-201 650.5,-199 430.5,-199"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-197 430.5,-199 650.5,-199 650.5,-197 430.5,-197"/>
<polygon fill="#00ff00" stroke="none" points="430.5,-195 430.5,-197 650.5,-197 650.5,-195 430.5,-195"/>
<polygon fill="#000000" stroke="none" points="430.5,-193 430.5,-195 650.5,-195 650.5,-193 430.5,-193"/>
<text text-anchor="start" x="432.75" y="-177.7" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="495.12" y="-177.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.75" y="-177.7" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="none" points="430.5,-172 430.5,-174 650.5,-174 650.5,-172 430.5,-172"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-170 430.5,-172 650.5,-172 650.5,-170 430.5,-170"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-168 430.5,-170 650.5,-170 650.5,-168 430.5,-168"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-166 430.5,-168 650.5,-168 650.5,-166 430.5,-166"/>
<polygon fill="#000000" stroke="none" points="430.5,-164 430.5,-166 650.5,-166 650.5,-164 430.5,-164"/>
<text text-anchor="start" x="432.38" y="-148.7" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="508.62" y="-148.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.38" y="-148.7" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="none" points="430.5,-143 430.5,-145 650.5,-145 650.5,-143 430.5,-143"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-141 430.5,-143 650.5,-143 650.5,-141 430.5,-141"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-139 430.5,-141 650.5,-141 650.5,-139 430.5,-139"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-137 430.5,-139 650.5,-139 650.5,-137 430.5,-137"/>
<polygon fill="#000000" stroke="none" points="430.5,-135 430.5,-137 650.5,-137 650.5,-135 430.5,-135"/>
<text text-anchor="start" x="434.25" y="-119.7" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="497" y="-119.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.25" y="-119.7" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-114 430.5,-116 650.5,-116 650.5,-114 430.5,-114"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-112 430.5,-114 650.5,-114 650.5,-112 430.5,-112"/>
<polygon fill="#0066ff" stroke="none" points="430.5,-110 430.5,-112 650.5,-112 650.5,-110 430.5,-110"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-108 430.5,-110 650.5,-110 650.5,-108 430.5,-108"/>
<polygon fill="#000000" stroke="none" points="430.5,-106 430.5,-108 650.5,-108 650.5,-106 430.5,-106"/>
<text text-anchor="start" x="434.62" y="-90.7" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="506.75" y="-90.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.62" y="-90.7" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-85 430.5,-87 650.5,-87 650.5,-85 430.5,-85"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-83 430.5,-85 650.5,-85 650.5,-83 430.5,-83"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-81 430.5,-83 650.5,-83 650.5,-81 430.5,-81"/>
<polygon fill="#ff8000" stroke="none" points="430.5,-79 430.5,-81 650.5,-81 650.5,-79 430.5,-79"/>
<polygon fill="#000000" stroke="none" points="430.5,-77 430.5,-79 650.5,-79 650.5,-77 430.5,-77"/>
<text text-anchor="start" x="432.38" y="-61.7" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="497" y="-61.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="589.38" y="-61.7" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="none" points="430.5,-56 430.5,-58 650.5,-58 650.5,-56 430.5,-56"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-54 430.5,-56 650.5,-56 650.5,-54 430.5,-54"/>
<polygon fill="#895956" stroke="none" points="430.5,-52 430.5,-54 650.5,-54 650.5,-52 430.5,-52"/>
<polygon fill="#ffffff" stroke="none" points="430.5,-50 430.5,-52 650.5,-52 650.5,-50 430.5,-50"/>
<polygon fill="#000000" stroke="none" points="430.5,-48 430.5,-50 650.5,-50 650.5,-48 430.5,-48"/>
<text text-anchor="start" x="434.25" y="-32.7" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="508.62" y="-32.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="591.25" y="-32.7" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="none" points="430.5,-27 430.5,-29 650.5,-29 650.5,-27 430.5,-27"/>
<polygon fill="#895956" stroke="none" points="430.5,-25 430.5,-27 650.5,-27 650.5,-25 430.5,-25"/>
<polygon fill="#895956" stroke="none" points="430.5,-23 430.5,-25 650.5,-25 650.5,-23 430.5,-23"/>
<polygon fill="#895956" stroke="none" points="430.5,-21 430.5,-23 650.5,-23 650.5,-21 430.5,-21"/>
<polygon fill="#000000" stroke="none" points="430.5,-19 430.5,-21 650.5,-21 650.5,-19 430.5,-19"/>
<text text-anchor="start" x="460.12" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-203C365.83,-204.62 380.6,-224.62 442,-223"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-205C364.22,-205.81 378.99,-225.81 442,-225"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-207C362.61,-207 377.39,-227 442,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-209C361.01,-208.19 375.78,-228.19 442,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-211C359.4,-209.38 374.17,-229.38 442,-231"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-201.75C354.46,-203.46 369.1,-224.46 430.5,-222.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-203.75C352.82,-204.61 367.46,-225.61 430.5,-224.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-205.75C351.18,-205.75 365.82,-226.75 430.5,-226.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-207.75C349.54,-206.89 364.18,-227.89 430.5,-228.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-209.75C347.9,-208.04 362.54,-229.04 430.5,-230.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-180C364.99,-181.04 380.39,-195.04 442,-194"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-182C363.65,-182.52 379.04,-196.52 442,-196"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-184C362.3,-184 377.7,-198 442,-198"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-186C360.96,-185.48 376.35,-199.48 442,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-188C359.61,-186.96 375.01,-200.96 442,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-178.75C353.65,-179.89 368.95,-194.89 430.5,-193.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-180.75C352.25,-181.32 367.55,-196.32 430.5,-195.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-182.75C350.85,-182.75 366.15,-197.75 430.5,-197.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M286.5,-184.75C349.45,-184.18 364.75,-199.18 430.5,-199.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-186.75C348.05,-185.61 363.35,-200.61 430.5,-201.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-157C363.91,-157.43 379.71,-165.43 442,-165"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-159C363,-159.22 378.8,-167.22 442,-167"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-161C362.1,-161 377.9,-169 442,-169"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-163C361.2,-162.78 377,-170.78 442,-171"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-165C360.29,-164.57 376.09,-172.57 442,-173"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-155.75C352.61,-156.28 368.36,-165.28 430.5,-164.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-157.75C351.62,-158.01 367.37,-167.01 430.5,-166.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-159.75C350.62,-159.75 366.38,-168.75 430.5,-168.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-161.75C349.63,-161.49 365.38,-170.49 430.5,-170.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-163.75C348.64,-163.22 364.39,-172.22 430.5,-172.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-133C362.75,-133.07 378.72,-136.07 442,-136"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-135C362.38,-135.03 378.36,-138.03 442,-138"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-137C362.01,-137 377.99,-140 442,-140"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-139C361.64,-138.97 377.62,-141.97 442,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-141C361.28,-140.93 377.25,-143.93 442,-144"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-132.75C351.25,-132.82 367.22,-135.82 430.5,-135.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-134.75C350.88,-134.78 366.86,-137.78 430.5,-137.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-136.75C350.51,-136.75 366.49,-139.75 430.5,-139.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-138.75C350.14,-138.72 366.12,-141.72 430.5,-141.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-140.75C349.78,-140.68 365.75,-143.68 430.5,-143.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-110C361.28,-110.07 377.25,-107.07 442,-107"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-112C361.64,-112.03 377.62,-109.03 442,-109"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-114C362.01,-114 377.99,-111 442,-111"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-116C362.38,-115.97 378.36,-112.97 442,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-118C362.75,-117.93 378.72,-114.93 442,-115"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-109.75C349.78,-109.82 365.75,-106.82 430.5,-106.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-111.75C350.14,-111.78 366.12,-108.78 430.5,-108.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M286.5,-113.75C350.51,-113.75 366.49,-110.75 430.5,-110.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-115.75C350.88,-115.72 366.86,-112.72 430.5,-112.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-117.75C351.25,-117.68 367.22,-114.68 430.5,-114.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-87C360.14,-87.53 375.89,-78.53 442,-78"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-89C361.13,-89.26 376.88,-80.26 442,-80"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-91C362.12,-91 377.88,-82 442,-82"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-93C363.12,-92.74 378.87,-83.74 442,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-95C364.11,-94.47 379.86,-85.47 442,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-86.75C348.64,-87.28 364.39,-78.28 430.5,-77.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-88.75C349.63,-89.01 365.38,-80.01 430.5,-79.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-90.75C350.62,-90.75 366.38,-81.75 430.5,-81.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M286.5,-92.75C351.62,-92.49 367.37,-83.49 430.5,-83.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-94.75C352.61,-94.22 368.36,-85.22 430.5,-85.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-64C359.55,-65.14 374.85,-50.14 442,-49"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-66C360.95,-66.57 376.25,-51.57 442,-51"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-68C362.35,-68 377.65,-53 442,-53"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-70C363.75,-69.43 379.05,-54.43 442,-55"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-72C365.15,-70.86 380.45,-55.86 442,-57"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-63.75C348.05,-64.89 363.35,-49.89 430.5,-48.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-65.75C349.45,-66.32 364.75,-51.32 430.5,-50.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-67.75C350.85,-67.75 366.15,-52.75 430.5,-52.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M286.5,-69.75C352.25,-69.18 367.55,-54.18 430.5,-54.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-71.75C353.65,-70.61 368.95,-55.61 430.5,-56.75"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-41C359.4,-42.71 374.04,-21.71 442,-20"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-43C361.04,-43.86 375.68,-22.86 442,-22"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-45C362.68,-45 377.32,-24 442,-24"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-47C364.32,-46.14 378.96,-25.14 442,-26"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-49C365.96,-47.29 380.6,-26.29 442,-28"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-40.75C347.9,-42.46 362.54,-21.46 430.5,-19.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-42.75C349.54,-43.61 364.18,-22.61 430.5,-21.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-44.75C351.18,-44.75 365.82,-23.75 430.5,-23.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M286.5,-46.75C352.82,-45.89 367.46,-24.89 430.5,-25.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M286.5,-48.75C354.46,-47.04 369.1,-26.04 430.5,-27.75"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="1112,-278 814,-278 814,-48 1112,-48 1112,-278"/>
<polygon fill="none" stroke="black" points="814,-255 814,-278 1112,-278 1112,-255 814,-255"/>
<text text-anchor="start" x="954" y="-262.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="814,-232 814,-255 1033,-255 1033,-232 814,-232"/>
<text text-anchor="start" x="818" y="-239.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1033,-232 1033,-255 1072,-255 1072,-232 1033,-232"/>
<text text-anchor="start" x="1037" y="-239.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1072,-232 1072,-255 1112,-255 1112,-232 1072,-232"/>
<text text-anchor="start" x="1076" y="-239.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="814,-209 814,-232 953,-232 953,-209 814,-209"/>
<text text-anchor="start" x="879.5" y="-216.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="953,-209 953,-232 1112,-232 1112,-209 953,-209"/>
<text text-anchor="start" x="1018.5" y="-216.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="814,-186 814,-209 953,-209 953,-186 814,-186"/>
<text text-anchor="start" x="879.5" y="-193.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="953,-186 953,-209 1112,-209 1112,-186 953,-186"/>
<text text-anchor="start" x="1020" y="-193.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="814,-163 814,-186 953,-186 953,-163 814,-163"/>
<text text-anchor="start" x="879.5" y="-170.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="953,-163 953,-186 1112,-186 1112,-163 953,-163"/>
<text text-anchor="start" x="1018.5" y="-170.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="814,-140 814,-163 953,-163 953,-140 814,-140"/>
<text text-anchor="start" x="879.5" y="-147.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="953,-140 953,-163 1112,-163 1112,-140 953,-140"/>
<text text-anchor="start" x="1018" y="-147.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="814,-117 814,-140 953,-140 953,-117 814,-117"/>
<text text-anchor="start" x="879.5" y="-124.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="953,-117 953,-140 1112,-140 1112,-117 953,-117"/>
<text text-anchor="start" x="1020" y="-124.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="814,-94 814,-117 953,-117 953,-94 814,-94"/>
<text text-anchor="start" x="879.5" y="-101.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="953,-94 953,-117 1112,-117 1112,-94 953,-94"/>
<text text-anchor="start" x="1020" y="-101.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="814,-71 814,-94 953,-94 953,-71 814,-71"/>
<text text-anchor="start" x="879.5" y="-78.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="953,-71 953,-94 1112,-94 1112,-71 953,-71"/>
<text text-anchor="start" x="1018" y="-78.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="814,-48 814,-71 953,-71 953,-48 814,-48"/>
<text text-anchor="start" x="879.5" y="-55.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="953,-48 953,-71 1112,-71 1112,-48 953,-48"/>
<text text-anchor="start" x="1020" y="-55.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="#ffffff" stroke="black" points="1081,-278.5 794.5,-278.5 794.5,-47 1081,-47 1081,-278.5"/>
<polygon fill="none" stroke="black" points="794.5,-254.75 794.5,-278.5 1081,-278.5 1081,-254.75 794.5,-254.75"/>
<text text-anchor="start" x="929.5" y="-261.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="794.5,-231 794.5,-254.75 1005,-254.75 1005,-231 794.5,-231"/>
<text text-anchor="start" x="798.5" y="-237.45" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1005,-231 1005,-254.75 1043,-254.75 1043,-231 1005,-231"/>
<text text-anchor="start" x="1009" y="-237.45" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1043,-231 1043,-254.75 1081,-254.75 1081,-231 1043,-231"/>
<text text-anchor="start" x="1047" y="-237.45" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="794.5,-208 794.5,-231 927.75,-231 927.75,-208 794.5,-208"/>
<text text-anchor="start" x="857.38" y="-213.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="927.75,-208 927.75,-231 1081,-231 1081,-208 927.75,-208"/>
<text text-anchor="start" x="990.88" y="-213.7" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="794.5,-185 794.5,-208 927.75,-208 927.75,-185 794.5,-185"/>
<text text-anchor="start" x="857.38" y="-190.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="927.75,-185 927.75,-208 1081,-208 1081,-185 927.75,-185"/>
<text text-anchor="start" x="992.75" y="-190.7" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="794.5,-162 794.5,-185 927.75,-185 927.75,-162 794.5,-162"/>
<text text-anchor="start" x="857.38" y="-167.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="927.75,-162 927.75,-185 1081,-185 1081,-162 927.75,-162"/>
<text text-anchor="start" x="990.88" y="-167.7" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="794.5,-139 794.5,-162 927.75,-162 927.75,-139 794.5,-139"/>
<text text-anchor="start" x="857.38" y="-144.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="927.75,-139 927.75,-162 1081,-162 1081,-139 927.75,-139"/>
<text text-anchor="start" x="990.5" y="-144.7" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="794.5,-116 794.5,-139 927.75,-139 927.75,-116 794.5,-116"/>
<text text-anchor="start" x="857.38" y="-121.7" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="927.75,-116 927.75,-139 1081,-139 1081,-116 927.75,-116"/>
<text text-anchor="start" x="992.38" y="-121.7" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="794.5,-93 794.5,-116 927.75,-116 927.75,-93 794.5,-93"/>
<text text-anchor="start" x="857.38" y="-98.7" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="927.75,-93 927.75,-116 1081,-116 1081,-93 927.75,-93"/>
<text text-anchor="start" x="992.75" y="-98.7" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="794.5,-70 794.5,-93 927.75,-93 927.75,-70 794.5,-70"/>
<text text-anchor="start" x="857.38" y="-75.7" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="927.75,-70 927.75,-93 1081,-93 1081,-70 927.75,-70"/>
<text text-anchor="start" x="990.5" y="-75.7" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="794.5,-47 794.5,-70 927.75,-70 927.75,-47 794.5,-47"/>
<text text-anchor="start" x="857.38" y="-52.7" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="927.75,-47 927.75,-70 1081,-70 1081,-47 927.75,-47"/>
<text text-anchor="start" x="992.38" y="-52.7" font-family="arial" font-size="14.00">DC&#45;</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-223C734.09,-226.4 742,-174.4 814,-171"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-225C736.07,-226.7 743.98,-174.7 814,-173"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-227C738.05,-227 745.95,-175 814,-175"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-229C740.02,-227.3 747.93,-175.3 814,-177"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-231C742,-227.6 749.91,-175.6 814,-179"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-222.75C714.74,-226.18 722.34,-173.18 794.5,-169.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-224.75C716.72,-226.47 724.32,-173.47 794.5,-171.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-226.75C718.7,-226.75 726.3,-173.75 794.5,-173.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-228.75C720.68,-227.03 728.28,-174.03 794.5,-175.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-230.75C722.66,-227.32 730.26,-174.32 794.5,-177.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-194C742.2,-198.36 733.83,-105.36 814,-101"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-196C744.19,-198.18 735.82,-105.18 814,-103"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-198C746.19,-198 737.81,-105 814,-105"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-200C748.18,-197.82 739.81,-104.82 814,-107"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-202C750.17,-197.64 741.8,-104.64 814,-109"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-193.75C722.7,-198.11 714.33,-105.11 794.5,-100.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-195.75C724.69,-197.93 716.32,-104.93 794.5,-102.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-197.75C726.69,-197.75 718.31,-104.75 794.5,-104.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M650.5,-199.75C728.68,-197.57 720.31,-104.57 794.5,-106.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-201.75C730.67,-197.39 722.3,-104.39 794.5,-108.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-165C742,-168.4 749.91,-220.4 814,-217"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-167C740.02,-168.7 747.93,-220.7 814,-219"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-169C738.05,-169 745.95,-221 814,-221"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-171C736.07,-169.3 743.98,-221.3 814,-223"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-173C734.09,-169.6 742,-221.6 814,-225"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-164.75C722.34,-168.11 730.55,-219.11 794.5,-215.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-166.75C720.37,-168.43 728.58,-219.43 794.5,-217.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-168.75C718.4,-168.75 726.6,-219.75 794.5,-219.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-170.75C716.42,-169.07 724.63,-220.07 794.5,-221.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-172.75C714.45,-169.39 722.66,-220.39 794.5,-223.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-136C735.02,-139.59 741.02,-81.59 814,-78"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-138C737.01,-139.79 743.01,-81.79 814,-80"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-140C739,-140 745,-82 814,-82"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-142C740.99,-140.21 746.99,-82.21 814,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-144C742.98,-140.41 748.98,-82.41 814,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-135.75C715.52,-139.34 721.52,-81.34 794.5,-77.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-137.75C717.51,-139.54 723.51,-81.54 794.5,-79.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-139.75C719.5,-139.75 725.5,-81.75 794.5,-81.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-141.75C721.49,-139.96 727.49,-81.96 794.5,-83.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-143.75C723.48,-140.16 729.48,-82.16 794.5,-85.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-107C734.09,-110.4 742,-58.4 814,-55"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-109C736.07,-110.7 743.98,-58.7 814,-57"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-111C738.05,-111 745.95,-59 814,-59"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-113C740.02,-111.3 747.93,-59.3 814,-61"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-115C742,-111.6 749.91,-59.6 814,-63"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-106.75C714.59,-110.15 722.5,-58.15 794.5,-54.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-108.75C716.57,-110.45 724.48,-58.45 794.5,-56.75"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M650.5,-110.75C718.55,-110.75 726.45,-58.75 794.5,-58.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-112.75C720.52,-111.05 728.43,-59.05 794.5,-60.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-114.75C722.5,-111.35 730.41,-59.35 794.5,-62.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-78C756.12,-82.69 735.76,-198.69 814,-194"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-80C754.15,-82.35 733.79,-198.35 814,-196"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-82C752.18,-82 731.82,-198 814,-198"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-84C750.21,-81.65 729.85,-197.65 814,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-86C748.24,-81.31 727.88,-197.31 814,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-77.75C736.35,-82.43 716.54,-197.43 794.5,-192.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-79.75C734.38,-82.09 714.57,-197.09 794.5,-194.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-81.75C732.4,-81.75 712.6,-196.75 794.5,-196.75"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M650.5,-83.75C730.43,-81.41 710.62,-196.41 794.5,-198.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-85.75C728.46,-81.07 708.65,-196.07 794.5,-200.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-49C751.39,-53.44 740.56,-151.44 814,-147"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-51C749.4,-53.22 738.57,-151.22 814,-149"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-53C747.42,-53 736.58,-151 814,-151"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-55C745.43,-52.78 734.6,-150.78 814,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-57C743.44,-52.56 732.61,-150.56 814,-155"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-48.75C731.89,-53.19 721.06,-151.19 794.5,-146.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-50.75C729.9,-52.97 719.07,-150.97 794.5,-148.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-52.75C727.92,-52.75 717.08,-150.75 794.5,-150.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M650.5,-54.75C725.93,-52.53 715.1,-150.53 794.5,-152.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-56.75C723.94,-52.31 713.11,-150.31 794.5,-154.75"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-20C752.91,-24.53 739.02,-128.53 814,-124"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-22C750.93,-24.26 737.04,-128.26 814,-126"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-24C748.95,-24 735.05,-128 814,-128"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-26C746.96,-23.74 733.07,-127.74 814,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-28C744.98,-23.47 731.09,-127.47 814,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-19.75C733.41,-24.28 719.52,-128.28 794.5,-123.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-21.75C731.43,-24.01 717.54,-128.01 794.5,-125.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-23.75C729.45,-23.75 715.55,-127.75 794.5,-127.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M650.5,-25.75C727.46,-23.49 713.57,-127.49 794.5,-129.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M650.5,-27.75C725.48,-23.22 711.59,-127.22 794.5,-131.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

28
examples/ex11.gv generated
View File

@ -1,10 +1,10 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
AUTOGENERATED_F_1 [label=<
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -15,7 +15,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_2 [label=<
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -26,7 +26,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_3 [label=<
__F_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -37,7 +37,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_4 [label=<
__F_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -87,13 +87,13 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#000000:#000000"]
W1:w1:e -- AUTOGENERATED_F_1:w
W1:w1:e -- __F_1:w
edge [color="#000000:#ffffff:#000000"]
W1:w2:e -- AUTOGENERATED_F_2:w
W1:w2:e -- __F_2:w
edge [color="#000000:#0066ff:#000000"]
W1:w3:e -- AUTOGENERATED_F_3:w
W1:w3:e -- __F_3:w
edge [color="#000000:#895956:#000000"]
W1:w4:e -- AUTOGENERATED_F_4:w
W1:w4:e -- __F_4:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
@ -181,11 +181,11 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_1:e -- X1:p1l:w
__F_1:e -- X1:p1l:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_2:e -- X1:p2l:w
__F_2:e -- X1:p2l:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_3:e -- X1:p3l:w
__F_3:e -- X1:p3l:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_4:e -- X1:p4l:w
__F_4:e -- X1:p4l:w
}

268
examples/ex11.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex11</title>
<style>
@ -30,172 +30,172 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="703pt" height="215pt"
viewBox="0.00 0.00 703.00 214.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 210.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-210.5 699,-210.5 699,4 -4,4"/>
<!-- AUTOGENERATED_F_1 -->
<svg width="688pt" height="218pt"
viewBox="0.00 0.00 687.50 217.62" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 213.62)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-213.62 683.5,-213.62 683.5,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>AUTOGENERATED_F_1</title>
<polygon fill="#ffffff" stroke="black" points="321,-164 231,-164 231,-141 321,-141 321,-164"/>
<polygon fill="none" stroke="black" points="231,-140.5 231,-163.5 284,-163.5 284,-140.5 231,-140.5"/>
<text text-anchor="start" x="235" y="-148.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,-140.5 284,-163.5 313,-163.5 313,-140.5 284,-140.5"/>
<text text-anchor="start" x="288" y="-148.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,-140.5 313,-163.5 321,-163.5 321,-140.5 313,-140.5"/>
<polygon fill="none" stroke="black" points="313,-140.5 313,-163.5 321,-163.5 321,-140.5 313,-140.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="314,-167.75 227,-167.75 227,-144 314,-144 314,-167.75"/>
<polygon fill="none" stroke="black" points="227,-144 227,-167.75 277.75,-167.75 277.75,-144 227,-144"/>
<text text-anchor="start" x="231" y="-150.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,-144 277.75,-167.75 306,-167.75 306,-144 277.75,-144"/>
<text text-anchor="start" x="281.75" y="-150.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,-144 306,-167.75 314,-167.75 314,-144 306,-144"/>
<polygon fill="none" stroke="black" points="306,-144 306,-167.75 314,-167.75 314,-144 306,-144"/>
</g>
<!-- X1 -->
<g id="node5" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="695,-174.5 465,-174.5 465,-36.5 695,-36.5 695,-174.5"/>
<polygon fill="none" stroke="black" points="465,-151.5 465,-174.5 695,-174.5 695,-151.5 465,-151.5"/>
<text text-anchor="start" x="571" y="-159.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="465,-128.5 465,-151.5 578,-151.5 578,-128.5 465,-128.5"/>
<text text-anchor="start" x="469" y="-136.3" font-family="arial" font-size="14.00">Screw connector</text>
<polygon fill="none" stroke="black" points="578,-128.5 578,-151.5 617,-151.5 617,-128.5 578,-128.5"/>
<text text-anchor="start" x="582" y="-136.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="617,-128.5 617,-151.5 657,-151.5 657,-128.5 617,-128.5"/>
<text text-anchor="start" x="621" y="-136.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="657,-128.5 657,-151.5 687,-151.5 687,-128.5 657,-128.5"/>
<text text-anchor="start" x="661" y="-136.3" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="transparent" points="687,-128.5 687,-151.5 695,-151.5 695,-128.5 687,-128.5"/>
<polygon fill="none" stroke="black" points="687,-128.5 687,-151.5 695,-151.5 695,-128.5 687,-128.5"/>
<polygon fill="none" stroke="black" points="465,-105.5 465,-128.5 579,-128.5 579,-105.5 465,-105.5"/>
<text text-anchor="start" x="518" y="-113.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="579,-105.5 579,-128.5 695,-128.5 695,-105.5 579,-105.5"/>
<text text-anchor="start" x="632" y="-113.3" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="465,-82.5 465,-105.5 579,-105.5 579,-82.5 465,-82.5"/>
<text text-anchor="start" x="518" y="-90.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="579,-82.5 579,-105.5 695,-105.5 695,-82.5 579,-82.5"/>
<text text-anchor="start" x="632" y="-90.3" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="465,-59.5 465,-82.5 579,-82.5 579,-59.5 465,-59.5"/>
<text text-anchor="start" x="518" y="-67.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="579,-59.5 579,-82.5 695,-82.5 695,-59.5 579,-59.5"/>
<text text-anchor="start" x="631.5" y="-67.3" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="465,-36.5 465,-59.5 579,-59.5 579,-36.5 465,-36.5"/>
<text text-anchor="start" x="518" y="-44.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="579,-36.5 579,-59.5 695,-59.5 695,-36.5 579,-36.5"/>
<text text-anchor="start" x="631.5" y="-44.3" font-family="arial" font-size="14.00">D</text>
<polygon fill="#ffffff" stroke="black" points="679.5,-176.62 458,-176.62 458,-37.12 679.5,-37.12 679.5,-176.62"/>
<polygon fill="none" stroke="black" points="458,-152.88 458,-176.62 679.5,-176.62 679.5,-152.88 458,-152.88"/>
<text text-anchor="start" x="560.5" y="-159.32" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="458,-129.12 458,-152.88 566.5,-152.88 566.5,-129.12 458,-129.12"/>
<text text-anchor="start" x="462" y="-135.57" font-family="arial" font-size="14.00">Screw connector</text>
<polygon fill="none" stroke="black" points="566.5,-129.12 566.5,-152.88 604.5,-152.88 604.5,-129.12 566.5,-129.12"/>
<text text-anchor="start" x="570.5" y="-135.57" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="604.5,-129.12 604.5,-152.88 642.5,-152.88 642.5,-129.12 604.5,-129.12"/>
<text text-anchor="start" x="608.5" y="-135.57" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="642.5,-129.12 642.5,-152.88 671.5,-152.88 671.5,-129.12 642.5,-129.12"/>
<text text-anchor="start" x="646.5" y="-135.57" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="none" points="671.5,-129.12 671.5,-152.88 679.5,-152.88 679.5,-129.12 671.5,-129.12"/>
<polygon fill="none" stroke="black" points="671.5,-129.12 671.5,-152.88 679.5,-152.88 679.5,-129.12 671.5,-129.12"/>
<polygon fill="none" stroke="black" points="458,-106.12 458,-129.12 567.75,-129.12 567.75,-106.12 458,-106.12"/>
<text text-anchor="start" x="509.12" y="-111.83" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="567.75,-106.12 567.75,-129.12 679.5,-129.12 679.5,-106.12 567.75,-106.12"/>
<text text-anchor="start" x="619.12" y="-111.83" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="458,-83.12 458,-106.12 567.75,-106.12 567.75,-83.12 458,-83.12"/>
<text text-anchor="start" x="509.12" y="-88.83" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="567.75,-83.12 567.75,-106.12 679.5,-106.12 679.5,-83.12 567.75,-83.12"/>
<text text-anchor="start" x="619.12" y="-88.83" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="458,-60.12 458,-83.12 567.75,-83.12 567.75,-60.12 458,-60.12"/>
<text text-anchor="start" x="509.12" y="-65.83" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="567.75,-60.12 567.75,-83.12 679.5,-83.12 679.5,-60.12 567.75,-60.12"/>
<text text-anchor="start" x="618.75" y="-65.83" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="458,-37.12 458,-60.12 567.75,-60.12 567.75,-37.12 458,-37.12"/>
<text text-anchor="start" x="509.12" y="-42.83" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="567.75,-37.12 567.75,-60.12 679.5,-60.12 679.5,-37.12 567.75,-37.12"/>
<text text-anchor="start" x="618.75" y="-42.83" font-family="arial" font-size="14.00">D</text>
</g>
<!-- AUTOGENERATED_F_1&#45;&#45;X1 -->
<!-- __F_1&#45;&#45;X1 -->
<g id="edge5" class="edge">
<title>AUTOGENERATED_F_1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-152.5C383.26,-152.5 397.63,-121.22 454.66,-117.8"/>
<polygon fill="#000000" stroke="#000000" points="455.11,-121.29 465,-117.5 454.9,-114.29 455.11,-121.29"/>
<title>__F_1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-155.88C376.18,-155.88 390.2,-122.34 446.55,-118.28"/>
<polygon fill="#000000" stroke="#000000" points="446.62,-121.78 456.49,-117.93 446.37,-114.78 446.62,-121.78"/>
</g>
<!-- AUTOGENERATED_F_2 -->
<!-- __F_2 -->
<g id="node2" class="node">
<title>AUTOGENERATED_F_2</title>
<polygon fill="#ffffff" stroke="black" points="321,-117 231,-117 231,-94 321,-94 321,-117"/>
<polygon fill="none" stroke="black" points="231,-93.5 231,-116.5 284,-116.5 284,-93.5 231,-93.5"/>
<text text-anchor="start" x="235" y="-101.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,-93.5 284,-116.5 313,-116.5 313,-93.5 284,-93.5"/>
<text text-anchor="start" x="288" y="-101.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,-93.5 313,-116.5 321,-116.5 321,-93.5 313,-93.5"/>
<polygon fill="none" stroke="black" points="313,-93.5 313,-116.5 321,-116.5 321,-93.5 313,-93.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="314,-119.75 227,-119.75 227,-96 314,-96 314,-119.75"/>
<polygon fill="none" stroke="black" points="227,-96 227,-119.75 277.75,-119.75 277.75,-96 227,-96"/>
<text text-anchor="start" x="231" y="-102.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,-96 277.75,-119.75 306,-119.75 306,-96 277.75,-96"/>
<text text-anchor="start" x="281.75" y="-102.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,-96 306,-119.75 314,-119.75 314,-96 306,-96"/>
<polygon fill="none" stroke="black" points="306,-96 306,-119.75 314,-119.75 314,-96 306,-96"/>
</g>
<!-- AUTOGENERATED_F_2&#45;&#45;X1 -->
<!-- __F_2&#45;&#45;X1 -->
<g id="edge6" class="edge">
<title>AUTOGENERATED_F_2:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-105.5C381.71,-105.5 398.93,-94.78 454.88,-93.6"/>
<polygon fill="#000000" stroke="#000000" points="455.04,-97.1 465,-93.5 454.96,-90.1 455.04,-97.1"/>
<title>__F_2:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-107.88C374.24,-107.88 391.61,-96.45 446.5,-95.02"/>
<polygon fill="#000000" stroke="#000000" points="446.53,-98.52 456.49,-94.89 446.44,-91.52 446.53,-98.52"/>
</g>
<!-- AUTOGENERATED_F_3 -->
<!-- __F_3 -->
<g id="node3" class="node">
<title>AUTOGENERATED_F_3</title>
<polygon fill="#ffffff" stroke="black" points="321,-70 231,-70 231,-47 321,-47 321,-70"/>
<polygon fill="none" stroke="black" points="231,-46.5 231,-69.5 284,-69.5 284,-46.5 231,-46.5"/>
<text text-anchor="start" x="235" y="-54.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,-46.5 284,-69.5 313,-69.5 313,-46.5 284,-46.5"/>
<text text-anchor="start" x="288" y="-54.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,-46.5 313,-69.5 321,-69.5 321,-46.5 313,-46.5"/>
<polygon fill="none" stroke="black" points="313,-46.5 313,-69.5 321,-69.5 321,-46.5 313,-46.5"/>
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="314,-71.75 227,-71.75 227,-48 314,-48 314,-71.75"/>
<polygon fill="none" stroke="black" points="227,-48 227,-71.75 277.75,-71.75 277.75,-48 227,-48"/>
<text text-anchor="start" x="231" y="-54.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,-48 277.75,-71.75 306,-71.75 306,-48 277.75,-48"/>
<text text-anchor="start" x="281.75" y="-54.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,-48 306,-71.75 314,-71.75 314,-48 306,-48"/>
<polygon fill="none" stroke="black" points="306,-48 306,-71.75 314,-71.75 314,-48 306,-48"/>
</g>
<!-- AUTOGENERATED_F_3&#45;&#45;X1 -->
<!-- __F_3&#45;&#45;X1 -->
<g id="edge7" class="edge">
<title>AUTOGENERATED_F_3:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-58.5C381.71,-58.5 398.93,-69.22 454.88,-70.4"/>
<polygon fill="#000000" stroke="#000000" points="454.96,-73.9 465,-70.5 455.04,-66.9 454.96,-73.9"/>
<title>__F_3:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-59.88C374.21,-59.88 391.64,-70.42 446.5,-71.74"/>
<polygon fill="#000000" stroke="#000000" points="446.45,-75.24 456.49,-71.86 446.53,-68.24 446.45,-75.24"/>
</g>
<!-- AUTOGENERATED_F_4 -->
<!-- __F_4 -->
<g id="node4" class="node">
<title>AUTOGENERATED_F_4</title>
<polygon fill="#ffffff" stroke="black" points="321,-23 231,-23 231,0 321,0 321,-23"/>
<polygon fill="none" stroke="black" points="231,0.5 231,-22.5 284,-22.5 284,0.5 231,0.5"/>
<text text-anchor="start" x="235" y="-7.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,0.5 284,-22.5 313,-22.5 313,0.5 284,0.5"/>
<text text-anchor="start" x="288" y="-7.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,0.5 313,-22.5 321,-22.5 321,0.5 313,0.5"/>
<polygon fill="none" stroke="black" points="313,0.5 313,-22.5 321,-22.5 321,0.5 313,0.5"/>
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="314,-23.75 227,-23.75 227,0 314,0 314,-23.75"/>
<polygon fill="none" stroke="black" points="227,0 227,-23.75 277.75,-23.75 277.75,0 227,0"/>
<text text-anchor="start" x="231" y="-6.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,0 277.75,-23.75 306,-23.75 306,0 277.75,0"/>
<text text-anchor="start" x="281.75" y="-6.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,0 306,-23.75 314,-23.75 314,0 306,0"/>
<polygon fill="none" stroke="black" points="306,0 306,-23.75 314,-23.75 314,0 306,0"/>
</g>
<!-- AUTOGENERATED_F_4&#45;&#45;X1 -->
<!-- __F_4&#45;&#45;X1 -->
<g id="edge8" class="edge">
<title>AUTOGENERATED_F_4:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-11.5C383.49,-11.5 397.61,-43.8 455,-47.21"/>
<polygon fill="#000000" stroke="#000000" points="454.9,-50.71 465,-47.5 455.11,-43.71 454.9,-50.71"/>
<title>__F_4:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-11.88C376.08,-11.88 390.29,-44.53 446.57,-48.48"/>
<polygon fill="#000000" stroke="#000000" points="446.37,-51.98 456.49,-48.82 446.61,-44.98 446.37,-51.98"/>
</g>
<!-- W1 -->
<g id="node6" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="87,-206.5 0,-206.5 0,-22.5 87,-22.5 87,-206.5"/>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 87.5,-206.5 87.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="33.5" y="-191.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 33.5,-183.5 33.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="9.5" y="-168.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="33.5,-160.5 33.5,-183.5 70.5,-183.5 70.5,-160.5 33.5,-160.5"/>
<text text-anchor="start" x="42.5" y="-168.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="transparent" points="70.5,-160.5 70.5,-183.5 87.5,-183.5 87.5,-160.5 70.5,-160.5"/>
<polygon fill="none" stroke="black" points="70.5,-160.5 70.5,-183.5 87.5,-183.5 87.5,-160.5 70.5,-160.5"/>
<text text-anchor="start" x="2.5" y="-147.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="13" y="-128.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-120.5 0.5,-122.5 87.5,-122.5 87.5,-120.5 0.5,-120.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-118.5 0.5,-120.5 87.5,-120.5 87.5,-118.5 0.5,-118.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-116.5 0.5,-118.5 87.5,-118.5 87.5,-116.5 0.5,-116.5"/>
<text text-anchor="start" x="10.5" y="-103.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-95.5 0.5,-97.5 87.5,-97.5 87.5,-95.5 0.5,-95.5"/>
<polygon fill="#ffffff" stroke="transparent" points="0.5,-93.5 0.5,-95.5 87.5,-95.5 87.5,-93.5 0.5,-93.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-91.5 0.5,-93.5 87.5,-93.5 87.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="12.5" y="-78.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-70.5 0.5,-72.5 87.5,-72.5 87.5,-70.5 0.5,-70.5"/>
<polygon fill="#0066ff" stroke="transparent" points="0.5,-68.5 0.5,-70.5 87.5,-70.5 87.5,-68.5 0.5,-68.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-66.5 0.5,-68.5 87.5,-68.5 87.5,-66.5 0.5,-66.5"/>
<text text-anchor="start" x="12.5" y="-53.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-45.5 0.5,-47.5 87.5,-47.5 87.5,-45.5 0.5,-45.5"/>
<polygon fill="#895956" stroke="transparent" points="0.5,-43.5 0.5,-45.5 87.5,-45.5 87.5,-43.5 0.5,-43.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-41.5 0.5,-43.5 87.5,-43.5 87.5,-41.5 0.5,-41.5"/>
<text text-anchor="start" x="2.5" y="-28.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="83,-209.62 0,-209.62 0,-24.12 83,-24.12 83,-209.62"/>
<polygon fill="none" stroke="black" points="0,-185.88 0,-209.62 83,-209.62 83,-185.88 0,-185.88"/>
<text text-anchor="start" x="31" y="-192.32" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0,-162.12 0,-185.88 31.17,-185.88 31.17,-162.12 0,-162.12"/>
<text text-anchor="start" x="8.46" y="-168.57" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="31.17,-162.12 31.17,-185.88 66.08,-185.88 66.08,-162.12 31.17,-162.12"/>
<text text-anchor="start" x="39.62" y="-168.57" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="66.08,-162.12 66.08,-185.88 83,-185.88 83,-162.12 66.08,-162.12"/>
<polygon fill="none" stroke="black" points="66.08,-162.12 66.08,-185.88 83,-185.88 83,-162.12 66.08,-162.12"/>
<text text-anchor="start" x="1.62" y="-146.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="11.5" y="-127.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-122.12 0,-124.12 83,-124.12 83,-122.12 0,-122.12"/>
<polygon fill="#000000" stroke="none" points="0,-120.12 0,-122.12 83,-122.12 83,-120.12 0,-120.12"/>
<polygon fill="#000000" stroke="none" points="0,-118.12 0,-120.12 83,-120.12 83,-118.12 0,-118.12"/>
<text text-anchor="start" x="8.88" y="-102.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-97.12 0,-99.12 83,-99.12 83,-97.12 0,-97.12"/>
<polygon fill="#ffffff" stroke="none" points="0,-95.12 0,-97.12 83,-97.12 83,-95.12 0,-95.12"/>
<polygon fill="#000000" stroke="none" points="0,-93.12 0,-95.12 83,-95.12 83,-93.12 0,-93.12"/>
<text text-anchor="start" x="11.12" y="-77.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-72.12 0,-74.12 83,-74.12 83,-72.12 0,-72.12"/>
<polygon fill="#0066ff" stroke="none" points="0,-70.12 0,-72.12 83,-72.12 83,-70.12 0,-70.12"/>
<polygon fill="#000000" stroke="none" points="0,-68.12 0,-70.12 83,-70.12 83,-68.12 0,-68.12"/>
<text text-anchor="start" x="11.12" y="-52.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-47.12 0,-49.12 83,-49.12 83,-47.12 0,-47.12"/>
<polygon fill="#895956" stroke="none" points="0,-45.12 0,-47.12 83,-47.12 83,-45.12 0,-45.12"/>
<polygon fill="#000000" stroke="none" points="0,-43.12 0,-45.12 83,-45.12 83,-43.12 0,-43.12"/>
<text text-anchor="start" x="1.62" y="-27.82" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_1 -->
<!-- W1&#45;&#45;__F_1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-117.5C154.53,-118.78 167.21,-151.78 231,-150.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-119.5C152.66,-119.5 165.34,-152.5 231,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-121.5C150.79,-120.22 163.47,-153.22 231,-154.5"/>
<title>W1:e&#45;&#45;__F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-118.88C150.75,-120.21 163.02,-155.21 227,-153.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-120.88C148.86,-120.88 161.14,-155.88 227,-155.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-122.87C146.98,-121.54 159.25,-156.54 227,-157.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_2 -->
<!-- W1&#45;&#45;__F_2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-92.5C152.34,-92.86 167.96,-103.86 231,-103.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M87,-94.5C151.19,-94.5 166.81,-105.5 231,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-96.5C150.04,-96.14 165.66,-107.14 231,-107.5"/>
<title>W1:e&#45;&#45;__F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-93.88C148.44,-94.29 164,-106.29 227,-105.88"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M83,-95.87C147.22,-95.87 162.78,-107.87 227,-107.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-97.87C146,-97.46 161.56,-109.46 227,-109.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_3 -->
<!-- W1&#45;&#45;__F_3 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-67.5C150.04,-67.86 165.66,-56.86 231,-56.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M87,-69.5C151.19,-69.5 166.81,-58.5 231,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-71.5C152.34,-71.14 167.96,-60.14 231,-60.5"/>
<title>W1:e&#45;&#45;__F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-68.88C146.04,-69.24 161.66,-58.24 227,-57.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M83,-70.88C147.19,-70.87 162.81,-59.88 227,-59.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-72.87C148.34,-72.51 163.96,-61.51 227,-61.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_4 -->
<!-- W1&#45;&#45;__F_4 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-42.5C150.79,-43.78 163.47,-10.78 231,-9.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M87,-44.5C152.66,-44.5 165.34,-11.5 231,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-46.5C154.53,-45.22 167.21,-12.22 231,-13.5"/>
<title>W1:e&#45;&#45;__F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-43.88C146.88,-45.19 159.36,-11.19 227,-9.88"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M83,-45.88C148.76,-45.88 161.24,-11.88 227,-11.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-47.87C150.64,-46.56 163.12,-12.56 227,-13.87"/>
</g>
</g>
</svg>

BIN
examples/ex11.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 42 KiB

266
examples/ex11.svg generated
View File

@ -1,172 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="703pt" height="215pt"
viewBox="0.00 0.00 703.00 214.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 210.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-210.5 699,-210.5 699,4 -4,4"/>
<!-- AUTOGENERATED_F_1 -->
<svg width="688pt" height="218pt"
viewBox="0.00 0.00 687.50 217.62" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 213.62)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-213.62 683.5,-213.62 683.5,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>AUTOGENERATED_F_1</title>
<polygon fill="#ffffff" stroke="black" points="321,-164 231,-164 231,-141 321,-141 321,-164"/>
<polygon fill="none" stroke="black" points="231,-140.5 231,-163.5 284,-163.5 284,-140.5 231,-140.5"/>
<text text-anchor="start" x="235" y="-148.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,-140.5 284,-163.5 313,-163.5 313,-140.5 284,-140.5"/>
<text text-anchor="start" x="288" y="-148.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,-140.5 313,-163.5 321,-163.5 321,-140.5 313,-140.5"/>
<polygon fill="none" stroke="black" points="313,-140.5 313,-163.5 321,-163.5 321,-140.5 313,-140.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="314,-167.75 227,-167.75 227,-144 314,-144 314,-167.75"/>
<polygon fill="none" stroke="black" points="227,-144 227,-167.75 277.75,-167.75 277.75,-144 227,-144"/>
<text text-anchor="start" x="231" y="-150.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,-144 277.75,-167.75 306,-167.75 306,-144 277.75,-144"/>
<text text-anchor="start" x="281.75" y="-150.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,-144 306,-167.75 314,-167.75 314,-144 306,-144"/>
<polygon fill="none" stroke="black" points="306,-144 306,-167.75 314,-167.75 314,-144 306,-144"/>
</g>
<!-- X1 -->
<g id="node5" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="695,-174.5 465,-174.5 465,-36.5 695,-36.5 695,-174.5"/>
<polygon fill="none" stroke="black" points="465,-151.5 465,-174.5 695,-174.5 695,-151.5 465,-151.5"/>
<text text-anchor="start" x="571" y="-159.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="465,-128.5 465,-151.5 578,-151.5 578,-128.5 465,-128.5"/>
<text text-anchor="start" x="469" y="-136.3" font-family="arial" font-size="14.00">Screw connector</text>
<polygon fill="none" stroke="black" points="578,-128.5 578,-151.5 617,-151.5 617,-128.5 578,-128.5"/>
<text text-anchor="start" x="582" y="-136.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="617,-128.5 617,-151.5 657,-151.5 657,-128.5 617,-128.5"/>
<text text-anchor="start" x="621" y="-136.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="657,-128.5 657,-151.5 687,-151.5 687,-128.5 657,-128.5"/>
<text text-anchor="start" x="661" y="-136.3" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="transparent" points="687,-128.5 687,-151.5 695,-151.5 695,-128.5 687,-128.5"/>
<polygon fill="none" stroke="black" points="687,-128.5 687,-151.5 695,-151.5 695,-128.5 687,-128.5"/>
<polygon fill="none" stroke="black" points="465,-105.5 465,-128.5 579,-128.5 579,-105.5 465,-105.5"/>
<text text-anchor="start" x="518" y="-113.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="579,-105.5 579,-128.5 695,-128.5 695,-105.5 579,-105.5"/>
<text text-anchor="start" x="632" y="-113.3" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="465,-82.5 465,-105.5 579,-105.5 579,-82.5 465,-82.5"/>
<text text-anchor="start" x="518" y="-90.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="579,-82.5 579,-105.5 695,-105.5 695,-82.5 579,-82.5"/>
<text text-anchor="start" x="632" y="-90.3" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="465,-59.5 465,-82.5 579,-82.5 579,-59.5 465,-59.5"/>
<text text-anchor="start" x="518" y="-67.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="579,-59.5 579,-82.5 695,-82.5 695,-59.5 579,-59.5"/>
<text text-anchor="start" x="631.5" y="-67.3" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="465,-36.5 465,-59.5 579,-59.5 579,-36.5 465,-36.5"/>
<text text-anchor="start" x="518" y="-44.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="579,-36.5 579,-59.5 695,-59.5 695,-36.5 579,-36.5"/>
<text text-anchor="start" x="631.5" y="-44.3" font-family="arial" font-size="14.00">D</text>
<polygon fill="#ffffff" stroke="black" points="679.5,-176.62 458,-176.62 458,-37.12 679.5,-37.12 679.5,-176.62"/>
<polygon fill="none" stroke="black" points="458,-152.88 458,-176.62 679.5,-176.62 679.5,-152.88 458,-152.88"/>
<text text-anchor="start" x="560.5" y="-159.32" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="458,-129.12 458,-152.88 566.5,-152.88 566.5,-129.12 458,-129.12"/>
<text text-anchor="start" x="462" y="-135.57" font-family="arial" font-size="14.00">Screw connector</text>
<polygon fill="none" stroke="black" points="566.5,-129.12 566.5,-152.88 604.5,-152.88 604.5,-129.12 566.5,-129.12"/>
<text text-anchor="start" x="570.5" y="-135.57" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="604.5,-129.12 604.5,-152.88 642.5,-152.88 642.5,-129.12 604.5,-129.12"/>
<text text-anchor="start" x="608.5" y="-135.57" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="642.5,-129.12 642.5,-152.88 671.5,-152.88 671.5,-129.12 642.5,-129.12"/>
<text text-anchor="start" x="646.5" y="-135.57" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="none" points="671.5,-129.12 671.5,-152.88 679.5,-152.88 679.5,-129.12 671.5,-129.12"/>
<polygon fill="none" stroke="black" points="671.5,-129.12 671.5,-152.88 679.5,-152.88 679.5,-129.12 671.5,-129.12"/>
<polygon fill="none" stroke="black" points="458,-106.12 458,-129.12 567.75,-129.12 567.75,-106.12 458,-106.12"/>
<text text-anchor="start" x="509.12" y="-111.83" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="567.75,-106.12 567.75,-129.12 679.5,-129.12 679.5,-106.12 567.75,-106.12"/>
<text text-anchor="start" x="619.12" y="-111.83" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="458,-83.12 458,-106.12 567.75,-106.12 567.75,-83.12 458,-83.12"/>
<text text-anchor="start" x="509.12" y="-88.83" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="567.75,-83.12 567.75,-106.12 679.5,-106.12 679.5,-83.12 567.75,-83.12"/>
<text text-anchor="start" x="619.12" y="-88.83" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="458,-60.12 458,-83.12 567.75,-83.12 567.75,-60.12 458,-60.12"/>
<text text-anchor="start" x="509.12" y="-65.83" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="567.75,-60.12 567.75,-83.12 679.5,-83.12 679.5,-60.12 567.75,-60.12"/>
<text text-anchor="start" x="618.75" y="-65.83" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="458,-37.12 458,-60.12 567.75,-60.12 567.75,-37.12 458,-37.12"/>
<text text-anchor="start" x="509.12" y="-42.83" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="567.75,-37.12 567.75,-60.12 679.5,-60.12 679.5,-37.12 567.75,-37.12"/>
<text text-anchor="start" x="618.75" y="-42.83" font-family="arial" font-size="14.00">D</text>
</g>
<!-- AUTOGENERATED_F_1&#45;&#45;X1 -->
<!-- __F_1&#45;&#45;X1 -->
<g id="edge5" class="edge">
<title>AUTOGENERATED_F_1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-152.5C383.26,-152.5 397.63,-121.22 454.66,-117.8"/>
<polygon fill="#000000" stroke="#000000" points="455.11,-121.29 465,-117.5 454.9,-114.29 455.11,-121.29"/>
<title>__F_1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-155.88C376.18,-155.88 390.2,-122.34 446.55,-118.28"/>
<polygon fill="#000000" stroke="#000000" points="446.62,-121.78 456.49,-117.93 446.37,-114.78 446.62,-121.78"/>
</g>
<!-- AUTOGENERATED_F_2 -->
<!-- __F_2 -->
<g id="node2" class="node">
<title>AUTOGENERATED_F_2</title>
<polygon fill="#ffffff" stroke="black" points="321,-117 231,-117 231,-94 321,-94 321,-117"/>
<polygon fill="none" stroke="black" points="231,-93.5 231,-116.5 284,-116.5 284,-93.5 231,-93.5"/>
<text text-anchor="start" x="235" y="-101.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,-93.5 284,-116.5 313,-116.5 313,-93.5 284,-93.5"/>
<text text-anchor="start" x="288" y="-101.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,-93.5 313,-116.5 321,-116.5 321,-93.5 313,-93.5"/>
<polygon fill="none" stroke="black" points="313,-93.5 313,-116.5 321,-116.5 321,-93.5 313,-93.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="314,-119.75 227,-119.75 227,-96 314,-96 314,-119.75"/>
<polygon fill="none" stroke="black" points="227,-96 227,-119.75 277.75,-119.75 277.75,-96 227,-96"/>
<text text-anchor="start" x="231" y="-102.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,-96 277.75,-119.75 306,-119.75 306,-96 277.75,-96"/>
<text text-anchor="start" x="281.75" y="-102.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,-96 306,-119.75 314,-119.75 314,-96 306,-96"/>
<polygon fill="none" stroke="black" points="306,-96 306,-119.75 314,-119.75 314,-96 306,-96"/>
</g>
<!-- AUTOGENERATED_F_2&#45;&#45;X1 -->
<!-- __F_2&#45;&#45;X1 -->
<g id="edge6" class="edge">
<title>AUTOGENERATED_F_2:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-105.5C381.71,-105.5 398.93,-94.78 454.88,-93.6"/>
<polygon fill="#000000" stroke="#000000" points="455.04,-97.1 465,-93.5 454.96,-90.1 455.04,-97.1"/>
<title>__F_2:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-107.88C374.24,-107.88 391.61,-96.45 446.5,-95.02"/>
<polygon fill="#000000" stroke="#000000" points="446.53,-98.52 456.49,-94.89 446.44,-91.52 446.53,-98.52"/>
</g>
<!-- AUTOGENERATED_F_3 -->
<!-- __F_3 -->
<g id="node3" class="node">
<title>AUTOGENERATED_F_3</title>
<polygon fill="#ffffff" stroke="black" points="321,-70 231,-70 231,-47 321,-47 321,-70"/>
<polygon fill="none" stroke="black" points="231,-46.5 231,-69.5 284,-69.5 284,-46.5 231,-46.5"/>
<text text-anchor="start" x="235" y="-54.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,-46.5 284,-69.5 313,-69.5 313,-46.5 284,-46.5"/>
<text text-anchor="start" x="288" y="-54.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,-46.5 313,-69.5 321,-69.5 321,-46.5 313,-46.5"/>
<polygon fill="none" stroke="black" points="313,-46.5 313,-69.5 321,-69.5 321,-46.5 313,-46.5"/>
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="314,-71.75 227,-71.75 227,-48 314,-48 314,-71.75"/>
<polygon fill="none" stroke="black" points="227,-48 227,-71.75 277.75,-71.75 277.75,-48 227,-48"/>
<text text-anchor="start" x="231" y="-54.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,-48 277.75,-71.75 306,-71.75 306,-48 277.75,-48"/>
<text text-anchor="start" x="281.75" y="-54.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,-48 306,-71.75 314,-71.75 314,-48 306,-48"/>
<polygon fill="none" stroke="black" points="306,-48 306,-71.75 314,-71.75 314,-48 306,-48"/>
</g>
<!-- AUTOGENERATED_F_3&#45;&#45;X1 -->
<!-- __F_3&#45;&#45;X1 -->
<g id="edge7" class="edge">
<title>AUTOGENERATED_F_3:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-58.5C381.71,-58.5 398.93,-69.22 454.88,-70.4"/>
<polygon fill="#000000" stroke="#000000" points="454.96,-73.9 465,-70.5 455.04,-66.9 454.96,-73.9"/>
<title>__F_3:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-59.88C374.21,-59.88 391.64,-70.42 446.5,-71.74"/>
<polygon fill="#000000" stroke="#000000" points="446.45,-75.24 456.49,-71.86 446.53,-68.24 446.45,-75.24"/>
</g>
<!-- AUTOGENERATED_F_4 -->
<!-- __F_4 -->
<g id="node4" class="node">
<title>AUTOGENERATED_F_4</title>
<polygon fill="#ffffff" stroke="black" points="321,-23 231,-23 231,0 321,0 321,-23"/>
<polygon fill="none" stroke="black" points="231,0.5 231,-22.5 284,-22.5 284,0.5 231,0.5"/>
<text text-anchor="start" x="235" y="-7.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="284,0.5 284,-22.5 313,-22.5 313,0.5 284,0.5"/>
<text text-anchor="start" x="288" y="-7.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="transparent" points="313,0.5 313,-22.5 321,-22.5 321,0.5 313,0.5"/>
<polygon fill="none" stroke="black" points="313,0.5 313,-22.5 321,-22.5 321,0.5 313,0.5"/>
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="314,-23.75 227,-23.75 227,0 314,0 314,-23.75"/>
<polygon fill="none" stroke="black" points="227,0 227,-23.75 277.75,-23.75 277.75,0 227,0"/>
<text text-anchor="start" x="231" y="-6.45" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="277.75,0 277.75,-23.75 306,-23.75 306,0 277.75,0"/>
<text text-anchor="start" x="281.75" y="-6.45" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="306,0 306,-23.75 314,-23.75 314,0 306,0"/>
<polygon fill="none" stroke="black" points="306,0 306,-23.75 314,-23.75 314,0 306,0"/>
</g>
<!-- AUTOGENERATED_F_4&#45;&#45;X1 -->
<!-- __F_4&#45;&#45;X1 -->
<g id="edge8" class="edge">
<title>AUTOGENERATED_F_4:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M321,-11.5C383.49,-11.5 397.61,-43.8 455,-47.21"/>
<polygon fill="#000000" stroke="#000000" points="454.9,-50.71 465,-47.5 455.11,-43.71 454.9,-50.71"/>
<title>__F_4:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M314,-11.88C376.08,-11.88 390.29,-44.53 446.57,-48.48"/>
<polygon fill="#000000" stroke="#000000" points="446.37,-51.98 456.49,-48.82 446.61,-44.98 446.37,-51.98"/>
</g>
<!-- W1 -->
<g id="node6" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="87,-206.5 0,-206.5 0,-22.5 87,-22.5 87,-206.5"/>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 87.5,-206.5 87.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="33.5" y="-191.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 33.5,-183.5 33.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="9.5" y="-168.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="33.5,-160.5 33.5,-183.5 70.5,-183.5 70.5,-160.5 33.5,-160.5"/>
<text text-anchor="start" x="42.5" y="-168.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="transparent" points="70.5,-160.5 70.5,-183.5 87.5,-183.5 87.5,-160.5 70.5,-160.5"/>
<polygon fill="none" stroke="black" points="70.5,-160.5 70.5,-183.5 87.5,-183.5 87.5,-160.5 70.5,-160.5"/>
<text text-anchor="start" x="2.5" y="-147.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="13" y="-128.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-120.5 0.5,-122.5 87.5,-122.5 87.5,-120.5 0.5,-120.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-118.5 0.5,-120.5 87.5,-120.5 87.5,-118.5 0.5,-118.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-116.5 0.5,-118.5 87.5,-118.5 87.5,-116.5 0.5,-116.5"/>
<text text-anchor="start" x="10.5" y="-103.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-95.5 0.5,-97.5 87.5,-97.5 87.5,-95.5 0.5,-95.5"/>
<polygon fill="#ffffff" stroke="transparent" points="0.5,-93.5 0.5,-95.5 87.5,-95.5 87.5,-93.5 0.5,-93.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-91.5 0.5,-93.5 87.5,-93.5 87.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="12.5" y="-78.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-70.5 0.5,-72.5 87.5,-72.5 87.5,-70.5 0.5,-70.5"/>
<polygon fill="#0066ff" stroke="transparent" points="0.5,-68.5 0.5,-70.5 87.5,-70.5 87.5,-68.5 0.5,-68.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-66.5 0.5,-68.5 87.5,-68.5 87.5,-66.5 0.5,-66.5"/>
<text text-anchor="start" x="12.5" y="-53.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="0.5,-45.5 0.5,-47.5 87.5,-47.5 87.5,-45.5 0.5,-45.5"/>
<polygon fill="#895956" stroke="transparent" points="0.5,-43.5 0.5,-45.5 87.5,-45.5 87.5,-43.5 0.5,-43.5"/>
<polygon fill="#000000" stroke="transparent" points="0.5,-41.5 0.5,-43.5 87.5,-43.5 87.5,-41.5 0.5,-41.5"/>
<text text-anchor="start" x="2.5" y="-28.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="83,-209.62 0,-209.62 0,-24.12 83,-24.12 83,-209.62"/>
<polygon fill="none" stroke="black" points="0,-185.88 0,-209.62 83,-209.62 83,-185.88 0,-185.88"/>
<text text-anchor="start" x="31" y="-192.32" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0,-162.12 0,-185.88 31.17,-185.88 31.17,-162.12 0,-162.12"/>
<text text-anchor="start" x="8.46" y="-168.57" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="31.17,-162.12 31.17,-185.88 66.08,-185.88 66.08,-162.12 31.17,-162.12"/>
<text text-anchor="start" x="39.62" y="-168.57" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="66.08,-162.12 66.08,-185.88 83,-185.88 83,-162.12 66.08,-162.12"/>
<polygon fill="none" stroke="black" points="66.08,-162.12 66.08,-185.88 83,-185.88 83,-162.12 66.08,-162.12"/>
<text text-anchor="start" x="1.62" y="-146.82" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="11.5" y="-127.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-122.12 0,-124.12 83,-124.12 83,-122.12 0,-122.12"/>
<polygon fill="#000000" stroke="none" points="0,-120.12 0,-122.12 83,-122.12 83,-120.12 0,-120.12"/>
<polygon fill="#000000" stroke="none" points="0,-118.12 0,-120.12 83,-120.12 83,-118.12 0,-118.12"/>
<text text-anchor="start" x="8.88" y="-102.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-97.12 0,-99.12 83,-99.12 83,-97.12 0,-97.12"/>
<polygon fill="#ffffff" stroke="none" points="0,-95.12 0,-97.12 83,-97.12 83,-95.12 0,-95.12"/>
<polygon fill="#000000" stroke="none" points="0,-93.12 0,-95.12 83,-95.12 83,-93.12 0,-93.12"/>
<text text-anchor="start" x="11.12" y="-77.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-72.12 0,-74.12 83,-74.12 83,-72.12 0,-72.12"/>
<polygon fill="#0066ff" stroke="none" points="0,-70.12 0,-72.12 83,-72.12 83,-70.12 0,-70.12"/>
<polygon fill="#000000" stroke="none" points="0,-68.12 0,-70.12 83,-70.12 83,-68.12 0,-68.12"/>
<text text-anchor="start" x="11.12" y="-52.83" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0,-47.12 0,-49.12 83,-49.12 83,-47.12 0,-47.12"/>
<polygon fill="#895956" stroke="none" points="0,-45.12 0,-47.12 83,-47.12 83,-45.12 0,-45.12"/>
<polygon fill="#000000" stroke="none" points="0,-43.12 0,-45.12 83,-45.12 83,-43.12 0,-43.12"/>
<text text-anchor="start" x="1.62" y="-27.82" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_1 -->
<!-- W1&#45;&#45;__F_1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-117.5C154.53,-118.78 167.21,-151.78 231,-150.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-119.5C152.66,-119.5 165.34,-152.5 231,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-121.5C150.79,-120.22 163.47,-153.22 231,-154.5"/>
<title>W1:e&#45;&#45;__F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-118.88C150.75,-120.21 163.02,-155.21 227,-153.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-120.88C148.86,-120.88 161.14,-155.88 227,-155.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-122.87C146.98,-121.54 159.25,-156.54 227,-157.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_2 -->
<!-- W1&#45;&#45;__F_2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-92.5C152.34,-92.86 167.96,-103.86 231,-103.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M87,-94.5C151.19,-94.5 166.81,-105.5 231,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-96.5C150.04,-96.14 165.66,-107.14 231,-107.5"/>
<title>W1:e&#45;&#45;__F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-93.88C148.44,-94.29 164,-106.29 227,-105.88"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M83,-95.87C147.22,-95.87 162.78,-107.87 227,-107.87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-97.87C146,-97.46 161.56,-109.46 227,-109.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_3 -->
<!-- W1&#45;&#45;__F_3 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-67.5C150.04,-67.86 165.66,-56.86 231,-56.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M87,-69.5C151.19,-69.5 166.81,-58.5 231,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-71.5C152.34,-71.14 167.96,-60.14 231,-60.5"/>
<title>W1:e&#45;&#45;__F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-68.88C146.04,-69.24 161.66,-58.24 227,-57.88"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M83,-70.88C147.19,-70.87 162.81,-59.88 227,-59.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-72.87C148.34,-72.51 163.96,-61.51 227,-61.87"/>
</g>
<!-- W1&#45;&#45;AUTOGENERATED_F_4 -->
<!-- W1&#45;&#45;__F_4 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;AUTOGENERATED_F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-42.5C150.79,-43.78 163.47,-10.78 231,-9.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M87,-44.5C152.66,-44.5 165.34,-11.5 231,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-46.5C154.53,-45.22 167.21,-12.22 231,-13.5"/>
<title>W1:e&#45;&#45;__F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-43.88C146.88,-45.19 159.36,-11.19 227,-9.88"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M83,-45.88C148.76,-45.88 161.24,-11.88 227,-11.88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M83,-47.87C150.64,-46.56 163.12,-12.56 227,-13.87"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

4
examples/ex12.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

274
examples/ex12.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex12</title>
<style>
@ -30,195 +30,195 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="1096pt" height="201pt"
viewBox="0.00 0.00 1096.00 200.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 196.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-196.5 1092,-196.5 1092,4 -4,4"/>
<svg width="1071pt" height="205pt"
viewBox="0.00 0.00 1071.25 204.88" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 200.88)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-200.88 1067.25,-200.88 1067.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="468,-161 246,-161 246,0 468,0 468,-161"/>
<polygon fill="none" stroke="black" points="246,-137.5 246,-160.5 468,-160.5 468,-137.5 246,-137.5"/>
<text text-anchor="start" x="348" y="-145.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="246,-114.5 246,-137.5 354,-137.5 354,-114.5 246,-114.5"/>
<text text-anchor="start" x="250" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="354,-114.5 354,-137.5 393,-137.5 393,-114.5 354,-114.5"/>
<text text-anchor="start" x="358" y="-122.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="393,-114.5 393,-137.5 433,-137.5 433,-114.5 393,-114.5"/>
<text text-anchor="start" x="397" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="433,-114.5 433,-137.5 460,-137.5 460,-114.5 433,-114.5"/>
<text text-anchor="start" x="437" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="transparent" points="460,-114.5 460,-137.5 468,-137.5 468,-114.5 460,-114.5"/>
<polygon fill="none" stroke="black" points="460,-114.5 460,-137.5 468,-137.5 468,-114.5 460,-114.5"/>
<polygon fill="none" stroke="black" points="246,-91.5 246,-114.5 468,-114.5 468,-91.5 246,-91.5"/>
<text text-anchor="start" x="353" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="246,-68.5 246,-91.5 468,-91.5 468,-68.5 246,-68.5"/>
<text text-anchor="start" x="353" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="246,-45.5 246,-68.5 468,-68.5 468,-45.5 246,-45.5"/>
<text text-anchor="start" x="353" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="246,-22.5 246,-45.5 468,-45.5 468,-22.5 246,-22.5"/>
<text text-anchor="start" x="353" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="246,0.5 246,-22.5 468,-22.5 468,0.5 246,0.5"/>
<text text-anchor="start" x="353" y="-7.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="#ffffff" stroke="black" points="455.5,-166.25 240,-166.25 240,0 455.5,0 455.5,-166.25"/>
<polygon fill="none" stroke="black" points="240,-142.5 240,-166.25 455.5,-166.25 455.5,-142.5 240,-142.5"/>
<text text-anchor="start" x="339.5" y="-148.95" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="240,-118.75 240,-142.5 345.5,-142.5 345.5,-118.75 240,-118.75"/>
<text text-anchor="start" x="244" y="-125.2" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="345.5,-118.75 345.5,-142.5 383.5,-142.5 383.5,-118.75 345.5,-118.75"/>
<text text-anchor="start" x="349.5" y="-125.2" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="383.5,-118.75 383.5,-142.5 421.5,-142.5 421.5,-118.75 383.5,-118.75"/>
<text text-anchor="start" x="387.5" y="-125.2" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="421.5,-118.75 421.5,-142.5 447.5,-142.5 447.5,-118.75 421.5,-118.75"/>
<text text-anchor="start" x="425.5" y="-125.2" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="447.5,-118.75 447.5,-142.5 455.5,-142.5 455.5,-118.75 447.5,-118.75"/>
<polygon fill="none" stroke="black" points="447.5,-118.75 447.5,-142.5 455.5,-142.5 455.5,-118.75 447.5,-118.75"/>
<polygon fill="none" stroke="black" points="240,-95 240,-118.75 455.5,-118.75 455.5,-95 240,-95"/>
<text text-anchor="start" x="344" y="-101.45" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="240,-71.25 240,-95 455.5,-95 455.5,-71.25 240,-71.25"/>
<text text-anchor="start" x="344" y="-77.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="240,-47.5 240,-71.25 455.5,-71.25 455.5,-47.5 240,-47.5"/>
<text text-anchor="start" x="344" y="-53.95" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="240,-23.75 240,-47.5 455.5,-47.5 455.5,-23.75 240,-23.75"/>
<text text-anchor="start" x="344" y="-30.2" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="240,0 240,-23.75 455.5,-23.75 455.5,0 240,0"/>
<text text-anchor="start" x="344" y="-6.45" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="846,-161 612,-161 612,0 846,0 846,-161"/>
<polygon fill="none" stroke="black" points="612,-137.5 612,-160.5 846,-160.5 846,-137.5 612,-137.5"/>
<text text-anchor="start" x="720" y="-145.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="612,-114.5 612,-137.5 720,-137.5 720,-114.5 612,-114.5"/>
<text text-anchor="start" x="616" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="720,-114.5 720,-137.5 771,-137.5 771,-114.5 720,-114.5"/>
<text text-anchor="start" x="724" y="-122.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="771,-114.5 771,-137.5 811,-137.5 811,-114.5 771,-114.5"/>
<text text-anchor="start" x="775" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="811,-114.5 811,-137.5 838,-137.5 838,-114.5 811,-114.5"/>
<text text-anchor="start" x="815" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="transparent" points="838,-114.5 838,-137.5 846,-137.5 846,-114.5 838,-114.5"/>
<polygon fill="none" stroke="black" points="838,-114.5 838,-137.5 846,-137.5 846,-114.5 838,-114.5"/>
<polygon fill="none" stroke="black" points="612,-91.5 612,-114.5 846,-114.5 846,-91.5 612,-91.5"/>
<text text-anchor="start" x="725" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="612,-68.5 612,-91.5 846,-91.5 846,-68.5 612,-68.5"/>
<text text-anchor="start" x="725" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="612,-45.5 612,-68.5 846,-68.5 846,-45.5 612,-45.5"/>
<text text-anchor="start" x="725" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="612,-22.5 612,-45.5 846,-45.5 846,-22.5 612,-22.5"/>
<text text-anchor="start" x="725" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="612,0.5 612,-22.5 846,-22.5 846,0.5 612,0.5"/>
<text text-anchor="start" x="725" y="-7.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="#ffffff" stroke="black" points="826.25,-166.25 599.5,-166.25 599.5,0 826.25,0 826.25,-166.25"/>
<polygon fill="none" stroke="black" points="599.5,-142.5 599.5,-166.25 826.25,-166.25 826.25,-142.5 599.5,-142.5"/>
<text text-anchor="start" x="704.62" y="-148.95" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="599.5,-118.75 599.5,-142.5 705,-142.5 705,-118.75 599.5,-118.75"/>
<text text-anchor="start" x="603.5" y="-125.2" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="705,-118.75 705,-142.5 754.25,-142.5 754.25,-118.75 705,-118.75"/>
<text text-anchor="start" x="709" y="-125.2" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="754.25,-118.75 754.25,-142.5 792.25,-142.5 792.25,-118.75 754.25,-118.75"/>
<text text-anchor="start" x="758.25" y="-125.2" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="792.25,-118.75 792.25,-142.5 818.25,-142.5 818.25,-118.75 792.25,-118.75"/>
<text text-anchor="start" x="796.25" y="-125.2" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="818.25,-118.75 818.25,-142.5 826.25,-142.5 826.25,-118.75 818.25,-118.75"/>
<polygon fill="none" stroke="black" points="818.25,-118.75 818.25,-142.5 826.25,-142.5 826.25,-118.75 818.25,-118.75"/>
<polygon fill="none" stroke="black" points="599.5,-95 599.5,-118.75 826.25,-118.75 826.25,-95 599.5,-95"/>
<text text-anchor="start" x="709.12" y="-101.45" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="599.5,-71.25 599.5,-95 826.25,-95 826.25,-71.25 599.5,-71.25"/>
<text text-anchor="start" x="709.12" y="-77.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="599.5,-47.5 599.5,-71.25 826.25,-71.25 826.25,-47.5 599.5,-47.5"/>
<text text-anchor="start" x="709.12" y="-53.95" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="599.5,-23.75 599.5,-47.5 826.25,-47.5 826.25,-23.75 599.5,-23.75"/>
<text text-anchor="start" x="709.12" y="-30.2" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="599.5,0 599.5,-23.75 826.25,-23.75 826.25,0 599.5,0"/>
<text text-anchor="start" x="709.12" y="-6.45" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X1&#45;&#45;X2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M468,-79.5C528.5,-79.5 546.11,-79.5 601.91,-79.5"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M468,-81.5C528.5,-81.5 546.11,-81.5 601.91,-81.5"/>
<polygon fill="#000000" stroke="#000000" points="602,-84 612,-80.5 602,-77 602,-84"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M455.5,-82.13C515.5,-82.12 533.31,-82.12 588.04,-82.13"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M455.5,-84.12C515.5,-84.12 533.31,-84.12 588.04,-84.12"/>
<polygon fill="#000000" stroke="#000000" points="587.99,-86.63 597.99,-83.13 587.99,-79.63 587.99,-86.63"/>
</g>
<!-- W2 -->
<g id="node4" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1088,-192.5 990,-192.5 990,-8.5 1088,-8.5 1088,-192.5"/>
<polygon fill="none" stroke="black" points="990,-169.5 990,-192.5 1088,-192.5 1088,-169.5 990,-169.5"/>
<text text-anchor="start" x="1028.5" y="-177.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="990,-146.5 990,-169.5 1029,-169.5 1029,-146.5 990,-146.5"/>
<text text-anchor="start" x="1002" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1029,-146.5 1029,-169.5 1088,-169.5 1088,-146.5 1029,-146.5"/>
<text text-anchor="start" x="1040.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1004.5" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="992" y="-114.3" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="1025.5" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-106.5 990,-108.5 1088,-108.5 1088,-106.5 990,-106.5"/>
<polygon fill="#ff0000" stroke="transparent" points="990,-104.5 990,-106.5 1088,-106.5 1088,-104.5 990,-104.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-102.5 990,-104.5 1088,-104.5 1088,-102.5 990,-102.5"/>
<text text-anchor="start" x="992" y="-89.3" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="1026.5" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-81.5 990,-83.5 1088,-83.5 1088,-81.5 990,-81.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-79.5 990,-81.5 1088,-81.5 1088,-79.5 990,-79.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-77.5 990,-79.5 1088,-79.5 1088,-77.5 990,-77.5"/>
<text text-anchor="start" x="992" y="-64.3" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="1026" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-56.5 990,-58.5 1088,-58.5 1088,-56.5 990,-56.5"/>
<polygon fill="#0066ff" stroke="transparent" points="990,-54.5 990,-56.5 1088,-56.5 1088,-54.5 990,-54.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-52.5 990,-54.5 1088,-54.5 1088,-52.5 990,-52.5"/>
<text text-anchor="start" x="992" y="-39.3" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="1025" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-31.5 990,-33.5 1088,-33.5 1088,-31.5 990,-31.5"/>
<polygon fill="#00ff00" stroke="transparent" points="990,-29.5 990,-31.5 1088,-31.5 1088,-29.5 990,-29.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-27.5 990,-29.5 1088,-29.5 1088,-27.5 990,-27.5"/>
<text text-anchor="start" x="1004.5" y="-14.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1063.25,-196.88 970.25,-196.88 970.25,-11.38 1063.25,-11.38 1063.25,-196.88"/>
<polygon fill="none" stroke="black" points="970.25,-173.12 970.25,-196.88 1063.25,-196.88 1063.25,-173.12 970.25,-173.12"/>
<text text-anchor="start" x="1006.25" y="-179.57" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="970.25,-149.38 970.25,-173.12 1006.62,-173.12 1006.62,-149.38 970.25,-149.38"/>
<text text-anchor="start" x="981.31" y="-155.82" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1006.62,-149.38 1006.62,-173.12 1063.25,-173.12 1063.25,-149.38 1006.62,-149.38"/>
<text text-anchor="start" x="1017.69" y="-155.82" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="983.88" y="-134.07" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="971.88" y="-115.08" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="1003.62" y="-115.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-109.38 970.25,-111.38 1063.25,-111.38 1063.25,-109.38 970.25,-109.38"/>
<polygon fill="#ff0000" stroke="none" points="970.25,-107.38 970.25,-109.38 1063.25,-109.38 1063.25,-107.38 970.25,-107.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-105.38 970.25,-107.38 1063.25,-107.38 1063.25,-105.38 970.25,-105.38"/>
<text text-anchor="start" x="971.88" y="-90.08" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="1004.38" y="-90.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-84.38 970.25,-86.38 1063.25,-86.38 1063.25,-84.38 970.25,-84.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-82.38 970.25,-84.38 1063.25,-84.38 1063.25,-82.38 970.25,-82.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-80.38 970.25,-82.38 1063.25,-82.38 1063.25,-80.38 970.25,-80.38"/>
<text text-anchor="start" x="971.88" y="-65.08" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="1004" y="-65.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-59.38 970.25,-61.38 1063.25,-61.38 1063.25,-59.38 970.25,-59.38"/>
<polygon fill="#0066ff" stroke="none" points="970.25,-57.38 970.25,-59.38 1063.25,-59.38 1063.25,-57.38 970.25,-57.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-55.38 970.25,-57.38 1063.25,-57.38 1063.25,-55.38 970.25,-55.38"/>
<text text-anchor="start" x="971.88" y="-40.08" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="1002.88" y="-40.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-34.38 970.25,-36.38 1063.25,-36.38 1063.25,-34.38 970.25,-34.38"/>
<polygon fill="#00ff00" stroke="none" points="970.25,-32.38 970.25,-34.38 1063.25,-34.38 1063.25,-32.38 970.25,-32.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-30.38 970.25,-32.38 1063.25,-32.38 1063.25,-30.38 970.25,-30.38"/>
<text text-anchor="start" x="983.88" y="-15.07" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-101.5C910.25,-101.52 926.24,-103.52 990,-103.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M846,-103.5C910.01,-103.5 925.99,-105.5 990,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-105.5C909.76,-105.48 925.75,-107.48 990,-107.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-105.13C890.38,-105.13 906.37,-106.13 970.25,-106.13"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M826.25,-107.12C890.25,-107.12 906.25,-108.12 970.25,-108.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-109.12C890.13,-109.12 906.12,-110.12 970.25,-110.12"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge6" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-77.5C910.13,-77.5 926.12,-78.5 990,-78.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-79.5C910,-79.5 926,-80.5 990,-80.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-81.5C909.88,-81.5 925.87,-82.5 990,-82.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-81.13C890.25,-81.12 906.25,-81.12 970.25,-81.13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-83.12C890.25,-83.12 906.25,-83.12 970.25,-83.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-85.12C890.25,-85.12 906.25,-85.12 970.25,-85.12"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-54.5C909.88,-54.5 925.87,-53.5 990,-53.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M846,-56.5C910,-56.5 926,-55.5 990,-55.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-58.5C910.13,-58.5 926.12,-57.5 990,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-57.13C890.13,-57.13 906.12,-56.13 970.25,-56.13"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M826.25,-59.12C890.25,-59.13 906.25,-58.13 970.25,-58.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-61.12C890.38,-61.12 906.37,-60.12 970.25,-60.12"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge8" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-31.5C909.64,-31.53 925.62,-28.53 990,-28.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M846,-33.5C910.01,-33.5 925.99,-30.5 990,-30.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-35.5C910.38,-35.47 926.36,-32.47 990,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-33.13C890.01,-33.14 906,-31.14 970.25,-31.13"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M826.25,-35.12C890.26,-35.12 906.24,-33.12 970.25,-33.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-37.12C890.5,-37.11 906.49,-35.11 970.25,-35.12"/>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="102,-192.5 0,-192.5 0,-8.5 102,-8.5 102,-192.5"/>
<polygon fill="none" stroke="black" points="0,-169.5 0,-192.5 102,-192.5 102,-169.5 0,-169.5"/>
<text text-anchor="start" x="40.5" y="-177.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0,-146.5 0,-169.5 41,-169.5 41,-146.5 0,-146.5"/>
<text text-anchor="start" x="13" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="41,-146.5 41,-169.5 102,-169.5 102,-146.5 41,-146.5"/>
<text text-anchor="start" x="53.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="2" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="10.5" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-114.3" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="transparent" points="0,-106.5 0,-108.5 102,-108.5 102,-106.5 0,-106.5"/>
<polygon fill="#ff0000" stroke="transparent" points="0,-104.5 0,-106.5 102,-106.5 102,-104.5 0,-104.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-102.5 0,-104.5 102,-104.5 102,-102.5 0,-102.5"/>
<text text-anchor="start" x="11.5" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-89.3" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="transparent" points="0,-81.5 0,-83.5 102,-83.5 102,-81.5 0,-81.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-79.5 0,-81.5 102,-81.5 102,-79.5 0,-79.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-77.5 0,-79.5 102,-79.5 102,-77.5 0,-77.5"/>
<text text-anchor="start" x="11" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-64.3" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="transparent" points="0,-56.5 0,-58.5 102,-58.5 102,-56.5 0,-56.5"/>
<polygon fill="#0066ff" stroke="transparent" points="0,-54.5 0,-56.5 102,-56.5 102,-54.5 0,-54.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-52.5 0,-54.5 102,-54.5 102,-52.5 0,-52.5"/>
<text text-anchor="start" x="10" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-39.3" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="transparent" points="0,-31.5 0,-33.5 102,-33.5 102,-31.5 0,-31.5"/>
<polygon fill="#00ff00" stroke="transparent" points="0,-29.5 0,-31.5 102,-31.5 102,-29.5 0,-29.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-27.5 0,-29.5 102,-29.5 102,-27.5 0,-27.5"/>
<text text-anchor="start" x="2" y="-14.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="96,-196.88 0,-196.88 0,-11.38 96,-11.38 96,-196.88"/>
<polygon fill="none" stroke="black" points="0,-173.12 0,-196.88 96,-196.88 96,-173.12 0,-173.12"/>
<text text-anchor="start" x="37.5" y="-179.57" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0,-149.38 0,-173.12 37.88,-173.12 37.88,-149.38 0,-149.38"/>
<text text-anchor="start" x="11.81" y="-155.82" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="37.88,-149.38 37.88,-173.12 96,-173.12 96,-149.38 37.88,-149.38"/>
<text text-anchor="start" x="49.69" y="-155.82" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1.62" y="-134.07" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="9.38" y="-115.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-115.08" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="0,-109.38 0,-111.38 96,-111.38 96,-109.38 0,-109.38"/>
<polygon fill="#ff0000" stroke="none" points="0,-107.38 0,-109.38 96,-109.38 96,-107.38 0,-107.38"/>
<polygon fill="#000000" stroke="none" points="0,-105.38 0,-107.38 96,-107.38 96,-105.38 0,-105.38"/>
<text text-anchor="start" x="10.12" y="-90.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-90.08" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="0,-84.38 0,-86.38 96,-86.38 96,-84.38 0,-84.38"/>
<polygon fill="#000000" stroke="none" points="0,-82.38 0,-84.38 96,-84.38 96,-82.38 0,-82.38"/>
<polygon fill="#000000" stroke="none" points="0,-80.38 0,-82.38 96,-82.38 96,-80.38 0,-80.38"/>
<text text-anchor="start" x="9.75" y="-65.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-65.08" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="0,-59.38 0,-61.38 96,-61.38 96,-59.38 0,-59.38"/>
<polygon fill="#0066ff" stroke="none" points="0,-57.38 0,-59.38 96,-59.38 96,-57.38 0,-57.38"/>
<polygon fill="#000000" stroke="none" points="0,-55.38 0,-57.38 96,-57.38 96,-55.38 0,-55.38"/>
<text text-anchor="start" x="8.62" y="-40.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-40.08" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="0,-34.38 0,-36.38 96,-36.38 96,-34.38 0,-34.38"/>
<polygon fill="#00ff00" stroke="none" points="0,-32.38 0,-34.38 96,-34.38 96,-32.38 0,-32.38"/>
<polygon fill="#000000" stroke="none" points="0,-30.38 0,-32.38 96,-32.38 96,-30.38 0,-30.38"/>
<text text-anchor="start" x="1.62" y="-15.07" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-103.5C165.76,-103.52 181.75,-101.52 246,-101.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M102,-105.5C166.01,-105.5 181.99,-103.5 246,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-107.5C166.25,-107.48 182.24,-105.48 246,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-106.13C159.88,-106.13 175.87,-105.13 240,-105.13"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M96,-108.12C160,-108.12 176,-107.12 240,-107.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-110.12C160.13,-110.12 176.12,-109.12 240,-109.12"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-78.5C165.88,-78.5 181.87,-77.5 246,-77.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-80.5C166,-80.5 182,-79.5 246,-79.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-82.5C166.13,-82.5 182.12,-81.5 246,-81.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-81.13C160,-81.12 176,-81.12 240,-81.13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-83.12C160,-83.12 176,-83.12 240,-83.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-85.12C160,-85.12 176,-85.12 240,-85.12"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-53.5C166.13,-53.5 182.12,-54.5 246,-54.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M102,-55.5C166,-55.5 182,-56.5 246,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-57.5C165.88,-57.5 181.87,-58.5 246,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-56.13C160.13,-56.13 176.12,-57.13 240,-57.13"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M96,-58.12C160,-58.13 176,-59.13 240,-59.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-60.12C159.88,-60.12 175.87,-61.12 240,-61.12"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-28.5C166.38,-28.53 182.36,-31.53 246,-31.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M102,-30.5C166.01,-30.5 181.99,-33.5 246,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-32.5C165.64,-32.47 181.62,-35.47 246,-35.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-31.13C160.25,-31.14 176.24,-33.14 240,-33.13"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M96,-33.12C160.01,-33.12 175.99,-35.12 240,-35.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-35.12C159.76,-35.11 175.75,-37.11 240,-37.12"/>
</g>
</g>
</svg>

BIN
examples/ex12.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 27 KiB

272
examples/ex12.svg generated
View File

@ -1,195 +1,195 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="1096pt" height="201pt"
viewBox="0.00 0.00 1096.00 200.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 196.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-196.5 1092,-196.5 1092,4 -4,4"/>
<svg width="1071pt" height="205pt"
viewBox="0.00 0.00 1071.25 204.88" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 200.88)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-200.88 1067.25,-200.88 1067.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="468,-161 246,-161 246,0 468,0 468,-161"/>
<polygon fill="none" stroke="black" points="246,-137.5 246,-160.5 468,-160.5 468,-137.5 246,-137.5"/>
<text text-anchor="start" x="348" y="-145.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="246,-114.5 246,-137.5 354,-137.5 354,-114.5 246,-114.5"/>
<text text-anchor="start" x="250" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="354,-114.5 354,-137.5 393,-137.5 393,-114.5 354,-114.5"/>
<text text-anchor="start" x="358" y="-122.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="393,-114.5 393,-137.5 433,-137.5 433,-114.5 393,-114.5"/>
<text text-anchor="start" x="397" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="433,-114.5 433,-137.5 460,-137.5 460,-114.5 433,-114.5"/>
<text text-anchor="start" x="437" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="transparent" points="460,-114.5 460,-137.5 468,-137.5 468,-114.5 460,-114.5"/>
<polygon fill="none" stroke="black" points="460,-114.5 460,-137.5 468,-137.5 468,-114.5 460,-114.5"/>
<polygon fill="none" stroke="black" points="246,-91.5 246,-114.5 468,-114.5 468,-91.5 246,-91.5"/>
<text text-anchor="start" x="353" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="246,-68.5 246,-91.5 468,-91.5 468,-68.5 246,-68.5"/>
<text text-anchor="start" x="353" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="246,-45.5 246,-68.5 468,-68.5 468,-45.5 246,-45.5"/>
<text text-anchor="start" x="353" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="246,-22.5 246,-45.5 468,-45.5 468,-22.5 246,-22.5"/>
<text text-anchor="start" x="353" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="246,0.5 246,-22.5 468,-22.5 468,0.5 246,0.5"/>
<text text-anchor="start" x="353" y="-7.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="#ffffff" stroke="black" points="455.5,-166.25 240,-166.25 240,0 455.5,0 455.5,-166.25"/>
<polygon fill="none" stroke="black" points="240,-142.5 240,-166.25 455.5,-166.25 455.5,-142.5 240,-142.5"/>
<text text-anchor="start" x="339.5" y="-148.95" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="240,-118.75 240,-142.5 345.5,-142.5 345.5,-118.75 240,-118.75"/>
<text text-anchor="start" x="244" y="-125.2" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="345.5,-118.75 345.5,-142.5 383.5,-142.5 383.5,-118.75 345.5,-118.75"/>
<text text-anchor="start" x="349.5" y="-125.2" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="383.5,-118.75 383.5,-142.5 421.5,-142.5 421.5,-118.75 383.5,-118.75"/>
<text text-anchor="start" x="387.5" y="-125.2" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="421.5,-118.75 421.5,-142.5 447.5,-142.5 447.5,-118.75 421.5,-118.75"/>
<text text-anchor="start" x="425.5" y="-125.2" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="447.5,-118.75 447.5,-142.5 455.5,-142.5 455.5,-118.75 447.5,-118.75"/>
<polygon fill="none" stroke="black" points="447.5,-118.75 447.5,-142.5 455.5,-142.5 455.5,-118.75 447.5,-118.75"/>
<polygon fill="none" stroke="black" points="240,-95 240,-118.75 455.5,-118.75 455.5,-95 240,-95"/>
<text text-anchor="start" x="344" y="-101.45" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="240,-71.25 240,-95 455.5,-95 455.5,-71.25 240,-71.25"/>
<text text-anchor="start" x="344" y="-77.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="240,-47.5 240,-71.25 455.5,-71.25 455.5,-47.5 240,-47.5"/>
<text text-anchor="start" x="344" y="-53.95" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="240,-23.75 240,-47.5 455.5,-47.5 455.5,-23.75 240,-23.75"/>
<text text-anchor="start" x="344" y="-30.2" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="240,0 240,-23.75 455.5,-23.75 455.5,0 240,0"/>
<text text-anchor="start" x="344" y="-6.45" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="846,-161 612,-161 612,0 846,0 846,-161"/>
<polygon fill="none" stroke="black" points="612,-137.5 612,-160.5 846,-160.5 846,-137.5 612,-137.5"/>
<text text-anchor="start" x="720" y="-145.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="612,-114.5 612,-137.5 720,-137.5 720,-114.5 612,-114.5"/>
<text text-anchor="start" x="616" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="720,-114.5 720,-137.5 771,-137.5 771,-114.5 720,-114.5"/>
<text text-anchor="start" x="724" y="-122.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="771,-114.5 771,-137.5 811,-137.5 811,-114.5 771,-114.5"/>
<text text-anchor="start" x="775" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="811,-114.5 811,-137.5 838,-137.5 838,-114.5 811,-114.5"/>
<text text-anchor="start" x="815" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="transparent" points="838,-114.5 838,-137.5 846,-137.5 846,-114.5 838,-114.5"/>
<polygon fill="none" stroke="black" points="838,-114.5 838,-137.5 846,-137.5 846,-114.5 838,-114.5"/>
<polygon fill="none" stroke="black" points="612,-91.5 612,-114.5 846,-114.5 846,-91.5 612,-91.5"/>
<text text-anchor="start" x="725" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="612,-68.5 612,-91.5 846,-91.5 846,-68.5 612,-68.5"/>
<text text-anchor="start" x="725" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="612,-45.5 612,-68.5 846,-68.5 846,-45.5 612,-45.5"/>
<text text-anchor="start" x="725" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="612,-22.5 612,-45.5 846,-45.5 846,-22.5 612,-22.5"/>
<text text-anchor="start" x="725" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="612,0.5 612,-22.5 846,-22.5 846,0.5 612,0.5"/>
<text text-anchor="start" x="725" y="-7.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="#ffffff" stroke="black" points="826.25,-166.25 599.5,-166.25 599.5,0 826.25,0 826.25,-166.25"/>
<polygon fill="none" stroke="black" points="599.5,-142.5 599.5,-166.25 826.25,-166.25 826.25,-142.5 599.5,-142.5"/>
<text text-anchor="start" x="704.62" y="-148.95" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="599.5,-118.75 599.5,-142.5 705,-142.5 705,-118.75 599.5,-118.75"/>
<text text-anchor="start" x="603.5" y="-125.2" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="705,-118.75 705,-142.5 754.25,-142.5 754.25,-118.75 705,-118.75"/>
<text text-anchor="start" x="709" y="-125.2" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="754.25,-118.75 754.25,-142.5 792.25,-142.5 792.25,-118.75 754.25,-118.75"/>
<text text-anchor="start" x="758.25" y="-125.2" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="792.25,-118.75 792.25,-142.5 818.25,-142.5 818.25,-118.75 792.25,-118.75"/>
<text text-anchor="start" x="796.25" y="-125.2" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="818.25,-118.75 818.25,-142.5 826.25,-142.5 826.25,-118.75 818.25,-118.75"/>
<polygon fill="none" stroke="black" points="818.25,-118.75 818.25,-142.5 826.25,-142.5 826.25,-118.75 818.25,-118.75"/>
<polygon fill="none" stroke="black" points="599.5,-95 599.5,-118.75 826.25,-118.75 826.25,-95 599.5,-95"/>
<text text-anchor="start" x="709.12" y="-101.45" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="599.5,-71.25 599.5,-95 826.25,-95 826.25,-71.25 599.5,-71.25"/>
<text text-anchor="start" x="709.12" y="-77.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="599.5,-47.5 599.5,-71.25 826.25,-71.25 826.25,-47.5 599.5,-47.5"/>
<text text-anchor="start" x="709.12" y="-53.95" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="599.5,-23.75 599.5,-47.5 826.25,-47.5 826.25,-23.75 599.5,-23.75"/>
<text text-anchor="start" x="709.12" y="-30.2" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="599.5,0 599.5,-23.75 826.25,-23.75 826.25,0 599.5,0"/>
<text text-anchor="start" x="709.12" y="-6.45" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X1&#45;&#45;X2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M468,-79.5C528.5,-79.5 546.11,-79.5 601.91,-79.5"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M468,-81.5C528.5,-81.5 546.11,-81.5 601.91,-81.5"/>
<polygon fill="#000000" stroke="#000000" points="602,-84 612,-80.5 602,-77 602,-84"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M455.5,-82.13C515.5,-82.12 533.31,-82.12 588.04,-82.13"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M455.5,-84.12C515.5,-84.12 533.31,-84.12 588.04,-84.12"/>
<polygon fill="#000000" stroke="#000000" points="587.99,-86.63 597.99,-83.13 587.99,-79.63 587.99,-86.63"/>
</g>
<!-- W2 -->
<g id="node4" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1088,-192.5 990,-192.5 990,-8.5 1088,-8.5 1088,-192.5"/>
<polygon fill="none" stroke="black" points="990,-169.5 990,-192.5 1088,-192.5 1088,-169.5 990,-169.5"/>
<text text-anchor="start" x="1028.5" y="-177.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="990,-146.5 990,-169.5 1029,-169.5 1029,-146.5 990,-146.5"/>
<text text-anchor="start" x="1002" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1029,-146.5 1029,-169.5 1088,-169.5 1088,-146.5 1029,-146.5"/>
<text text-anchor="start" x="1040.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1004.5" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="992" y="-114.3" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="1025.5" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-106.5 990,-108.5 1088,-108.5 1088,-106.5 990,-106.5"/>
<polygon fill="#ff0000" stroke="transparent" points="990,-104.5 990,-106.5 1088,-106.5 1088,-104.5 990,-104.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-102.5 990,-104.5 1088,-104.5 1088,-102.5 990,-102.5"/>
<text text-anchor="start" x="992" y="-89.3" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="1026.5" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-81.5 990,-83.5 1088,-83.5 1088,-81.5 990,-81.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-79.5 990,-81.5 1088,-81.5 1088,-79.5 990,-79.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-77.5 990,-79.5 1088,-79.5 1088,-77.5 990,-77.5"/>
<text text-anchor="start" x="992" y="-64.3" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="1026" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-56.5 990,-58.5 1088,-58.5 1088,-56.5 990,-56.5"/>
<polygon fill="#0066ff" stroke="transparent" points="990,-54.5 990,-56.5 1088,-56.5 1088,-54.5 990,-54.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-52.5 990,-54.5 1088,-54.5 1088,-52.5 990,-52.5"/>
<text text-anchor="start" x="992" y="-39.3" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="1025" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="990,-31.5 990,-33.5 1088,-33.5 1088,-31.5 990,-31.5"/>
<polygon fill="#00ff00" stroke="transparent" points="990,-29.5 990,-31.5 1088,-31.5 1088,-29.5 990,-29.5"/>
<polygon fill="#000000" stroke="transparent" points="990,-27.5 990,-29.5 1088,-29.5 1088,-27.5 990,-27.5"/>
<text text-anchor="start" x="1004.5" y="-14.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1063.25,-196.88 970.25,-196.88 970.25,-11.38 1063.25,-11.38 1063.25,-196.88"/>
<polygon fill="none" stroke="black" points="970.25,-173.12 970.25,-196.88 1063.25,-196.88 1063.25,-173.12 970.25,-173.12"/>
<text text-anchor="start" x="1006.25" y="-179.57" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="970.25,-149.38 970.25,-173.12 1006.62,-173.12 1006.62,-149.38 970.25,-149.38"/>
<text text-anchor="start" x="981.31" y="-155.82" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1006.62,-149.38 1006.62,-173.12 1063.25,-173.12 1063.25,-149.38 1006.62,-149.38"/>
<text text-anchor="start" x="1017.69" y="-155.82" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="983.88" y="-134.07" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="971.88" y="-115.08" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="1003.62" y="-115.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-109.38 970.25,-111.38 1063.25,-111.38 1063.25,-109.38 970.25,-109.38"/>
<polygon fill="#ff0000" stroke="none" points="970.25,-107.38 970.25,-109.38 1063.25,-109.38 1063.25,-107.38 970.25,-107.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-105.38 970.25,-107.38 1063.25,-107.38 1063.25,-105.38 970.25,-105.38"/>
<text text-anchor="start" x="971.88" y="-90.08" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="1004.38" y="-90.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-84.38 970.25,-86.38 1063.25,-86.38 1063.25,-84.38 970.25,-84.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-82.38 970.25,-84.38 1063.25,-84.38 1063.25,-82.38 970.25,-82.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-80.38 970.25,-82.38 1063.25,-82.38 1063.25,-80.38 970.25,-80.38"/>
<text text-anchor="start" x="971.88" y="-65.08" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="1004" y="-65.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-59.38 970.25,-61.38 1063.25,-61.38 1063.25,-59.38 970.25,-59.38"/>
<polygon fill="#0066ff" stroke="none" points="970.25,-57.38 970.25,-59.38 1063.25,-59.38 1063.25,-57.38 970.25,-57.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-55.38 970.25,-57.38 1063.25,-57.38 1063.25,-55.38 970.25,-55.38"/>
<text text-anchor="start" x="971.88" y="-40.08" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="1002.88" y="-40.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="970.25,-34.38 970.25,-36.38 1063.25,-36.38 1063.25,-34.38 970.25,-34.38"/>
<polygon fill="#00ff00" stroke="none" points="970.25,-32.38 970.25,-34.38 1063.25,-34.38 1063.25,-32.38 970.25,-32.38"/>
<polygon fill="#000000" stroke="none" points="970.25,-30.38 970.25,-32.38 1063.25,-32.38 1063.25,-30.38 970.25,-30.38"/>
<text text-anchor="start" x="983.88" y="-15.07" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-101.5C910.25,-101.52 926.24,-103.52 990,-103.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M846,-103.5C910.01,-103.5 925.99,-105.5 990,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-105.5C909.76,-105.48 925.75,-107.48 990,-107.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-105.13C890.38,-105.13 906.37,-106.13 970.25,-106.13"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M826.25,-107.12C890.25,-107.12 906.25,-108.12 970.25,-108.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-109.12C890.13,-109.12 906.12,-110.12 970.25,-110.12"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge6" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-77.5C910.13,-77.5 926.12,-78.5 990,-78.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-79.5C910,-79.5 926,-80.5 990,-80.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-81.5C909.88,-81.5 925.87,-82.5 990,-82.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-81.13C890.25,-81.12 906.25,-81.12 970.25,-81.13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-83.12C890.25,-83.12 906.25,-83.12 970.25,-83.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-85.12C890.25,-85.12 906.25,-85.12 970.25,-85.12"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-54.5C909.88,-54.5 925.87,-53.5 990,-53.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M846,-56.5C910,-56.5 926,-55.5 990,-55.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-58.5C910.13,-58.5 926.12,-57.5 990,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-57.13C890.13,-57.13 906.12,-56.13 970.25,-56.13"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M826.25,-59.12C890.25,-59.13 906.25,-58.13 970.25,-58.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-61.12C890.38,-61.12 906.37,-60.12 970.25,-60.12"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge8" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-31.5C909.64,-31.53 925.62,-28.53 990,-28.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M846,-33.5C910.01,-33.5 925.99,-30.5 990,-30.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M846,-35.5C910.38,-35.47 926.36,-32.47 990,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-33.13C890.01,-33.14 906,-31.14 970.25,-31.13"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M826.25,-35.12C890.26,-35.12 906.24,-33.12 970.25,-33.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M826.25,-37.12C890.5,-37.11 906.49,-35.11 970.25,-35.12"/>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="102,-192.5 0,-192.5 0,-8.5 102,-8.5 102,-192.5"/>
<polygon fill="none" stroke="black" points="0,-169.5 0,-192.5 102,-192.5 102,-169.5 0,-169.5"/>
<text text-anchor="start" x="40.5" y="-177.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0,-146.5 0,-169.5 41,-169.5 41,-146.5 0,-146.5"/>
<text text-anchor="start" x="13" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="41,-146.5 41,-169.5 102,-169.5 102,-146.5 41,-146.5"/>
<text text-anchor="start" x="53.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="2" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="10.5" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-114.3" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="transparent" points="0,-106.5 0,-108.5 102,-108.5 102,-106.5 0,-106.5"/>
<polygon fill="#ff0000" stroke="transparent" points="0,-104.5 0,-106.5 102,-106.5 102,-104.5 0,-104.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-102.5 0,-104.5 102,-104.5 102,-102.5 0,-102.5"/>
<text text-anchor="start" x="11.5" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-89.3" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="transparent" points="0,-81.5 0,-83.5 102,-83.5 102,-81.5 0,-81.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-79.5 0,-81.5 102,-81.5 102,-79.5 0,-79.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-77.5 0,-79.5 102,-79.5 102,-77.5 0,-77.5"/>
<text text-anchor="start" x="11" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-64.3" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="transparent" points="0,-56.5 0,-58.5 102,-58.5 102,-56.5 0,-56.5"/>
<polygon fill="#0066ff" stroke="transparent" points="0,-54.5 0,-56.5 102,-56.5 102,-54.5 0,-54.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-52.5 0,-54.5 102,-54.5 102,-52.5 0,-52.5"/>
<text text-anchor="start" x="10" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="71" y="-39.3" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="transparent" points="0,-31.5 0,-33.5 102,-33.5 102,-31.5 0,-31.5"/>
<polygon fill="#00ff00" stroke="transparent" points="0,-29.5 0,-31.5 102,-31.5 102,-29.5 0,-29.5"/>
<polygon fill="#000000" stroke="transparent" points="0,-27.5 0,-29.5 102,-29.5 102,-27.5 0,-27.5"/>
<text text-anchor="start" x="2" y="-14.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="96,-196.88 0,-196.88 0,-11.38 96,-11.38 96,-196.88"/>
<polygon fill="none" stroke="black" points="0,-173.12 0,-196.88 96,-196.88 96,-173.12 0,-173.12"/>
<text text-anchor="start" x="37.5" y="-179.57" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0,-149.38 0,-173.12 37.88,-173.12 37.88,-149.38 0,-149.38"/>
<text text-anchor="start" x="11.81" y="-155.82" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="37.88,-149.38 37.88,-173.12 96,-173.12 96,-149.38 37.88,-149.38"/>
<text text-anchor="start" x="49.69" y="-155.82" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1.62" y="-134.07" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="9.38" y="-115.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-115.08" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="0,-109.38 0,-111.38 96,-111.38 96,-109.38 0,-109.38"/>
<polygon fill="#ff0000" stroke="none" points="0,-107.38 0,-109.38 96,-109.38 96,-107.38 0,-107.38"/>
<polygon fill="#000000" stroke="none" points="0,-105.38 0,-107.38 96,-107.38 96,-105.38 0,-105.38"/>
<text text-anchor="start" x="10.12" y="-90.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-90.08" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="0,-84.38 0,-86.38 96,-86.38 96,-84.38 0,-84.38"/>
<polygon fill="#000000" stroke="none" points="0,-82.38 0,-84.38 96,-84.38 96,-82.38 0,-82.38"/>
<polygon fill="#000000" stroke="none" points="0,-80.38 0,-82.38 96,-82.38 96,-80.38 0,-80.38"/>
<text text-anchor="start" x="9.75" y="-65.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-65.08" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="0,-59.38 0,-61.38 96,-61.38 96,-59.38 0,-59.38"/>
<polygon fill="#0066ff" stroke="none" points="0,-57.38 0,-59.38 96,-59.38 96,-57.38 0,-57.38"/>
<polygon fill="#000000" stroke="none" points="0,-55.38 0,-57.38 96,-57.38 96,-55.38 0,-55.38"/>
<text text-anchor="start" x="8.62" y="-40.08" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="66.62" y="-40.08" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="0,-34.38 0,-36.38 96,-36.38 96,-34.38 0,-34.38"/>
<polygon fill="#00ff00" stroke="none" points="0,-32.38 0,-34.38 96,-34.38 96,-32.38 0,-32.38"/>
<polygon fill="#000000" stroke="none" points="0,-30.38 0,-32.38 96,-32.38 96,-30.38 0,-30.38"/>
<text text-anchor="start" x="1.62" y="-15.07" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-103.5C165.76,-103.52 181.75,-101.52 246,-101.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M102,-105.5C166.01,-105.5 181.99,-103.5 246,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-107.5C166.25,-107.48 182.24,-105.48 246,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-106.13C159.88,-106.13 175.87,-105.13 240,-105.13"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M96,-108.12C160,-108.12 176,-107.12 240,-107.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-110.12C160.13,-110.12 176.12,-109.12 240,-109.12"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-78.5C165.88,-78.5 181.87,-77.5 246,-77.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-80.5C166,-80.5 182,-79.5 246,-79.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-82.5C166.13,-82.5 182.12,-81.5 246,-81.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-81.13C160,-81.12 176,-81.12 240,-81.13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-83.12C160,-83.12 176,-83.12 240,-83.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-85.12C160,-85.12 176,-85.12 240,-85.12"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-53.5C166.13,-53.5 182.12,-54.5 246,-54.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M102,-55.5C166,-55.5 182,-56.5 246,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-57.5C165.88,-57.5 181.87,-58.5 246,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-56.13C160.13,-56.13 176.12,-57.13 240,-57.13"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M96,-58.12C160,-58.13 176,-59.13 240,-59.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-60.12C159.88,-60.12 175.87,-61.12 240,-61.12"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-28.5C166.38,-28.53 182.36,-31.53 246,-31.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M102,-30.5C166.01,-30.5 181.99,-33.5 246,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M102,-32.5C165.64,-32.47 181.62,-35.47 246,-35.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-31.13C160.25,-31.14 176.24,-33.14 240,-33.13"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M96,-33.12C160.01,-33.12 175.99,-35.12 240,-35.12"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M96,-35.12C159.76,-35.11 175.75,-37.11 240,-37.12"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

4
examples/ex13.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]

468
examples/ex13.html generated
View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4-dev - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4.1 - https://github.com/wireviz/WireViz">
<title>ex13</title>
<style>
@ -30,376 +30,376 @@
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="968pt" height="400pt"
viewBox="0.00 0.00 968.00 400.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 396)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-396 964,-396 964,4 -4,4"/>
<svg width="951pt" height="404pt"
viewBox="0.00 0.00 951.25 403.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 399.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-399.5 947.25,-399.5 947.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="40,-256 0,-256 0,-118 40,-118 40,-256"/>
<polygon fill="none" stroke="black" points="0,-233 0,-256 40,-256 40,-233 0,-233"/>
<text text-anchor="start" x="11" y="-240.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-210 0,-233 40,-233 40,-210 0,-210"/>
<text text-anchor="start" x="4" y="-217.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-187 0,-210 22,-210 22,-187 0,-187"/>
<text text-anchor="start" x="6" y="-194.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="22,-187 22,-210 40,-210 40,-187 22,-187"/>
<text text-anchor="start" x="27" y="-194.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-164 0,-187 22,-187 22,-164 0,-164"/>
<text text-anchor="start" x="6" y="-171.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="22,-164 22,-187 40,-187 40,-164 22,-164"/>
<text text-anchor="start" x="27" y="-171.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-141 0,-164 22,-164 22,-141 0,-141"/>
<text text-anchor="start" x="5.5" y="-148.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="22,-141 22,-164 40,-164 40,-141 22,-141"/>
<text text-anchor="start" x="27" y="-148.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-118 0,-141 22,-141 22,-118 0,-118"/>
<text text-anchor="start" x="5.5" y="-125.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="22,-118 22,-141 40,-141 40,-118 22,-118"/>
<text text-anchor="start" x="27" y="-125.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="38,-256.5 0,-256.5 0,-117 38,-117 38,-256.5"/>
<polygon fill="none" stroke="black" points="0,-232.75 0,-256.5 38,-256.5 38,-232.75 0,-232.75"/>
<text text-anchor="start" x="10.75" y="-239.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-209 0,-232.75 38,-232.75 38,-209 0,-209"/>
<text text-anchor="start" x="4" y="-215.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-186 0,-209 20,-209 20,-186 0,-186"/>
<text text-anchor="start" x="5.5" y="-191.7" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="20,-186 20,-209 38,-209 38,-186 20,-186"/>
<text text-anchor="start" x="25.25" y="-191.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-163 0,-186 20,-186 20,-163 0,-163"/>
<text text-anchor="start" x="5.5" y="-168.7" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="20,-163 20,-186 38,-186 38,-163 20,-163"/>
<text text-anchor="start" x="25.25" y="-168.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-140 0,-163 20,-163 20,-140 0,-140"/>
<text text-anchor="start" x="5.12" y="-145.7" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="20,-140 20,-163 38,-163 38,-140 20,-140"/>
<text text-anchor="start" x="25.25" y="-145.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-117 0,-140 20,-140 20,-117 0,-117"/>
<text text-anchor="start" x="5.12" y="-122.7" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="20,-117 20,-140 38,-140 38,-117 20,-117"/>
<text text-anchor="start" x="25.25" y="-122.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- C1 -->
<g id="node8" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="310,-288 184,-288 184,-104 310,-104 310,-288"/>
<polygon fill="none" stroke="black" points="184,-265 184,-288 310,-288 310,-265 184,-265"/>
<text text-anchor="start" x="238" y="-272.8" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="184,-242 184,-265 310,-265 310,-242 184,-242"/>
<text text-anchor="start" x="239.5" y="-249.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="205.5" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="186" y="-209.8" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="233" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-202 184,-204 310,-204 310,-202 184,-202"/>
<polygon fill="#ffffff" stroke="transparent" points="184,-200 184,-202 310,-202 310,-200 184,-200"/>
<polygon fill="#000000" stroke="transparent" points="184,-198 184,-200 310,-200 310,-198 184,-198"/>
<text text-anchor="start" x="186" y="-184.8" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="235" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-177 184,-179 310,-179 310,-177 184,-177"/>
<polygon fill="#895956" stroke="transparent" points="184,-175 184,-177 310,-177 310,-175 184,-175"/>
<polygon fill="#000000" stroke="transparent" points="184,-173 184,-175 310,-175 310,-173 184,-173"/>
<text text-anchor="start" x="186" y="-159.8" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="234.5" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-152 184,-154 310,-154 310,-152 184,-152"/>
<polygon fill="#00ff00" stroke="transparent" points="184,-150 184,-152 310,-152 310,-150 184,-150"/>
<polygon fill="#000000" stroke="transparent" points="184,-148 184,-150 310,-150 310,-148 184,-148"/>
<text text-anchor="start" x="186" y="-134.8" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="235.5" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-127 184,-129 310,-129 310,-127 184,-127"/>
<polygon fill="#ffff00" stroke="transparent" points="184,-125 184,-127 310,-127 310,-125 184,-125"/>
<polygon fill="#000000" stroke="transparent" points="184,-123 184,-125 310,-125 310,-123 184,-123"/>
<text text-anchor="start" x="205.5" y="-109.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="303,-289.5 182,-289.5 182,-104 303,-104 303,-289.5"/>
<polygon fill="none" stroke="black" points="182,-265.75 182,-289.5 303,-289.5 303,-265.75 182,-265.75"/>
<text text-anchor="start" x="233.88" y="-272.2" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="182,-242 182,-265.75 303,-265.75 303,-242 182,-242"/>
<text text-anchor="start" x="235.38" y="-248.45" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="202.62" y="-226.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="184.25" y="-207.7" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="228.88" y="-207.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-202 182,-204 303,-204 303,-202 182,-202"/>
<polygon fill="#ffffff" stroke="none" points="182,-200 182,-202 303,-202 303,-200 182,-200"/>
<polygon fill="#000000" stroke="none" points="182,-198 182,-200 303,-200 303,-198 182,-198"/>
<text text-anchor="start" x="184.25" y="-182.7" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="231.12" y="-182.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-177 182,-179 303,-179 303,-177 182,-177"/>
<polygon fill="#895956" stroke="none" points="182,-175 182,-177 303,-177 303,-175 182,-175"/>
<polygon fill="#000000" stroke="none" points="182,-173 182,-175 303,-175 303,-173 182,-173"/>
<text text-anchor="start" x="183.88" y="-157.7" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="230" y="-157.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-152 182,-154 303,-154 303,-152 182,-152"/>
<polygon fill="#00ff00" stroke="none" points="182,-150 182,-152 303,-152 303,-150 182,-150"/>
<polygon fill="#000000" stroke="none" points="182,-148 182,-150 303,-150 303,-148 182,-148"/>
<text text-anchor="start" x="183.88" y="-132.7" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="231.5" y="-132.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-127 182,-129 303,-129 303,-127 182,-127"/>
<polygon fill="#ffff00" stroke="none" points="182,-125 182,-127 303,-127 303,-125 182,-125"/>
<polygon fill="#000000" stroke="none" points="182,-123 182,-125 303,-125 303,-123 182,-123"/>
<text text-anchor="start" x="202.62" y="-107.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-197C104.25,-197.02 120.24,-199.02 184,-199"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M40,-199C104.01,-199 119.99,-201 184,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-201C103.76,-200.98 119.75,-202.98 184,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-195.75C102.38,-195.78 118.36,-198.78 182,-198.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M38,-197.75C102.01,-197.75 117.99,-200.75 182,-200.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-199.75C101.64,-199.72 117.62,-202.72 182,-202.75"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-173C104.13,-173 120.12,-174 184,-174"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M40,-175C104,-175 120,-176 184,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-177C103.88,-177 119.87,-178 184,-178"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-172.75C102.13,-172.75 118.12,-173.75 182,-173.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M38,-174.75C102,-174.75 118,-175.75 182,-175.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-176.75C101.88,-176.75 117.87,-177.75 182,-177.75"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-150C103.88,-150 119.87,-149 184,-149"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M40,-152C104,-152 120,-151 184,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-154C104.13,-154 120.12,-153 184,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-149.75C101.88,-149.75 117.87,-148.75 182,-148.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M38,-151.75C102,-151.75 118,-150.75 182,-150.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-153.75C102.13,-153.75 118.12,-152.75 182,-152.75"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-127C103.64,-127.03 119.62,-124.03 184,-124"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M40,-129C104.01,-129 119.99,-126 184,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-131C104.38,-130.97 120.36,-127.97 184,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-126.75C101.64,-126.78 117.62,-123.78 182,-123.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M38,-128.75C102.01,-128.75 117.99,-125.75 182,-125.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-130.75C102.38,-130.72 118.36,-127.72 182,-127.75"/>
</g>
<!-- F1 -->
<g id="node2" class="node">
<title>F1</title>
<polygon fill="#ffffff" stroke="black" points="502,-245.5 454,-245.5 454,-222.5 502,-222.5 502,-245.5"/>
<polygon fill="none" stroke="black" points="454,-222 454,-245 502,-245 502,-222 454,-222"/>
<text text-anchor="start" x="458" y="-229.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-247.62 447,-247.62 447,-223.88 493.25,-223.88 493.25,-247.62"/>
<polygon fill="none" stroke="black" points="447,-223.88 447,-247.62 493.25,-247.62 493.25,-223.88 447,-223.88"/>
<text text-anchor="start" x="451" y="-230.32" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- C2 -->
<g id="node9" class="node">
<title>C2</title>
<polygon fill="#ffffff" stroke="black" points="776,-392 646,-392 646,-208 776,-208 776,-392"/>
<polygon fill="none" stroke="black" points="646,-369 646,-392 776,-392 776,-369 646,-369"/>
<text text-anchor="start" x="702" y="-376.8" font-family="arial" font-size="14.00">C2</text>
<polygon fill="none" stroke="black" points="646,-346 646,-369 776,-369 776,-346 646,-346"/>
<text text-anchor="start" x="703.5" y="-353.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="648" y="-332.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="656" y="-313.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-313.8" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="transparent" points="646,-306 646,-308 776,-308 776,-306 646,-306"/>
<polygon fill="#ffffff" stroke="transparent" points="646,-304 646,-306 776,-306 776,-304 646,-304"/>
<polygon fill="#000000" stroke="transparent" points="646,-302 646,-304 776,-304 776,-302 646,-302"/>
<text text-anchor="start" x="658" y="-288.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-288.8" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="transparent" points="646,-281 646,-283 776,-283 776,-281 646,-281"/>
<polygon fill="#895956" stroke="transparent" points="646,-279 646,-281 776,-281 776,-279 646,-279"/>
<polygon fill="#000000" stroke="transparent" points="646,-277 646,-279 776,-279 776,-277 646,-277"/>
<text text-anchor="start" x="657.5" y="-263.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-263.8" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="transparent" points="646,-256 646,-258 776,-258 776,-256 646,-256"/>
<polygon fill="#00ff00" stroke="transparent" points="646,-254 646,-256 776,-256 776,-254 646,-254"/>
<polygon fill="#000000" stroke="transparent" points="646,-252 646,-254 776,-254 776,-252 646,-252"/>
<text text-anchor="start" x="658.5" y="-238.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-238.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="transparent" points="646,-231 646,-233 776,-233 776,-231 646,-231"/>
<polygon fill="#ffff00" stroke="transparent" points="646,-229 646,-231 776,-231 776,-229 646,-229"/>
<polygon fill="#000000" stroke="transparent" points="646,-227 646,-229 776,-229 776,-227 646,-227"/>
<text text-anchor="start" x="648" y="-213.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="761.25,-395.5 637.25,-395.5 637.25,-210 761.25,-210 761.25,-395.5"/>
<polygon fill="none" stroke="black" points="637.25,-371.75 637.25,-395.5 761.25,-395.5 761.25,-371.75 637.25,-371.75"/>
<text text-anchor="start" x="690.62" y="-378.2" font-family="arial" font-size="14.00">C2</text>
<polygon fill="none" stroke="black" points="637.25,-348 637.25,-371.75 761.25,-371.75 761.25,-348 637.25,-348"/>
<text text-anchor="start" x="692.12" y="-354.45" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="638.88" y="-332.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="646.12" y="-313.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-313.7" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="none" points="637.25,-308 637.25,-310 761.25,-310 761.25,-308 637.25,-308"/>
<polygon fill="#ffffff" stroke="none" points="637.25,-306 637.25,-308 761.25,-308 761.25,-306 637.25,-306"/>
<polygon fill="#000000" stroke="none" points="637.25,-304 637.25,-306 761.25,-306 761.25,-304 637.25,-304"/>
<text text-anchor="start" x="648.38" y="-288.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-288.7" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="none" points="637.25,-283 637.25,-285 761.25,-285 761.25,-283 637.25,-283"/>
<polygon fill="#895956" stroke="none" points="637.25,-281 637.25,-283 761.25,-283 761.25,-281 637.25,-281"/>
<polygon fill="#000000" stroke="none" points="637.25,-279 637.25,-281 761.25,-281 761.25,-279 637.25,-279"/>
<text text-anchor="start" x="647.25" y="-263.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-263.7" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="none" points="637.25,-258 637.25,-260 761.25,-260 761.25,-258 637.25,-258"/>
<polygon fill="#00ff00" stroke="none" points="637.25,-256 637.25,-258 761.25,-258 761.25,-256 637.25,-256"/>
<polygon fill="#000000" stroke="none" points="637.25,-254 637.25,-256 761.25,-256 761.25,-254 637.25,-254"/>
<text text-anchor="start" x="648.75" y="-238.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-238.7" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="637.25,-233 637.25,-235 761.25,-235 761.25,-233 637.25,-233"/>
<polygon fill="#ffff00" stroke="none" points="637.25,-231 637.25,-233 761.25,-233 761.25,-231 637.25,-231"/>
<polygon fill="#000000" stroke="none" points="637.25,-229 637.25,-231 761.25,-231 761.25,-229 637.25,-229"/>
<text text-anchor="start" x="638.88" y="-213.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C2 -->
<g id="edge9" class="edge">
<title>F1:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-232C575.36,-233.96 576.64,-304.96 646,-303"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M502,-234C573.36,-234 574.64,-305 646,-305"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-236C571.36,-234.04 572.64,-305.04 646,-307"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-233.75C566.61,-235.71 567.89,-306.71 637.25,-304.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M493.25,-235.75C564.61,-235.75 565.89,-306.75 637.25,-306.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-237.75C562.61,-235.79 563.89,-306.79 637.25,-308.75"/>
</g>
<!-- C3 -->
<g id="node10" class="node">
<title>C3</title>
<polygon fill="#ffffff" stroke="black" points="776,-184 646,-184 646,0 776,0 776,-184"/>
<polygon fill="none" stroke="black" points="646,-161 646,-184 776,-184 776,-161 646,-161"/>
<text text-anchor="start" x="702" y="-168.8" font-family="arial" font-size="14.00">C3</text>
<polygon fill="none" stroke="black" points="646,-138 646,-161 776,-161 776,-138 646,-138"/>
<text text-anchor="start" x="703.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="648" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="656" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-105.8" font-family="arial" font-size="14.00">X3:1:A</text>
<polygon fill="#000000" stroke="transparent" points="646,-98 646,-100 776,-100 776,-98 646,-98"/>
<polygon fill="#ffffff" stroke="transparent" points="646,-96 646,-98 776,-98 776,-96 646,-96"/>
<polygon fill="#000000" stroke="transparent" points="646,-94 646,-96 776,-96 776,-94 646,-94"/>
<text text-anchor="start" x="658" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-80.8" font-family="arial" font-size="14.00">X3:2:B</text>
<polygon fill="#000000" stroke="transparent" points="646,-73 646,-75 776,-75 776,-73 646,-73"/>
<polygon fill="#895956" stroke="transparent" points="646,-71 646,-73 776,-73 776,-71 646,-71"/>
<polygon fill="#000000" stroke="transparent" points="646,-69 646,-71 776,-71 776,-69 646,-69"/>
<text text-anchor="start" x="657.5" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-55.8" font-family="arial" font-size="14.00">X3:3:C</text>
<polygon fill="#000000" stroke="transparent" points="646,-48 646,-50 776,-50 776,-48 646,-48"/>
<polygon fill="#00ff00" stroke="transparent" points="646,-46 646,-48 776,-48 776,-46 646,-46"/>
<polygon fill="#000000" stroke="transparent" points="646,-44 646,-46 776,-46 776,-44 646,-44"/>
<text text-anchor="start" x="658.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-30.8" font-family="arial" font-size="14.00">X3:4:D</text>
<polygon fill="#000000" stroke="transparent" points="646,-23 646,-25 776,-25 776,-23 646,-23"/>
<polygon fill="#ffff00" stroke="transparent" points="646,-21 646,-23 776,-23 776,-21 646,-21"/>
<polygon fill="#000000" stroke="transparent" points="646,-19 646,-21 776,-21 776,-19 646,-19"/>
<text text-anchor="start" x="648" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="761.25,-185.5 637.25,-185.5 637.25,0 761.25,0 761.25,-185.5"/>
<polygon fill="none" stroke="black" points="637.25,-161.75 637.25,-185.5 761.25,-185.5 761.25,-161.75 637.25,-161.75"/>
<text text-anchor="start" x="690.62" y="-168.2" font-family="arial" font-size="14.00">C3</text>
<polygon fill="none" stroke="black" points="637.25,-138 637.25,-161.75 761.25,-161.75 761.25,-138 637.25,-138"/>
<text text-anchor="start" x="692.12" y="-144.45" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="638.88" y="-122.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="646.12" y="-103.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-103.7" font-family="arial" font-size="14.00">X3:1:A</text>
<polygon fill="#000000" stroke="none" points="637.25,-98 637.25,-100 761.25,-100 761.25,-98 637.25,-98"/>
<polygon fill="#ffffff" stroke="none" points="637.25,-96 637.25,-98 761.25,-98 761.25,-96 637.25,-96"/>
<polygon fill="#000000" stroke="none" points="637.25,-94 637.25,-96 761.25,-96 761.25,-94 637.25,-94"/>
<text text-anchor="start" x="648.38" y="-78.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-78.7" font-family="arial" font-size="14.00">X3:2:B</text>
<polygon fill="#000000" stroke="none" points="637.25,-73 637.25,-75 761.25,-75 761.25,-73 637.25,-73"/>
<polygon fill="#895956" stroke="none" points="637.25,-71 637.25,-73 761.25,-73 761.25,-71 637.25,-71"/>
<polygon fill="#000000" stroke="none" points="637.25,-69 637.25,-71 761.25,-71 761.25,-69 637.25,-69"/>
<text text-anchor="start" x="647.25" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-53.7" font-family="arial" font-size="14.00">X3:3:C</text>
<polygon fill="#000000" stroke="none" points="637.25,-48 637.25,-50 761.25,-50 761.25,-48 637.25,-48"/>
<polygon fill="#00ff00" stroke="none" points="637.25,-46 637.25,-48 761.25,-48 761.25,-46 637.25,-46"/>
<polygon fill="#000000" stroke="none" points="637.25,-44 637.25,-46 761.25,-46 761.25,-44 637.25,-44"/>
<text text-anchor="start" x="648.75" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-28.7" font-family="arial" font-size="14.00">X3:4:D</text>
<polygon fill="#000000" stroke="none" points="637.25,-23 637.25,-25 761.25,-25 761.25,-23 637.25,-23"/>
<polygon fill="#ffff00" stroke="none" points="637.25,-21 637.25,-23 761.25,-23 761.25,-21 637.25,-21"/>
<polygon fill="#000000" stroke="none" points="637.25,-19 637.25,-21 761.25,-21 761.25,-19 637.25,-19"/>
<text text-anchor="start" x="638.88" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C3 -->
<g id="edge17" class="edge">
<title>F1:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-232C588.39,-234.46 555.72,-97.46 646,-95"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M502,-234C590.34,-234 557.66,-97 646,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-236C592.28,-233.54 559.61,-96.54 646,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-233.75C580.26,-236.22 546.35,-97.22 637.25,-94.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M493.25,-235.75C582.2,-235.75 548.3,-96.75 637.25,-96.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-237.75C584.15,-235.28 550.24,-96.28 637.25,-98.75"/>
</g>
<!-- F2 -->
<g id="node3" class="node">
<title>F2</title>
<polygon fill="#ffffff" stroke="black" points="502,-198.5 454,-198.5 454,-175.5 502,-175.5 502,-198.5"/>
<polygon fill="none" stroke="black" points="454,-175 454,-198 502,-198 502,-175 454,-175"/>
<text text-anchor="start" x="458" y="-182.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-199.62 447,-199.62 447,-175.88 493.25,-175.88 493.25,-199.62"/>
<polygon fill="none" stroke="black" points="447,-175.88 447,-199.62 493.25,-199.62 493.25,-175.88 447,-175.88"/>
<text text-anchor="start" x="451" y="-182.32" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F2&#45;&#45;C2 -->
<g id="edge11" class="edge">
<title>F2:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-185C580.18,-187.18 571.81,-280.18 646,-278"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M502,-187C578.19,-187 569.81,-280 646,-280"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-189C576.19,-186.82 567.82,-279.82 646,-282"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-185.75C571.67,-187.94 562.81,-281.94 637.25,-279.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M493.25,-187.75C569.68,-187.75 560.82,-281.75 637.25,-281.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-189.75C567.69,-187.56 558.83,-281.56 637.25,-283.75"/>
</g>
<!-- F2&#45;&#45;C3 -->
<g id="edge19" class="edge">
<title>F2:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-185C581.93,-187.34 562.12,-72.34 646,-70"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M502,-187C583.9,-187 564.1,-72 646,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-189C585.88,-186.66 566.07,-71.66 646,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-185.75C573.46,-188.1 553.1,-72.1 637.25,-69.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M493.25,-187.75C575.43,-187.75 555.07,-71.75 637.25,-71.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-189.75C577.4,-187.4 557.04,-71.4 637.25,-73.75"/>
</g>
<!-- F3 -->
<g id="node4" class="node">
<title>F3</title>
<polygon fill="#ffffff" stroke="black" points="502,-151.5 454,-151.5 454,-128.5 502,-128.5 502,-151.5"/>
<polygon fill="none" stroke="black" points="454,-128 454,-151 502,-151 502,-128 454,-128"/>
<text text-anchor="start" x="458" y="-135.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-151.62 447,-151.62 447,-127.88 493.25,-127.88 493.25,-151.62"/>
<polygon fill="none" stroke="black" points="447,-127.88 447,-151.62 493.25,-151.62 493.25,-127.88 447,-127.88"/>
<text text-anchor="start" x="451" y="-134.32" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F3&#45;&#45;C2 -->
<g id="edge13" class="edge">
<title>F3:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-138C585.88,-140.34 566.07,-255.34 646,-253"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M502,-140C583.9,-140 564.1,-255 646,-255"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-142C581.93,-139.66 562.12,-254.66 646,-257"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-137.75C577.68,-140.1 556.76,-257.1 637.25,-254.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M493.25,-139.75C575.71,-139.75 554.79,-256.75 637.25,-256.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-141.75C573.74,-139.4 552.82,-256.4 637.25,-258.75"/>
</g>
<!-- F3&#45;&#45;C3 -->
<g id="edge21" class="edge">
<title>F3:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-138C576.19,-140.18 567.82,-47.18 646,-45"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M502,-140C578.19,-140 569.81,-47 646,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-142C580.18,-139.82 571.81,-46.82 646,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-137.75C567.44,-139.93 559.07,-46.93 637.25,-44.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M493.25,-139.75C569.44,-139.75 561.06,-46.75 637.25,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-141.75C571.43,-139.57 563.06,-46.57 637.25,-48.75"/>
</g>
<!-- F4 -->
<g id="node5" class="node">
<title>F4</title>
<polygon fill="#ffffff" stroke="black" points="502,-104.5 454,-104.5 454,-81.5 502,-81.5 502,-104.5"/>
<polygon fill="none" stroke="black" points="454,-81 454,-104 502,-104 502,-81 454,-81"/>
<text text-anchor="start" x="458" y="-88.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-103.62 447,-103.62 447,-79.88 493.25,-79.88 493.25,-103.62"/>
<polygon fill="none" stroke="black" points="447,-79.88 447,-103.62 493.25,-103.62 493.25,-79.88 447,-79.88"/>
<text text-anchor="start" x="451" y="-86.33" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F4&#45;&#45;C2 -->
<g id="edge15" class="edge">
<title>F4:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-91C592.28,-93.46 559.61,-230.46 646,-228"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M502,-93C590.34,-93 557.66,-230 646,-230"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-95C588.39,-92.54 555.72,-229.54 646,-232"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-89.75C584.45,-92.23 549.93,-232.23 637.25,-229.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M493.25,-91.75C582.51,-91.75 547.99,-231.75 637.25,-231.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-93.75C580.57,-91.27 546.05,-231.27 637.25,-233.75"/>
</g>
<!-- F4&#45;&#45;C3 -->
<g id="edge23" class="edge">
<title>F4:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-91C571.36,-92.96 572.64,-21.96 646,-20"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M502,-93C573.36,-93 574.64,-22 646,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-95C575.36,-93.04 576.64,-22.04 646,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-89.75C562.41,-91.7 564.09,-21.7 637.25,-19.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M493.25,-91.75C564.41,-91.75 566.09,-21.75 637.25,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-93.75C566.41,-91.8 568.09,-21.8 637.25,-23.75"/>
</g>
<!-- X2 -->
<g id="node6" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="960,-360 920,-360 920,-222 960,-222 960,-360"/>
<polygon fill="none" stroke="black" points="920,-337 920,-360 960,-360 960,-337 920,-337"/>
<text text-anchor="start" x="931" y="-344.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="920,-314 920,-337 960,-337 960,-314 920,-314"/>
<text text-anchor="start" x="924" y="-321.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="920,-291 920,-314 939,-314 939,-291 920,-291"/>
<text text-anchor="start" x="925.5" y="-298.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="939,-291 939,-314 960,-314 960,-291 939,-291"/>
<text text-anchor="start" x="944.5" y="-298.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="920,-268 920,-291 939,-291 939,-268 920,-268"/>
<text text-anchor="start" x="925.5" y="-275.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="939,-268 939,-291 960,-291 960,-268 939,-268"/>
<text text-anchor="start" x="944.5" y="-275.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="920,-245 920,-268 939,-268 939,-245 920,-245"/>
<text text-anchor="start" x="925.5" y="-252.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="939,-245 939,-268 960,-268 960,-245 939,-245"/>
<text text-anchor="start" x="944" y="-252.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="920,-222 920,-245 939,-245 939,-222 920,-222"/>
<text text-anchor="start" x="925.5" y="-229.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="939,-222 939,-245 960,-245 960,-222 939,-222"/>
<text text-anchor="start" x="944" y="-229.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="#ffffff" stroke="black" points="943.25,-362.5 905.25,-362.5 905.25,-223 943.25,-223 943.25,-362.5"/>
<polygon fill="none" stroke="black" points="905.25,-338.75 905.25,-362.5 943.25,-362.5 943.25,-338.75 905.25,-338.75"/>
<text text-anchor="start" x="916" y="-345.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="905.25,-315 905.25,-338.75 943.25,-338.75 943.25,-315 905.25,-315"/>
<text text-anchor="start" x="909.25" y="-321.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="905.25,-292 905.25,-315 923.25,-315 923.25,-292 905.25,-292"/>
<text text-anchor="start" x="910.5" y="-297.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="923.25,-292 923.25,-315 943.25,-315 943.25,-292 923.25,-292"/>
<text text-anchor="start" x="928.75" y="-297.7" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="905.25,-269 905.25,-292 923.25,-292 923.25,-269 905.25,-269"/>
<text text-anchor="start" x="910.5" y="-274.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="923.25,-269 923.25,-292 943.25,-292 943.25,-269 923.25,-269"/>
<text text-anchor="start" x="928.75" y="-274.7" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="905.25,-246 905.25,-269 923.25,-269 923.25,-246 905.25,-246"/>
<text text-anchor="start" x="910.5" y="-251.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="923.25,-246 923.25,-269 943.25,-269 943.25,-246 923.25,-246"/>
<text text-anchor="start" x="928.38" y="-251.7" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="905.25,-223 905.25,-246 923.25,-246 923.25,-223 905.25,-223"/>
<text text-anchor="start" x="910.5" y="-228.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="923.25,-223 923.25,-246 943.25,-246 943.25,-223 923.25,-223"/>
<text text-anchor="start" x="928.38" y="-228.7" font-family="arial" font-size="14.00">D</text>
</g>
<!-- X3 -->
<g id="node7" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="960,-152 920,-152 920,-14 960,-14 960,-152"/>
<polygon fill="none" stroke="black" points="920,-129 920,-152 960,-152 960,-129 920,-129"/>
<text text-anchor="start" x="931" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="920,-106 920,-129 960,-129 960,-106 920,-106"/>
<text text-anchor="start" x="924" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="920,-83 920,-106 939,-106 939,-83 920,-83"/>
<text text-anchor="start" x="925.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="939,-83 939,-106 960,-106 960,-83 939,-83"/>
<text text-anchor="start" x="944.5" y="-90.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="920,-60 920,-83 939,-83 939,-60 920,-60"/>
<text text-anchor="start" x="925.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="939,-60 939,-83 960,-83 960,-60 939,-60"/>
<text text-anchor="start" x="944.5" y="-67.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="920,-37 920,-60 939,-60 939,-37 920,-37"/>
<text text-anchor="start" x="925.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="939,-37 939,-60 960,-60 960,-37 939,-37"/>
<text text-anchor="start" x="944" y="-44.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="920,-14 920,-37 939,-37 939,-14 920,-14"/>
<text text-anchor="start" x="925.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="939,-14 939,-37 960,-37 960,-14 939,-14"/>
<text text-anchor="start" x="944" y="-21.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="#ffffff" stroke="black" points="943.25,-152.5 905.25,-152.5 905.25,-13 943.25,-13 943.25,-152.5"/>
<polygon fill="none" stroke="black" points="905.25,-128.75 905.25,-152.5 943.25,-152.5 943.25,-128.75 905.25,-128.75"/>
<text text-anchor="start" x="916" y="-135.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="905.25,-105 905.25,-128.75 943.25,-128.75 943.25,-105 905.25,-105"/>
<text text-anchor="start" x="909.25" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="905.25,-82 905.25,-105 923.25,-105 923.25,-82 905.25,-82"/>
<text text-anchor="start" x="910.5" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="923.25,-82 923.25,-105 943.25,-105 943.25,-82 923.25,-82"/>
<text text-anchor="start" x="928.75" y="-87.7" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="905.25,-59 905.25,-82 923.25,-82 923.25,-59 905.25,-59"/>
<text text-anchor="start" x="910.5" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="923.25,-59 923.25,-82 943.25,-82 943.25,-59 923.25,-59"/>
<text text-anchor="start" x="928.75" y="-64.7" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="905.25,-36 905.25,-59 923.25,-59 923.25,-36 905.25,-36"/>
<text text-anchor="start" x="910.5" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="923.25,-36 923.25,-59 943.25,-59 943.25,-36 923.25,-36"/>
<text text-anchor="start" x="928.38" y="-41.7" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="905.25,-13 905.25,-36 923.25,-36 923.25,-13 905.25,-13"/>
<text text-anchor="start" x="910.5" y="-18.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="923.25,-13 923.25,-36 943.25,-36 943.25,-13 923.25,-13"/>
<text text-anchor="start" x="928.38" y="-18.7" font-family="arial" font-size="14.00">D</text>
</g>
<!-- C1&#45;&#45;F1 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;F1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-199C377.53,-200.28 390.21,-233.28 454,-232"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M310,-201C375.66,-201 388.34,-234 454,-234"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-203C373.79,-201.72 386.47,-234.72 454,-236"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-198.75C370.75,-200.09 383.02,-235.09 447,-233.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M303,-200.75C368.86,-200.75 381.14,-235.75 447,-235.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-202.75C366.98,-201.41 379.25,-236.41 447,-237.75"/>
</g>
<!-- C1&#45;&#45;F2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;F2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-174C375.34,-174.36 390.96,-185.36 454,-185"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M310,-176C374.19,-176 389.81,-187 454,-187"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-178C373.04,-177.64 388.66,-188.64 454,-189"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-173.75C368.44,-174.17 384,-186.17 447,-185.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M303,-175.75C367.22,-175.75 382.78,-187.75 447,-187.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-177.75C366,-177.33 381.56,-189.33 447,-189.75"/>
</g>
<!-- C1&#45;&#45;F3 -->
<g id="edge6" class="edge">
<title>C1:e&#45;&#45;F3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-149C373.04,-149.36 388.66,-138.36 454,-138"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M310,-151C374.19,-151 389.81,-140 454,-140"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-153C375.34,-152.64 390.96,-141.64 454,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-148.75C366.04,-149.11 381.66,-138.11 447,-137.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M303,-150.75C367.19,-150.75 382.81,-139.75 447,-139.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-152.75C368.34,-152.39 383.96,-141.39 447,-141.75"/>
</g>
<!-- C1&#45;&#45;F4 -->
<g id="edge8" class="edge">
<title>C1:e&#45;&#45;F4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-124C373.79,-125.28 386.47,-92.28 454,-91"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M310,-126C375.66,-126 388.34,-93 454,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-128C377.53,-126.72 390.21,-93.72 454,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-123.75C366.88,-125.06 379.36,-91.06 447,-89.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M303,-125.75C368.76,-125.75 381.24,-91.75 447,-91.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-127.75C370.64,-126.44 383.12,-92.44 447,-93.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-303C839.76,-303.02 855.75,-301.02 920,-301"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M776,-305C840.01,-305 855.99,-303 920,-303"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-307C840.25,-306.98 856.24,-304.98 920,-305"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-304.75C824.89,-304.78 840.87,-301.78 905.25,-301.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M761.25,-306.75C825.26,-306.75 841.24,-303.75 905.25,-303.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-308.75C825.63,-308.72 841.61,-305.72 905.25,-305.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-278C839.88,-278 855.87,-277 920,-277"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M776,-280C840,-280 856,-279 920,-279"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-282C840.13,-282 856.12,-281 920,-281"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-279.75C825.13,-279.75 841.12,-278.75 905.25,-278.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M761.25,-281.75C825.25,-281.75 841.25,-280.75 905.25,-280.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-283.75C825.38,-283.75 841.37,-282.75 905.25,-282.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-253C840.13,-253 856.12,-254 920,-254"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M776,-255C840,-255 856,-256 920,-256"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-257C839.88,-257 855.87,-258 920,-258"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-254.75C825.38,-254.75 841.37,-255.75 905.25,-255.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M761.25,-256.75C825.25,-256.75 841.25,-257.75 905.25,-257.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-258.75C825.13,-258.75 841.12,-259.75 905.25,-259.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-228C840.38,-228.03 856.36,-231.03 920,-231"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M776,-230C840.01,-230 855.99,-233 920,-233"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-232C839.64,-231.97 855.62,-234.97 920,-235"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-229.75C825.63,-229.78 841.61,-232.78 905.25,-232.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M761.25,-231.75C825.26,-231.75 841.24,-234.75 905.25,-234.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-233.75C824.89,-233.72 840.87,-236.72 905.25,-236.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge18" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-95C839.76,-95.02 855.75,-93.02 920,-93"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M776,-97C840.01,-97 855.99,-95 920,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-99C840.25,-98.98 856.24,-96.98 920,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-94.75C824.89,-94.78 840.87,-91.78 905.25,-91.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M761.25,-96.75C825.26,-96.75 841.24,-93.75 905.25,-93.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-98.75C825.63,-98.72 841.61,-95.72 905.25,-95.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge20" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-70C839.88,-70 855.87,-69 920,-69"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M776,-72C840,-72 856,-71 920,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-74C840.13,-74 856.12,-73 920,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-69.75C825.13,-69.75 841.12,-68.75 905.25,-68.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M761.25,-71.75C825.25,-71.75 841.25,-70.75 905.25,-70.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-73.75C825.38,-73.75 841.37,-72.75 905.25,-72.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge22" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-45C840.13,-45 856.12,-46 920,-46"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M776,-47C840,-47 856,-48 920,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-49C839.88,-49 855.87,-50 920,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-44.75C825.38,-44.75 841.37,-45.75 905.25,-45.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M761.25,-46.75C825.25,-46.75 841.25,-47.75 905.25,-47.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-48.75C825.13,-48.75 841.12,-49.75 905.25,-49.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge24" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-20C840.38,-20.03 856.36,-23.03 920,-23"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M776,-22C840.01,-22 855.99,-25 920,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-24C839.64,-23.97 855.62,-26.97 920,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-19.75C825.63,-19.78 841.61,-22.78 905.25,-22.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M761.25,-21.75C825.26,-21.75 841.24,-24.75 905.25,-24.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-23.75C824.89,-23.72 840.87,-26.72 905.25,-26.75"/>
</g>
</g>
</svg>

BIN
examples/ex13.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 108 KiB

466
examples/ex13.svg generated
View File

@ -1,376 +1,376 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.1 (20210923.0004)
<!-- Generated by graphviz version 10.0.1 (20240210.2158)
-->
<!-- Pages: 1 -->
<svg width="968pt" height="400pt"
viewBox="0.00 0.00 968.00 400.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 396)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-396 964,-396 964,4 -4,4"/>
<svg width="951pt" height="404pt"
viewBox="0.00 0.00 951.25 403.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 399.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-399.5 947.25,-399.5 947.25,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="40,-256 0,-256 0,-118 40,-118 40,-256"/>
<polygon fill="none" stroke="black" points="0,-233 0,-256 40,-256 40,-233 0,-233"/>
<text text-anchor="start" x="11" y="-240.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-210 0,-233 40,-233 40,-210 0,-210"/>
<text text-anchor="start" x="4" y="-217.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-187 0,-210 22,-210 22,-187 0,-187"/>
<text text-anchor="start" x="6" y="-194.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="22,-187 22,-210 40,-210 40,-187 22,-187"/>
<text text-anchor="start" x="27" y="-194.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-164 0,-187 22,-187 22,-164 0,-164"/>
<text text-anchor="start" x="6" y="-171.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="22,-164 22,-187 40,-187 40,-164 22,-164"/>
<text text-anchor="start" x="27" y="-171.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-141 0,-164 22,-164 22,-141 0,-141"/>
<text text-anchor="start" x="5.5" y="-148.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="22,-141 22,-164 40,-164 40,-141 22,-141"/>
<text text-anchor="start" x="27" y="-148.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-118 0,-141 22,-141 22,-118 0,-118"/>
<text text-anchor="start" x="5.5" y="-125.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="22,-118 22,-141 40,-141 40,-118 22,-118"/>
<text text-anchor="start" x="27" y="-125.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="38,-256.5 0,-256.5 0,-117 38,-117 38,-256.5"/>
<polygon fill="none" stroke="black" points="0,-232.75 0,-256.5 38,-256.5 38,-232.75 0,-232.75"/>
<text text-anchor="start" x="10.75" y="-239.2" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-209 0,-232.75 38,-232.75 38,-209 0,-209"/>
<text text-anchor="start" x="4" y="-215.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-186 0,-209 20,-209 20,-186 0,-186"/>
<text text-anchor="start" x="5.5" y="-191.7" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="20,-186 20,-209 38,-209 38,-186 20,-186"/>
<text text-anchor="start" x="25.25" y="-191.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-163 0,-186 20,-186 20,-163 0,-163"/>
<text text-anchor="start" x="5.5" y="-168.7" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="20,-163 20,-186 38,-186 38,-163 20,-163"/>
<text text-anchor="start" x="25.25" y="-168.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-140 0,-163 20,-163 20,-140 0,-140"/>
<text text-anchor="start" x="5.12" y="-145.7" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="20,-140 20,-163 38,-163 38,-140 20,-140"/>
<text text-anchor="start" x="25.25" y="-145.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-117 0,-140 20,-140 20,-117 0,-117"/>
<text text-anchor="start" x="5.12" y="-122.7" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="20,-117 20,-140 38,-140 38,-117 20,-117"/>
<text text-anchor="start" x="25.25" y="-122.7" font-family="arial" font-size="14.00">4</text>
</g>
<!-- C1 -->
<g id="node8" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="310,-288 184,-288 184,-104 310,-104 310,-288"/>
<polygon fill="none" stroke="black" points="184,-265 184,-288 310,-288 310,-265 184,-265"/>
<text text-anchor="start" x="238" y="-272.8" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="184,-242 184,-265 310,-265 310,-242 184,-242"/>
<text text-anchor="start" x="239.5" y="-249.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="205.5" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="186" y="-209.8" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="233" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-202 184,-204 310,-204 310,-202 184,-202"/>
<polygon fill="#ffffff" stroke="transparent" points="184,-200 184,-202 310,-202 310,-200 184,-200"/>
<polygon fill="#000000" stroke="transparent" points="184,-198 184,-200 310,-200 310,-198 184,-198"/>
<text text-anchor="start" x="186" y="-184.8" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="235" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-177 184,-179 310,-179 310,-177 184,-177"/>
<polygon fill="#895956" stroke="transparent" points="184,-175 184,-177 310,-177 310,-175 184,-175"/>
<polygon fill="#000000" stroke="transparent" points="184,-173 184,-175 310,-175 310,-173 184,-173"/>
<text text-anchor="start" x="186" y="-159.8" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="234.5" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-152 184,-154 310,-154 310,-152 184,-152"/>
<polygon fill="#00ff00" stroke="transparent" points="184,-150 184,-152 310,-152 310,-150 184,-150"/>
<polygon fill="#000000" stroke="transparent" points="184,-148 184,-150 310,-150 310,-148 184,-148"/>
<text text-anchor="start" x="186" y="-134.8" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="235.5" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="184,-127 184,-129 310,-129 310,-127 184,-127"/>
<polygon fill="#ffff00" stroke="transparent" points="184,-125 184,-127 310,-127 310,-125 184,-125"/>
<polygon fill="#000000" stroke="transparent" points="184,-123 184,-125 310,-125 310,-123 184,-123"/>
<text text-anchor="start" x="205.5" y="-109.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="303,-289.5 182,-289.5 182,-104 303,-104 303,-289.5"/>
<polygon fill="none" stroke="black" points="182,-265.75 182,-289.5 303,-289.5 303,-265.75 182,-265.75"/>
<text text-anchor="start" x="233.88" y="-272.2" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="182,-242 182,-265.75 303,-265.75 303,-242 182,-242"/>
<text text-anchor="start" x="235.38" y="-248.45" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="202.62" y="-226.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="184.25" y="-207.7" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="228.88" y="-207.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-202 182,-204 303,-204 303,-202 182,-202"/>
<polygon fill="#ffffff" stroke="none" points="182,-200 182,-202 303,-202 303,-200 182,-200"/>
<polygon fill="#000000" stroke="none" points="182,-198 182,-200 303,-200 303,-198 182,-198"/>
<text text-anchor="start" x="184.25" y="-182.7" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="231.12" y="-182.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-177 182,-179 303,-179 303,-177 182,-177"/>
<polygon fill="#895956" stroke="none" points="182,-175 182,-177 303,-177 303,-175 182,-175"/>
<polygon fill="#000000" stroke="none" points="182,-173 182,-175 303,-175 303,-173 182,-173"/>
<text text-anchor="start" x="183.88" y="-157.7" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="230" y="-157.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-152 182,-154 303,-154 303,-152 182,-152"/>
<polygon fill="#00ff00" stroke="none" points="182,-150 182,-152 303,-152 303,-150 182,-150"/>
<polygon fill="#000000" stroke="none" points="182,-148 182,-150 303,-150 303,-148 182,-148"/>
<text text-anchor="start" x="183.88" y="-132.7" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="231.5" y="-132.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="182,-127 182,-129 303,-129 303,-127 182,-127"/>
<polygon fill="#ffff00" stroke="none" points="182,-125 182,-127 303,-127 303,-125 182,-125"/>
<polygon fill="#000000" stroke="none" points="182,-123 182,-125 303,-125 303,-123 182,-123"/>
<text text-anchor="start" x="202.62" y="-107.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-197C104.25,-197.02 120.24,-199.02 184,-199"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M40,-199C104.01,-199 119.99,-201 184,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-201C103.76,-200.98 119.75,-202.98 184,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-195.75C102.38,-195.78 118.36,-198.78 182,-198.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M38,-197.75C102.01,-197.75 117.99,-200.75 182,-200.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-199.75C101.64,-199.72 117.62,-202.72 182,-202.75"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-173C104.13,-173 120.12,-174 184,-174"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M40,-175C104,-175 120,-176 184,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-177C103.88,-177 119.87,-178 184,-178"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-172.75C102.13,-172.75 118.12,-173.75 182,-173.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M38,-174.75C102,-174.75 118,-175.75 182,-175.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-176.75C101.88,-176.75 117.87,-177.75 182,-177.75"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-150C103.88,-150 119.87,-149 184,-149"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M40,-152C104,-152 120,-151 184,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-154C104.13,-154 120.12,-153 184,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-149.75C101.88,-149.75 117.87,-148.75 182,-148.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M38,-151.75C102,-151.75 118,-150.75 182,-150.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-153.75C102.13,-153.75 118.12,-152.75 182,-152.75"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-127C103.64,-127.03 119.62,-124.03 184,-124"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M40,-129C104.01,-129 119.99,-126 184,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-131C104.38,-130.97 120.36,-127.97 184,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-126.75C101.64,-126.78 117.62,-123.78 182,-123.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M38,-128.75C102.01,-128.75 117.99,-125.75 182,-125.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M38,-130.75C102.38,-130.72 118.36,-127.72 182,-127.75"/>
</g>
<!-- F1 -->
<g id="node2" class="node">
<title>F1</title>
<polygon fill="#ffffff" stroke="black" points="502,-245.5 454,-245.5 454,-222.5 502,-222.5 502,-245.5"/>
<polygon fill="none" stroke="black" points="454,-222 454,-245 502,-245 502,-222 454,-222"/>
<text text-anchor="start" x="458" y="-229.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-247.62 447,-247.62 447,-223.88 493.25,-223.88 493.25,-247.62"/>
<polygon fill="none" stroke="black" points="447,-223.88 447,-247.62 493.25,-247.62 493.25,-223.88 447,-223.88"/>
<text text-anchor="start" x="451" y="-230.32" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- C2 -->
<g id="node9" class="node">
<title>C2</title>
<polygon fill="#ffffff" stroke="black" points="776,-392 646,-392 646,-208 776,-208 776,-392"/>
<polygon fill="none" stroke="black" points="646,-369 646,-392 776,-392 776,-369 646,-369"/>
<text text-anchor="start" x="702" y="-376.8" font-family="arial" font-size="14.00">C2</text>
<polygon fill="none" stroke="black" points="646,-346 646,-369 776,-369 776,-346 646,-346"/>
<text text-anchor="start" x="703.5" y="-353.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="648" y="-332.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="656" y="-313.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-313.8" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="transparent" points="646,-306 646,-308 776,-308 776,-306 646,-306"/>
<polygon fill="#ffffff" stroke="transparent" points="646,-304 646,-306 776,-306 776,-304 646,-304"/>
<polygon fill="#000000" stroke="transparent" points="646,-302 646,-304 776,-304 776,-302 646,-302"/>
<text text-anchor="start" x="658" y="-288.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-288.8" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="transparent" points="646,-281 646,-283 776,-283 776,-281 646,-281"/>
<polygon fill="#895956" stroke="transparent" points="646,-279 646,-281 776,-281 776,-279 646,-279"/>
<polygon fill="#000000" stroke="transparent" points="646,-277 646,-279 776,-279 776,-277 646,-277"/>
<text text-anchor="start" x="657.5" y="-263.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-263.8" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="transparent" points="646,-256 646,-258 776,-258 776,-256 646,-256"/>
<polygon fill="#00ff00" stroke="transparent" points="646,-254 646,-256 776,-256 776,-254 646,-254"/>
<polygon fill="#000000" stroke="transparent" points="646,-252 646,-254 776,-254 776,-252 646,-252"/>
<text text-anchor="start" x="658.5" y="-238.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-238.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="transparent" points="646,-231 646,-233 776,-233 776,-231 646,-231"/>
<polygon fill="#ffff00" stroke="transparent" points="646,-229 646,-231 776,-231 776,-229 646,-229"/>
<polygon fill="#000000" stroke="transparent" points="646,-227 646,-229 776,-229 776,-227 646,-227"/>
<text text-anchor="start" x="648" y="-213.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="761.25,-395.5 637.25,-395.5 637.25,-210 761.25,-210 761.25,-395.5"/>
<polygon fill="none" stroke="black" points="637.25,-371.75 637.25,-395.5 761.25,-395.5 761.25,-371.75 637.25,-371.75"/>
<text text-anchor="start" x="690.62" y="-378.2" font-family="arial" font-size="14.00">C2</text>
<polygon fill="none" stroke="black" points="637.25,-348 637.25,-371.75 761.25,-371.75 761.25,-348 637.25,-348"/>
<text text-anchor="start" x="692.12" y="-354.45" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="638.88" y="-332.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="646.12" y="-313.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-313.7" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="none" points="637.25,-308 637.25,-310 761.25,-310 761.25,-308 637.25,-308"/>
<polygon fill="#ffffff" stroke="none" points="637.25,-306 637.25,-308 761.25,-308 761.25,-306 637.25,-306"/>
<polygon fill="#000000" stroke="none" points="637.25,-304 637.25,-306 761.25,-306 761.25,-304 637.25,-304"/>
<text text-anchor="start" x="648.38" y="-288.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-288.7" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="none" points="637.25,-283 637.25,-285 761.25,-285 761.25,-283 637.25,-283"/>
<polygon fill="#895956" stroke="none" points="637.25,-281 637.25,-283 761.25,-283 761.25,-281 637.25,-281"/>
<polygon fill="#000000" stroke="none" points="637.25,-279 637.25,-281 761.25,-281 761.25,-279 637.25,-279"/>
<text text-anchor="start" x="647.25" y="-263.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-263.7" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="none" points="637.25,-258 637.25,-260 761.25,-260 761.25,-258 637.25,-258"/>
<polygon fill="#00ff00" stroke="none" points="637.25,-256 637.25,-258 761.25,-258 761.25,-256 637.25,-256"/>
<polygon fill="#000000" stroke="none" points="637.25,-254 637.25,-256 761.25,-256 761.25,-254 637.25,-254"/>
<text text-anchor="start" x="648.75" y="-238.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-238.7" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="637.25,-233 637.25,-235 761.25,-235 761.25,-233 637.25,-233"/>
<polygon fill="#ffff00" stroke="none" points="637.25,-231 637.25,-233 761.25,-233 761.25,-231 637.25,-231"/>
<polygon fill="#000000" stroke="none" points="637.25,-229 637.25,-231 761.25,-231 761.25,-229 637.25,-229"/>
<text text-anchor="start" x="638.88" y="-213.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C2 -->
<g id="edge9" class="edge">
<title>F1:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-232C575.36,-233.96 576.64,-304.96 646,-303"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M502,-234C573.36,-234 574.64,-305 646,-305"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-236C571.36,-234.04 572.64,-305.04 646,-307"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-233.75C566.61,-235.71 567.89,-306.71 637.25,-304.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M493.25,-235.75C564.61,-235.75 565.89,-306.75 637.25,-306.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-237.75C562.61,-235.79 563.89,-306.79 637.25,-308.75"/>
</g>
<!-- C3 -->
<g id="node10" class="node">
<title>C3</title>
<polygon fill="#ffffff" stroke="black" points="776,-184 646,-184 646,0 776,0 776,-184"/>
<polygon fill="none" stroke="black" points="646,-161 646,-184 776,-184 776,-161 646,-161"/>
<text text-anchor="start" x="702" y="-168.8" font-family="arial" font-size="14.00">C3</text>
<polygon fill="none" stroke="black" points="646,-138 646,-161 776,-161 776,-138 646,-138"/>
<text text-anchor="start" x="703.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="648" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="656" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-105.8" font-family="arial" font-size="14.00">X3:1:A</text>
<polygon fill="#000000" stroke="transparent" points="646,-98 646,-100 776,-100 776,-98 646,-98"/>
<polygon fill="#ffffff" stroke="transparent" points="646,-96 646,-98 776,-98 776,-96 646,-96"/>
<polygon fill="#000000" stroke="transparent" points="646,-94 646,-96 776,-96 776,-94 646,-94"/>
<text text-anchor="start" x="658" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-80.8" font-family="arial" font-size="14.00">X3:2:B</text>
<polygon fill="#000000" stroke="transparent" points="646,-73 646,-75 776,-75 776,-73 646,-73"/>
<polygon fill="#895956" stroke="transparent" points="646,-71 646,-73 776,-73 776,-71 646,-71"/>
<polygon fill="#000000" stroke="transparent" points="646,-69 646,-71 776,-71 776,-69 646,-69"/>
<text text-anchor="start" x="657.5" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-55.8" font-family="arial" font-size="14.00">X3:3:C</text>
<polygon fill="#000000" stroke="transparent" points="646,-48 646,-50 776,-50 776,-48 646,-48"/>
<polygon fill="#00ff00" stroke="transparent" points="646,-46 646,-48 776,-48 776,-46 646,-46"/>
<polygon fill="#000000" stroke="transparent" points="646,-44 646,-46 776,-46 776,-44 646,-44"/>
<text text-anchor="start" x="658.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="731" y="-30.8" font-family="arial" font-size="14.00">X3:4:D</text>
<polygon fill="#000000" stroke="transparent" points="646,-23 646,-25 776,-25 776,-23 646,-23"/>
<polygon fill="#ffff00" stroke="transparent" points="646,-21 646,-23 776,-23 776,-21 646,-21"/>
<polygon fill="#000000" stroke="transparent" points="646,-19 646,-21 776,-21 776,-19 646,-19"/>
<text text-anchor="start" x="648" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="761.25,-185.5 637.25,-185.5 637.25,0 761.25,0 761.25,-185.5"/>
<polygon fill="none" stroke="black" points="637.25,-161.75 637.25,-185.5 761.25,-185.5 761.25,-161.75 637.25,-161.75"/>
<text text-anchor="start" x="690.62" y="-168.2" font-family="arial" font-size="14.00">C3</text>
<polygon fill="none" stroke="black" points="637.25,-138 637.25,-161.75 761.25,-161.75 761.25,-138 637.25,-138"/>
<text text-anchor="start" x="692.12" y="-144.45" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="638.88" y="-122.7" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="646.12" y="-103.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-103.7" font-family="arial" font-size="14.00">X3:1:A</text>
<polygon fill="#000000" stroke="none" points="637.25,-98 637.25,-100 761.25,-100 761.25,-98 637.25,-98"/>
<polygon fill="#ffffff" stroke="none" points="637.25,-96 637.25,-98 761.25,-98 761.25,-96 637.25,-96"/>
<polygon fill="#000000" stroke="none" points="637.25,-94 637.25,-96 761.25,-96 761.25,-94 637.25,-94"/>
<text text-anchor="start" x="648.38" y="-78.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.5" y="-78.7" font-family="arial" font-size="14.00">X3:2:B</text>
<polygon fill="#000000" stroke="none" points="637.25,-73 637.25,-75 761.25,-75 761.25,-73 637.25,-73"/>
<polygon fill="#895956" stroke="none" points="637.25,-71 637.25,-73 761.25,-73 761.25,-71 637.25,-71"/>
<polygon fill="#000000" stroke="none" points="637.25,-69 637.25,-71 761.25,-71 761.25,-69 637.25,-69"/>
<text text-anchor="start" x="647.25" y="-53.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-53.7" font-family="arial" font-size="14.00">X3:3:C</text>
<polygon fill="#000000" stroke="none" points="637.25,-48 637.25,-50 761.25,-50 761.25,-48 637.25,-48"/>
<polygon fill="#00ff00" stroke="none" points="637.25,-46 637.25,-48 761.25,-48 761.25,-46 637.25,-46"/>
<polygon fill="#000000" stroke="none" points="637.25,-44 637.25,-46 761.25,-46 761.25,-44 637.25,-44"/>
<text text-anchor="start" x="648.75" y="-28.7" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="718.12" y="-28.7" font-family="arial" font-size="14.00">X3:4:D</text>
<polygon fill="#000000" stroke="none" points="637.25,-23 637.25,-25 761.25,-25 761.25,-23 637.25,-23"/>
<polygon fill="#ffff00" stroke="none" points="637.25,-21 637.25,-23 761.25,-23 761.25,-21 637.25,-21"/>
<polygon fill="#000000" stroke="none" points="637.25,-19 637.25,-21 761.25,-21 761.25,-19 637.25,-19"/>
<text text-anchor="start" x="638.88" y="-3.7" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C3 -->
<g id="edge17" class="edge">
<title>F1:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-232C588.39,-234.46 555.72,-97.46 646,-95"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M502,-234C590.34,-234 557.66,-97 646,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-236C592.28,-233.54 559.61,-96.54 646,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-233.75C580.26,-236.22 546.35,-97.22 637.25,-94.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M493.25,-235.75C582.2,-235.75 548.3,-96.75 637.25,-96.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-237.75C584.15,-235.28 550.24,-96.28 637.25,-98.75"/>
</g>
<!-- F2 -->
<g id="node3" class="node">
<title>F2</title>
<polygon fill="#ffffff" stroke="black" points="502,-198.5 454,-198.5 454,-175.5 502,-175.5 502,-198.5"/>
<polygon fill="none" stroke="black" points="454,-175 454,-198 502,-198 502,-175 454,-175"/>
<text text-anchor="start" x="458" y="-182.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-199.62 447,-199.62 447,-175.88 493.25,-175.88 493.25,-199.62"/>
<polygon fill="none" stroke="black" points="447,-175.88 447,-199.62 493.25,-199.62 493.25,-175.88 447,-175.88"/>
<text text-anchor="start" x="451" y="-182.32" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F2&#45;&#45;C2 -->
<g id="edge11" class="edge">
<title>F2:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-185C580.18,-187.18 571.81,-280.18 646,-278"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M502,-187C578.19,-187 569.81,-280 646,-280"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-189C576.19,-186.82 567.82,-279.82 646,-282"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-185.75C571.67,-187.94 562.81,-281.94 637.25,-279.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M493.25,-187.75C569.68,-187.75 560.82,-281.75 637.25,-281.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-189.75C567.69,-187.56 558.83,-281.56 637.25,-283.75"/>
</g>
<!-- F2&#45;&#45;C3 -->
<g id="edge19" class="edge">
<title>F2:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-185C581.93,-187.34 562.12,-72.34 646,-70"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M502,-187C583.9,-187 564.1,-72 646,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-189C585.88,-186.66 566.07,-71.66 646,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-185.75C573.46,-188.1 553.1,-72.1 637.25,-69.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M493.25,-187.75C575.43,-187.75 555.07,-71.75 637.25,-71.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-189.75C577.4,-187.4 557.04,-71.4 637.25,-73.75"/>
</g>
<!-- F3 -->
<g id="node4" class="node">
<title>F3</title>
<polygon fill="#ffffff" stroke="black" points="502,-151.5 454,-151.5 454,-128.5 502,-128.5 502,-151.5"/>
<polygon fill="none" stroke="black" points="454,-128 454,-151 502,-151 502,-128 454,-128"/>
<text text-anchor="start" x="458" y="-135.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-151.62 447,-151.62 447,-127.88 493.25,-127.88 493.25,-151.62"/>
<polygon fill="none" stroke="black" points="447,-127.88 447,-151.62 493.25,-151.62 493.25,-127.88 447,-127.88"/>
<text text-anchor="start" x="451" y="-134.32" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F3&#45;&#45;C2 -->
<g id="edge13" class="edge">
<title>F3:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-138C585.88,-140.34 566.07,-255.34 646,-253"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M502,-140C583.9,-140 564.1,-255 646,-255"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-142C581.93,-139.66 562.12,-254.66 646,-257"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-137.75C577.68,-140.1 556.76,-257.1 637.25,-254.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M493.25,-139.75C575.71,-139.75 554.79,-256.75 637.25,-256.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-141.75C573.74,-139.4 552.82,-256.4 637.25,-258.75"/>
</g>
<!-- F3&#45;&#45;C3 -->
<g id="edge21" class="edge">
<title>F3:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-138C576.19,-140.18 567.82,-47.18 646,-45"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M502,-140C578.19,-140 569.81,-47 646,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-142C580.18,-139.82 571.81,-46.82 646,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-137.75C567.44,-139.93 559.07,-46.93 637.25,-44.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M493.25,-139.75C569.44,-139.75 561.06,-46.75 637.25,-46.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-141.75C571.43,-139.57 563.06,-46.57 637.25,-48.75"/>
</g>
<!-- F4 -->
<g id="node5" class="node">
<title>F4</title>
<polygon fill="#ffffff" stroke="black" points="502,-104.5 454,-104.5 454,-81.5 502,-81.5 502,-104.5"/>
<polygon fill="none" stroke="black" points="454,-81 454,-104 502,-104 502,-81 454,-81"/>
<text text-anchor="start" x="458" y="-88.8" font-family="arial" font-size="14.00">ferrule</text>
<polygon fill="#ffffff" stroke="black" points="493.25,-103.62 447,-103.62 447,-79.88 493.25,-79.88 493.25,-103.62"/>
<polygon fill="none" stroke="black" points="447,-79.88 447,-103.62 493.25,-103.62 493.25,-79.88 447,-79.88"/>
<text text-anchor="start" x="451" y="-86.33" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F4&#45;&#45;C2 -->
<g id="edge15" class="edge">
<title>F4:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-91C592.28,-93.46 559.61,-230.46 646,-228"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M502,-93C590.34,-93 557.66,-230 646,-230"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-95C588.39,-92.54 555.72,-229.54 646,-232"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-89.75C584.45,-92.23 549.93,-232.23 637.25,-229.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M493.25,-91.75C582.51,-91.75 547.99,-231.75 637.25,-231.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-93.75C580.57,-91.27 546.05,-231.27 637.25,-233.75"/>
</g>
<!-- F4&#45;&#45;C3 -->
<g id="edge23" class="edge">
<title>F4:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-91C571.36,-92.96 572.64,-21.96 646,-20"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M502,-93C573.36,-93 574.64,-22 646,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M502,-95C575.36,-93.04 576.64,-22.04 646,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-89.75C562.41,-91.7 564.09,-21.7 637.25,-19.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M493.25,-91.75C564.41,-91.75 566.09,-21.75 637.25,-21.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M493.25,-93.75C566.41,-91.8 568.09,-21.8 637.25,-23.75"/>
</g>
<!-- X2 -->
<g id="node6" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="960,-360 920,-360 920,-222 960,-222 960,-360"/>
<polygon fill="none" stroke="black" points="920,-337 920,-360 960,-360 960,-337 920,-337"/>
<text text-anchor="start" x="931" y="-344.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="920,-314 920,-337 960,-337 960,-314 920,-314"/>
<text text-anchor="start" x="924" y="-321.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="920,-291 920,-314 939,-314 939,-291 920,-291"/>
<text text-anchor="start" x="925.5" y="-298.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="939,-291 939,-314 960,-314 960,-291 939,-291"/>
<text text-anchor="start" x="944.5" y="-298.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="920,-268 920,-291 939,-291 939,-268 920,-268"/>
<text text-anchor="start" x="925.5" y="-275.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="939,-268 939,-291 960,-291 960,-268 939,-268"/>
<text text-anchor="start" x="944.5" y="-275.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="920,-245 920,-268 939,-268 939,-245 920,-245"/>
<text text-anchor="start" x="925.5" y="-252.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="939,-245 939,-268 960,-268 960,-245 939,-245"/>
<text text-anchor="start" x="944" y="-252.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="920,-222 920,-245 939,-245 939,-222 920,-222"/>
<text text-anchor="start" x="925.5" y="-229.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="939,-222 939,-245 960,-245 960,-222 939,-222"/>
<text text-anchor="start" x="944" y="-229.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="#ffffff" stroke="black" points="943.25,-362.5 905.25,-362.5 905.25,-223 943.25,-223 943.25,-362.5"/>
<polygon fill="none" stroke="black" points="905.25,-338.75 905.25,-362.5 943.25,-362.5 943.25,-338.75 905.25,-338.75"/>
<text text-anchor="start" x="916" y="-345.2" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="905.25,-315 905.25,-338.75 943.25,-338.75 943.25,-315 905.25,-315"/>
<text text-anchor="start" x="909.25" y="-321.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="905.25,-292 905.25,-315 923.25,-315 923.25,-292 905.25,-292"/>
<text text-anchor="start" x="910.5" y="-297.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="923.25,-292 923.25,-315 943.25,-315 943.25,-292 923.25,-292"/>
<text text-anchor="start" x="928.75" y="-297.7" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="905.25,-269 905.25,-292 923.25,-292 923.25,-269 905.25,-269"/>
<text text-anchor="start" x="910.5" y="-274.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="923.25,-269 923.25,-292 943.25,-292 943.25,-269 923.25,-269"/>
<text text-anchor="start" x="928.75" y="-274.7" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="905.25,-246 905.25,-269 923.25,-269 923.25,-246 905.25,-246"/>
<text text-anchor="start" x="910.5" y="-251.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="923.25,-246 923.25,-269 943.25,-269 943.25,-246 923.25,-246"/>
<text text-anchor="start" x="928.38" y="-251.7" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="905.25,-223 905.25,-246 923.25,-246 923.25,-223 905.25,-223"/>
<text text-anchor="start" x="910.5" y="-228.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="923.25,-223 923.25,-246 943.25,-246 943.25,-223 923.25,-223"/>
<text text-anchor="start" x="928.38" y="-228.7" font-family="arial" font-size="14.00">D</text>
</g>
<!-- X3 -->
<g id="node7" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="960,-152 920,-152 920,-14 960,-14 960,-152"/>
<polygon fill="none" stroke="black" points="920,-129 920,-152 960,-152 960,-129 920,-129"/>
<text text-anchor="start" x="931" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="920,-106 920,-129 960,-129 960,-106 920,-106"/>
<text text-anchor="start" x="924" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="920,-83 920,-106 939,-106 939,-83 920,-83"/>
<text text-anchor="start" x="925.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="939,-83 939,-106 960,-106 960,-83 939,-83"/>
<text text-anchor="start" x="944.5" y="-90.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="920,-60 920,-83 939,-83 939,-60 920,-60"/>
<text text-anchor="start" x="925.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="939,-60 939,-83 960,-83 960,-60 939,-60"/>
<text text-anchor="start" x="944.5" y="-67.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="920,-37 920,-60 939,-60 939,-37 920,-37"/>
<text text-anchor="start" x="925.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="939,-37 939,-60 960,-60 960,-37 939,-37"/>
<text text-anchor="start" x="944" y="-44.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="920,-14 920,-37 939,-37 939,-14 920,-14"/>
<text text-anchor="start" x="925.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="939,-14 939,-37 960,-37 960,-14 939,-14"/>
<text text-anchor="start" x="944" y="-21.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="#ffffff" stroke="black" points="943.25,-152.5 905.25,-152.5 905.25,-13 943.25,-13 943.25,-152.5"/>
<polygon fill="none" stroke="black" points="905.25,-128.75 905.25,-152.5 943.25,-152.5 943.25,-128.75 905.25,-128.75"/>
<text text-anchor="start" x="916" y="-135.2" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="905.25,-105 905.25,-128.75 943.25,-128.75 943.25,-105 905.25,-105"/>
<text text-anchor="start" x="909.25" y="-111.45" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="905.25,-82 905.25,-105 923.25,-105 923.25,-82 905.25,-82"/>
<text text-anchor="start" x="910.5" y="-87.7" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="923.25,-82 923.25,-105 943.25,-105 943.25,-82 923.25,-82"/>
<text text-anchor="start" x="928.75" y="-87.7" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="905.25,-59 905.25,-82 923.25,-82 923.25,-59 905.25,-59"/>
<text text-anchor="start" x="910.5" y="-64.7" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="923.25,-59 923.25,-82 943.25,-82 943.25,-59 923.25,-59"/>
<text text-anchor="start" x="928.75" y="-64.7" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="905.25,-36 905.25,-59 923.25,-59 923.25,-36 905.25,-36"/>
<text text-anchor="start" x="910.5" y="-41.7" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="923.25,-36 923.25,-59 943.25,-59 943.25,-36 923.25,-36"/>
<text text-anchor="start" x="928.38" y="-41.7" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="905.25,-13 905.25,-36 923.25,-36 923.25,-13 905.25,-13"/>
<text text-anchor="start" x="910.5" y="-18.7" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="923.25,-13 923.25,-36 943.25,-36 943.25,-13 923.25,-13"/>
<text text-anchor="start" x="928.38" y="-18.7" font-family="arial" font-size="14.00">D</text>
</g>
<!-- C1&#45;&#45;F1 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;F1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-199C377.53,-200.28 390.21,-233.28 454,-232"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M310,-201C375.66,-201 388.34,-234 454,-234"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-203C373.79,-201.72 386.47,-234.72 454,-236"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-198.75C370.75,-200.09 383.02,-235.09 447,-233.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M303,-200.75C368.86,-200.75 381.14,-235.75 447,-235.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-202.75C366.98,-201.41 379.25,-236.41 447,-237.75"/>
</g>
<!-- C1&#45;&#45;F2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;F2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-174C375.34,-174.36 390.96,-185.36 454,-185"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M310,-176C374.19,-176 389.81,-187 454,-187"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-178C373.04,-177.64 388.66,-188.64 454,-189"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-173.75C368.44,-174.17 384,-186.17 447,-185.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M303,-175.75C367.22,-175.75 382.78,-187.75 447,-187.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-177.75C366,-177.33 381.56,-189.33 447,-189.75"/>
</g>
<!-- C1&#45;&#45;F3 -->
<g id="edge6" class="edge">
<title>C1:e&#45;&#45;F3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-149C373.04,-149.36 388.66,-138.36 454,-138"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M310,-151C374.19,-151 389.81,-140 454,-140"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-153C375.34,-152.64 390.96,-141.64 454,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-148.75C366.04,-149.11 381.66,-138.11 447,-137.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M303,-150.75C367.19,-150.75 382.81,-139.75 447,-139.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-152.75C368.34,-152.39 383.96,-141.39 447,-141.75"/>
</g>
<!-- C1&#45;&#45;F4 -->
<g id="edge8" class="edge">
<title>C1:e&#45;&#45;F4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-124C373.79,-125.28 386.47,-92.28 454,-91"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M310,-126C375.66,-126 388.34,-93 454,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M310,-128C377.53,-126.72 390.21,-93.72 454,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-123.75C366.88,-125.06 379.36,-91.06 447,-89.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M303,-125.75C368.76,-125.75 381.24,-91.75 447,-91.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M303,-127.75C370.64,-126.44 383.12,-92.44 447,-93.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-303C839.76,-303.02 855.75,-301.02 920,-301"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M776,-305C840.01,-305 855.99,-303 920,-303"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-307C840.25,-306.98 856.24,-304.98 920,-305"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-304.75C824.89,-304.78 840.87,-301.78 905.25,-301.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M761.25,-306.75C825.26,-306.75 841.24,-303.75 905.25,-303.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-308.75C825.63,-308.72 841.61,-305.72 905.25,-305.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-278C839.88,-278 855.87,-277 920,-277"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M776,-280C840,-280 856,-279 920,-279"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-282C840.13,-282 856.12,-281 920,-281"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-279.75C825.13,-279.75 841.12,-278.75 905.25,-278.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M761.25,-281.75C825.25,-281.75 841.25,-280.75 905.25,-280.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-283.75C825.38,-283.75 841.37,-282.75 905.25,-282.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-253C840.13,-253 856.12,-254 920,-254"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M776,-255C840,-255 856,-256 920,-256"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-257C839.88,-257 855.87,-258 920,-258"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-254.75C825.38,-254.75 841.37,-255.75 905.25,-255.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M761.25,-256.75C825.25,-256.75 841.25,-257.75 905.25,-257.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-258.75C825.13,-258.75 841.12,-259.75 905.25,-259.75"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-228C840.38,-228.03 856.36,-231.03 920,-231"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M776,-230C840.01,-230 855.99,-233 920,-233"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-232C839.64,-231.97 855.62,-234.97 920,-235"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-229.75C825.63,-229.78 841.61,-232.78 905.25,-232.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M761.25,-231.75C825.26,-231.75 841.24,-234.75 905.25,-234.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-233.75C824.89,-233.72 840.87,-236.72 905.25,-236.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge18" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-95C839.76,-95.02 855.75,-93.02 920,-93"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M776,-97C840.01,-97 855.99,-95 920,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-99C840.25,-98.98 856.24,-96.98 920,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-94.75C824.89,-94.78 840.87,-91.78 905.25,-91.75"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M761.25,-96.75C825.26,-96.75 841.24,-93.75 905.25,-93.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-98.75C825.63,-98.72 841.61,-95.72 905.25,-95.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge20" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-70C839.88,-70 855.87,-69 920,-69"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M776,-72C840,-72 856,-71 920,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-74C840.13,-74 856.12,-73 920,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-69.75C825.13,-69.75 841.12,-68.75 905.25,-68.75"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M761.25,-71.75C825.25,-71.75 841.25,-70.75 905.25,-70.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-73.75C825.38,-73.75 841.37,-72.75 905.25,-72.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge22" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-45C840.13,-45 856.12,-46 920,-46"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M776,-47C840,-47 856,-48 920,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-49C839.88,-49 855.87,-50 920,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-44.75C825.38,-44.75 841.37,-45.75 905.25,-45.75"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M761.25,-46.75C825.25,-46.75 841.25,-47.75 905.25,-47.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-48.75C825.13,-48.75 841.12,-49.75 905.25,-49.75"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge24" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-20C840.38,-20.03 856.36,-23.03 920,-23"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M776,-22C840.01,-22 855.99,-25 920,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M776,-24C839.64,-23.97 855.62,-26.97 920,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-19.75C825.63,-19.78 841.61,-22.78 905.25,-22.75"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M761.25,-21.75C825.26,-21.75 841.24,-24.75 905.25,-24.75"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M761.25,-23.75C824.89,-23.72 840.87,-26.72 905.25,-26.75"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 27 KiB

76
examples/ex14.gv generated
View File

@ -1,6 +1,6 @@
graph {
// Graph generated by WireViz 0.4-dev
// https://github.com/formatc1702/WireViz
// Graph generated by WireViz 0.4.1
// https://github.com/wireviz/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
@ -40,7 +40,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_1 [label=<
__S_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -51,7 +51,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_2 [label=<
__S_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -73,7 +73,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_3 [label=<
__S_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -84,7 +84,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_4 [label=<
__S_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -95,7 +95,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_5 [label=<
__S_5 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -106,7 +106,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_6 [label=<
__S_6 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -117,7 +117,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_S_7 [label=<
__S_7 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -200,7 +200,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_1 [label=<
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -211,7 +211,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_2 [label=<
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -222,7 +222,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_3 [label=<
__F_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -233,7 +233,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
AUTOGENERATED_F_4 [label=<
__F_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -283,16 +283,16 @@ graph {
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
X1:p4r:e -- W1:w1:w
W1:w1:e -- AUTOGENERATED_S_1:w
W1:w1:e -- __S_1:w
edge [color="#000000:#895956:#000000"]
X1:p3r:e -- W1:w2:w
W1:w2:e -- AUTOGENERATED_S_2:w
W1:w2:e -- __S_2:w
edge [color="#000000:#00ff00:#000000"]
X1:p2r:e -- W1:w3:w
W1:w3:e -- S1:w
edge [color="#000000:#ffff00:#000000"]
X1:p1r:e -- W1:w4:w
W1:w4:e -- AUTOGENERATED_S_3:w
W1:w4:e -- __S_3:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
@ -379,17 +379,17 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
AUTOGENERATED_S_1:e -- W2:w1:w
W2:w1:e -- AUTOGENERATED_S_4:w
__S_1:e -- W2:w1:w
W2:w1:e -- __S_4:w
edge [color="#000000:#895956:#000000"]
AUTOGENERATED_S_2:e -- W2:w2:w
W2:w2:e -- AUTOGENERATED_S_5:w
__S_2:e -- W2:w2:w
W2:w2:e -- __S_5:w
edge [color="#000000:#00ff00:#000000"]
S1:e -- W2:w3:w
W2:w3:e -- AUTOGENERATED_S_6:w
W2:w3:e -- __S_6:w
edge [color="#000000:#ffff00:#000000"]
AUTOGENERATED_S_3:e -- W2:w4:w
W2:w4:e -- AUTOGENERATED_S_7:w
__S_3:e -- W2:w4:w
W2:w4:e -- __S_7:w
W2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
@ -476,16 +476,16 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
AUTOGENERATED_S_4:e -- W21:w1:w
__S_4:e -- W21:w1:w
W21:w1:e -- X2:p1l:w
edge [color="#000000:#895956:#000000"]
AUTOGENERATED_S_5:e -- W21:w2:w
__S_5:e -- W21:w2:w
W21:w2:e -- X2:p2l:w
edge [color="#000000:#00ff00:#000000"]
AUTOGENERATED_S_6:e -- W21:w3:w
__S_6:e -- W21:w3:w
W21:w3:e -- X2:p3l:w
edge [color="#000000:#ffff00:#000000"]
AUTOGENERATED_S_7:e -- W21:w4:w
__S_7:e -- W21:w4:w
W21:w4:e -- X2:p4l:w
W21 [label=<
<table border="0" cellspacing="0" cellpadding="0">
@ -574,16 +574,16 @@ graph {
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
X3:p1r:e -- W3:w1:w
W3:w1:e -- AUTOGENERATED_F_1:w
W3:w1:e -- __F_1:w
edge [color="#000000:#895956:#000000"]
X3:p2r:e -- W3:w2:w
W3:w2:e -- AUTOGENERATED_F_2:w
W3:w2:e -- __F_2:w
edge [color="#000000:#00ff00:#000000"]
X3:p3r:e -- W3:w3:w
W3:w3:e -- AUTOGENERATED_F_3:w
W3:w3:e -- __F_3:w
edge [color="#000000:#ffff00:#000000"]
X3:p4r:e -- W3:w4:w
W3:w4:e -- AUTOGENERATED_F_4:w
W3:w4:e -- __F_4:w
W3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
@ -670,9 +670,9 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#000000:#000000"]
S1:e -- AUTOGENERATED_WIRE_1:w1:w
AUTOGENERATED_WIRE_1:w1:e -- X2:p4l:w
AUTOGENERATED_WIRE_1 [label=<
S1:e -- __WIRE_1:w1:w
__WIRE_1:w1:e -- X2:p4l:w
__WIRE_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -707,11 +707,11 @@ graph {
edge [color="#000000:#000000" dir=both style=dashed]
X2:e -- X3:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_1:e -- X4:p2l:w
__F_1:e -- X4:p2l:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_2:e -- X4:p1l:w
__F_2:e -- X4:p1l:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_3:e -- X4:p4l:w
__F_3:e -- X4:p4l:w
edge [color="#000000" dir=forward style=dashed]
AUTOGENERATED_F_4:e -- X4:p3l:w
__F_4:e -- X4:p3l:w
}

1004
examples/ex14.html generated

File diff suppressed because it is too large Load Diff

BIN
examples/ex14.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 202 KiB

1002
examples/ex14.svg generated

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -3,4 +3,3 @@ graphviz
pillow
pyyaml
setuptools
tabulate

View File

@ -15,19 +15,19 @@ setup(
author="Daniel Rojas",
# author_email='',
description="Easily document cables and wiring harnesses",
long_description=README_PATH.read_text(),
long_description=open(README_PATH).read(),
long_description_content_type="text/markdown",
install_requires=[
"click",
"graphviz",
"pillow",
"pyyaml",
"tabulate",
"pillow",
"graphviz",
],
license="GPLv3",
keywords="cable connector hardware harness wiring wiring-diagram wiring-harness",
url=APP_URL,
package_dir={"": "src"},
package_data={CMD_NAME: ["templates/*.html"]},
packages=find_packages("src"),
entry_points={
"console_scripts": [
@ -38,9 +38,8 @@ setup(
"Development Status :: 4 - Beta",
"Environment :: Console",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Topic :: Utilities",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
],

435
src/wireviz/DataClasses.py Normal file
View File

@ -0,0 +1,435 @@
# -*- coding: utf-8 -*-
from dataclasses import InitVar, dataclass, field
from enum import Enum, auto
from pathlib import Path
from typing import Dict, List, Optional, Tuple, Union
from wireviz.wv_colors import COLOR_CODES, Color, ColorMode, Colors, ColorScheme
from wireviz.wv_helper import aspect_ratio, int2tuple
# Each type alias have their legal values described in comments - validation might be implemented in the future
PlainText = str # Text not containing HTML tags nor newlines
Hypertext = str # Text possibly including HTML hyperlinks that are removed in all outputs except HTML output
MultilineHypertext = (
str # Hypertext possibly also including newlines to break lines in diagram output
)
Designator = PlainText # Case insensitive unique name of connector or cable
# Literal type aliases below are commented to avoid requiring python 3.8
ConnectorMultiplier = PlainText # = Literal['pincount', 'populated', 'unpopulated']
CableMultiplier = (
PlainText # = Literal['wirecount', 'terminations', 'length', 'total_length']
)
ImageScale = PlainText # = Literal['false', 'true', 'width', 'height', 'both']
# Type combinations
Pin = Union[int, PlainText] # Pin identifier
PinIndex = int # Zero-based pin index
Wire = Union[int, PlainText] # Wire number or Literal['s'] for shield
NoneOrMorePins = Union[
Pin, Tuple[Pin, ...], None
] # None, one, or a tuple of pin identifiers
NoneOrMorePinIndices = Union[
PinIndex, Tuple[PinIndex, ...], None
] # None, one, or a tuple of zero-based pin indices
OneOrMoreWires = Union[Wire, Tuple[Wire, ...]] # One or a tuple of wires
# Metadata can contain whatever is needed by the HTML generation/template.
MetadataKeys = PlainText # Literal['title', 'description', 'notes', ...]
Side = Enum("Side", "LEFT RIGHT")
class Metadata(dict):
pass
@dataclass
class Options:
fontname: PlainText = "arial"
bgcolor: Color = "WH"
bgcolor_node: Optional[Color] = "WH"
bgcolor_connector: Optional[Color] = None
bgcolor_cable: Optional[Color] = None
bgcolor_bundle: Optional[Color] = None
color_mode: ColorMode = "SHORT"
mini_bom_mode: bool = True
template_separator: str = "."
def __post_init__(self):
if not self.bgcolor_node:
self.bgcolor_node = self.bgcolor
if not self.bgcolor_connector:
self.bgcolor_connector = self.bgcolor_node
if not self.bgcolor_cable:
self.bgcolor_cable = self.bgcolor_node
if not self.bgcolor_bundle:
self.bgcolor_bundle = self.bgcolor_cable
@dataclass
class Tweak:
override: Optional[Dict[Designator, Dict[str, Optional[str]]]] = None
append: Union[str, List[str], None] = None
@dataclass
class Image:
# Attributes of the image object <img>:
src: str
scale: Optional[ImageScale] = None
# Attributes of the image cell <td> containing the image:
width: Optional[int] = None
height: Optional[int] = None
fixedsize: Optional[bool] = None
bgcolor: Optional[Color] = None
# Contents of the text cell <td> just below the image cell:
caption: Optional[MultilineHypertext] = None
# See also HTML doc at https://graphviz.org/doc/info/shapes.html#html
def __post_init__(self):
if self.fixedsize is None:
# Default True if any dimension specified unless self.scale also is specified.
self.fixedsize = (self.width or self.height) and self.scale is None
if self.scale is None:
if not self.width and not self.height:
self.scale = "false"
elif self.width and self.height:
self.scale = "both"
else:
self.scale = "true" # When only one dimension is specified.
if self.fixedsize:
# If only one dimension is specified, compute the other
# because Graphviz requires both when fixedsize=True.
if self.height:
if not self.width:
self.width = self.height * aspect_ratio(self.src)
else:
if self.width:
self.height = self.width / aspect_ratio(self.src)
@dataclass
class AdditionalComponent:
type: MultilineHypertext
subtype: Optional[MultilineHypertext] = None
manufacturer: Optional[MultilineHypertext] = None
mpn: Optional[MultilineHypertext] = None
supplier: Optional[MultilineHypertext] = None
spn: Optional[MultilineHypertext] = None
pn: Optional[Hypertext] = None
qty: float = 1
unit: Optional[str] = None
qty_multiplier: Union[ConnectorMultiplier, CableMultiplier, None] = None
bgcolor: Optional[Color] = None
@property
def description(self) -> str:
t = self.type.rstrip()
st = f", {self.subtype.rstrip()}" if self.subtype else ""
t = t + st
return t
@dataclass
class Connector:
name: Designator
bgcolor: Optional[Color] = None
bgcolor_title: Optional[Color] = None
manufacturer: Optional[MultilineHypertext] = None
mpn: Optional[MultilineHypertext] = None
supplier: Optional[MultilineHypertext] = None
spn: Optional[MultilineHypertext] = None
pn: Optional[Hypertext] = None
style: Optional[str] = None
category: Optional[str] = None
type: Optional[MultilineHypertext] = None
subtype: Optional[MultilineHypertext] = None
pincount: Optional[int] = None
image: Optional[Image] = None
notes: Optional[MultilineHypertext] = None
pins: List[Pin] = field(default_factory=list)
pinlabels: List[Pin] = field(default_factory=list)
pincolors: List[Color] = field(default_factory=list)
color: Optional[Color] = None
show_name: Optional[bool] = None
show_pincount: Optional[bool] = None
hide_disconnected_pins: bool = False
loops: List[List[Pin]] = field(default_factory=list)
ignore_in_bom: bool = False
additional_components: List[AdditionalComponent] = field(default_factory=list)
def __post_init__(self) -> None:
if isinstance(self.image, dict):
self.image = Image(**self.image)
self.ports_left = False
self.ports_right = False
self.visible_pins = {}
if self.style == "simple":
if self.pincount and self.pincount > 1:
raise Exception(
"Connectors with style set to simple may only have one pin"
)
self.pincount = 1
if not self.pincount:
self.pincount = max(
len(self.pins), len(self.pinlabels), len(self.pincolors)
)
if not self.pincount:
raise Exception(
"You need to specify at least one, pincount, pins, pinlabels, or pincolors"
)
# create default list for pins (sequential) if not specified
if not self.pins:
self.pins = list(range(1, self.pincount + 1))
if len(self.pins) != len(set(self.pins)):
raise Exception("Pins are not unique")
if self.show_name is None:
# hide designators for simple and for auto-generated connectors by default
self.show_name = self.style != "simple" and self.name[0:2] != "__"
if self.show_pincount is None:
# hide pincount for simple (1 pin) connectors by default
self.show_pincount = self.style != "simple"
for loop in self.loops:
# TODO: allow using pin labels in addition to pin numbers, just like when defining regular connections
# TODO: include properties of wire used to create the loop
if len(loop) != 2:
raise Exception("Loops must be between exactly two pins!")
for pin in loop:
if pin not in self.pins:
raise Exception(
f'Unknown loop pin "{pin}" for connector "{self.name}"!'
)
# Make sure loop connected pins are not hidden.
self.activate_pin(pin, None)
for i, item in enumerate(self.additional_components):
if isinstance(item, dict):
self.additional_components[i] = AdditionalComponent(**item)
def activate_pin(self, pin: Pin, side: Side) -> None:
self.visible_pins[pin] = True
if side == Side.LEFT:
self.ports_left = True
elif side == Side.RIGHT:
self.ports_right = True
def get_qty_multiplier(self, qty_multiplier: Optional[ConnectorMultiplier]) -> int:
if not qty_multiplier:
return 1
elif qty_multiplier == "pincount":
return self.pincount
elif qty_multiplier == "populated":
return sum(self.visible_pins.values())
elif qty_multiplier == "unpopulated":
return max(0, self.pincount - sum(self.visible_pins.values()))
else:
raise ValueError(
f"invalid qty multiplier parameter for connector {qty_multiplier}"
)
@dataclass
class Cable:
name: Designator
bgcolor: Optional[Color] = None
bgcolor_title: Optional[Color] = None
manufacturer: Union[MultilineHypertext, List[MultilineHypertext], None] = None
mpn: Union[MultilineHypertext, List[MultilineHypertext], None] = None
supplier: Union[MultilineHypertext, List[MultilineHypertext], None] = None
spn: Union[MultilineHypertext, List[MultilineHypertext], None] = None
pn: Union[Hypertext, List[Hypertext], None] = None
category: Optional[str] = None
type: Optional[MultilineHypertext] = None
gauge: Optional[float] = None
gauge_unit: Optional[str] = None
show_equiv: bool = False
length: float = 0
length_unit: Optional[str] = None
color: Optional[Color] = None
wirecount: Optional[int] = None
shield: Union[bool, Color] = False
image: Optional[Image] = None
notes: Optional[MultilineHypertext] = None
colors: List[Colors] = field(default_factory=list)
wirelabels: List[Wire] = field(default_factory=list)
color_code: Optional[ColorScheme] = None
show_name: Optional[bool] = None
show_wirecount: bool = True
show_wirenumbers: Optional[bool] = None
ignore_in_bom: bool = False
additional_components: List[AdditionalComponent] = field(default_factory=list)
def __post_init__(self) -> None:
if isinstance(self.image, dict):
self.image = Image(**self.image)
if isinstance(self.gauge, str): # gauge and unit specified
try:
g, u = self.gauge.split(" ")
except Exception:
raise Exception(
f"Cable {self.name} gauge={self.gauge} - Gauge must be a number, or number and unit separated by a space"
)
self.gauge = g
if self.gauge_unit is not None:
print(
f"Warning: Cable {self.name} gauge_unit={self.gauge_unit} is ignored because its gauge contains {u}"
)
if u.upper() == "AWG":
self.gauge_unit = u.upper()
else:
self.gauge_unit = u.replace("mm2", "mm\u00B2")
elif self.gauge is not None: # gauge specified, assume mm2
if self.gauge_unit is None:
self.gauge_unit = "mm\u00B2"
else:
pass # gauge not specified
if isinstance(self.length, str): # length and unit specified
try:
L, u = self.length.split(" ")
L = float(L)
except Exception:
raise Exception(
f"Cable {self.name} length={self.length} - Length must be a number, or number and unit separated by a space"
)
self.length = L
if self.length_unit is not None:
print(
f"Warning: Cable {self.name} length_unit={self.length_unit} is ignored because its length contains {u}"
)
self.length_unit = u
elif not isinstance(self.length, (int, float)):
raise Exception(f"Cable {self.name} length has a non-numeric value")
elif self.length_unit is None:
self.length_unit = "m"
self.connections = []
if self.wirecount: # number of wires explicitly defined
if self.colors: # use custom color palette (partly or looped if needed)
pass
elif self.color_code:
# use standard color palette (partly or looped if needed)
if self.color_code not in COLOR_CODES:
raise Exception("Unknown color code")
self.colors = COLOR_CODES[self.color_code]
else: # no colors defined, add dummy colors
self.colors = [""] * self.wirecount
# make color code loop around if more wires than colors
if self.wirecount > len(self.colors):
m = self.wirecount // len(self.colors) + 1
self.colors = self.colors * int(m)
# cut off excess after looping
self.colors = self.colors[: self.wirecount]
else: # wirecount implicit in length of color list
if not self.colors:
raise Exception(
"Unknown number of wires. Must specify wirecount or colors (implicit length)"
)
self.wirecount = len(self.colors)
if self.wirelabels:
if self.shield and "s" in self.wirelabels:
raise Exception(
'"s" may not be used as a wire label for a shielded cable.'
)
# if lists of part numbers are provided check this is a bundle and that it matches the wirecount.
for idfield in [self.manufacturer, self.mpn, self.supplier, self.spn, self.pn]:
if isinstance(idfield, list):
if self.category == "bundle":
# check the length
if len(idfield) != self.wirecount:
raise Exception("lists of part data must match wirecount")
else:
raise Exception("lists of part data are only supported for bundles")
if self.show_name is None:
# hide designators for auto-generated cables by default
self.show_name = self.name[0:2] != "__"
if self.show_wirenumbers is None:
# by default, show wire numbers for cables, hide for bundles
self.show_wirenumbers = self.category != "bundle"
for i, item in enumerate(self.additional_components):
if isinstance(item, dict):
self.additional_components[i] = AdditionalComponent(**item)
# The *_pin arguments accept a tuple, but it seems not in use with the current code.
def connect(
self,
from_name: Optional[Designator],
from_pin: NoneOrMorePinIndices,
via_wire: OneOrMoreWires,
to_name: Optional[Designator],
to_pin: NoneOrMorePinIndices,
) -> None:
from_pin = int2tuple(from_pin)
via_wire = int2tuple(via_wire)
to_pin = int2tuple(to_pin)
if len(from_pin) != len(to_pin):
raise Exception("from_pin must have the same number of elements as to_pin")
for i, _ in enumerate(from_pin):
self.connections.append(
Connection(from_name, from_pin[i], via_wire[i], to_name, to_pin[i])
)
def get_qty_multiplier(self, qty_multiplier: Optional[CableMultiplier]) -> float:
if not qty_multiplier:
return 1
elif qty_multiplier == "wirecount":
return self.wirecount
elif qty_multiplier == "terminations":
return len(self.connections)
elif qty_multiplier == "length":
return self.length
elif qty_multiplier == "total_length":
return self.length * self.wirecount
else:
raise ValueError(
f"invalid qty multiplier parameter for cable {qty_multiplier}"
)
@dataclass
class Connection:
from_name: Optional[Designator]
from_pin: Optional[Pin]
via_port: Wire
to_name: Optional[Designator]
to_pin: Optional[Pin]
@dataclass
class MatePin:
from_name: Designator
from_pin: Pin
to_name: Designator
to_pin: Pin
shape: str
@dataclass
class MateComponent:
from_name: Designator
to_name: Designator
shape: str

715
src/wireviz/Harness.py Normal file
View File

@ -0,0 +1,715 @@
# -*- coding: utf-8 -*-
import re
from collections import Counter
from dataclasses import dataclass
from itertools import zip_longest
from pathlib import Path
from typing import Any, List, Union
from graphviz import Graph
from wireviz import APP_NAME, APP_URL, __version__, wv_colors
from wireviz.DataClasses import (
Cable,
Connector,
MateComponent,
MatePin,
Metadata,
Options,
Side,
Tweak,
)
from wireviz.svgembed import embed_svg_images, embed_svg_images_file
from wireviz.wv_bom import (
HEADER_MPN,
HEADER_PN,
HEADER_SPN,
bom_list,
component_table_entry,
generate_bom,
get_additional_component_table,
pn_info_string,
)
from wireviz.wv_colors import get_color_hex, translate_color
from wireviz.wv_gv_html import (
html_bgcolor,
html_bgcolor_attr,
html_caption,
html_colorbar,
html_image,
html_line_breaks,
nested_html_table,
remove_links,
)
from wireviz.wv_helper import (
awg_equiv,
file_write_text,
flatten2d,
is_arrow,
mm2_equiv,
tuplelist2tsv,
)
from wireviz.wv_html import generate_html_output
OLD_CONNECTOR_ATTR = {
"pinout": "was renamed to 'pinlabels' in v0.2",
"pinnumbers": "was renamed to 'pins' in v0.2",
"autogenerate": "is replaced with new syntax in v0.4",
}
def check_old(node: str, old_attr: dict, args: dict) -> None:
"""Raise exception for any outdated attributes in args."""
for attr, descr in old_attr.items():
if attr in args:
raise ValueError(f"'{attr}' in {node}: '{attr}' {descr}")
@dataclass
class Harness:
metadata: Metadata
options: Options
tweak: Tweak
def __post_init__(self):
self.connectors = {}
self.cables = {}
self.mates = []
self._bom = [] # Internal Cache for generated bom
self.additional_bom_items = []
def add_connector(self, name: str, *args, **kwargs) -> None:
check_old(f"Connector '{name}'", OLD_CONNECTOR_ATTR, kwargs)
self.connectors[name] = Connector(name, *args, **kwargs)
def add_cable(self, name: str, *args, **kwargs) -> None:
self.cables[name] = Cable(name, *args, **kwargs)
def add_mate_pin(self, from_name, from_pin, to_name, to_pin, arrow_type) -> None:
self.mates.append(MatePin(from_name, from_pin, to_name, to_pin, arrow_type))
self.connectors[from_name].activate_pin(from_pin, Side.RIGHT)
self.connectors[to_name].activate_pin(to_pin, Side.LEFT)
def add_mate_component(self, from_name, to_name, arrow_type) -> None:
self.mates.append(MateComponent(from_name, to_name, arrow_type))
def add_bom_item(self, item: dict) -> None:
self.additional_bom_items.append(item)
def connect(
self,
from_name: str,
from_pin: (int, str),
via_name: str,
via_wire: (int, str),
to_name: str,
to_pin: (int, str),
) -> None:
# check from and to connectors
for name, pin in zip([from_name, to_name], [from_pin, to_pin]):
if name is not None and name in self.connectors:
connector = self.connectors[name]
# check if provided name is ambiguous
if pin in connector.pins and pin in connector.pinlabels:
if connector.pins.index(pin) != connector.pinlabels.index(pin):
raise Exception(
f"{name}:{pin} is defined both in pinlabels and pins, for different pins."
)
# TODO: Maybe issue a warning if present in both lists but referencing the same pin?
if pin in connector.pinlabels:
if connector.pinlabels.count(pin) > 1:
raise Exception(f"{name}:{pin} is defined more than once.")
index = connector.pinlabels.index(pin)
pin = connector.pins[index] # map pin name to pin number
if name == from_name:
from_pin = pin
if name == to_name:
to_pin = pin
if not pin in connector.pins:
raise Exception(f"{name}:{pin} not found.")
# check via cable
if via_name in self.cables:
cable = self.cables[via_name]
# check if provided name is ambiguous
if via_wire in cable.colors and via_wire in cable.wirelabels:
if cable.colors.index(via_wire) != cable.wirelabels.index(via_wire):
raise Exception(
f"{via_name}:{via_wire} is defined both in colors and wirelabels, for different wires."
)
# TODO: Maybe issue a warning if present in both lists but referencing the same wire?
if via_wire in cable.colors:
if cable.colors.count(via_wire) > 1:
raise Exception(
f"{via_name}:{via_wire} is used for more than one wire."
)
# list index starts at 0, wire IDs start at 1
via_wire = cable.colors.index(via_wire) + 1
elif via_wire in cable.wirelabels:
if cable.wirelabels.count(via_wire) > 1:
raise Exception(
f"{via_name}:{via_wire} is used for more than one wire."
)
via_wire = (
cable.wirelabels.index(via_wire) + 1
) # list index starts at 0, wire IDs start at 1
# perform the actual connection
self.cables[via_name].connect(from_name, from_pin, via_wire, to_name, to_pin)
if from_name in self.connectors:
self.connectors[from_name].activate_pin(from_pin, Side.RIGHT)
if to_name in self.connectors:
self.connectors[to_name].activate_pin(to_pin, Side.LEFT)
def create_graph(self) -> Graph:
dot = Graph()
dot.body.append(f"// Graph generated by {APP_NAME} {__version__}\n")
dot.body.append(f"// {APP_URL}\n")
dot.attr(
"graph",
rankdir="LR",
ranksep="2",
bgcolor=wv_colors.translate_color(self.options.bgcolor, "HEX"),
nodesep="0.33",
fontname=self.options.fontname,
) # TODO: Add graph attribute: charset="utf-8",
dot.attr(
"node",
shape="none",
width="0",
height="0",
margin="0", # Actual size of the node is entirely determined by the label.
style="filled",
fillcolor=wv_colors.translate_color(self.options.bgcolor_node, "HEX"),
fontname=self.options.fontname,
)
dot.attr("edge", style="bold", fontname=self.options.fontname)
for connector in self.connectors.values():
# If no wires connected (except maybe loop wires)?
if not (connector.ports_left or connector.ports_right):
connector.ports_left = True # Use left side pins.
html = []
# fmt: off
rows = [[f'{html_bgcolor(connector.bgcolor_title)}{remove_links(connector.name)}'
if connector.show_name else None],
[pn_info_string(HEADER_PN, None, remove_links(connector.pn)),
html_line_breaks(pn_info_string(HEADER_MPN, connector.manufacturer, connector.mpn)),
html_line_breaks(pn_info_string(HEADER_SPN, connector.supplier, connector.spn))],
[html_line_breaks(connector.type),
html_line_breaks(connector.subtype),
f'{connector.pincount}-pin' if connector.show_pincount else None,
translate_color(connector.color, self.options.color_mode) if connector.color else None,
html_colorbar(connector.color)],
'<!-- connector table -->' if connector.style != 'simple' else None,
[html_image(connector.image)],
[html_caption(connector.image)]]
# fmt: on
rows.extend(get_additional_component_table(self, connector))
rows.append([html_line_breaks(connector.notes)])
html.extend(nested_html_table(rows, html_bgcolor_attr(connector.bgcolor)))
if connector.style != "simple":
pinhtml = []
pinhtml.append(
'<table border="0" cellspacing="0" cellpadding="3" cellborder="1">'
)
for pinindex, (pinname, pinlabel, pincolor) in enumerate(
zip_longest(
connector.pins, connector.pinlabels, connector.pincolors
)
):
if (
connector.hide_disconnected_pins
and not connector.visible_pins.get(pinname, False)
):
continue
pinhtml.append(" <tr>")
if connector.ports_left:
pinhtml.append(f' <td port="p{pinindex+1}l">{pinname}</td>')
if pinlabel:
pinhtml.append(f" <td>{pinlabel}</td>")
if connector.pincolors:
if pincolor in wv_colors._color_hex.keys():
# fmt: off
pinhtml.append(f' <td sides="tbl">{translate_color(pincolor, self.options.color_mode)}</td>')
pinhtml.append( ' <td sides="tbr">')
pinhtml.append( ' <table border="0" cellborder="1"><tr>')
pinhtml.append(f' <td bgcolor="{wv_colors.translate_color(pincolor, "HEX")}" width="8" height="8" fixedsize="true"></td>')
pinhtml.append( ' </tr></table>')
pinhtml.append( ' </td>')
# fmt: on
else:
pinhtml.append(' <td colspan="2"></td>')
if connector.ports_right:
pinhtml.append(f' <td port="p{pinindex+1}r">{pinname}</td>')
pinhtml.append(" </tr>")
pinhtml.append(" </table>")
if len(pinhtml) == 2: # Table start and end with no rows between?
pinhtml = ["<!-- all pins hidden -->"] # Avoid Graphviz error
html = [
row.replace("<!-- connector table -->", "\n".join(pinhtml))
for row in html
]
html = "\n".join(html)
dot.node(
connector.name,
label=f"<\n{html}\n>",
shape="box",
style="filled",
fillcolor=translate_color(self.options.bgcolor_connector, "HEX"),
)
if len(connector.loops) > 0:
dot.attr("edge", color="#000000:#ffffff:#000000")
if connector.ports_left:
loop_side = "l"
loop_dir = "w"
elif connector.ports_right:
loop_side = "r"
loop_dir = "e"
else:
raise Exception("No side for loops")
for loop in connector.loops:
dot.edge(
f"{connector.name}:p{loop[0]}{loop_side}:{loop_dir}",
f"{connector.name}:p{loop[1]}{loop_side}:{loop_dir}",
label=" ", # Work-around to avoid over-sized loops.
)
# determine if there are double- or triple-colored wires in the harness;
# if so, pad single-color wires to make all wires of equal thickness
pad = any(
len(colorstr) > 2
for cable in self.cables.values()
for colorstr in cable.colors
)
for cable in self.cables.values():
html = []
awg_fmt = ""
if cable.show_equiv:
# Only convert units we actually know about, i.e. currently
# mm2 and awg --- other units _are_ technically allowed,
# and passed through as-is.
if cable.gauge_unit == "mm\u00B2":
awg_fmt = f" ({awg_equiv(cable.gauge)} AWG)"
elif cable.gauge_unit.upper() == "AWG":
awg_fmt = f" ({mm2_equiv(cable.gauge)} mm\u00B2)"
# fmt: off
rows = [[f'{html_bgcolor(cable.bgcolor_title)}{remove_links(cable.name)}'
if cable.show_name else None],
[pn_info_string(HEADER_PN, None,
remove_links(cable.pn)) if not isinstance(cable.pn, list) else None,
html_line_breaks(pn_info_string(HEADER_MPN,
cable.manufacturer if not isinstance(cable.manufacturer, list) else None,
cable.mpn if not isinstance(cable.mpn, list) else None)),
html_line_breaks(pn_info_string(HEADER_SPN,
cable.supplier if not isinstance(cable.supplier, list) else None,
cable.spn if not isinstance(cable.spn, list) else None))],
[html_line_breaks(cable.type),
f'{cable.wirecount}x' if cable.show_wirecount else None,
f'{cable.gauge} {cable.gauge_unit}{awg_fmt}' if cable.gauge else None,
'+ S' if cable.shield else None,
f'{cable.length} {cable.length_unit}' if cable.length > 0 else None,
translate_color(cable.color, self.options.color_mode) if cable.color else None,
html_colorbar(cable.color)],
'<!-- wire table -->',
[html_image(cable.image)],
[html_caption(cable.image)]]
# fmt: on
rows.extend(get_additional_component_table(self, cable))
rows.append([html_line_breaks(cable.notes)])
html.extend(nested_html_table(rows, html_bgcolor_attr(cable.bgcolor)))
wirehtml = []
# conductor table
wirehtml.append('<table border="0" cellspacing="0" cellborder="0">')
wirehtml.append(" <tr><td>&nbsp;</td></tr>")
for i, (connection_color, wirelabel) in enumerate(
zip_longest(cable.colors, cable.wirelabels), 1
):
wirehtml.append(" <tr>")
wirehtml.append(f" <td><!-- {i}_in --></td>")
wirehtml.append(f" <td>")
wireinfo = []
if cable.show_wirenumbers:
wireinfo.append(str(i))
colorstr = wv_colors.translate_color(
connection_color, self.options.color_mode
)
if colorstr:
wireinfo.append(colorstr)
if cable.wirelabels:
wireinfo.append(wirelabel if wirelabel is not None else "")
wirehtml.append(f' {":".join(wireinfo)}')
wirehtml.append(f" </td>")
wirehtml.append(f" <td><!-- {i}_out --></td>")
wirehtml.append(" </tr>")
# fmt: off
bgcolors = ['#000000'] + get_color_hex(connection_color, pad=pad) + ['#000000']
wirehtml.append(f" <tr>")
wirehtml.append(f' <td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w{i}" height="{(2 * len(bgcolors))}">')
wirehtml.append(' <table cellspacing="0" cellborder="0" border="0">')
for j, bgcolor in enumerate(bgcolors[::-1]): # Reverse to match the curved wires when more than 2 colors
wirehtml.append(f' <tr><td colspan="3" cellpadding="0" height="2" bgcolor="{bgcolor if bgcolor != "" else wv_colors.default_color}" border="0"></td></tr>')
wirehtml.append(" </table>")
wirehtml.append(" </td>")
wirehtml.append(" </tr>")
# fmt: on
# for bundles, individual wires can have part information
if cable.category == "bundle":
# create a list of wire parameters
wireidentification = []
if isinstance(cable.pn, list):
wireidentification.append(
pn_info_string(
HEADER_PN, None, remove_links(cable.pn[i - 1])
)
)
manufacturer_info = pn_info_string(
HEADER_MPN,
(
cable.manufacturer[i - 1]
if isinstance(cable.manufacturer, list)
else None
),
cable.mpn[i - 1] if isinstance(cable.mpn, list) else None,
)
supplier_info = pn_info_string(
HEADER_SPN,
(
cable.supplier[i - 1]
if isinstance(cable.supplier, list)
else None
),
cable.spn[i - 1] if isinstance(cable.spn, list) else None,
)
if manufacturer_info:
wireidentification.append(html_line_breaks(manufacturer_info))
if supplier_info:
wireidentification.append(html_line_breaks(supplier_info))
# print parameters into a table row under the wire
if len(wireidentification) > 0:
# fmt: off
wirehtml.append(' <tr><td colspan="3">')
wirehtml.append(' <table border="0" cellspacing="0" cellborder="0"><tr>')
for attrib in wireidentification:
wirehtml.append(f" <td>{attrib}</td>")
wirehtml.append(" </tr></table>")
wirehtml.append(" </td></tr>")
# fmt: on
if cable.shield:
wirehtml.append(" <tr><td>&nbsp;</td></tr>") # spacer
wirehtml.append(" <tr>")
wirehtml.append(" <td><!-- s_in --></td>")
wirehtml.append(" <td>Shield</td>")
wirehtml.append(" <td><!-- s_out --></td>")
wirehtml.append(" </tr>")
if isinstance(cable.shield, str):
# shield is shown with specified color and black borders
shield_color_hex = wv_colors.get_color_hex(cable.shield)[0]
attributes = (
f'height="6" bgcolor="{shield_color_hex}" border="2" sides="tb"'
)
else:
# shield is shown as a thin black wire
attributes = f'height="2" bgcolor="#000000" border="0"'
# fmt: off
wirehtml.append(f' <tr><td colspan="3" cellpadding="0" {attributes} port="ws"></td></tr>')
# fmt: on
wirehtml.append(" <tr><td>&nbsp;</td></tr>")
wirehtml.append(" </table>")
html = [
row.replace("<!-- wire table -->", "\n".join(wirehtml)) for row in html
]
# connections
for connection in cable.connections:
if isinstance(connection.via_port, int):
# check if it's an actual wire and not a shield
dot.attr(
"edge",
color=":".join(
["#000000"]
+ wv_colors.get_color_hex(
cable.colors[connection.via_port - 1], pad=pad
)
+ ["#000000"]
),
)
else: # it's a shield connection
# shield is shown with specified color and black borders, or as a thin black wire otherwise
dot.attr(
"edge",
color=(
":".join(["#000000", shield_color_hex, "#000000"])
if isinstance(cable.shield, str)
else "#000000"
),
)
if connection.from_pin is not None: # connect to left
from_connector = self.connectors[connection.from_name]
from_pin_index = from_connector.pins.index(connection.from_pin)
from_port_str = (
f":p{from_pin_index+1}r"
if from_connector.style != "simple"
else ""
)
code_left_1 = f"{connection.from_name}{from_port_str}:e"
code_left_2 = f"{cable.name}:w{connection.via_port}:w"
dot.edge(code_left_1, code_left_2)
if from_connector.show_name:
from_info = [
str(connection.from_name),
str(connection.from_pin),
]
if from_connector.pinlabels:
pinlabel = from_connector.pinlabels[from_pin_index]
if pinlabel != "":
from_info.append(pinlabel)
from_string = ":".join(from_info)
else:
from_string = ""
html = [
row.replace(f"<!-- {connection.via_port}_in -->", from_string)
for row in html
]
if connection.to_pin is not None: # connect to right
to_connector = self.connectors[connection.to_name]
to_pin_index = to_connector.pins.index(connection.to_pin)
to_port_str = (
f":p{to_pin_index+1}l" if to_connector.style != "simple" else ""
)
code_right_1 = f"{cable.name}:w{connection.via_port}:e"
code_right_2 = f"{connection.to_name}{to_port_str}:w"
dot.edge(code_right_1, code_right_2)
if to_connector.show_name:
to_info = [str(connection.to_name), str(connection.to_pin)]
if to_connector.pinlabels:
pinlabel = to_connector.pinlabels[to_pin_index]
if pinlabel != "":
to_info.append(pinlabel)
to_string = ":".join(to_info)
else:
to_string = ""
html = [
row.replace(f"<!-- {connection.via_port}_out -->", to_string)
for row in html
]
style, bgcolor = (
("filled,dashed", self.options.bgcolor_bundle)
if cable.category == "bundle"
else ("filled", self.options.bgcolor_cable)
)
html = "\n".join(html)
dot.node(
cable.name,
label=f"<\n{html}\n>",
shape="box",
style=style,
fillcolor=translate_color(bgcolor, "HEX"),
)
# mates
for mate in self.mates:
if mate.shape[-1] == ">":
dir = "both" if mate.shape[0] == "<" else "forward"
else:
dir = "back" if mate.shape[0] == "<" else "none"
if isinstance(mate, MatePin):
color = "#000000"
elif isinstance(mate, MateComponent):
color = "#000000:#000000"
else:
raise Exception(f"{mate} is an unknown mate")
from_connector = self.connectors[mate.from_name]
to_connector = self.connectors[mate.to_name]
if isinstance(mate, MatePin) and from_connector.style != "simple":
from_pin_index = from_connector.pins.index(mate.from_pin)
from_port_str = f":p{from_pin_index+1}r"
else: # MateComponent or style == 'simple'
from_port_str = ""
if isinstance(mate, MatePin) and to_connector.style != "simple":
to_pin_index = to_connector.pins.index(mate.to_pin)
to_port_str = f":p{to_pin_index+1}l"
else: # MateComponent or style == 'simple'
to_port_str = ""
code_from = f"{mate.from_name}{from_port_str}:e"
code_to = f"{mate.to_name}{to_port_str}:w"
dot.attr("edge", color=color, style="dashed", dir=dir)
dot.edge(code_from, code_to)
def typecheck(name: str, value: Any, expect: type) -> None:
if not isinstance(value, expect):
raise Exception(
f"Unexpected value type of {name}: Expected {expect}, got {type(value)}\n{value}"
)
# TODO?: Differ between override attributes and HTML?
if self.tweak.override is not None:
typecheck("tweak.override", self.tweak.override, dict)
for k, d in self.tweak.override.items():
typecheck(f"tweak.override.{k} key", k, str)
typecheck(f"tweak.override.{k} value", d, dict)
for a, v in d.items():
typecheck(f"tweak.override.{k}.{a} key", a, str)
typecheck(f"tweak.override.{k}.{a} value", v, (str, type(None)))
# Override generated attributes of selected entries matching tweak.override.
for i, entry in enumerate(dot.body):
if isinstance(entry, str):
# Find a possibly quoted keyword after leading TAB(s) and followed by [ ].
match = re.match(
r'^\t*(")?((?(1)[^"]|[^ "])+)(?(1)") \[.*\]$', entry, re.S
)
keyword = match and match[2]
if keyword in self.tweak.override.keys():
for attr, value in self.tweak.override[keyword].items():
if value is None:
entry, n_subs = re.subn(
f'( +)?{attr}=("[^"]*"|[^] ]*)(?(1)| *)', "", entry
)
if n_subs < 1:
print(
f"Harness.create_graph() warning: {attr} not found in {keyword}!"
)
elif n_subs > 1:
print(
f"Harness.create_graph() warning: {attr} removed {n_subs} times in {keyword}!"
)
continue
if len(value) == 0 or " " in value:
value = value.replace('"', r"\"")
value = f'"{value}"'
entry, n_subs = re.subn(
f'{attr}=("[^"]*"|[^] ]*)', f"{attr}={value}", entry
)
if n_subs < 1:
# If attr not found, then append it
entry = re.sub(r"\]$", f" {attr}={value}]", entry)
elif n_subs > 1:
print(
f"Harness.create_graph() warning: {attr} overridden {n_subs} times in {keyword}!"
)
dot.body[i] = entry
if self.tweak.append is not None:
if isinstance(self.tweak.append, list):
for i, element in enumerate(self.tweak.append, 1):
typecheck(f"tweak.append[{i}]", element, str)
dot.body.extend(self.tweak.append)
else:
typecheck("tweak.append", self.tweak.append, str)
dot.body.append(self.tweak.append)
# Tweak processing above must be the last before returning dot.
# Please don't insert any code that might change the dot contents
# after tweak processing.
return dot
# cache for the GraphViz Graph object
# do not access directly, use self.graph instead
_graph = None
@property
def graph(self):
if not self._graph: # no cached graph exists, generate one
self._graph = self.create_graph()
return self._graph # return cached graph
@property
def png(self):
from io import BytesIO
graph = self.graph
data = BytesIO()
data.write(graph.pipe(format="png"))
data.seek(0)
return data.read()
@property
def svg(self): # TODO?: Verify xml encoding="utf-8" in SVG?
graph = self.graph
return embed_svg_images(graph.pipe(format="svg").decode("utf-8"), Path.cwd())
def output(
self,
filename: (str, Path),
view: bool = False,
cleanup: bool = True,
fmt: tuple = ("html", "png", "svg", "tsv"),
) -> None:
# graphical output
graph = self.graph
svg_already_exists = Path(
f"{filename}.svg"
).exists() # if SVG already exists, do not delete later
# graphical output
for f in fmt:
if f in ("png", "svg", "html"):
if f == "html": # if HTML format is specified,
f = "svg" # generate SVG for embedding into HTML
# SVG file will be renamed/deleted later
_filename = f"{filename}.tmp" if f == "svg" else filename
# TODO: prevent rendering SVG twice when both SVG and HTML are specified
graph.format = f
graph.render(filename=_filename, view=view, cleanup=cleanup)
# embed images into SVG output
if "svg" in fmt or "html" in fmt:
embed_svg_images_file(f"{filename}.tmp.svg")
# GraphViz output
if "gv" in fmt:
graph.save(filename=f"{filename}.gv")
# BOM output
bomlist = bom_list(self.bom())
if "tsv" in fmt:
file_write_text(f"{filename}.bom.tsv", tuplelist2tsv(bomlist))
if "csv" in fmt:
# TODO: implement CSV output (preferrably using CSV library)
print("CSV output is not yet supported")
# HTML output
if "html" in fmt:
generate_html_output(filename, bomlist, self.metadata, self.options)
# PDF output
if "pdf" in fmt:
# TODO: implement PDF output
print("PDF output is not yet supported")
# delete SVG if not needed
if "html" in fmt and not "svg" in fmt:
# SVG file was just needed to generate HTML
Path(f"{filename}.tmp.svg").unlink()
elif "svg" in fmt:
Path(f"{filename}.tmp.svg").replace(f"{filename}.svg")
def bom(self):
if not self._bom:
self._bom = generate_bom(self)
return self._bom

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# Please don't import anything in this file to avoid issues when it is imported in setup.py
__version__ = "0.4-dev251"
__version__ = "0.4.1"
CMD_NAME = "wireviz" # Lower case command and module name
APP_NAME = "WireViz" # Application name in texts meant to be human readable
APP_URL = "https://github.com/formatc1702/WireViz"
APP_URL = "https://github.com/wireviz/WireViz"

View File

@ -7,12 +7,13 @@ import sys
from pathlib import Path
script_path = Path(__file__).absolute()
sys.path.insert(0, str(script_path.parent.parent.parent)) # to find wireviz module
sys.path.insert(0, str(script_path.parent.parent)) # to find wireviz module
from wv_helper import open_file_append, open_file_read, open_file_write
from wireviz import APP_NAME, __version__, wireviz
from wireviz.wv_utils import open_file_append, open_file_read, open_file_write
dir = script_path.parent.parent.parent.parent
dir = script_path.parent.parent.parent
readme = "readme.md"
groups = {
"examples": {
@ -31,11 +32,10 @@ groups = {
"path": dir / "examples",
"prefix": "demo",
},
**{p.stem: {"path": p} for p in (dir / "tests").glob("**")},
}
input_extensions = [".yml"]
extensions_not_containing_graphviz_output = [".gv", ".tsv"]
extensions_not_containing_graphviz_output = [".gv", ".bom.tsv"]
extensions_containing_graphviz_output = [".png", ".svg", ".html"]
generated_extensions = (
extensions_not_containing_graphviz_output + extensions_containing_graphviz_output
@ -44,7 +44,7 @@ generated_extensions = (
def collect_filenames(description, groupkey, ext_list):
path = groups[groupkey]["path"]
patterns = [f"{groups[groupkey].get('prefix', '')}*{ext}" for ext in ext_list]
patterns = [f"{groups[groupkey]['prefix']}*{ext}" for ext in ext_list]
if ext_list != input_extensions and readme in groups[groupkey]:
patterns.append(readme)
print(f'{description} {groupkey} in "{path}"')
@ -88,7 +88,7 @@ def build_generated(groupkeys):
out.write(f"![]({yaml_file.stem}.png)\n\n")
out.write(
f"[Source]({yaml_file.name}) - [Bill of Materials]({yaml_file.stem}.tsv)\n\n\n"
f"[Source]({yaml_file.name}) - [Bill of Materials]({yaml_file.stem}.bom.tsv)\n\n\n"
)
@ -98,7 +98,7 @@ def clean_generated(groupkeys):
for filename in collect_filenames("Cleaning", key, generated_extensions):
if filename.is_file():
print(f' rm "{filename}"')
filename.unlink()
Path(filename).unlink()
def compare_generated(groupkeys, branch="", include_graphviz_output=False):

66
src/wireviz/svgembed.py Normal file
View File

@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
import base64
import re
from pathlib import Path
from typing import Union
mime_subtype_replacements = {"jpg": "jpeg", "tif": "tiff"}
# TODO: Share cache and code between data_URI_base64() and embed_svg_images()
def data_URI_base64(file: Union[str, Path], media: str = "image") -> str:
"""Return Base64-encoded data URI of input file."""
file = Path(file)
b64 = base64.b64encode(file.read_bytes()).decode("utf-8")
uri = f"data:{media}/{get_mime_subtype(file)};base64, {b64}"
# print(f"data_URI_base64('{file}', '{media}') -> {len(uri)}-character URI")
if len(uri) > 65535:
print(
"data_URI_base64(): Warning: Browsers might have different URI length limitations"
)
return uri
def embed_svg_images(svg_in: str, base_path: Union[str, Path] = Path.cwd()) -> str:
images_b64 = {} # cache of base64-encoded images
def image_tag(pre: str, url: str, post: str) -> str:
return f'<image{pre} xlink:href="{url}"{post}>'
def replace(match: re.Match) -> str:
imgurl = match["URL"]
if not imgurl in images_b64: # only encode/cache every unique URL once
imgurl_abs = (Path(base_path) / imgurl).resolve()
image = imgurl_abs.read_bytes()
images_b64[imgurl] = base64.b64encode(image).decode("utf-8")
return image_tag(
match["PRE"] or "",
f"data:image/{get_mime_subtype(imgurl)};base64, {images_b64[imgurl]}",
match["POST"] or "",
)
pattern = re.compile(
image_tag(r"(?P<PRE> [^>]*?)?", r'(?P<URL>[^"]*?)', r"(?P<POST> [^>]*?)?"),
re.IGNORECASE,
)
return pattern.sub(replace, svg_in)
def get_mime_subtype(filename: Union[str, Path]) -> str:
mime_subtype = Path(filename).suffix.lstrip(".").lower()
if mime_subtype in mime_subtype_replacements:
mime_subtype = mime_subtype_replacements[mime_subtype]
return mime_subtype
def embed_svg_images_file(
filename_in: Union[str, Path], overwrite: bool = True
) -> None:
filename_in = Path(filename_in).resolve()
filename_out = filename_in.with_suffix(".b64.svg")
filename_out.write_text( # TODO?: Verify xml encoding="utf-8" in SVG?
embed_svg_images(filename_in.read_text(), filename_in.parent)
) # TODO: Use encoding="utf-8" in both read_text() and write_text()
if overwrite:
filename_out.replace(filename_in)

View File

@ -0,0 +1,52 @@
# HTML Output Templates
This is the standard folder where WireViz looks for an HTML output template file.
## Which HTML Output Template File is Used?
A named HTML output template can optionally be specified as
`metadata.template.name` in the YAML input:
```yaml
metadata:
template:
name: din-6771
```
In the case above, WireViz will search for a template file named
`din-6771.html` in these folders:
1. In the same folder as the YAML input file.
2. In this standard template folder.
If no HTML output template is specified, the `simple` template is assumed
(i.e. filename `simple.html`, and in this case,
only the standard template folder is searched).
## Placeholders in HTML Output Templates
HTML output template files might contain placeholders that will be replaced by
generated text by WireViz when producing HTML output based on such a template.
A placeholder starts with `<!-- %`, followed by a keyword, and finally `% -->`.
Note that there must be one single space between `--` and `%` at both ends.
| Placeholder | Replaced by |
| --- | --- |
| `<!-- %generator% -->` | The application name, version, and URL |
| `<!-- %fontname% -->` | The value of `options.fontname` |
| `<!-- %bgcolor% -->` | The HEX color translation of `options.bgcolor` |
| `<!-- %filename% -->` | The output path and filename without extension |
| `<!-- %filename_stem% -->` | The output filename without path nor extension |
| `<!-- %bom% -->` | BOM as HTML table with headers at top |
| `<!-- %bom_reversed% -->` | Reversed BOM as HTML table with headers at bottom |
| `<!-- %sheet_current% -->` | `1` (multi-page documents not yet supported) |
| `<!-- %sheet_total% -->` | `1` (multi-page documents not yet supported) |
| `<!-- %diagram% -->` | Embedded SVG diagram as valid HTML |
| `<!-- %diagram_png_b64% -->` | Embedded base64 encoded PNG diagram as URI |
| `<!-- %{item}% -->` | String or numeric value of `metadata.{item}` |
| `<!-- %{item}_{i}% -->` | Category number `{i}` within dict value of `metadata.{item}` |
| `<!-- %{item}_{i}_{key}% -->` | Value of `metadata.{item}.{category}.{key}` |
| `<!-- %template_sheetsize% -->` | Value of `metadata.template.sheetsize` |
Note that `{item}`, `{category}` and `{key}` in the description above can be
any valid YAML key, and `{i}` is an integer representing the 1-based index of
category entries in a dict `metadata.{item}` entry.
The `{` and `}` characters are not literally part of the syntax, just used in
this documentation to enclose the variable parts of the keywords.

View File

@ -179,7 +179,7 @@
</head>
<body>
<div id="page">
<div id="frame" class="sheetsize_default">
<div id="frame" class="<!-- %template_sheetsize% -->">
<div id="diagram">

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import platform
import sys
from pathlib import Path
from typing import Any, Dict, List, Tuple, Union
@ -10,16 +11,18 @@ import yaml
if __name__ == "__main__":
sys.path.insert(0, str(Path(__file__).parent.parent)) # add src/wireviz to PATH
from wireviz.wv_dataclasses import AUTOGENERATED_PREFIX, Metadata, Options, Tweak
from wireviz.wv_harness import Harness
from wireviz.wv_utils import (
from wireviz.DataClasses import Metadata, Options, Tweak
from wireviz.Harness import Harness
from wireviz.wv_helper import (
expand,
file_read_text,
get_single_key_and_value,
is_arrow,
open_file_read,
smart_file_resolve,
)
from . import APP_NAME
def parse(
inp: Union[Path, str, Dict],
@ -34,7 +37,7 @@ def parse(
and outputs the result as one or more files and/or as a function return value
Accepted inputs:
* A Path object or a path-like string pointing to a YAML source file to parse
* A path to a YAML source file to parse
* A string containing the YAML data to parse
* A Python Dict containing the pre-parsed YAML data
@ -86,6 +89,10 @@ def parse(
raise Exception("No output formats or return types specified")
yaml_data, yaml_file = _get_yaml_data_and_path(inp)
if not isinstance(yaml_data, dict):
raise TypeError(
f"Expected a dict as top-level YAML input, but got: {type(yaml_data)}"
)
if output_formats:
# need to write data to file, determine output directory and filename
output_dir = _get_output_dir(yaml_file, output_dir)
@ -93,8 +100,7 @@ def parse(
output_file = output_dir / output_name
if yaml_file:
# if reading from file, ensure that input file's parent directory
# is included in image_paths
# if reading from file, ensure that input file's parent directory is included in image_paths
default_image_path = yaml_file.parent.resolve()
if not default_image_path in [Path(x).resolve() for x in image_paths]:
image_paths.append(default_image_path)
@ -116,8 +122,9 @@ def parse(
# keep track of auto-generated designators to avoid duplicates
autogenerated_designators = {}
# When title is not given, either deduce it from filename, or use default text.
if "title" not in harness.metadata:
harness.metadata["title"] = Path(yaml_file).stem if yaml_file else ""
harness.metadata["title"] = output_name or f"{APP_NAME} diagram and BOM"
# add items
# parse YAML input file ====================================================
@ -129,8 +136,7 @@ def parse(
if len(yaml_data[sec]) > 0: # section has contents
if ty == dict:
for key, attribs in yaml_data[sec].items():
# The Image dataclass might need to open
# an image file with a relative path.
# The Image dataclass might need to open an image file with a relative path.
image = attribs.get("image")
if isinstance(image, dict):
image_path = image["src"]
@ -166,16 +172,12 @@ def parse(
autogenerated_designators[template] = (
autogenerated_designators.get(template, 0) + 1
)
designator = (
f"{AUTOGENERATED_PREFIX}"
f"{template}_{autogenerated_designators[template]}"
)
designator = f"__{template}_{autogenerated_designators[template]}"
# check if redefining existing component to different template
if designator in designators_and_templates:
if designators_and_templates[designator] != template:
raise Exception(
f"Trying to redefine {designator}"
f" from {designators_and_templates[designator]} to {template}"
f"Trying to redefine {designator} from {designators_and_templates[designator]} to {template}"
)
else:
designators_and_templates[designator] = template
@ -287,7 +289,7 @@ def parse(
# generate new connector instance from template
check_type(designator, template, "connector")
harness.add_connector(
designator=designator, **template_connectors[template]
name=designator, **template_connectors[template]
)
elif designator in harness.cables: # existing cable instance
@ -295,9 +297,7 @@ def parse(
elif template in template_cables.keys():
# generate new cable instance from template
check_type(designator, template, "cable/arrow")
harness.add_cable(
designator=designator, **template_cables[template]
)
harness.add_cable(name=designator, **template_cables[template])
elif is_arrow(designator):
check_type(designator, template, "cable/arrow")
@ -307,8 +307,7 @@ def parse(
f"{template} is an unknown template/designator/arrow."
)
# entries in connection set must alternate between connectors and cables/arrows
alternate_type()
alternate_type() # entries in connection set must alternate between connectors and cables/arrows
# transpose connection set list
# before: one item per component, one subitem per connection in set
@ -363,13 +362,24 @@ def parse(
# mate two connectors as a whole
harness.add_mate_component(from_name, to_name, designator)
if "additional_bom_items" in yaml_data:
for line in yaml_data["additional_bom_items"]:
harness.add_additional_bom_item(line)
# warn about unused templates
proposed_components = list(template_connectors.keys()) + list(
template_cables.keys()
)
used_components = set(designators_and_templates.values())
forgotten_components = [c for c in proposed_components if not c in used_components]
if len(forgotten_components) > 0:
print(
"Warning: The following components are not referenced in any connection set:"
)
print(", ".join(forgotten_components))
# harness population completed =============================================
harness.populate_bom()
if "additional_bom_items" in yaml_data:
for line in yaml_data["additional_bom_items"]:
harness.add_bom_item(line)
if output_formats:
harness.output(filename=output_file, fmt=output_formats, view=False)
@ -392,15 +402,31 @@ def parse(
return tuple(returns) if len(returns) != 1 else returns[0]
def _get_yaml_data_and_path(inp: Union[str, Path, Dict]) -> Tuple[Dict, Path]:
def _get_yaml_data_and_path(inp: Union[str, Path, Dict]) -> (Dict, Path):
# determine whether inp is a file path, a YAML string, or a Dict
if not isinstance(inp, Dict): # received a str or a Path
if isinstance(inp, Path) or (isinstance(inp, str) and not "\n" in inp):
try:
yaml_path = Path(inp).expanduser().resolve(strict=True)
yaml_str = open_file_read(yaml_path).read()
else:
yaml_path = None
# if no FileNotFoundError exception happens, get file contents
yaml_str = file_read_text(yaml_path)
except (FileNotFoundError, OSError, ValueError) as e:
# if inp is a long YAML string, Pathlib will normally raise
# FileNotFoundError or OSError(errno = ENAMETOOLONG) when
# trying to expand and resolve it as a path, but in Windows
# might ValueError or OSError(errno = EINVAL or None) be raised
# instead in some cases (depending on the Python version).
# Catch these specific errors, but raise any others.
from errno import EINVAL, ENAMETOOLONG
if type(e) is OSError and e.errno not in (EINVAL, ENAMETOOLONG, None):
print(
f"OSError(errno={e.errno}) in Python {sys.version} at {platform.platform()}"
)
raise e
# file does not exist; assume inp is a YAML string
yaml_str = inp
yaml_path = None
yaml_data = yaml.safe_load(yaml_str)
else:
# received a Dict, use as-is

View File

@ -1,87 +1,278 @@
# -*- coding: utf-8 -*-
from collections import namedtuple
from dataclasses import dataclass
from enum import Enum, IntEnum
from typing import List, Optional, Union
from dataclasses import asdict
from itertools import groupby
from typing import Any, Dict, List, Optional, Tuple, Union
import tabulate as tabulate_module
from wireviz.DataClasses import AdditionalComponent, Cable, Color, Connector
from wireviz.wv_colors import translate_color
from wireviz.wv_gv_html import html_bgcolor_attr, html_line_breaks
from wireviz.wv_helper import clean_whitespace
from wireviz.wv_utils import html_line_breaks
BOM_COLUMNS_ALWAYS = ("id", "description", "qty", "unit", "designators")
BOM_COLUMNS_OPTIONAL = ("pn", "manufacturer", "mpn", "supplier", "spn")
BOM_COLUMNS_IN_KEY = ("description", "unit") + BOM_COLUMNS_OPTIONAL
BOM_HASH_FIELDS = "description qty_unit amount partnumbers"
HEADER_PN = "P/N"
HEADER_MPN = "MPN"
HEADER_SPN = "SPN"
BOMKey = Tuple[str, ...]
BOMColumn = str # = Literal[*BOM_COLUMNS_ALWAYS, *BOM_COLUMNS_OPTIONAL]
BOMEntry = Dict[BOMColumn, Union[str, int, float, List[str], None]]
BomEntry = namedtuple("BomEntry", "category qty designators")
BomHash = namedtuple("BomHash", BOM_HASH_FIELDS)
BomHashList = namedtuple("BomHashList", BOM_HASH_FIELDS)
PartNumberInfo = namedtuple("PartNumberInfo", "pn manufacturer mpn supplier spn")
# TODO: different BOM modes
# BomMode
# "normal" # no bubbles, full PN info in GV node
# "bubbles" # = "full" -> maximum info in GV node
# "hide PN info"
# "PN crossref" = "PN bubbles" + "hide PN info"
# "additionally: BOM table in GV graph label (#227)"
# "title block in GV graph label"
def optional_fields(part: Union[Connector, Cable, AdditionalComponent]) -> BOMEntry:
"""Return part field values for the optional BOM columns as a dict."""
part = asdict(part)
return {field: part.get(field) for field in BOM_COLUMNS_OPTIONAL}
BomCategory = IntEnum( # to enforce ordering in BOM
"BomEntry", "CONNECTOR CABLE WIRE ADDITIONAL_INSIDE ADDITIONAL_OUTSIDE"
)
QtyMultiplierConnector = Enum(
"QtyMultiplierConnector", "PINCOUNT POPULATED CONNECTIONS"
)
QtyMultiplierCable = Enum(
"QtyMultiplierCable", "WIRECOUNT TERMINATION LENGTH TOTAL_LENGTH"
)
PART_NUMBER_HEADERS = PartNumberInfo(
pn="P/N", manufacturer=None, mpn="MPN", supplier=None, spn="SPN"
)
def partnumbers2list(
partnumbers: PartNumberInfo, parent_partnumbers: PartNumberInfo = None
def get_additional_component_table(
harness: "Harness", component: Union[Connector, Cable]
) -> List[str]:
if parent_partnumbers is None:
_is_toplevel = True
parent_partnumbers = partnumbers
else:
_is_toplevel = False
"""Return a list of diagram node table row strings with additional components."""
rows = []
if component.additional_components:
rows.append(["Additional components"])
# Ignore components that have qty 0
for part in [
part
for part in component.additional_components
if component.get_qty_multiplier(part.qty_multiplier)
]:
common_args = {
"qty": part.qty * component.get_qty_multiplier(part.qty_multiplier),
"unit": part.unit,
"bgcolor": part.bgcolor,
}
if harness.options.mini_bom_mode:
id = get_bom_index(
harness.bom(),
bom_entry_key({**asdict(part), "description": part.description}),
)
rows.append(
component_table_entry(
f"#{id} ({part.type.rstrip()})", **common_args
)
)
else:
rows.append(
component_table_entry(
part.description, **common_args, **optional_fields(part)
)
)
return rows
# Note: != operator used as XOR in the following section (https://stackoverflow.com/a/433161)
if _is_toplevel != isinstance(parent_partnumbers.pn, List):
# top level and not a list, or wire level and list
cell_pn = pn_info_string(PART_NUMBER_HEADERS.pn, None, partnumbers.pn)
else:
# top level and list -> do per wire later
# wire level and not list -> already done at top level
cell_pn = None
if _is_toplevel != isinstance(parent_partnumbers.mpn, List):
# TODO: edge case: different manufacturers, but same MPN?
cell_mpn = pn_info_string(
PART_NUMBER_HEADERS.mpn, partnumbers.manufacturer, partnumbers.mpn
def get_additional_component_bom(component: Union[Connector, Cable]) -> List[BOMEntry]:
"""Return a list of BOM entries with additional components."""
bom_entries = []
# Ignore components that have qty 0
for part in [
part
for part in component.additional_components
if component.get_qty_multiplier(part.qty_multiplier)
]:
bom_entries.append(
{
"description": part.description,
"qty": part.qty * component.get_qty_multiplier(part.qty_multiplier),
"unit": part.unit,
"designators": component.name if component.show_name else None,
**optional_fields(part),
}
)
else:
cell_mpn = None
return bom_entries
if _is_toplevel != isinstance(parent_partnumbers.spn, List):
# TODO: edge case: different suppliers, but same SPN?
cell_spn = pn_info_string(
PART_NUMBER_HEADERS.spn, partnumbers.supplier, partnumbers.spn
def bom_entry_key(entry: BOMEntry) -> BOMKey:
"""Return a tuple of string values from the dict that must be equal to join BOM entries."""
if "key" not in entry:
entry["key"] = tuple(
clean_whitespace(make_str(entry.get(c))) for c in BOM_COLUMNS_IN_KEY
)
else:
cell_spn = None
return entry["key"]
cell_contents = [cell_pn, cell_mpn, cell_spn]
if any(cell_contents):
return [html_line_breaks(cell) for cell in cell_contents]
else:
return None
def generate_bom(harness: "Harness") -> List[BOMEntry]:
"""Return a list of BOM entries generated from the harness."""
from wireviz.Harness import Harness # Local import to avoid circular imports
bom_entries = []
# connectors
for connector in harness.connectors.values():
if not connector.ignore_in_bom:
description = (
"Connector"
+ (f", {connector.type}" if connector.type else "")
+ (f", {connector.subtype}" if connector.subtype else "")
+ (f", {connector.pincount} pins" if connector.show_pincount else "")
+ (
f", {translate_color(connector.color, harness.options.color_mode)}"
if connector.color
else ""
)
)
bom_entries.append(
{
"description": description,
"designators": connector.name if connector.show_name else None,
**optional_fields(connector),
}
)
# add connectors aditional components to bom
bom_entries.extend(get_additional_component_bom(connector))
# cables
# TODO: If category can have other non-empty values than 'bundle', maybe it should be part of description?
for cable in harness.cables.values():
if not cable.ignore_in_bom:
if cable.category != "bundle":
# process cable as a single entity
description = (
"Cable"
+ (f", {cable.type}" if cable.type else "")
+ (f", {cable.wirecount}")
+ (
f" x {cable.gauge} {cable.gauge_unit}"
if cable.gauge
else " wires"
)
+ (" shielded" if cable.shield else "")
+ (
f", {translate_color(cable.color, harness.options.color_mode)}"
if cable.color
else ""
)
)
bom_entries.append(
{
"description": description,
"qty": cable.length,
"unit": cable.length_unit,
"designators": cable.name if cable.show_name else None,
**optional_fields(cable),
}
)
else:
# add each wire from the bundle to the bom
for index, color in enumerate(cable.colors):
description = (
"Wire"
+ (f", {cable.type}" if cable.type else "")
+ (f", {cable.gauge} {cable.gauge_unit}" if cable.gauge else "")
+ (
f", {translate_color(color, harness.options.color_mode)}"
if color
else ""
)
)
bom_entries.append(
{
"description": description,
"qty": cable.length,
"unit": cable.length_unit,
"designators": cable.name if cable.show_name else None,
**{
k: index_if_list(v, index)
for k, v in optional_fields(cable).items()
},
}
)
# add cable/bundles aditional components to bom
bom_entries.extend(get_additional_component_bom(cable))
# add harness aditional components to bom directly, as they both are List[BOMEntry]
bom_entries.extend(harness.additional_bom_items)
# remove line breaks if present and cleanup any resulting whitespace issues
bom_entries = [
{k: clean_whitespace(v) for k, v in entry.items()} for entry in bom_entries
]
# deduplicate bom
bom = []
for _, group in groupby(sorted(bom_entries, key=bom_entry_key), key=bom_entry_key):
group_entries = list(group)
designators = sum(
(make_list(entry.get("designators")) for entry in group_entries), []
)
total_qty = sum(entry.get("qty", 1) for entry in group_entries)
bom.append(
{
**group_entries[0],
"qty": int(total_qty)
if float(total_qty).is_integer()
else round(total_qty, 3),
"designators": sorted(set(designators)),
}
)
# add an incrementing id to each bom entry
return [{**entry, "id": index} for index, entry in enumerate(bom, 1)]
def get_bom_index(bom: List[BOMEntry], target: BOMKey) -> int:
"""Return id of BOM entry or raise exception if not found."""
for entry in bom:
if bom_entry_key(entry) == target:
return entry["id"]
raise Exception("Internal error: No BOM entry found matching: " + "|".join(target))
def bom_list(bom: List[BOMEntry]) -> List[List[str]]:
"""Return list of BOM rows as lists of column strings with headings in top row."""
keys = list(BOM_COLUMNS_ALWAYS) # Always include this fixed set of BOM columns.
for fieldname in BOM_COLUMNS_OPTIONAL:
# Include only those optional BOM columns that are in use.
if any(entry.get(fieldname) for entry in bom):
keys.append(fieldname)
# Custom mapping from internal name to BOM column headers.
# Headers not specified here are generated by capitilising the internal name.
bom_headings = {
"pn": HEADER_PN,
"mpn": HEADER_MPN,
"spn": HEADER_SPN,
}
return [
[bom_headings.get(k, k.capitalize()) for k in keys]
] + [ # Create header row with key names
[make_str(entry.get(k)) for k in keys] for entry in bom
] # Create string list for each entry row
def component_table_entry(
type: str,
qty: Union[int, float],
unit: Optional[str] = None,
bgcolor: Optional[Color] = None,
pn: Optional[str] = None,
manufacturer: Optional[str] = None,
mpn: Optional[str] = None,
supplier: Optional[str] = None,
spn: Optional[str] = None,
) -> str:
"""Return a diagram node table row string with an additional component."""
part_number_list = [
pn_info_string(HEADER_PN, None, pn),
pn_info_string(HEADER_MPN, manufacturer, mpn),
pn_info_string(HEADER_SPN, supplier, spn),
]
output = (
f"{qty}"
+ (f" {unit}" if unit else "")
+ f" x {type}"
+ ("<br/>" if any(part_number_list) else "")
+ (", ".join([pn for pn in part_number_list if pn]))
)
# format the above output as left aligned text in a single visible cell
# indent is set to two to match the indent in the generated html table
return f"""<table border="0" cellspacing="0" cellpadding="3" cellborder="1"{html_bgcolor_attr(bgcolor)}><tr>
<td align="left" balign="left">{html_line_breaks(output)}</td>
</tr></table>"""
def pn_info_string(
@ -95,51 +286,16 @@ def pn_info_string(
return None
def bom_list(bom):
headers = (
"# Qty Unit Description Amount Unit Designators "
"P/N Manufacturer MPN Supplier SPN Category".split(" ")
)
rows = []
rows.append(headers)
# fill rows
for hash, entry in bom.items():
cells = [
entry["id"],
entry["qty"],
hash.qty_unit,
hash.description,
hash.amount.number if hash.amount else None,
hash.amount.unit if hash.amount else None,
", ".join(sorted(entry["designators"])),
]
if hash.partnumbers:
cells.extend(
[
hash.partnumbers.pn,
hash.partnumbers.manufacturer,
hash.partnumbers.mpn,
hash.partnumbers.supplier,
hash.partnumbers.spn,
]
)
else:
cells.extend([None, None, None, None, None])
# cells.extend([f"{entry['category']} ({entry['category'].name})"]) # for debugging
rows.append(cells)
# remove empty columns
transposed = list(map(list, zip(*rows)))
transposed = [
column
for column in transposed
if any([cell is not None for cell in column[1:]])
# ^ ignore header cell in check
]
rows = list(map(list, zip(*transposed)))
return rows
def index_if_list(value: Any, index: int) -> Any:
"""Return the value indexed if it is a list, or simply the value otherwise."""
return value[index] if isinstance(value, list) else value
def print_bom_table(bom):
print()
print(tabulate_module.tabulate(bom_list(bom), headers="firstrow"))
print()
def make_list(value: Any) -> list:
"""Return value if a list, empty list if None, or single element list otherwise."""
return value if isinstance(value, list) else [] if value is None else [value]
def make_str(value: Any) -> str:
"""Return comma separated elements if a list, empty string if None, or value as a string otherwise."""
return ", ".join(str(element) for element in make_list(value))

View File

@ -11,27 +11,28 @@ if __name__ == "__main__":
import wireviz.wireviz as wv
from wireviz import APP_NAME, __version__
from wireviz.wv_utils import open_file_read
from wireviz.wv_helper import file_read_text
format_codes = {
"c": "csv",
# "c": "csv",
"g": "gv",
"h": "html",
"p": "png",
"P": "pdf",
# "P": "pdf",
"s": "svg",
"t": "tsv",
}
epilog = "The -f or --format option accepts a string containing one or more of the "
epilog += "following characters to specify which file types to output:\n"
epilog += ", ".join([f"{key} ({value.upper()})" for key, value in format_codes.items()])
epilog = (
"The -f or --format option accepts a string containing one or more of the "
"following characters to specify which file types to output:\n"
+ f", ".join([f"{key} ({value.upper()})" for key, value in format_codes.items()])
@click.command(
epilog=epilog,
no_args_is_help=True,
context_settings=dict(help_option_names=["-h", "--help"]),
)
@click.command(epilog=epilog, no_args_is_help=True)
@click.argument("file", nargs=-1)
@click.option(
"-f",
@ -61,10 +62,7 @@ epilog = (
"--output-name",
default=None,
type=str,
help=(
"File name (without extension) to use for output files, "
"if different from input file name."
),
help="File name (without extension) to use for output files, if different from input file name.",
)
@click.option(
"-V",
@ -77,7 +75,7 @@ def wireviz(file, format, prepend, output_dir, output_name, version):
"""
Parses the provided FILE and generates the specified outputs.
"""
print() # blank line before execution
print()
print(f"{APP_NAME} {__version__}")
if version:
return # print version number only and exit
@ -111,11 +109,9 @@ def wireviz(file, format, prepend, output_dir, output_name, version):
prepend_file = Path(prepend_file)
if not prepend_file.exists():
raise Exception(f"File does not exist:\n{prepend_file}")
if not prepend_file.is_file():
raise Exception(f"Path is not a file:\n{prepend_file}")
print("Prepend file:", prepend_file)
prepend_input += open_file_read(prepend_file).read() + "\n"
prepend_input += file_read_text(prepend_file) + "\n"
else:
prepend_input = ""
@ -124,8 +120,6 @@ def wireviz(file, format, prepend, output_dir, output_name, version):
file = Path(file)
if not file.exists():
raise Exception(f"File does not exist:\n{file}")
if not file.is_file():
raise Exception(f"Path is not a file:\n{file}")
# file_out = file.with_suffix("") if not output_file else output_file
_output_dir = file.parent if not output_dir else output_dir
@ -136,7 +130,7 @@ def wireviz(file, format, prepend, output_dir, output_name, version):
"Output file: ", f"{Path(_output_dir / _output_name)}.{output_formats_str}"
)
yaml_input = open_file_read(file).read()
yaml_input = file_read_text(file)
file_dir = file.parent
yaml_input = prepend_input + yaml_input
@ -152,7 +146,7 @@ def wireviz(file, format, prepend, output_dir, output_name, version):
image_paths=list(image_paths),
)
print() # blank line after execution
print()
if __name__ == "__main__":

View File

@ -1,205 +1,6 @@
# -*- coding: utf-8 -*-
from collections import namedtuple
from dataclasses import dataclass, field
from enum import Enum
from typing import List
padding_amount = 1
ColorOutputMode = Enum(
"ColorOutputMode", "EN_LOWER EN_UPPER DE_LOWER DE_UPPER HTML_LOWER HTML_UPPER"
)
color_output_mode = ColorOutputMode.EN_UPPER
KnownColor = namedtuple("KnownColor", "html code_de full_en full_de")
known_colors = { # v--------v--------- for future use
"BK": KnownColor("#000000", "sw", "black", "schwarz"),
"WH": KnownColor("#ffffff", "ws", "white", "weiß"),
"GY": KnownColor("#999999", "gr", "grey", "grau"),
"PK": KnownColor("#ff66cc", "rs", "pink", "rosa"),
"RD": KnownColor("#ff0000", "rt", "red", "rot"),
"OG": KnownColor("#ff8000", "or", "orange", "orange"),
"YE": KnownColor("#ffff00", "ge", "yellow", "gelb"),
"OL": KnownColor("#708000", "ol", "olive green", "olivgrün"),
"GN": KnownColor("#00aa00", "gn", "green", "grün"),
"TQ": KnownColor("#00ffff", "tk", "turquoise", "türkis"),
"LB": KnownColor("#a0dfff", "hb", "light blue", "hellblau"),
"BU": KnownColor("#0066ff", "bl", "blue", "blau"),
"VT": KnownColor("#8000ff", "vi", "violet", "violett"),
"BN": KnownColor("#895956", "br", "brown", "braun"),
"BG": KnownColor("#ceb673", "bg", "beige", "beige"),
"IV": KnownColor("#f5f0d0", "eb", "ivory", "elfenbein"),
"SL": KnownColor("#708090", "si", "slate", "schiefer"),
"CU": KnownColor("#d6775e", "ku", "copper", "Kupfer"),
"SN": KnownColor("#aaaaaa", "vz", "tin", "verzinkt"),
"SR": KnownColor("#84878c", "ag", "silver", "Silber"),
"GD": KnownColor("#ffcf80", "au", "gold", "Gold"),
}
def convert_case(inp):
if "_LOWER" in color_output_mode.name:
return inp.lower()
elif "_UPPER" in color_output_mode.name:
return inp.upper()
else: # currently not used
return inp
def get_color_by_colorcode_index(color_code: str, index: int) -> str:
num_colors_in_code = len(COLOR_CODES[color_code])
actual_index = index % num_colors_in_code # wrap around if index is out of bounds
return COLOR_CODES[color_code][actual_index]
@dataclass
class SingleColor:
_code_en: str
_html: str
@property
def code_en(self):
return convert_case(self._code_en) if self._code_en else None
@property
def code_de(self):
return (
convert_case(known_colors[self._code_en.upper()].code_de)
if self._code_en
else None
)
@property
def html(self):
return convert_case(self._html) if self._code_en else None
@property
def known(self):
# treat None as a known color
return self.code_en.upper() in known_colors.keys() if self._code_en else True
def __init__(self, inp):
if inp is None:
self._html = None
self._code_en = None
elif isinstance(inp, int):
hex_str = f"#{inp:06x}"
self._html = hex_str
self._code_en = hex_str # do not perform reverse lookup - why not?
elif not isinstance(inp, str):
raise Exception(f"Unknown single color {inp}!")
else:
inp_upper = inp.upper()
if inp_upper in known_colors.keys():
self._code_en = inp_upper
self._html = known_colors[inp_upper].html
else:
try: # Maybe inp is an int as string?
inp = f"#{int(inp, 0):06x}"
except ValueError:
pass # assume it's a valid HTML color name
self._html = inp
self._code_en = inp
@property
def html_padded(self):
return ":".join([self.html] * padding_amount)
def __bool__(self):
return self._code_en is not None
def __str__(self):
if self._html is None:
return ""
elif self.known and "EN_" in color_output_mode.name:
return self.code_en
elif self.known and "DE_" in color_output_mode.name:
return self.code_de
else:
return self.html
@dataclass
class MultiColor:
colors: List[SingleColor] = field(default_factory=list)
def __init__(self, inp):
self.colors = []
if inp is None:
pass
elif isinstance(inp, List): # input is already a list
for item in inp:
if item is None:
pass
elif isinstance(item, SingleColor):
self.colors.append(item)
else: # string or integer (type check done inside)
self.colors.append(SingleColor(item))
elif isinstance(inp, SingleColor): # single color
self.colors = [inp]
elif isinstance(inp, int):
self.colors = [SingleColor(inp)]
elif not isinstance(inp, str):
raise Exception(f"Unknown multi-color {inp}!")
elif ":" in inp: # split input into list
self.colors = [SingleColor(item) for item in inp.split(":")]
else:
if len(inp) % 2 == 0:
items = [inp[i : i + 2] for i in range(0, len(inp), 2)]
known = [item.upper() in known_colors.keys() for item in items]
if all(known):
self.colors = [SingleColor(item) for item in items]
return
# assume it's a valid HTML color name
self.colors = [SingleColor(inp)]
def __len__(self):
return len(self.colors)
def __bool__(self):
return len(self.colors) >= 1
def __str__(self):
if "EN_" in color_output_mode.name or "DE_" in color_output_mode.name:
joiner = "" if self.all_known else ":"
elif "HTML_" in color_output_mode.name:
joiner = ":"
else:
joiner = "???"
return joiner.join([str(color) for color in self.colors])
@property
def all_known(self):
return all([color.known for color in self.colors])
@property
def html(self):
return ":".join([color.html for color in self.colors])
@property
def html_padded_list(self):
# padding only properly works for padding_amount 1 or 3
if padding_amount == 1:
out = [color.html for color in self.colors]
elif len(self) == 0:
out = []
elif len(self) == 1:
out = [self.colors[0].html for i in range(3)]
elif len(self) == 2:
out = [self.colors[0].html, self.colors[1].html, self.colors[0].html]
elif len(self) == 3:
out = [color.html for color in self.colors]
else:
raise Exception(f"Padding not supported for len {len(self)}")
return [str(color) for color in out]
@property
def html_padded(self):
return ":".join(self.html_padded_list)
from typing import Dict, List
COLOR_CODES = {
# fmt: off
@ -227,7 +28,7 @@ COLOR_CODES = {
"BUVT", "VTBU", "OGVT", "VTOG", "GNVT", "VTGN", "BNVT", "VTBN", "SLVT", "VTSL",
],
"TELALT": [ # 25x2: Tip and then ring of each pair
"WHBU", "BU", "WHOG", "OG", "WHGN", "GN", "WHBN", "BN", "WHSL", "SL",
"WHBU", "BU", "WHOG", "OG", "WHGN", "GN", "WHBN", "BN", "WHSL", "SL",
"RDBU", "BURD", "RDOG", "OGRD", "RDGN", "GNRD", "RDBN", "BNRD", "RDSL", "SLRD",
"BKBU", "BUBK", "BKOG", "OGBK", "BKGN", "GNBK", "BKBN", "BNBK", "BKSL", "SLBK",
"YEBU", "BUYE", "YEOG", "OGYE", "YEGN", "GNYE", "YEBN", "BNYE", "YESL", "SLYE",
@ -237,3 +38,164 @@ COLOR_CODES = {
"T568A": ["WHGN", "GN", "WHOG", "BU", "WHBU", "OG", "WHBN", "BN"],
"T568B": ["WHOG", "OG", "WHGN", "BU", "WHBU", "GN", "WHBN", "BN"],
}
# Convention: Color names should be 2 letters long, to allow for multicolored wires
_color_hex = {
"BK": "#000000",
"WH": "#ffffff",
"GY": "#999999",
"PK": "#ff66cc",
"RD": "#ff0000",
"OG": "#ff8000",
"YE": "#ffff00",
"OL": "#708000", # olive green
"GN": "#00ff00",
"TQ": "#00ffff",
"LB": "#a0dfff", # light blue
"BU": "#0066ff",
"VT": "#8000ff",
"BN": "#895956",
"BG": "#ceb673", # beige
"IV": "#f5f0d0", # ivory
"SL": "#708090",
"CU": "#d6775e", # Faux-copper look, for bare CU wire
"SN": "#aaaaaa", # Silvery look for tinned bare wire
"SR": "#84878c", # Darker silver for silvered wire
"GD": "#ffcf80", # Golden color for gold
}
_color_full = {
"BK": "black",
"WH": "white",
"GY": "grey",
"PK": "pink",
"RD": "red",
"OG": "orange",
"YE": "yellow",
"OL": "olive green",
"GN": "green",
"TQ": "turquoise",
"LB": "light blue",
"BU": "blue",
"VT": "violet",
"BN": "brown",
"BG": "beige",
"IV": "ivory",
"SL": "slate",
"CU": "copper",
"SN": "tin",
"SR": "silver",
"GD": "gold",
}
_color_ger = {
"BK": "sw",
"WH": "ws",
"GY": "gr",
"PK": "rs",
"RD": "rt",
"OG": "or",
"YE": "ge",
"OL": "ol", # olivgrün
"GN": "gn",
"TQ": "tk",
"LB": "hb", # hellblau
"BU": "bl",
"VT": "vi",
"BN": "br",
"BG": "bg", # beige
"IV": "eb", # elfenbeinfarben
"SL": "si", # Schiefer
"CU": "ku", # Kupfer
"SN": "vz", # verzinkt
"SR": "ag", # Silber
"GD": "au", # Gold
}
color_default = "#ffffff"
_hex_digits = set("0123456789abcdefABCDEF")
# Literal type aliases below are commented to avoid requiring python 3.8
Color = str # Two-letter color name = Literal[_color_hex.keys()]
Colors = str # One or more two-letter color names (Color) concatenated into one string
ColorMode = (
str # = Literal['full', 'FULL', 'hex', 'HEX', 'short', 'SHORT', 'ger', 'GER']
)
ColorScheme = str # Color scheme name = Literal[COLOR_CODES.keys()]
def get_color_hex(input: Colors, pad: bool = False) -> List[str]:
"""Return list of hex colors from either a string of color names or :-separated hex colors."""
if input is None or input == "":
return [color_default]
elif input[0] == "#": # Hex color(s)
output = input.split(":")
for i, c in enumerate(output):
if c[0] != "#" or not all(d in _hex_digits for d in c[1:]):
if c != input:
c += f" in input: {input}"
print(f"Invalid hex color: {c}")
output[i] = color_default
else: # Color name(s)
def lookup(c: str) -> str:
try:
return _color_hex[c]
except KeyError:
if c != input:
c += f" in input: {input}"
print(f"Unknown color name: {c}")
return color_default
output = [lookup(input[i : i + 2]) for i in range(0, len(input), 2)]
if len(output) == 2: # Give wires with EXACTLY 2 colors that striped look.
output += output[:1]
elif pad and len(output) == 1: # Hacky style fix: Give single color wires
output *= 3 # a triple-up so that wires are the same size
return output
def get_color_translation(translate: Dict[Color, str], input: Colors) -> List[str]:
"""Return list of colors translations from either a string of color names or :-separated hex colors."""
def from_hex(hex_input: str) -> str:
for color, hex in _color_hex.items():
if hex == hex_input:
return translate[color]
return f'({",".join(str(int(hex_input[i:i+2], 16)) for i in range(1, 6, 2))})'
return (
[from_hex(h) for h in input.lower().split(":")]
if input[0] == "#"
else [translate.get(input[i : i + 2], "??") for i in range(0, len(input), 2)]
)
def translate_color(input: Colors, color_mode: ColorMode) -> str:
if input == "" or input is None:
return ""
upper = color_mode.isupper()
if not (color_mode.isupper() or color_mode.islower()):
raise Exception("Unknown color mode capitalization")
color_mode = color_mode.lower()
if color_mode == "full":
output = "/".join(get_color_translation(_color_full, input))
elif color_mode == "hex":
output = ":".join(get_color_hex(input, pad=False))
elif color_mode == "ger":
output = "".join(get_color_translation(_color_ger, input))
elif color_mode == "short":
output = input
else:
raise Exception("Unknown color mode")
if upper:
return output.upper()
else:
return output.lower()

View File

@ -1,826 +0,0 @@
# -*- coding: utf-8 -*-
from collections import namedtuple
from dataclasses import dataclass, field
from enum import Enum
from itertools import zip_longest
from typing import Any, Dict, List, Optional, Tuple, Union
from wireviz.wv_bom import (
BomHash,
BomHashList,
PartNumberInfo,
QtyMultiplierCable,
QtyMultiplierConnector,
)
from wireviz.wv_colors import (
COLOR_CODES,
ColorOutputMode,
MultiColor,
SingleColor,
get_color_by_colorcode_index,
)
from wireviz.wv_utils import (
NumberAndUnit,
awg_equiv,
aspect_ratio,
mm2_equiv,
parse_number_and_unit,
remove_links,
)
# Each type alias have their legal values described in comments
# - validation might be implemented in the future
PlainText = str # Text not containing HTML tags nor newlines
Hypertext = str # Text possibly including HTML hyperlinks that are removed in all outputs except HTML output
MultilineHypertext = (
str # Hypertext possibly also including newlines to break lines in diagram output
)
Designator = PlainText # Case insensitive unique name of connector or cable
# Literal type aliases below are commented to avoid requiring python 3.8
ImageScale = PlainText # = Literal['false', 'true', 'width', 'height', 'both']
# Type combinations
Pin = Union[int, PlainText] # Pin identifier
PinIndex = int # Zero-based pin index
Wire = Union[int, PlainText] # Wire number or Literal['s'] for shield
NoneOrMorePins = Union[
Pin, Tuple[Pin, ...], None
] # None, one, or a tuple of pin identifiers
NoneOrMorePinIndices = Union[
PinIndex, Tuple[PinIndex, ...], None
] # None, one, or a tuple of zero-based pin indices
OneOrMoreWires = Union[Wire, Tuple[Wire, ...]] # One or a tuple of wires
# Metadata can contain whatever is needed by the HTML generation/template.
MetadataKeys = PlainText # Literal['title', 'description', 'notes', ...]
Side = Enum("Side", "LEFT RIGHT")
ArrowDirection = Enum("ArrowDirection", "NONE BACK FORWARD BOTH")
ArrowWeight = Enum("ArrowWeight", "SINGLE DOUBLE")
AUTOGENERATED_PREFIX = "AUTOGENERATED_"
@dataclass
class Arrow:
direction: ArrowDirection
weight: ArrowWeight
class Metadata(dict):
pass
@dataclass
class Options:
fontname: PlainText = "arial"
bgcolor: SingleColor = "WH" # will be converted to SingleColor in __post_init__
bgcolor_node: SingleColor = "WH"
bgcolor_connector: SingleColor = None
bgcolor_cable: SingleColor = None
bgcolor_bundle: SingleColor = None
color_output_mode: ColorOutputMode = ColorOutputMode.EN_UPPER
mini_bom_mode: bool = True
template_separator: str = "."
_pad: int = 0
# TODO: resolve template and image paths during rendering, not during YAML parsing
_template_paths: List = field(default_factory=list)
_image_paths: List = field(default_factory=list)
def __post_init__(self):
self.bgcolor = SingleColor(self.bgcolor)
self.bgcolor_node = SingleColor(self.bgcolor_node)
self.bgcolor_connector = SingleColor(self.bgcolor_connector)
self.bgcolor_cable = SingleColor(self.bgcolor_cable)
self.bgcolor_bundle = SingleColor(self.bgcolor_bundle)
if not self.bgcolor_node:
self.bgcolor_node = self.bgcolor
if not self.bgcolor_connector:
self.bgcolor_connector = self.bgcolor_node
if not self.bgcolor_cable:
self.bgcolor_cable = self.bgcolor_node
if not self.bgcolor_bundle:
self.bgcolor_bundle = self.bgcolor_cable
@dataclass
class Tweak:
override: Optional[Dict[Designator, Dict[str, Optional[str]]]] = None
append: Union[str, List[str], None] = None
@dataclass
class Image:
# Attributes of the image object <img>:
src: str
scale: Optional[ImageScale] = None
# Attributes of the image cell <td> containing the image:
width: Optional[int] = None
height: Optional[int] = None
fixedsize: Optional[bool] = None
bgcolor: SingleColor = None
# Contents of the text cell <td> just below the image cell:
caption: Optional[MultilineHypertext] = None
# See also HTML doc at https://graphviz.org/doc/info/shapes.html#html
def __post_init__(self):
self.bgcolor = SingleColor(self.bgcolor)
if self.fixedsize is None:
# Default True if any dimension specified unless self.scale also is specified.
self.fixedsize = (self.width or self.height) and self.scale is None
if self.scale is None:
if not self.width and not self.height:
self.scale = "false"
elif self.width and self.height:
self.scale = "both"
else:
self.scale = "true" # When only one dimension is specified.
if self.fixedsize:
# If only one dimension is specified, compute the other
# because Graphviz requires both when fixedsize=True.
if self.height:
if not self.width:
self.width = self.height * aspect_ratio(self.src)
else:
if self.width:
self.height = self.width / aspect_ratio(self.src)
@dataclass
class PinClass:
index: int
id: str
label: str
color: MultiColor
parent: str # designator of parent connector
_num_connections = 0 # incremented in Connector.connect()
_anonymous: bool = False # true for pins on autogenerated connectors
_simple: bool = False # true for simple connector
def __str__(self):
snippets = [ # use str() for each in case they are int or other non-str
str(self.parent) if not self._anonymous else "",
str(self.id) if not self._anonymous and not self._simple else "",
str(self.label) if self.label else "",
]
return ":".join([snip for snip in snippets if snip != ""])
@dataclass
class Component:
category: Optional[str] = None # currently only used by cables, to define bundles
type: Union[MultilineHypertext, List[MultilineHypertext]] = None
subtype: Union[MultilineHypertext, List[MultilineHypertext]] = None
# part number
partnumbers: PartNumberInfo = None # filled by __post_init__()
# the following are provided for user convenience and should not be accessed later.
# their contents are loaded into partnumbers during the child class __post_init__()
pn: str = None
manufacturer: str = None
mpn: str = None
supplier: str = None
spn: str = None
# BOM info
qty: Optional[Union[None, int, float]] = None
amount: Optional[NumberAndUnit] = None
sum_amounts_in_bom: bool = True
ignore_in_bom: bool = False
bom_id: Optional[str] = None # to be filled after harness is built
def __post_init__(self):
partnos = [self.pn, self.manufacturer, self.mpn, self.supplier, self.spn]
partnos = [remove_links(entry) for entry in partnos]
partnos = tuple(partnos)
self.partnumbers = PartNumberInfo(*partnos)
self.amount = parse_number_and_unit(self.amount, None)
@property
def bom_hash(self) -> BomHash:
if isinstance(self, AdditionalComponent):
_amount = self.amount_computed
else:
_amount = self.amount
if self.sum_amounts_in_bom:
_hash = BomHash(
description=self.description,
qty_unit=_amount.unit if _amount else None,
amount=None,
partnumbers=self.partnumbers,
)
else:
_hash = BomHash(
description=self.description,
qty_unit=None,
amount=_amount,
partnumbers=self.partnumbers,
)
return _hash
@property
def has_pn_info(self) -> bool:
return any([self.pn, self.manufacturer, self.mpn, self.supplier, self.spn])
@property
def description(self) -> str:
return f"{self.type}{', ' + self.subtype if self.subtype else ''}"
@dataclass
class AdditionalBomItem(Component):
designators: Optional[str] = None
@property
def additional_components(self):
# An additional item may not have further nested additional comonents.
# This property is currently needed for objects in the same list as
# TopLevelGraphicalComponent objects in a Harness method.
return []
@dataclass
class GraphicalComponent(Component): # abstract class
bgcolor: Optional[SingleColor] = None
def __post_init__(self):
super().__post_init__()
self.bgcolor = SingleColor(self.bgcolor)
@dataclass
class AdditionalComponent(GraphicalComponent):
qty_multiplier: Union[QtyMultiplierConnector, QtyMultiplierCable, int] = 1
qty_computed: Optional[int] = None
explicit_qty: bool = True
amount_computed: Optional[NumberAndUnit] = None
note: str = None
def __post_init__(self):
super().__post_init__()
if isinstance(self.qty_multiplier, float) or isinstance(
self.qty_multiplier, int
):
pass
else:
self.qty_multiplier = self.qty_multiplier.upper()
if self.qty_multiplier in QtyMultiplierConnector.__members__.keys():
self.qty_multiplier = QtyMultiplierConnector[self.qty_multiplier]
elif self.qty_multiplier in QtyMultiplierCable.__members__.keys():
self.qty_multiplier = QtyMultiplierCable[self.qty_multiplier]
else:
raise Exception(f"Unknown qty multiplier: {self.qty_multiplier}")
if self.qty is None and self.qty_multiplier in [
QtyMultiplierCable.TOTAL_LENGTH,
QtyMultiplierCable.LENGTH,
1,
]: # simplify add.comp. table in parent node for implicit qty 1
self.qty = 1
self.explicit_qty = False
@dataclass
class TopLevelGraphicalComponent(GraphicalComponent): # abstract class
# component properties
designator: Designator = None
color: Optional[MultiColor] = None
image: Optional[Image] = None
additional_parameters: Optional[Dict] = None
additional_components: List[AdditionalComponent] = field(default_factory=list)
notes: Optional[MultilineHypertext] = None
# rendering options
bgcolor_title: Optional[SingleColor] = None
show_name: Optional[bool] = None
@dataclass
class Connector(TopLevelGraphicalComponent):
# connector-specific properties
style: Optional[str] = None
loops: List[List[Pin]] = field(default_factory=list)
# pin information in particular
pincount: Optional[int] = None
pins: List[Pin] = field(default_factory=list) # legacy
pinlabels: List[Pin] = field(default_factory=list) # legacy
pincolors: List[str] = field(default_factory=list) # legacy
pin_objects: Dict[Any, PinClass] = field(default_factory=dict) # new
# rendering option
show_pincount: Optional[bool] = None
hide_disconnected_pins: bool = False
@property
def is_autogenerated(self):
return self.designator.startswith(AUTOGENERATED_PREFIX)
@property
def description(self) -> str:
substrs = [
"Connector",
self.type,
self.subtype,
f"{self.pincount} pins" if self.show_pincount else None,
str(self.color) if self.color else None,
]
return ", ".join([str(s) for s in substrs if s is not None and s != ""])
def should_show_pin(self, pin_id):
return (
not self.hide_disconnected_pins
or self.pin_objects[pin_id]._num_connections > 0
)
@property
def unit(self): # for compatibility with BOM hashing
return None # connectors do not support units.
def __post_init__(self) -> None:
super().__post_init__()
self.bgcolor_title = SingleColor(self.bgcolor_title)
self.color = MultiColor(self.color)
# connectors do not support custom qty or amount
if self.qty is None:
self.qty = 1
if self.qty != 1:
raise Exception("Connector qty != 1 not supported")
if self.amount is not None:
raise Exception("Connector amount not supported")
if isinstance(self.image, dict):
self.image = Image(**self.image)
self.ports_left = False
self.ports_right = False
self.visible_pins = {}
if self.style == "simple":
if self.pincount and self.pincount > 1:
raise Exception(
"Connectors with style set to simple may only have one pin"
)
self.pincount = 1
if not self.pincount:
self.pincount = max(
len(self.pins), len(self.pinlabels), len(self.pincolors)
)
if not self.pincount:
raise Exception(
"You need to specify at least one: "
"pincount, pins, pinlabels, or pincolors"
)
# create default list for pins (sequential) if not specified
if not self.pins:
self.pins = list(range(1, self.pincount + 1))
if len(self.pins) != len(set(self.pins)):
raise Exception("Pins are not unique")
# all checks have passed
pin_tuples = zip_longest(
self.pins,
self.pinlabels,
self.pincolors,
)
for pin_index, (pin_id, pin_label, pin_color) in enumerate(pin_tuples):
self.pin_objects[pin_id] = PinClass(
index=pin_index,
id=pin_id,
label=pin_label,
color=MultiColor(pin_color),
parent=self.designator,
_anonymous=self.is_autogenerated,
_simple=self.style == "simple",
)
if self.show_name is None:
self.show_name = self.style != "simple" and not self.is_autogenerated
if self.show_pincount is None:
# hide pincount for simple (1 pin) connectors by default
self.show_pincount = self.style != "simple"
for loop in self.loops:
# TODO: allow using pin labels in addition to pin numbers,
# just like when defining regular connections
# TODO: include properties of wire used to create the loop
if len(loop) != 2:
raise Exception("Loops must be between exactly two pins!")
for pin in loop:
if pin not in self.pins:
raise Exception(
f'Unknown loop pin "{pin}" for connector "{self.name}"!'
)
# Make sure loop connected pins are not hidden.
# side=None, determine side to show loops during rendering
self.activate_pin(pin, side=None, is_connection=True)
for i, item in enumerate(self.additional_components):
if isinstance(item, dict):
self.additional_components[i] = AdditionalComponent(**item)
def activate_pin(self, pin_id, side: Side = None, is_connection=True) -> None:
if is_connection:
self.pin_objects[pin_id]._num_connections += 1
if side == Side.LEFT:
self.ports_left = True
elif side == Side.RIGHT:
self.ports_right = True
def compute_qty_multipliers(self):
# do not run before all connections in harness have been made!
num_populated_pins = len(
[pin for pin in self.pin_objects.values() if pin._num_connections > 0]
)
num_connections = sum(
[pin._num_connections for pin in self.pin_objects.values()]
)
qty_multipliers_computed = {
"PINCOUNT": self.pincount,
"POPULATED": num_populated_pins,
"CONNECTIONS": num_connections,
}
for subitem in self.additional_components:
if isinstance(subitem.qty_multiplier, QtyMultiplierConnector):
computed_factor = qty_multipliers_computed[subitem.qty_multiplier.name]
elif isinstance(subitem.qty_multiplier, QtyMultiplierCable):
raise Exception("Used a cable multiplier in a connector!")
else: # int or float
computed_factor = subitem.qty_multiplier
if subitem.qty is not None:
subitem.qty_computed = subitem.qty * computed_factor
else:
subitem.qty_computed = computed_factor
subitem.amount_computed = subitem.amount
@dataclass
class WireClass:
parent: str # designator of parent cable/bundle
# wire-specific properties
index: int
id: str
label: str
color: MultiColor
# ...
bom_id: Optional[str] = None # to be filled after harness is built
# inheritable from parent cable
type: Union[MultilineHypertext, List[MultilineHypertext]] = None
subtype: Union[MultilineHypertext, List[MultilineHypertext]] = None
gauge: Optional[NumberAndUnit] = None
length: Optional[NumberAndUnit] = None
ignore_in_bom: Optional[bool] = False
sum_amounts_in_bom: bool = True
partnumbers: PartNumberInfo = None
@property
def bom_hash(self) -> BomHash:
if self.sum_amounts_in_bom:
_hash = BomHash(
description=self.description,
qty_unit=self.length.unit if self.length else None,
amount=None,
partnumbers=self.partnumbers,
)
else:
_hash = BomHash(
description=self.description,
qty_unit=None,
amount=self.length,
partnumbers=self.partnumbers,
)
return _hash
@property
def gauge_str(self):
if not self.gauge:
return None
actual_gauge = f"{self.gauge.number} {self.gauge.unit}"
actual_gauge = actual_gauge.replace("mm2", "mm\u00B2")
return actual_gauge
@property
def description(self) -> str:
substrs = [
"Wire",
self.type,
self.subtype,
self.gauge_str,
str(self.color) if self.color else None,
]
desc = ", ".join([s for s in substrs if s is not None and s != ""])
return desc
@dataclass
class ShieldClass(WireClass):
pass # TODO, for wires with multiple shields more shield details, ...
@dataclass
class Connection:
from_: PinClass = None
via: Union[WireClass, ShieldClass] = None
to: PinClass = None
@dataclass
class Cable(TopLevelGraphicalComponent):
# cable-specific properties
gauge: Optional[NumberAndUnit] = None
length: Optional[NumberAndUnit] = None
color_code: Optional[str] = None
# wire information in particular
wirecount: Optional[int] = None
shield: Union[bool, MultiColor] = False
colors: List[str] = field(default_factory=list) # legacy
wirelabels: List[Wire] = field(default_factory=list) # legacy
wire_objects: Dict[Any, WireClass] = field(default_factory=dict) # new
# internal
_connections: List[Connection] = field(default_factory=list)
# rendering options
show_name: Optional[bool] = None
show_equiv: bool = False
show_wirecount: bool = True
show_wirenumbers: Optional[bool] = None
@property
def is_autogenerated(self):
return self.designator.startswith(AUTOGENERATED_PREFIX)
@property
def unit(self): # for compatibility with parent class
return self.length
@property
def gauge_str(self):
if not self.gauge:
return None
actual_gauge = f"{self.gauge.number} {self.gauge.unit}"
actual_gauge = actual_gauge.replace("mm2", "mm\u00B2")
return actual_gauge
@property
def gauge_str_with_equiv(self):
if not self.gauge:
return None
actual_gauge = self.gauge_str
equivalent_gauge = ""
if self.show_equiv:
# convert unit if known
if self.gauge.unit == "mm2":
equivalent_gauge = f" ({awg_equiv(self.gauge.number)} AWG)"
elif self.gauge.unit.upper() == "AWG":
equivalent_gauge = f" ({mm2_equiv(self.gauge.number)} mm2)"
out = f"{actual_gauge}{equivalent_gauge}"
out = out.replace("mm2", "mm\u00B2")
return out
@property
def length_str(self):
if not self.length:
return None
out = f"{self.length.number} {self.length.unit}"
return out
@property
def bom_hash(self):
if self.category == "bundle":
# This line should never be reached, since caller checks
# whether item is a bundle and if so, calls bom_hash
# for each individual wire instead
raise Exception("Do this at the wire level!")
else:
return super().bom_hash
@property
def description(self) -> str:
if self.category == "bundle":
raise Exception("Do this at the wire level!")
else:
substrs = [
("", "Cable"),
(", ", self.type),
(", ", self.subtype),
(", ", self.wirecount),
(" ", f"x {self.gauge_str}" if self.gauge else "wires"),
(" ", "shielded" if self.shield else None),
(", ", str(self.color) if self.color else None),
]
desc = "".join(
[f"{s[0]}{s[1]}" for s in substrs if s[1] is not None and s[1] != ""]
)
return desc
def _get_wire_partnumber(self, idx) -> PartNumberInfo:
def _get_correct_element(inp, idx):
return inp[idx] if isinstance(inp, List) else inp
# TODO: possibly make more robust/elegant
if self.category == "bundle":
return PartNumberInfo(
_get_correct_element(self.partnumbers.pn, idx),
_get_correct_element(self.partnumbers.manufacturer, idx),
_get_correct_element(self.partnumbers.mpn, idx),
_get_correct_element(self.partnumbers.supplier, idx),
_get_correct_element(self.partnumbers.spn, idx),
)
else:
return None # non-bundles do not support lists of part data
def __post_init__(self) -> None:
super().__post_init__()
self.bgcolor_title = SingleColor(self.bgcolor_title)
self.color = MultiColor(self.color)
# cables do not support custom qty or amount
if self.qty is None:
self.qty = 1
if self.qty != 1:
raise Exception("Cable qty != 1 not supported")
if isinstance(self.image, dict):
self.image = Image(**self.image)
# TODO:
# allow gauge, length, and other fields to be lists too (like part numbers),
# and assign them the same way to bundles.
self.gauge = parse_number_and_unit(self.gauge, "mm2")
self.length = parse_number_and_unit(self.length, "m")
self.amount = self.length # for BOM
if self.wirecount: # number of wires explicitly defined
if self.colors: # use custom color palette (partly or looped if needed)
self.colors = [
self.colors[i % len(self.colors)] for i in range(self.wirecount)
]
elif self.color_code:
# use standard color palette (partly or looped if needed)
if self.color_code not in COLOR_CODES:
raise Exception("Unknown color code")
self.colors = [
get_color_by_colorcode_index(self.color_code, i)
for i in range(self.wirecount)
]
else: # no colors defined, add dummy colors
self.colors = [""] * self.wirecount
else: # wirecount implicit in length of color list
if not self.colors:
raise Exception(
"Unknown number of wires. "
"Must specify wirecount or colors (implicit length)"
)
self.wirecount = len(self.colors)
if self.wirelabels:
if self.shield and "s" in self.wirelabels:
raise Exception(
'"s" may not be used as a wire label for a shielded cable.'
)
# if lists of part numbers are provided,
# check this is a bundle and that it matches the wirecount.
for idfield in [self.manufacturer, self.mpn, self.supplier, self.spn, self.pn]:
if isinstance(idfield, list):
if self.category == "bundle":
# check the length
if len(idfield) != self.wirecount:
raise Exception("lists of part data must match wirecount")
else:
raise Exception("lists of part data are only supported for bundles")
# all checks have passed
wire_tuples = zip_longest(
# TODO: self.wire_ids
self.colors,
self.wirelabels,
)
for wire_index, (wire_color, wire_label) in enumerate(wire_tuples):
id = wire_index + 1
self.wire_objects[id] = WireClass(
parent=self.designator,
# wire-specific properties
index=wire_index, # TODO: wire_id
id=id, # TODO: wire_id
label=wire_label,
color=MultiColor(wire_color),
# inheritable from parent cable
type=self.type,
subtype=self.subtype,
gauge=self.gauge,
length=self.length,
sum_amounts_in_bom=self.sum_amounts_in_bom,
ignore_in_bom=self.ignore_in_bom,
partnumbers=self._get_wire_partnumber(wire_index),
)
if self.shield:
index_offset = len(self.wire_objects)
# TODO: add support for multiple shields
id = "s"
self.wire_objects[id] = ShieldClass(
index=index_offset,
id=id,
label="Shield",
color=(
MultiColor(self.shield)
if isinstance(self.shield, str)
else MultiColor(None)
),
parent=self.designator,
)
if self.show_name is None:
self.show_name = not self.is_autogenerated
if self.show_wirenumbers is None:
# by default, show wire numbers for cables, hide for bundles
self.show_wirenumbers = self.category != "bundle"
for i, item in enumerate(self.additional_components):
if isinstance(item, dict):
self.additional_components[i] = AdditionalComponent(**item)
def _connect(
self,
from_pin_obj: List[PinClass],
via_wire_id: str,
to_pin_obj: List[PinClass],
) -> None:
via_wire_obj = self.wire_objects[via_wire_id]
self._connections.append(Connection(from_pin_obj, via_wire_obj, to_pin_obj))
def compute_qty_multipliers(self):
# do not run before all connections in harness have been made!
total_length = sum(
[
wire.length.number if wire.length else 0
for wire in self.wire_objects.values()
]
)
qty_multipliers_computed = {
"WIRECOUNT": len(self.wire_objects),
# "TERMINATIONS": ___, # TODO
"LENGTH": self.length.number if self.length else 0,
"TOTAL_LENGTH": total_length,
}
for subitem in self.additional_components:
if isinstance(subitem.qty_multiplier, QtyMultiplierCable):
computed_factor = qty_multipliers_computed[subitem.qty_multiplier.name]
if subitem.qty_multiplier.name in ["LENGTH", "TOTAL_LENGTH"]:
# since length can have a unit, use amount fields to hold
if subitem.amount is not None:
raise Exception(
f"No amount may be specified when using "
f"{subitem.qty_multiplier.name} as a multiplier."
)
subitem.qty_computed = subitem.qty if subitem.qty else 1
subitem.amount_computed = NumberAndUnit(
computed_factor, self.length.unit
)
else:
# multiplier unrelated to length, therefore no unit
if subitem.qty is not None:
subitem.qty_computed = subitem.qty * computed_factor
else:
subitem.qty_computed = computed_factor
subitem.amount_computed = subitem.amount
elif isinstance(subitem.qty_multiplier, QtyMultiplierConnector):
raise Exception("Used a connector multiplier in a cable!")
else: # int or float
if subitem.qty is not None:
subitem.qty_computed = subitem.qty * subitem.qty_multiplier
else:
subitem.qty_computed = subitem.qty_multiplier
subitem.amount_computed = subitem.amount
@dataclass
class MatePin:
from_: PinClass
to: PinClass
arrow: Arrow
@dataclass
class MateComponent:
from_: str # Designator
to: str # Designator
arrow: Arrow

View File

@ -1,632 +0,0 @@
# -*- coding: utf-8 -*-
import re
import warnings
from itertools import zip_longest
from typing import Any, List, Optional, Tuple, Union
from wireviz import APP_NAME, APP_URL, __version__
from wireviz.wv_bom import partnumbers2list
from wireviz.wv_colors import MultiColor
from wireviz.wv_dataclasses import (
ArrowDirection,
ArrowWeight,
Cable,
Component,
Connector,
MateComponent,
MatePin,
Options,
PartNumberInfo,
ShieldClass,
WireClass,
)
from wireviz.wv_html import Img, Table, Td, Tr
from wireviz.wv_utils import html_line_breaks, remove_links
def gv_node_component(component: Component) -> Table:
# If no wires connected (except maybe loop wires)?
if isinstance(component, Connector):
if not (component.ports_left or component.ports_right):
component.ports_left = True # Use left side pins by default
# generate all rows to be shown in the node
if component.show_name:
str_name = f"{remove_links(component.designator)}"
line_name = Td(str_name, bgcolor=component.bgcolor_title.html)
else:
line_name = None
line_pn = partnumbers2list(component.partnumbers)
is_simple_connector = (
isinstance(component, Connector) and component.style == "simple"
)
if isinstance(component, Connector):
line_info = [
bom_bubble(component.bom_id),
html_line_breaks(component.type),
html_line_breaks(component.subtype),
f"{component.pincount}-pin" if component.show_pincount else None,
str(component.color) if component.color else None,
]
elif isinstance(component, Cable):
line_info = [
bom_bubble(component.bom_id) if component.category != "bundle" else None,
html_line_breaks(component.type),
f"{component.wirecount}x" if component.show_wirecount else None,
component.gauge_str_with_equiv,
"+ S" if component.shield else None,
component.length_str,
str(component.color) if component.color else None,
]
if component.additional_parameters:
line_additional_parameters = nested_table_dict(component.additional_parameters)
else:
line_additional_parameters = []
if component.color:
line_info.extend(colorbar_cells(component.color))
line_image, line_image_caption = image_and_caption_cells(component)
line_additional_component_table = gv_additional_component_table(component)
line_notes = [Td(html_line_breaks(component.notes), balign="left")]
if isinstance(component, Connector):
if component.style != "simple":
line_ports = gv_pin_table(component)
else:
line_ports = None
elif isinstance(component, Cable):
line_ports = gv_conductor_table(component)
lines = [
line_name,
line_pn,
line_info,
line_additional_parameters,
line_ports,
line_image,
line_image_caption,
line_additional_component_table,
line_notes,
]
tbl = nested_table(lines)
if is_simple_connector:
# Simple connectors have no pin table, and therefore, no ports to attach wires to.
# Manually assign left and right ports here if required.
# Use table itself for right port, and the first cell for left port.
# Even if the table only has one cell, two separate ports can still be assigned.
tbl.update_attribs(port="p1r")
first_cell_in_tbl = tbl.contents[0].contents
first_cell_in_tbl.update_attribs(port="p1l")
return tbl
def gv_additional_component_table(component):
if not component.additional_components:
return None
rows = []
for subitem in component.additional_components:
if subitem.explicit_qty:
text_qty, unit_qty = subitem.qty_computed, "x"
if subitem.amount_computed is not None:
text_desc = f"{subitem.amount_computed.number} {subitem.amount_computed.unit} {subitem.description}"
else:
text_desc = f"{subitem.description}"
else:
if subitem.amount_computed is not None:
text_qty, unit_qty = (
subitem.amount_computed.number,
subitem.amount_computed.unit,
)
else:
text_qty, unit_qty = "1", "x"
text_desc = subitem.description
firstline = [
Td(bom_bubble(subitem.bom_id)),
Td(text_qty, align="right"),
Td(unit_qty, align="left"),
Td(text_desc, align="left"),
Td(f"{subitem.note if subitem.note else ''}", align="left"),
]
rows.append(Tr(firstline))
if subitem.has_pn_info:
pn_list = partnumbers2list(subitem.partnumbers)
secondline = [
Td("", colspan=3),
Td(", ".join(pn for pn in pn_list if pn), align="left"),
Td(""),
]
rows.append(Tr(secondline))
return Table(rows, border=1, cellborder=0, cellpadding=3, cellspacing=0)
def calculate_node_bgcolor(component, harness_options):
# assign component node bgcolor at the GraphViz node level
# instead of at the HTML table level for better rendering of node outline
if component.bgcolor:
return component.bgcolor.html
elif isinstance(component, Connector) and harness_options.bgcolor_connector:
return harness_options.bgcolor_connector.html
elif (
isinstance(component, Cable)
and component.category == "bundle"
and harness_options.bgcolor_bundle
):
return harness_options.bgcolor_bundle.html
elif isinstance(component, Cable) and harness_options.bgcolor_cable:
return harness_options.bgcolor_cable.html
def bom_bubble(id) -> Table:
if id is None:
return None
else:
# TODO: activate BOM bubbles
return None
# size and style of BOM bubble is optimized to be a rounded square,
# big enough to hold any two-digit ID without GraphViz warnings
text = id
# text = f'<FONT COLOR="#FFFFFF">{id}</FONT>'
return Table(
Tr(
Td(
text,
border=1,
cellpadding=0,
fixedsize="true",
style="rounded",
height=20,
width=20,
# bgcolor="#000000",
)
),
border=0,
)
def make_list_of_cells(inp) -> List[Td]:
# inp may be List,
if isinstance(inp, List):
# ensure all list items are Td
list_out = [item if isinstance(item, Td) else Td(item) for item in inp]
return list_out
else:
if inp is None:
return []
if isinstance(inp, Td):
return [inp]
else:
return [Td(inp)]
def nested_table(lines: List[Td]) -> Table:
cell_lists = [make_list_of_cells(line) for line in lines]
rows = []
for lst in cell_lists:
if len(lst) == 0:
continue # no cells in list
cells = [item for item in lst if item.contents is not None]
if len(cells) == 0:
continue # no cells in list, or all cells are None
if (
len(cells) == 1
and isinstance(cells[0].contents, Table)
and not "!" in cells[0].contents.attribs.get("id", "")
):
# cell content is already a table, no need to re-wrap it;
# unless explicitly asked to by a "!" in the ID field
# as used by image_and_caption_cells()
inner_table = cells[0].contents
else:
# nest cell content inside a table
inner_table = Table(
Tr(cells), border=0, cellborder=1, cellpadding=3, cellspacing=0
)
rows.append(Tr(Td(inner_table)))
if len(rows) == 0: # create dummy row to avoid GraphViz errors due to empty <table>
inner_table = Table(
Tr(Td("")), border=0, cellborder=1, cellpadding=3, cellspacing=0
)
rows = [Tr(Td(inner_table))]
tbl = Table(rows, border=0, cellspacing=0, cellpadding=0)
return tbl
def nested_table_dict(d: dict) -> Table:
rows = []
for k, v in d.items():
rows.append(
Tr(
[
Td(k, align="left", balign="left", valign="top"),
Td(html_line_breaks(v), align="left", balign="left"),
]
)
)
return Table(rows, border=0, cellborder=1, cellpadding=3, cellspacing=0)
def gv_pin_table(component) -> Table:
pin_rows = []
for pin in component.pin_objects.values():
if component.should_show_pin(pin.id):
pin_rows.append(gv_pin_row(pin, component))
if len(pin_rows) == 0:
# TODO: write test for empty pin tables, and for unconnected connectors that hide disconnected pins
pass
tbl = Table(pin_rows, border=0, cellborder=1, cellpadding=3, cellspacing=0)
return tbl
def gv_pin_row(pin, connector) -> Tr:
# ports in GraphViz are 1-indexed for more natural maping to pin/wire numbers
has_pincolors = any([_pin.color for _pin in connector.pin_objects.values()])
cells = [
Td(pin.id, port=f"p{pin.index+1}l") if connector.ports_left else None,
Td(pin.label, delete_if_empty=True),
Td(str(pin.color) if pin.color else "", sides="TBL") if has_pincolors else None,
Td(color_minitable(pin.color), sides="TBR") if has_pincolors else None,
Td(pin.id, port=f"p{pin.index+1}r") if connector.ports_right else None,
]
return Tr(cells)
def gv_connector_loops(connector: Connector) -> List:
loop_edges = []
if connector.ports_left:
loop_side = "l"
loop_dir = "w"
elif connector.ports_right:
loop_side = "r"
loop_dir = "e"
else:
raise Exception("No side for loops")
for loop in connector.loops:
head = f"{connector.designator}:p{loop[0]}{loop_side}:{loop_dir}"
tail = f"{connector.designator}:p{loop[1]}{loop_side}:{loop_dir}"
loop_edges.append((head, tail))
return loop_edges
def gv_conductor_table(cable) -> Table:
rows = []
rows.append(Tr(Td("&nbsp;"))) # spacer row on top
inserted_break_inbetween = False
for wire in cable.wire_objects.values():
# insert blank space between wires and shields
if isinstance(wire, ShieldClass) and not inserted_break_inbetween:
rows.append(Tr(Td("&nbsp;"))) # spacer row between wires and shields
inserted_break_inbetween = True
# row above the wire
wireinfo = []
if cable.show_wirenumbers and not isinstance(wire, ShieldClass):
wireinfo.append(str(wire.id))
wireinfo.append(str(wire.color))
wireinfo.append(wire.label)
ins, outs = [], []
for conn in cable._connections:
if conn.via.id == wire.id:
if conn.from_ is not None:
ins.append(str(conn.from_))
if conn.to is not None:
outs.append(str(conn.to))
cells_above = [
Td(" " + ", ".join(ins), align="left"),
Td(" "), # increase cell spacing here
Td(bom_bubble(wire.bom_id)) if cable.category == "bundle" else None,
Td(":".join([wi for wi in wireinfo if wi is not None and wi != ""])),
Td(" "), # increase cell spacing here
Td(", ".join(outs) + " ", align="right"),
]
cells_above = [cell for cell in cells_above if cell is not None]
rows.append(Tr(cells_above))
# the wire itself
rows.append(Tr(gv_wire_cell(wire, len(cells_above))))
# row below the wire
if wire.partnumbers:
cells_below = partnumbers2list(
wire.partnumbers, parent_partnumbers=cable.partnumbers
)
if cells_below is not None and len(cells_below) > 0:
table_below = (
Table(
Tr([Td(cell) for cell in cells_below]),
border=0,
cellborder=0,
cellspacing=0,
),
)
rows.append(Tr(Td(table_below, colspan=len(cells_above))))
rows.append(Tr(Td("&nbsp;"))) # spacer row on bottom
tbl = Table(rows, border=0, cellborder=0, cellspacing=0)
return tbl
def gv_wire_cell(wire: Union[WireClass, ShieldClass], colspan: int) -> Td:
if wire.color:
color_list = ["#000000"] + wire.color.html_padded_list + ["#000000"]
else:
color_list = ["#000000"]
wire_inner_rows = []
for j, bgcolor in enumerate(color_list[::-1]):
wire_inner_cell_attribs = {
"bgcolor": bgcolor if bgcolor != "" else "#000000",
"border": 0,
"cellpadding": 0,
"colspan": colspan,
"height": 2,
}
wire_inner_rows.append(Tr(Td("", **wire_inner_cell_attribs)))
wire_inner_table = Table(wire_inner_rows, border=0, cellborder=0, cellspacing=0)
wire_outer_cell_attribs = {
"border": 0,
"cellspacing": 0,
"cellpadding": 0,
"colspan": colspan,
"height": 2 * len(color_list),
"port": f"w{wire.index+1}",
}
# ports in GraphViz are 1-indexed for more natural maping to pin/wire numbers
wire_outer_cell = Td(wire_inner_table, **wire_outer_cell_attribs)
return wire_outer_cell
def gv_edge_wire(harness, cable, connection) -> Tuple[str, str, str, str, str]:
if connection.via.color:
# check if it's an actual wire and not a shield
color = f"#000000:{connection.via.color.html_padded}:#000000"
else: # it's a shield connection
color = "#000000"
if connection.from_ is not None: # connect to left
from_port_str = (
f":p{connection.from_.index+1}r"
if harness.connectors[connection.from_.parent].style != "simple"
else ""
)
code_left_1 = f"{connection.from_.parent}{from_port_str}:e"
code_left_2 = f"{connection.via.parent}:w{connection.via.index+1}:w"
# ports in GraphViz are 1-indexed for more natural maping to pin/wire numbers
else:
code_left_1, code_left_2 = None, None
if connection.to is not None: # connect to right
to_port_str = (
f":p{connection.to.index+1}l"
if harness.connectors[connection.to.parent].style != "simple"
else ""
)
code_right_1 = f"{connection.via.parent}:w{connection.via.index+1}:e"
code_right_2 = f"{connection.to.parent}{to_port_str}:w"
else:
code_right_1, code_right_2 = None, None
return color, code_left_1, code_left_2, code_right_1, code_right_2
def parse_arrow_str(inp: str) -> ArrowDirection:
if inp[0] == "<" and inp[-1] == ">":
return ArrowDirection.BOTH
elif inp[0] == "<":
return ArrowDirection.BACK
elif inp[-1] == ">":
return ArrowDirection.FORWARD
else:
return ArrowDirection.NONE
def gv_edge_mate(mate) -> Tuple[str, str, str, str]:
if mate.arrow.weight == ArrowWeight.SINGLE:
color = "#000000"
elif mate.arrow.weight == ArrowWeight.DOUBLE:
color = "#000000:#000000"
dir = mate.arrow.direction.name.lower()
if isinstance(mate, MatePin):
from_pin_index = mate.from_.index
from_port_str = f":p{from_pin_index+1}r"
from_designator = mate.from_.parent
to_pin_index = mate.to.index
to_port_str = f":p{to_pin_index+1}l"
to_designator = mate.to.parent
elif isinstance(mate, MateComponent):
from_designator = mate.from_
from_port_str = ""
to_designator = mate.to
to_port_str = ""
else:
raise Exception(f"Unknown type of mate:\n{mate}")
code_from = f"{from_designator}{from_port_str}:e"
code_to = f"{to_designator}{to_port_str}:w"
return color, dir, code_from, code_to
def colorbar_cells(color, mini=False) -> List[Td]:
cells = []
mini = {"height": 8, "width": 8, "fixedsize": "true"} if mini else {}
for index, subcolor in enumerate(color.colors):
sides_l = "L" if index == 0 else ""
sides_r = "R" if index == len(color.colors) - 1 else ""
sides = "TB" + sides_l + sides_r
cells.append(Td("", bgcolor=subcolor.html, sides=sides, **mini))
return cells
def color_minitable(color: Optional[MultiColor]) -> Union[Table, str]:
if color is None or len(color) == 0:
return ""
cells = colorbar_cells(color, mini=True)
return Table(
Tr(cells),
border=0,
cellborder=1,
cellspacing=0,
height=8,
width=8 * len(cells),
fixedsize="true",
)
def image_and_caption_cells(component: Component) -> Tuple[Td, Td]:
if not component.image:
return (None, None)
image_tag = Img(scale=component.image.scale, src=component.image.src)
image_cell_inner = Td(image_tag, flat=True)
if component.image.fixedsize:
# further nest the image in a table with width/height/fixedsize parameters,
# and place that table in a cell
image_cell_inner.update_attribs(**html_size_attr_dict(component.image))
image_cell = Td(
Table(Tr(image_cell_inner), border=0, cellborder=0, cellspacing=0, id="!")
)
else:
image_cell = image_cell_inner
image_cell.update_attribs(
balign="left",
bgcolor=component.image.bgcolor.html,
sides="TLR" if component.image.caption else None,
)
if component.image.caption:
caption_cell = Td(
f"{html_line_breaks(component.image.caption)}", balign="left", sides="BLR"
)
else:
caption_cell = None
return (image_cell, caption_cell)
def html_size_attr_dict(image):
# Return Graphviz HTML attributes to specify minimum or fixed size of a TABLE or TD object
pass
attr_dict = {}
if image:
if image.width:
attr_dict["width"] = image.width
if image.height:
attr_dict["height"] = image.height
if image.fixedsize:
attr_dict["fixedsize"] = "true"
return attr_dict
def set_dot_basics(dot, options):
dot.body.append(f"// Graph generated by {APP_NAME} {__version__}\n")
dot.body.append(f"// {APP_URL}\n")
dot.attr(
"graph",
rankdir="LR",
ranksep="2",
bgcolor=options.bgcolor.html,
nodesep="0.33",
fontname=options.fontname,
)
dot.attr(
"node",
shape="none",
width="0",
height="0",
margin="0", # Actual size of the node is entirely determined by the label.
style="filled",
fillcolor=options.bgcolor_node.html,
fontname=options.fontname,
)
dot.attr("edge", style="bold", fontname=options.fontname)
def apply_dot_tweaks(dot, tweak):
def typecheck(name: str, value: Any, expect: type) -> None:
if not isinstance(value, expect):
raise Exception(
f"Unexpected value type of {name}: "
f"Expected {expect}, got {type(value)}\n{value}"
)
# TODO?: Differ between override attributes and HTML?
if tweak.override is not None:
typecheck("tweak.override", tweak.override, dict)
for k, d in tweak.override.items():
typecheck(f"tweak.override.{k} key", k, str)
typecheck(f"tweak.override.{k} value", d, dict)
for a, v in d.items():
typecheck(f"tweak.override.{k}.{a} key", a, str)
typecheck(f"tweak.override.{k}.{a} value", v, (str, type(None)))
# Override generated attributes of selected entries matching tweak.override.
for i, entry in enumerate(dot.body):
if not isinstance(entry, str):
continue
# Find a possibly quoted keyword after leading TAB(s) and followed by [ ].
match = re.match(r'^\t*(")?((?(1)[^"]|[^ "])+)(?(1)") \[.*\]$', entry, re.S)
keyword = match and match[2]
if not keyword in tweak.override.keys():
continue
for attr, value in tweak.override[keyword].items():
if value is None:
entry, n_subs = re.subn(
f'( +)?{attr}=("[^"]*"|[^] ]*)(?(1)| *)', "", entry
)
if n_subs < 1:
warnings.warn(f"tweak: {attr} not found in {keyword}!")
elif n_subs > 1:
warnings.warn(
f"tweak: {attr} removed {n_subs} times in {keyword}!"
)
continue
if len(value) == 0 or " " in value:
value = value.replace('"', r"\"")
value = f'"{value}"'
entry, n_subs = re.subn(
f'{attr}=("[^"]*"|[^] ]*)', f"{attr}={value}", entry
)
if n_subs < 1:
# If attr not found, then append it
entry = re.sub(r"\]$", f" {attr}={value}]", entry)
elif n_subs > 1:
warnings.warn(
f"tweak: {attr} overridden {n_subs} times in {keyword}!"
)
dot.body[i] = entry
if tweak.append is not None:
if isinstance(tweak.append, list):
for i, element in enumerate(tweak.append, 1):
typecheck(f"tweak.append[{i}]", element, str)
dot.body.extend(tweak.append)
else:
typecheck("tweak.append", tweak.append, str)
dot.body.append(tweak.append)

111
src/wireviz/wv_gv_html.py Normal file
View File

@ -0,0 +1,111 @@
# -*- coding: utf-8 -*-
import re
from typing import List, Optional, Union
from wireviz.DataClasses import Color
from wireviz.wv_colors import translate_color
from wireviz.wv_helper import remove_links
def nested_html_table(
rows: List[Union[str, List[Optional[str]], None]], table_attrs: str = ""
) -> str:
# input: list, each item may be scalar or list
# output: a parent table with one child table per parent item that is list, and one cell per parent item that is scalar
# purpose: create the appearance of one table, where cell widths are independent between rows
# attributes in any leading <tdX> inside a list are injected into to the preceeding <td> tag
html = []
html.append(
f'<table border="0" cellspacing="0" cellpadding="0"{table_attrs or ""}>'
)
num_rows = 0
for row in rows:
if isinstance(row, List):
if len(row) > 0 and any(row):
html.append(" <tr><td>")
# fmt: off
html.append(' <table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>')
# fmt: on
for cell in row:
if cell is not None:
# Inject attributes to the preceeding <td> tag where needed
# fmt: off
html.append(f' <td balign="left">{cell}</td>'.replace("><tdX", ""))
# fmt: on
html.append(" </tr></table>")
html.append(" </td></tr>")
num_rows = num_rows + 1
elif row is not None:
html.append(" <tr><td>")
html.append(f" {row}")
html.append(" </td></tr>")
num_rows = num_rows + 1
if num_rows == 0: # empty table
# generate empty cell to avoid GraphViz errors
html.append("<tr><td></td></tr>")
html.append("</table>")
return html
def html_bgcolor_attr(color: Color) -> str:
"""Return attributes for bgcolor or '' if no color."""
return f' bgcolor="{translate_color(color, "HEX")}"' if color else ""
def html_bgcolor(color: Color, _extra_attr: str = "") -> str:
"""Return <td> attributes prefix for bgcolor or '' if no color."""
return f"<tdX{html_bgcolor_attr(color)}{_extra_attr}>" if color else ""
def html_colorbar(color: Color) -> str:
"""Return <tdX> attributes prefix for bgcolor and minimum width or None if no color."""
return html_bgcolor(color, ' width="4"') if color else None
def html_image(image):
from wireviz.DataClasses import Image
if not image:
return None
# The leading attributes belong to the preceeding tag. See where used below.
html = f'{html_size_attr(image)}><img scale="{image.scale}" src="{image.src}"/>'
if image.fixedsize:
# Close the preceeding tag and enclose the image cell in a table without
# borders to avoid narrow borders when the fixed width < the node width.
html = f""">
<table border="0" cellspacing="0" cellborder="0"><tr>
<td{html}</td>
</tr></table>
"""
return f"""<tdX{' sides="TLR"' if image.caption else ''}{html_bgcolor_attr(image.bgcolor)}{html}"""
def html_caption(image):
from wireviz.DataClasses import Image
return (
f'<tdX sides="BLR"{html_bgcolor_attr(image.bgcolor)}>{html_line_breaks(image.caption)}'
if image and image.caption
else None
)
def html_size_attr(image):
from wireviz.DataClasses import Image
# Return Graphviz HTML attributes to specify minimum or fixed size of a TABLE or TD object
return (
(
(f' width="{image.width}"' if image.width else "")
+ (f' height="{image.height}"' if image.height else "")
+ (' fixedsize="true"' if image.fixedsize else "")
)
if image
else ""
)
def html_line_breaks(inp):
return remove_links(inp).replace("\n", "<br />") if isinstance(inp, str) else inp

View File

@ -1,441 +0,0 @@
# -*- coding: utf-8 -*-
from collections import defaultdict
from dataclasses import dataclass, field
from pathlib import Path
from typing import List, Union
from graphviz import Graph
import wireviz.wv_colors
from wireviz.wv_bom import BomCategory, BomEntry, bom_list, print_bom_table
from wireviz.wv_dataclasses import (
AUTOGENERATED_PREFIX,
AdditionalBomItem,
Arrow,
ArrowWeight,
Cable,
Component,
Connector,
MateComponent,
MatePin,
Metadata,
Options,
Side,
TopLevelGraphicalComponent,
Tweak,
)
from wireviz.wv_graphviz import (
apply_dot_tweaks,
calculate_node_bgcolor,
gv_connector_loops,
gv_edge_mate,
gv_edge_wire,
gv_node_component,
parse_arrow_str,
set_dot_basics,
)
from wireviz.wv_output import (
embed_svg_images,
embed_svg_images_file,
generate_html_output,
)
from wireviz.wv_utils import bom2tsv, open_file_write
@dataclass
class Harness:
metadata: Metadata
options: Options
tweak: Tweak
additional_bom_items: List[AdditionalBomItem] = field(default_factory=list)
def __post_init__(self):
self.connectors = {}
self.cables = {}
self.mates = []
self.bom = defaultdict(dict)
self.additional_bom_items = []
def add_connector(self, designator: str, *args, **kwargs) -> None:
conn = Connector(designator=designator, *args, **kwargs)
self.connectors[designator] = conn
def add_cable(self, designator: str, *args, **kwargs) -> None:
cbl = Cable(designator=designator, *args, **kwargs)
self.cables[designator] = cbl
def add_additional_bom_item(self, item: dict) -> None:
new_item = AdditionalBomItem(**item)
self.additional_bom_items.append(new_item)
def add_mate_pin(self, from_name, from_pin, to_name, to_pin, arrow_str) -> None:
from_con = self.connectors[from_name]
from_pin_obj = from_con.pin_objects[from_pin]
to_con = self.connectors[to_name]
to_pin_obj = to_con.pin_objects[to_pin]
arrow = Arrow(direction=parse_arrow_str(arrow_str), weight=ArrowWeight.SINGLE)
self.mates.append(MatePin(from_pin_obj, to_pin_obj, arrow))
self.connectors[from_name].activate_pin(
from_pin, Side.RIGHT, is_connection=False
)
self.connectors[to_name].activate_pin(to_pin, Side.LEFT, is_connection=False)
def add_mate_component(self, from_name, to_name, arrow_str) -> None:
arrow = Arrow(direction=parse_arrow_str(arrow_str), weight=ArrowWeight.SINGLE)
self.mates.append(MateComponent(from_name, to_name, arrow))
def populate_bom(self): # called once harness creation is complete
# helper lists
all_toplevel_items = (
list(self.connectors.values())
+ list(self.cables.values())
+ self.additional_bom_items
)
all_subitems = [
subitem
for item in all_toplevel_items
for subitem in item.additional_components
]
all_bom_relevant_items = (
list(self.connectors.values())
+ [cable for cable in self.cables.values() if cable.category != "bundle"]
+ [
wire
for cable in self.cables.values()
if cable.category == "bundle"
for wire in cable.wire_objects.values()
]
+ all_subitems
)
# add items to BOM
for item in all_toplevel_items:
self._add_to_internal_bom(item) # nested subitems are also handled
# sort BOM by category first, then alphabetically by description within category
self.bom = dict(
sorted(
self.bom.items(),
key=lambda x: (
x[1]["category"],
x[0].description,
), # x[0] = key, x[1] = value
)
)
# assign BOM IDs
for id, key in enumerate(self.bom.keys(), 1):
self.bom[key]["id"] = id
# set BOM IDs within components (for BOM bubbles)
for item in all_bom_relevant_items:
if item.ignore_in_bom:
continue
if not item.bom_hash in self.bom:
print(f"{item}'s hash' not found in BOM dict.") # Should not happen
continue
item.bom_id = self.bom[item.bom_hash]["id"]
def _add_to_internal_bom(self, item: Component):
if item.ignore_in_bom:
return
def _add(hash, qty, designator=None, category=None):
bom_entry = self.bom[hash]
# initialize missing fields
if not "qty" in bom_entry:
bom_entry["qty"] = 0
if not "designators" in bom_entry:
bom_entry["designators"] = set()
# update fields
bom_entry["qty"] += qty
if designator is None:
designator_list = []
elif isinstance(designator, list):
designator_list = designator
else:
designator_list = [designator]
for des in designator_list:
if des and not des.startswith(AUTOGENERATED_PREFIX):
bom_entry["designators"].add(des)
bom_entry["category"] = category
if isinstance(item, TopLevelGraphicalComponent):
if isinstance(item, Connector):
cat = BomCategory.CONNECTOR
elif isinstance(item, Cable):
if item.category == "bundle":
cat = BomCategory.WIRE
else:
cat = BomCategory.CABLE
else:
cat = ""
if item.category == "bundle":
# wires of a bundle are added as individual BOM entries
for subitem in item.wire_objects.values():
_add(
hash=subitem.bom_hash,
qty=item.qty, # should be 1
designator=item.designator, # inherit from parent item
category=cat,
)
else:
_add(
hash=item.bom_hash,
qty=item.qty, # should be 1
designator=item.designator,
category=cat,
)
if item.additional_components:
item.compute_qty_multipliers()
for comp in item.additional_components:
if comp.ignore_in_bom:
continue
if comp.sum_amounts_in_bom:
if comp.amount_computed:
total_qty = comp.qty_computed * comp.amount_computed.number
else:
total_qty = comp.qty_computed
else:
total_qty = comp.qty_computed
_add(
hash=comp.bom_hash,
designator=item.designator,
qty=total_qty,
# no explicit qty specified; assume qty = 1
# used to simplify add.comp. table within parent node
# e.g. show "10 mm Heatshrink" instead of "1x 10 mm Heatshrink"
category=BomCategory.ADDITIONAL_INSIDE,
)
elif isinstance(item, AdditionalBomItem):
cat = BomCategory.ADDITIONAL_OUTSIDE
_add(
hash=item.bom_hash,
qty=item.qty,
designator=None,
category=cat,
)
else:
raise Exception(f"Unknown type of item:\n{item}")
def connect(
self,
from_name: str,
from_pin: Union[int, str],
via_name: str,
via_wire: Union[int, str],
to_name: str,
to_pin: Union[int, str],
) -> None:
# check from and to connectors
for name, pin in zip([from_name, to_name], [from_pin, to_pin]):
if name is not None and name in self.connectors:
connector = self.connectors[name]
# check if provided name is ambiguous
if pin in connector.pins and pin in connector.pinlabels:
if connector.pins.index(pin) != connector.pinlabels.index(pin):
raise Exception(
f"{name}:{pin} is defined both in pinlabels and pins, "
"for different pins."
)
# TODO: Maybe issue a warning if present in both lists
# but referencing the same pin?
if pin in connector.pinlabels:
if connector.pinlabels.count(pin) > 1:
raise Exception(f"{name}:{pin} is defined more than once.")
index = connector.pinlabels.index(pin)
pin = connector.pins[index] # map pin name to pin number
if name == from_name:
from_pin = pin
if name == to_name:
to_pin = pin
if not pin in connector.pins:
raise Exception(f"{name}:{pin} not found.")
# check via cable
if via_name in self.cables:
cable = self.cables[via_name]
# check if provided name is ambiguous
if via_wire in cable.colors and via_wire in cable.wirelabels:
if cable.colors.index(via_wire) != cable.wirelabels.index(via_wire):
raise Exception(
f"{via_name}:{via_wire} is defined both in colors and wirelabels, "
"for different wires."
)
# TODO: Maybe issue a warning if present in both lists
# but referencing the same wire?
if via_wire in cable.colors:
if cable.colors.count(via_wire) > 1:
raise Exception(
f"{via_name}:{via_wire} is used for more than one wire."
)
# list index starts at 0, wire IDs start at 1
via_wire = cable.colors.index(via_wire) + 1
elif via_wire in cable.wirelabels:
if cable.wirelabels.count(via_wire) > 1:
raise Exception(
f"{via_name}:{via_wire} is used for more than one wire."
)
via_wire = (
cable.wirelabels.index(via_wire) + 1
) # list index starts at 0, wire IDs start at 1
# perform the actual connection
if from_name is not None:
from_con = self.connectors[from_name]
from_pin_obj = from_con.pin_objects[from_pin]
else:
from_pin_obj = None
if to_name is not None:
to_con = self.connectors[to_name]
to_pin_obj = to_con.pin_objects[to_pin]
else:
to_pin_obj = None
self.cables[via_name]._connect(from_pin_obj, via_wire, to_pin_obj)
if from_name in self.connectors:
self.connectors[from_name].activate_pin(from_pin, Side.RIGHT)
if to_name in self.connectors:
self.connectors[to_name].activate_pin(to_pin, Side.LEFT)
def create_graph(self) -> Graph:
dot = Graph()
set_dot_basics(dot, self.options)
for connector in self.connectors.values():
# generate connector node
gv_html = gv_node_component(connector)
gv_html.update_attribs(
bgcolor=calculate_node_bgcolor(connector, self.options)
)
dot.node(
connector.designator,
label=f"<\n{gv_html}\n>",
shape="box",
style="filled",
)
# generate edges for connector loops
if len(connector.loops) > 0:
dot.attr("edge", color="#000000")
loops = gv_connector_loops(connector)
for head, tail in loops:
dot.edge(head, tail)
# determine if there are double- or triple-colored wires in the harness;
# if so, pad single-color wires to make all wires of equal thickness
wire_is_multicolor = [
len(wire.color) > 1
for cable in self.cables.values()
for wire in cable.wire_objects.values()
]
if any(wire_is_multicolor):
wireviz.wv_colors.padding_amount = 3
else:
wireviz.wv_colors.padding_amount = 1
for cable in self.cables.values():
# generate cable node
# TODO: PN info for bundles (per wire)
gv_html = gv_node_component(cable)
gv_html.update_attribs(bgcolor=calculate_node_bgcolor(cable, self.options))
style = "filled,dashed" if cable.category == "bundle" else "filled"
dot.node(
cable.designator,
label=f"<\n{gv_html}\n>",
shape="box",
style=style,
)
# generate wire edges between component nodes and cable nodes
for connection in cable._connections:
color, l1, l2, r1, r2 = gv_edge_wire(self, cable, connection)
dot.attr("edge", color=color)
if not (l1, l2) == (None, None):
dot.edge(l1, l2)
if not (r1, r2) == (None, None):
dot.edge(r1, r2)
for mate in self.mates:
color, dir, code_from, code_to = gv_edge_mate(mate)
dot.attr("edge", color=color, style="dashed", dir=dir)
dot.edge(code_from, code_to)
apply_dot_tweaks(dot, self.tweak)
return dot
# cache for the GraphViz Graph object
# do not access directly, use self.graph instead
_graph = None
@property
def graph(self):
if not self._graph: # no cached graph exists, generate one
self._graph = self.create_graph()
return self._graph # return cached graph
@property
def png(self):
from io import BytesIO
graph = self.graph
data = BytesIO()
data.write(graph.pipe(format="png"))
data.seek(0)
return data.read()
@property
def svg(self):
graph = self.graph
return embed_svg_images(graph.pipe(format="svg").decode("utf-8"), Path.cwd())
def output(
self,
filename: Union[str, Path],
view: bool = False,
cleanup: bool = True,
fmt: tuple = ("html", "png", "svg", "tsv"),
) -> None:
# graphical output
graph = self.graph
for f in fmt:
if f in ("png", "svg", "html"):
if f == "html": # if HTML format is specified,
f = "svg" # generate SVG for embedding into HTML
# SVG file will be renamed/deleted later
_filename = f"{filename}.tmp" if f == "svg" else filename
# TODO: prevent rendering SVG twice when both SVG and HTML are specified
graph.format = f
graph.render(filename=_filename, view=view, cleanup=cleanup)
# embed images into SVG output
if "svg" in fmt or "html" in fmt:
embed_svg_images_file(f"{filename}.tmp.svg")
# GraphViz output
if "gv" in fmt:
graph.save(filename=f"{filename}.gv")
# BOM output
bomlist = bom_list(self.bom)
# bomlist = [[]]
if "tsv" in fmt:
tsv = bom2tsv(bomlist)
open_file_write(f"{filename}.tsv").write(tsv)
if "csv" in fmt:
# TODO: implement CSV output (preferrably using CSV library)
print("CSV output is not yet supported")
# HTML output
if "html" in fmt:
generate_html_output(filename, bomlist, self.metadata, self.options)
# PDF output
if "pdf" in fmt:
# TODO: implement PDF output
print("PDF output is not yet supported")
# delete SVG if not needed
if "html" in fmt and not "svg" in fmt:
# SVG file was just needed to generate HTML
Path(f"{filename}.tmp.svg").unlink()
elif "svg" in fmt:
Path(f"{filename}.tmp.svg").replace(f"{filename}.svg")

View File

@ -1,11 +1,8 @@
# -*- coding: utf-8 -*-
import re
from collections import namedtuple
from pathlib import Path
from typing import List, Optional, Union
NumberAndUnit = namedtuple("NumberAndUnit", "number unit")
from typing import Dict, List
awg_equiv_table = {
"0.09": "28",
@ -73,40 +70,9 @@ def expand(yaml_data):
def get_single_key_and_value(d: dict):
# used for defining a line in a harness' connection set
# E.g. for the YAML input `- X1: 1`
# this function returns a tuple in the form ("X1", "1")
return next(iter(d.items()))
def parse_number_and_unit(
inp: Optional[Union[NumberAndUnit, float, int, str]],
default_unit: Optional[str] = None,
) -> Optional[NumberAndUnit]:
if inp is None:
return None
elif isinstance(inp, NumberAndUnit):
return inp
elif isinstance(inp, float) or isinstance(inp, int):
return NumberAndUnit(inp, default_unit)
elif isinstance(inp, str):
if " " in inp:
num_str, unit = inp.split(" ", 1)
else:
num_str, unit = inp, default_unit
try:
number = int(num_str)
except ValueError: # maybe it is a float?
try:
number = float(num_str)
except ValueError: # neither float nor int
raise Exception(
f"{inp} is not a valid number and unit.\n"
"It must be a number, or a number and unit separated by a space."
)
return NumberAndUnit(number, unit)
k = list(d.keys())[0]
v = d[k]
return (k, v)
def int2tuple(inp):
@ -124,20 +90,16 @@ def flatten2d(inp):
]
def bom2tsv(inp, header=None):
def tuplelist2tsv(inp, header=None):
output = ""
if header is not None:
inp.insert(0, header)
inp = flatten2d(inp)
for row in inp:
row = [item if item is not None else "" for item in row]
output = output + "\t".join(str(remove_links(item)) for item in row) + "\n"
return output
def html_line_breaks(inp):
return remove_links(inp).replace("\n", "<br />") if isinstance(inp, str) else inp
def remove_links(inp):
return (
re.sub(r"<[aA] [^>]*>([^<]*)</[aA]>", r"\1", inp)
@ -151,18 +113,31 @@ def clean_whitespace(inp):
def open_file_read(filename):
"""Open utf-8 encoded text file for reading - remember closing it when finished"""
# TODO: Intelligently determine encoding
return open(filename, "r", encoding="UTF-8")
def open_file_write(filename):
"""Open utf-8 encoded text file for writing - remember closing it when finished"""
return open(filename, "w", encoding="UTF-8")
def open_file_append(filename):
"""Open utf-8 encoded text file for appending - remember closing it when finished"""
return open(filename, "a", encoding="UTF-8")
def file_read_text(filename: str) -> str:
"""Read utf-8 encoded text file, close it, and return the text"""
return Path(filename).read_text(encoding="utf-8")
def file_write_text(filename: str, text: str) -> int:
"""Write utf-8 encoded text file, close it, and return the number of characters written"""
return Path(filename).write_text(text, encoding="utf-8")
def is_arrow(inp):
"""
Matches strings of one or multiple `-` or `=` (but not mixed)
@ -182,17 +157,17 @@ def aspect_ratio(image_src):
try:
from PIL import Image
image = Image.open(image_src)
if image.width > 0 and image.height > 0:
return image.width / image.height
print(f"aspect_ratio(): Invalid image size {image.width} x {image.height}")
with Image.open(image_src) as image:
if image.width > 0 and image.height > 0:
return image.width / image.height
print(f"aspect_ratio(): Invalid image size {image.width} x {image.height}")
# ModuleNotFoundError and FileNotFoundError are the most expected, but all are handled equally.
except Exception as error:
print(f"aspect_ratio(): {type(error).__name__}: {error}")
return 1 # Assume 1:1 when unable to read actual image size
def smart_file_resolve(filename: str, possible_paths: Union[str, List[str]]) -> Path:
def smart_file_resolve(filename: str, possible_paths: (str, List[str])) -> Path:
if not isinstance(possible_paths, List):
possible_paths = [possible_paths]
filename = Path(filename)

View File

@ -1,125 +1,130 @@
# -*- coding: utf-8 -*-
from collections.abc import Iterable
from dataclasses import dataclass, field
from typing import Dict
import re
from pathlib import Path
from typing import Callable, Dict, List, Union
indent_count = 1
from wireviz import APP_NAME, APP_URL, __version__, wv_colors
from wireviz.DataClasses import Metadata, Options
from wireviz.svgembed import data_URI_base64
from wireviz.wv_gv_html import html_line_breaks
from wireviz.wv_helper import (
file_read_text,
file_write_text,
flatten2d,
smart_file_resolve,
)
class Attribs(Dict):
def __repr__(self):
if len(self) == 0:
return ""
def generate_html_output(
filename: Union[str, Path],
bom_list: List[List[str]],
metadata: Metadata,
options: Options,
):
# load HTML template
templatename = metadata.get("template", {}).get("name")
if templatename:
# if relative path to template was provided, check directory of YAML file first, fall back to built-in template directory
templatefile = smart_file_resolve(
f"{templatename}.html",
[Path(filename).parent, Path(__file__).parent / "templates"],
)
else:
# fall back to built-in simple template if no template was provided
templatefile = Path(__file__).parent / "templates/simple.html"
html = []
for k, v in self.items():
if v is not None:
html.append(f' {k}="{v}"')
# else:
# html.append(f" {k}")
return "".join(html)
html = file_read_text(templatefile) # TODO?: Warn if unexpected meta charset?
# embed SVG diagram (only if used)
def svgdata() -> str:
return re.sub( # TODO?: Verify xml encoding="utf-8" in SVG?
"^<[?]xml [^?>]*[?]>[^<]*<!DOCTYPE [^>]*>",
"<!-- XML and DOCTYPE declarations from SVG file removed -->",
file_read_text(f"{filename}.tmp.svg"),
1,
)
@dataclass
class Tag:
contents = None
attribs: Attribs = field(default_factory=Attribs)
flat: bool = None
delete_if_empty: bool = False
# generate BOM table
bom = flatten2d(bom_list)
def __init__(self, contents, flat=None, delete_if_empty=False, **kwargs):
self.contents = contents
self.flat = flat
self.delete_if_empty = delete_if_empty
self.attribs = Attribs({**kwargs})
# generate BOM header (may be at the top or bottom of the table)
bom_header_html = " <tr>\n"
for item in bom[0]:
th_class = f"bom_col_{item.lower()}"
bom_header_html = f'{bom_header_html} <th class="{th_class}">{item}</th>\n'
bom_header_html = f"{bom_header_html} </tr>\n"
def update_attribs(self, **kwargs):
for k, v in kwargs.items():
self.attribs[k] = v
# generate BOM contents
bom_contents = []
for row in bom[1:]:
row_html = " <tr>\n"
for i, item in enumerate(row):
td_class = f"bom_col_{bom[0][i].lower()}"
row_html = f'{row_html} <td class="{td_class}">{item}</td>\n'
row_html = f"{row_html} </tr>\n"
bom_contents.append(row_html)
@property
def tagname(self):
return type(self).__name__.lower()
bom_html = (
'<table class="bom">\n' + bom_header_html + "".join(bom_contents) + "</table>\n"
)
bom_html_reversed = (
'<table class="bom">\n'
+ "".join(list(reversed(bom_contents)))
+ bom_header_html
+ "</table>\n"
)
@property
def auto_flat(self):
if self.flat is not None: # user specified
return self.flat
if not _is_iterable_not_str(self.contents): # catch str, int, float, ...
if not isinstance(self.contents, Tag): # avoid recursion
return not "\n" in str(self.contents) # flatten if single line
# prepare simple replacements
replacements = {
"<!-- %generator% -->": f"{APP_NAME} {__version__} - {APP_URL}",
"<!-- %fontname% -->": options.fontname,
"<!-- %bgcolor% -->": wv_colors.translate_color(options.bgcolor, "hex"),
"<!-- %filename% -->": str(filename),
"<!-- %filename_stem% -->": Path(filename).stem,
"<!-- %bom% -->": bom_html,
"<!-- %bom_reversed% -->": bom_html_reversed,
"<!-- %sheet_current% -->": "1", # TODO: handle multi-page documents
"<!-- %sheet_total% -->": "1", # TODO: handle multi-page documents
"<!-- %template_sheetsize% -->": metadata.get("template", {}).get(
"sheetsize", ""
),
}
@property
def is_empty(self):
return self.get_contents(force_flat=True) == ""
def replacement_if_used(key: str, func: Callable[[], str]) -> None:
"""Append replacement only if used in html."""
if key in html:
replacements[key] = func()
def indent_lines(self, lines, force_flat=False):
if self.auto_flat or force_flat:
return lines
else:
indenter = " " * indent_count
return "\n".join(f"{indenter}{line}" for line in lines.split("\n"))
replacement_if_used("<!-- %diagram% -->", svgdata)
replacement_if_used(
"<!-- %diagram_png_b64% -->", lambda: data_URI_base64(f"{filename}.png")
)
def get_contents(self, force_flat=False):
separator = "" if self.auto_flat or force_flat else "\n"
if _is_iterable_not_str(self.contents):
return separator.join(
[
self.indent_lines(str(c), force_flat)
for c in self.contents
if c is not None
]
)
elif self.contents is None:
return ""
else: # str, int, float, etc.
return self.indent_lines(str(self.contents), force_flat)
# prepare metadata replacements
if metadata:
for item, contents in metadata.items():
if isinstance(contents, (str, int, float)):
replacements[f"<!-- %{item}% -->"] = html_line_breaks(str(contents))
elif isinstance(contents, Dict): # useful for authors, revisions
for index, (category, entry) in enumerate(contents.items()):
if isinstance(entry, Dict):
replacements[f"<!-- %{item}_{index+1}% -->"] = str(category)
for entry_key, entry_value in entry.items():
replacements[
f"<!-- %{item}_{index+1}_{entry_key}% -->"
] = html_line_breaks(str(entry_value))
elif isinstance(entry, (str, int, float)):
pass # TODO?: replacements[f"<!-- %{item}_{category}% -->"] = html_line_breaks(str(entry))
def __repr__(self):
separator = "" if self.auto_flat else "\n"
if self.delete_if_empty and self.is_empty:
return ""
else:
html = [
f"<{self.tagname}{str(self.attribs)}>",
f"{self.get_contents()}",
f"</{self.tagname}>",
]
html_joined = separator.join(html)
return html_joined
# perform replacements
# regex replacement adapted from:
# https://gist.github.com/bgusach/a967e0587d6e01e889fd1d776c5f3729
# longer replacements first, just in case
replacements_sorted = sorted(replacements, key=len, reverse=True)
replacements_escaped = map(re.escape, replacements_sorted)
pattern = re.compile("|".join(replacements_escaped))
html = pattern.sub(lambda match: replacements[match.group(0)], html)
@dataclass
class TagSingleton(Tag):
def __init__(self, **kwargs):
self.attribs = Attribs({**kwargs})
def __repr__(self):
return f"<{self.tagname}{str(self.attribs)} />"
def _is_iterable_not_str(inp):
# str is iterable, but should be treated as not iterable
return isinstance(inp, Iterable) and not isinstance(inp, str)
@dataclass
class Br(TagSingleton):
pass
class Img(TagSingleton):
pass
class Td(Tag):
pass
class Tr(Tag):
pass
class Table(Tag):
pass
file_write_text(f"{filename}.html", html)

View File

@ -1,164 +0,0 @@
# -*- coding: utf-8 -*-
import base64
import re
from pathlib import Path
from typing import Dict, List, Union
import wireviz # for doing wireviz.__file__
from wireviz import APP_NAME, APP_URL, __version__
from wireviz.wv_dataclasses import Metadata, Options
from wireviz.wv_utils import (
html_line_breaks,
open_file_read,
open_file_write,
smart_file_resolve,
)
mime_subtype_replacements = {"jpg": "jpeg", "tif": "tiff"}
def embed_svg_images(svg_in: str, base_path: Union[str, Path] = Path.cwd()) -> str:
images_b64 = {} # cache of base64-encoded images
def image_tag(pre: str, url: str, post: str) -> str:
return f'<image{pre} xlink:href="{url}"{post}>'
def replace(match: re.Match) -> str:
imgurl = match["URL"]
if not imgurl in images_b64: # only encode/cache every unique URL once
imgurl_abs = (Path(base_path) / imgurl).resolve()
image = imgurl_abs.read_bytes()
images_b64[imgurl] = base64.b64encode(image).decode("utf-8")
return image_tag(
match["PRE"] or "",
f"data:image/{get_mime_subtype(imgurl)};base64, {images_b64[imgurl]}",
match["POST"] or "",
)
pattern = re.compile(
image_tag(r"(?P<PRE> [^>]*?)?", r'(?P<URL>[^"]*?)', r"(?P<POST> [^>]*?)?"),
re.IGNORECASE,
)
return pattern.sub(replace, svg_in)
def get_mime_subtype(filename: Union[str, Path]) -> str:
mime_subtype = Path(filename).suffix.lstrip(".").lower()
if mime_subtype in mime_subtype_replacements:
mime_subtype = mime_subtype_replacements[mime_subtype]
return mime_subtype
def embed_svg_images_file(
filename_in: Union[str, Path], overwrite: bool = True
) -> None:
filename_in = Path(filename_in).resolve()
filename_out = filename_in.with_suffix(".b64.svg")
filename_out.write_text(
embed_svg_images(filename_in.read_text(), filename_in.parent)
)
if overwrite:
filename_out.replace(filename_in)
def generate_html_output(
filename: Union[str, Path],
bom: List[List[str]],
metadata: Metadata,
options: Options,
):
# load HTML template
templatename = metadata.get("template", {}).get("name")
if templatename:
# if relative path to template was provided,
# check directory of YAML file first, fall back to built-in template directory
templatefile = smart_file_resolve(
f"{templatename}.html",
[Path(filename).parent, Path(__file__).parent / "templates"],
)
else:
# fall back to built-in simple template if no template was provided
templatefile = Path(wireviz.__file__).parent / "templates/simple.html"
html = open_file_read(templatefile).read()
# embed SVG diagram
with open_file_read(f"{filename}.tmp.svg") as file:
svgdata = re.sub(
"^<[?]xml [^?>]*[?]>[^<]*<!DOCTYPE [^>]*>",
"<!-- XML and DOCTYPE declarations from SVG file removed -->",
file.read(),
1,
)
# generate BOM table
# generate BOM header (may be at the top or bottom of the table)
bom_header_html = " <tr>\n"
for item in bom[0]:
th_class = f"bom_col_{item.lower()}"
bom_header_html = f'{bom_header_html} <th class="{th_class}">{item}</th>\n'
bom_header_html = f"{bom_header_html} </tr>\n"
# generate BOM contents
bom_contents = []
for row in bom[1:]:
row_html = " <tr>\n"
for i, item in enumerate(row):
td_class = f"bom_col_{bom[0][i].lower()}"
row_html = f'{row_html} <td class="{td_class}">{item if item is not None else ""}</td>\n'
row_html = f"{row_html} </tr>\n"
bom_contents.append(row_html)
bom_html = (
'<table class="bom">\n' + bom_header_html + "".join(bom_contents) + "</table>\n"
)
bom_html_reversed = (
'<table class="bom">\n'
+ "".join(list(reversed(bom_contents)))
+ bom_header_html
+ "</table>\n"
)
# prepare simple replacements
replacements = {
"<!-- %generator% -->": f"{APP_NAME} {__version__} - {APP_URL}",
"<!-- %fontname% -->": options.fontname,
"<!-- %bgcolor% -->": options.bgcolor.html,
"<!-- %diagram% -->": svgdata,
"<!-- %bom% -->": bom_html,
"<!-- %bom_reversed% -->": bom_html_reversed,
"<!-- %sheet_current% -->": "1", # TODO: handle multi-page documents
"<!-- %sheet_total% -->": "1", # TODO: handle multi-page documents
}
# prepare metadata replacements
if metadata:
for item, contents in metadata.items():
if isinstance(contents, (str, int, float)):
replacements[f"<!-- %{item}% -->"] = html_line_breaks(str(contents))
elif isinstance(contents, Dict): # useful for authors, revisions
for index, (category, entry) in enumerate(contents.items()):
if isinstance(entry, Dict):
replacements[f"<!-- %{item}_{index+1}% -->"] = str(category)
for entry_key, entry_value in entry.items():
replacements[
f"<!-- %{item}_{index+1}_{entry_key}% -->"
] = html_line_breaks(str(entry_value))
replacements['"sheetsize_default"'] = '"{}"'.format(
metadata.get("template", {}).get("sheetsize", "")
)
# include quotes so no replacement happens within <style> definition
# perform replacements
# regex replacement adapted from:
# https://gist.github.com/bgusach/a967e0587d6e01e889fd1d776c5f3729
# longer replacements first, just in case
replacements_sorted = sorted(replacements, key=len, reverse=True)
replacements_escaped = map(re.escape, replacements_sorted)
pattern = re.compile("|".join(replacements_escaped))
html = pattern.sub(lambda match: replacements[match.group(0)], html)
open_file_write(f"{filename}.html").write(html)

8
tests/.gitignore vendored
View File

@ -1,8 +0,0 @@
*.gv
*.html
*.png
*.svg
*.tsv
*.csv
*.html
*.pdf

View File

@ -1,55 +0,0 @@
connectors:
X1:
type: No additional components
pincount: 6
X2:
type: Contains additional components
pincount: 6
additional_components:
- type: One, no unit
- type: Two kilometers
amount: 2 km
- type: Takes pincount times seven
qty: 7
qty_multiplier: pincount
- type: Takes 10 mm per populated pin
amount: 10 mm
qty_multiplier: populated
- type: Takes number of connections
qty_multiplier: connections
cables:
C1:
type: Containts additional components
wirecount: 4
length: 1.5
color_code: DIN
additional_components:
- type: One
- type: Three centimeters
amount: 3 cm
- type: Takes wirecount times two
qty: 2
qty_multiplier: wirecount
- type: Takes length times three
qty: 3
# adding amount here should cause error because the length already has a unit
qty_multiplier: length
- type: Takes total length times three
qty: 2
# adding amount here should cause error because the length already has a unit
qty_multiplier: total_length
W2:
category: bundle
wirecount: 2
colors: [tomato, skyblue]
connections:
- - X1: [1-3]
- C1: [1-3]
- X2: [1-3]
- - X1: [3, 4]
- W2: [1, 2]
- X2: [3, 4]

View File

@ -1,26 +0,0 @@
connectors:
X1:
pincount: 4
X2:
pincount: 4
X3:
pincount: 2
F:
style: simple
cables:
C1:
wirecount: 4
W2:
wirecount: 2
category: bundle
connections:
-
- X1: [1-4]
- C1: [1-4]
- X2: [1-4]
-
- X3: [1,2]
- W2: [1,2]
- F.

View File

@ -1,32 +0,0 @@
connectors:
X1: # shorthand color codes
color: BK
pincount: 4
pincolors: [RD, YE, GN, BU]
X2: # HTML color codes
color: 0xFFFFFF
pincount: 4
pincolors: [0xFF8000, 0x00FF80, 0x8000FF] # no color for last pin
X3: # HTML color names
color: red
pincount: 4
pincolors: [deeppink, tomato, salmon, indianred]
F:
style: simple
color: BN
cables:
C1:
wirecount: 4
color: GY
colors: [OG, OL, LB, PK]
connections:
-
- X1: [1-4]
- C1: [1-4]
- X2: [1-4]
- <--
- X3: [1-4]
- --
- F.

Some files were not shown because too many files have changed in this diff Show More