@@ -480,7 +480,14 @@ directly in the IDE, independently of ``devtool ide-sdk`` and without calling
configuration that points the IDE directly at the build tool, the
cross-toolchain and the debugger provided by the SDK. ``devtool ide-sdk``
only needs to be re-run later on, e.g. if a recipe's dependencies or its
-build configuration change.
+build configuration change:
+
+.. figure:: figures/devtool-ide-sdk-workflow.*
+ :width: 100%
+ :align: center
+ :class: max-natural-size
+
+ Typical ``devtool ide-sdk`` use case
Let's now take a closer look at how ``devtool ide-sdk`` and the generated IDE
configuration make use of a regular ``bitbake`` environment as a SDK to
@@ -542,7 +549,14 @@ The same architecture also allows the IDE to be configured to use further
tools beyond the build tool, cross-compiler and debugger, e.g.
``clang-tidy``: any such tool just needs to be added as a native tool in
``recipe-sysroot-native``, in the Yocto reproducible way, for
-``devtool ide-sdk`` to be able to point the IDE at it.
+``devtool ide-sdk`` to be able to point the IDE at it:
+
+.. figure:: figures/devtool-ide-sdk-architecture.*
+ :width: 100%
+ :align: center
+ :class: max-natural-size
+
+ Architecture of ``devtool ide-sdk``
To summarize the design described above, for supported build systems
modified mode brings two key benefits:
@@ -722,7 +736,14 @@ This changes the relationship between the SDK, the target device and the
debug symbols compared to the architecture described above: instead of a
separate ``rootfs`` booted by the target and a ``rootfs-dbg`` only
consulted by the debugger on the host, both the target and the debugger
-now use the same NFS-exported ``rootfs-dbg``.
+now use the same NFS-exported ``rootfs-dbg``:
+
+.. figure:: figures/devtool-ide-sdk-nfs-architecture.*
+ :width: 100%
+ :align: center
+ :class: max-natural-size
+
+ Architecture of ``devtool ide-sdk --nfs=rootfs-dbg``
Use ``--nfs-extract-dir=DIR`` to extract below ``DIR/<image-recipe>/``
instead of the default location in the ``devtool`` workspace, for example when
new file mode 100644
@@ -0,0 +1,84 @@
+---
+config:
+ theme: base
+ look: classic
+ htmlLabels: false
+ fontFamily: '"Nimbus Sans", Helvetica, Arial, sans-serif'
+ fontSize: 13.33
+ themeVariables:
+ primaryColor: "#99c1f1"
+ primaryBorderColor: "#62a0ea"
+ primaryTextColor: "#000000"
+ lineColor: "#000000"
+ edgeLabelBackground: "#ffffff"
+ clusterBkg: "#f6f5f4"
+ clusterBorder: "#c0bfbc"
+ titleColor: "#000000"
+ fontSize: 13.33px
+ themeCSS: |
+ .cluster-label tspan { font-weight: bold; }
+ rect { rx: 7.5px; ry: 7.5px; }
+ flowchart:
+ htmlLabels: false
+ useMaxWidth: false
+ curve: basis
+ padding: 10
+ nodeSpacing: 23
+ rankSpacing: 37
+ wrappingWidth: 300
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-architecture.mmd -o devtool-ide-sdk-architecture.svg
+%% && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-architecture.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+ idesdk["devtool ide-sdk<br/>(bitbake tinfoil client)"]
+ ideconfig[["IDE configuration<br/>(e.g. build tool preset,<br/>debugger launch config)"]]
+ ide["IDE (e.g. VSCode)"]
+ srcdir[["S = e.g. workspace/sources/<recipe><br/>(source code, extracted by<br/>devtool modify, edited in the IDE)"]]
+
+ subgraph sdk["SDK (regular bitbake environment)"]
+ subgraph recipe_workdir["Recipe WORKDIR(s)"]
+ native_sysroot[["recipe-sysroot-native<br/>build tool (e.g. CMake)<br/>cross-compiler (e.g. <arch>-gcc)<br/>debugger (e.g. gdb)<br/>more tools..."]]
+ builddir[["B (build directory)<br/>build artifacts"]]
+ sysroot[["recipe-sysroot<br/>(target headers & libs)"]]
+ destdir[["D = image<br/>(non-stripped, relocated rpath,<br/>managed by pseudo)"]]
+ end
+
+ subgraph image_workdir["Image WORKDIR"]
+ rootfsdbg[["rootfs-dbg<br/>(debug symbols of other<br/>recipes' shared libraries)"]]
+ rootfs[["rootfs<br/>(target root filesystem)"]]
+ end
+ end
+
+ subgraph target["Target device"]
+ appbin["Application binary<br/>(running)"]
+ debugserver["debug-server<br/>(e.g. gdbserver)"]
+ end
+
+ idesdk -->|generates| ideconfig
+ idesdk -->|"generates the SDK (via bitbake)"| sdk
+ ideconfig --> ide
+ ideconfig --> native_sysroot
+ ide -->|"calls directly, no bitbake needed"| native_sysroot
+ ide -->|"edit source"| srcdir
+ native_sysroot -->|"reads source from"| srcdir
+ native_sysroot -->|"builds in"| builddir
+ native_sysroot -.->|"--sysroot"| sysroot
+ builddir -->|install| destdir
+ destdir -->|"deploy (--strip)"| appbin
+ native_sysroot -->|"debug symbols:<br/>unstripped binary"| destdir
+ native_sysroot -->|"debug symbols:<br/>shared libraries"| rootfsdbg
+ native_sysroot -->|"remote debug<br/>protocol"| debugserver
+ debugserver -->|"attach / run"| appbin
+ rootfs -->|"installed on target"| target
+
+ style sdk fill:#f6f5f4,stroke:#3584e4,stroke-width:1px
+ style recipe_workdir fill:#ffffff,stroke:#62a0ea,stroke-width:1px
+ style image_workdir fill:#ffffff,stroke:#57e389,stroke-width:1px
+ style target fill:#f6f5f4,stroke:#b5835a,stroke-width:1px
+
+ classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+ classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+ classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+ class idesdk orange;
+ class srcdir green;
new file mode 100644
@@ -0,0 +1 @@
+<svg id="my-svg" width="830.0081176757812" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1614.60791015625" viewBox="4 3.999998092651367 830.0081176757812 1614.60791015625" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-target" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#b5835a !important;stroke-width:1px !important" x="413.88625066848033" y="1346.2819786071777" width="254" height="264.3259963989258"/><g class="cluster-label" transform="translate(498.55812566848033, 1346.2819786071777)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> device</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-sdk" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#3584e4 !important;stroke-width:1px !important" x="189.5945431663876" y="393.9889945983887" width="631.1328125" height="809.6299896240234"/><g class="cluster-label" transform="translate(395.4265744163876, 393.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (regular</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> environment)</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-image_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#57e389 !important;stroke-width:1px !important" x="243.03003423781618" y="1061.2929878234863" width="425.81249999999994" height="118.32599639892578"/><g class="cluster-label" transform="translate(402.24897497267943, 1061.2929878234863)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Image</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-recipe_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#62a0ea !important;stroke-width:1px !important" x="213.5945431663876" y="444.9889945983887" width="583.1328125" height="467.64099884033203"/><g class="cluster-label" transform="translate(440.9265744163876, 444.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR(s)</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M244.59787277948288,60.66299819946289L244.59787277948288,73.59193038759742Q244.59787277948288,80.66299819946289 237.5268049676174,80.66299819946289L164.67805517468167,80.66299819946289Q157.6069873628162,80.66299819946289 157.6069873628162,87.73406601132837L157.6069873628162,154.6629981994629" id="my-svg-L_idesdk_ideconfig_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_ideconfig_0" data-points="W3sieCI6MjQ0LjU5Nzg3Mjc3OTQ4Mjg4LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoyNDQuNTk3ODcyNzc5NDgyODgsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjE1Ny42MDY5ODczNjI4MTYyLCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoxNTcuNjA2OTg3MzYyODE2MiwieSI6MTU4LjY2Mjk5ODE5OTQ2Mjl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M291.65516444614957,60.66299819946289L291.65516444614957,73.59193038759742Q291.65516444614957,80.66299819946289 298.72623225801505,80.66299819946289L480.55107952118885,80.66299819946289Q487.62214733305433,80.66299819946289 487.62214733305433,87.73406601132837L487.62214733305433,109.66299819946289L487.62214733305433,268.9889945983887L487.62214733305433,334.9889945983887L487.62214733305433,356.9179267865232Q487.62214733305433,363.9889945983887 480.55107952118885,363.9889945983887L398.0968609782531,363.9889945983887Q391.02579316638764,363.9889945983887 391.02579316638764,371.06006241025415L391.02579316638764,389.9889945983887" id="my-svg-L_idesdk_sdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_sdk_0" data-points="W3sieCI6MjkxLjY1NTE2NDQ0NjE0OTU3LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoyOTEuNjU1MTY0NDQ2MTQ5NTcsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjQ4Ny42MjIxNDczMzMwNTQzMywieSI6ODAuNjYyOTk4MTk5NDYyODl9LHsieCI6NDg3LjYyMjE0NzMzMzA1NDMzLCJ5IjoxMDkuNjYyOTk4MTk5NDYyODl9LHsieCI6NDg3LjYyMjE0NzMzMzA1NDMzLCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4Ijo0ODcuNjIyMTQ3MzMzMDU0MzMsInkiOjMzNC45ODg5OTQ1OTgzODg3fSx7IngiOjQ4Ny42MjIxNDczMzMwNTQzMywieSI6MzYzLjk4ODk5NDU5ODM4ODd9LHsieCI6MzkxLjAyNTc5MzE2NjM4NzY0LCJ5IjozNjMuOTg4OTk0NTk4Mzg4N30seyJ4IjozOTEuMDI1NzkzMTY2Mzg3NjQsInkiOjM5My45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M132.7606331961495,211.98899459838867L132.7606331961495,225.79912294660298Q132.7606331961495,231.98899459838867 126.57076154436382,231.98899459838867L126.57076154436382,231.98899459838867Q120.38088989257811,231.98899459838867 120.38088989257811,238.17886625017437L120.38088989257811,247.98899459838867" id="my-svg-L_ideconfig_ide_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_ide_0" data-points="W3sieCI6MTMyLjc2MDYzMzE5NjE0OTUsInkiOjIxMS45ODg5OTQ1OTgzODg2N30seyJ4IjoxMzIuNzYwNjMzMTk2MTQ5NSwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjEyMC4zODA4ODk4OTI1NzgxMSwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjEyMC4zODA4ODk4OTI1NzgxMSwieSI6MjUxLjk4ODk5NDU5ODM4ODY3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M182.45334152948283,211.98899459838867L182.45334152948283,224.9179267865232Q182.45334152948283,231.98899459838867 189.5244093413483,231.98899459838867L371.95472535452217,231.98899459838867Q379.02579316638764,231.98899459838867 379.02579316638764,239.06006241025415L379.02579316638764,268.9889945983887L379.02579316638764,334.9889945983887L379.02579316638764,383.9889945983887L379.02579316638753,434.9889945983887L379.02579316638753,481.9889945983887" id="my-svg-L_ideconfig_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_native_sysroot_0" data-points="W3sieCI6MTgyLjQ1MzM0MTUyOTQ4MjgzLCJ5IjoyMTEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MTgyLjQ1MzM0MTUyOTQ4MjgzLCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6Mzc5LjAyNTc5MzE2NjM4NzY0LCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6Mzc5LjAyNTc5MzE2NjM4NzY0LCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4IjozNzkuMDI1NzkzMTY2Mzg3NjQsInkiOjMzNC45ODg5OTQ1OTgzODg3fSx7IngiOjM3OS4wMjU3OTMxNjYzODc2NCwieSI6MzgzLjk4ODk5NDU5ODM4ODd9LHsieCI6Mzc5LjAyNTc5MzE2NjM4NzUzLCJ5Ijo0MzQuOTg4OTk0NTk4Mzg4N30seyJ4IjozNzkuMDI1NzkzMTY2Mzg3NTMsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M143.71422322591144,285.9889945983887L143.71422322591144,298.9179267865232Q143.71422322591144,305.9889945983887 150.78529103777691,305.9889945983887L231.73904455095072,305.9889945983887Q238.8101123628162,305.9889945983887 238.8101123628162,313.06006241025415L238.8101123628162,356.9179267865232Q238.8101123628162,363.9889945983887 245.88118017468167,363.9889945983887L306.6391003545221,363.9889945983887Q313.7101681663876,363.9889945983887 313.7101681663876,371.06006241025415L313.7101681663876,383.9889945983887L313.7101681663876,434.9889945983887L313.7101681663875,481.9889945983887" id="my-svg-L_ide_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_native_sysroot_0" data-points="W3sieCI6MTQzLjcxNDIyMzIyNTkxMTQ0LCJ5IjoyODUuOTg4OTk0NTk4Mzg4N30seyJ4IjoxNDMuNzE0MjIzMjI1OTExNDQsInkiOjMwNS45ODg5OTQ1OTgzODg3fSx7IngiOjIzOC44MTAxMTIzNjI4MTYyLCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4IjoyMzguODEwMTEyMzYyODE2MiwieSI6MzYzLjk4ODk5NDU5ODM4ODd9LHsieCI6MzEzLjcxMDE2ODE2NjM4NzYsInkiOjM2My45ODg5OTQ1OTgzODg3fSx7IngiOjMxMy43MTAxNjgxNjYzODc2LCJ5IjozODMuOTg4OTk0NTk4Mzg4N30seyJ4IjozMTMuNzEwMTY4MTY2Mzg3NiwieSI6NDM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6MzEzLjcxMDE2ODE2NjM4NzUsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M97.04755655924478,285.9889945983887L97.04755655924478,298.9179267865232Q97.04755655924478,305.9889945983887 89.9764887473793,305.9889945983887L73.03955071039597,305.9889945983887Q65.9684828985305,305.9889945983887 65.9684828985305,313.06006241025415L65.9684828985305,334.9889945983887L65.9684828985305,1279.950481414795L65.9684828985305,1309.2109107953122Q65.9684828985305,1316.2819786071777 73.03955071039597,1316.2819786071777L89.9764887473793,1316.2819786071777Q97.04755655924478,1316.2819786071777 97.04755655924478,1323.3530464190433L97.04755655924478,1342.2819786071777" id="my-svg-L_ide_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_srcdir_0" data-points="W3sieCI6OTcuMDQ3NTU2NTU5MjQ0NzgsInkiOjI4NS45ODg5OTQ1OTgzODg3fSx7IngiOjk3LjA0NzU1NjU1OTI0NDc4LCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjozMzQuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjoxMjc5Ljk1MDQ4MTQxNDc5NX0seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6OTcuMDQ3NTU2NTU5MjQ0NzgsInkiOjEzMTYuMjgxOTc4NjA3MTc3N30seyJ4Ijo5Ny4wNDc1NTY1NTkyNDQ3OCwieSI6MTM0Ni4yODE5Nzg2MDcxNzc3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M276.3869538806733,568.6409950256348L276.3869538806733,591.5699272137692Q276.3869538806733,598.6409950256348 269.3158860688078,598.6409950256348L261.4466377639673,598.6409950256348Q254.37556995210184,598.6409950256348 254.37556995210184,605.7120628375003L254.37556995210184,922.6299934387207L254.37556995210184,945.5589256268552Q254.37556995210184,952.6299934387207 247.30450214023637,952.6299934387207L214.35299937111017,952.6299934387207Q207.2819315592447,952.6299934387207 207.2819315592447,959.7010612505861L207.28193155924475,1223.618984222412L207.28193155924475,1236.5479164105466Q207.28193155924475,1243.618984222412 200.21086374737928,1243.618984222412L197.73581187111023,1243.618984222412Q190.66474405924475,1243.618984222412 190.66474405924475,1250.6900520342776L190.66474405924475,1309.2109107953122Q190.66474405924475,1316.2819786071777 183.59367624737928,1316.2819786071777L179.16618093035504,1316.2819786071777Q172.09511311848956,1316.2819786071777 172.09511311848956,1323.3530464190433L172.09511311848956,1342.2819786071777" id="my-svg-L_native_sysroot_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_srcdir_0" data-points="W3sieCI6Mjc2LjM4Njk1Mzg4MDY3MzMsInkiOjU2OC42NDA5OTUwMjU2MzQ4fSx7IngiOjI3Ni4zODY5NTM4ODA2NzMzLCJ5Ijo1OTguNjQwOTk1MDI1NjM0OH0seyJ4IjoyNTQuMzc1NTY5OTUyMTAxODQsInkiOjU5OC42NDA5OTUwMjU2MzQ4fSx7IngiOjI1NC4zNzU1Njk5NTIxMDE4NCwieSI6OTIyLjYyOTk5MzQzODcyMDd9LHsieCI6MjU0LjM3NTU2OTk1MjEwMTg0LCJ5Ijo5NTIuNjI5OTkzNDM4NzIwN30seyJ4IjoyMDcuMjgxOTMxNTU5MjQ0NywieSI6OTUyLjYyOTk5MzQzODcyMDd9LHsieCI6MjA3LjI4MTkzMTU1OTI0NDc1LCJ5IjoxMjIzLjYxODk4NDIyMjQxMn0seyJ4IjoyMDcuMjgxOTMxNTU5MjQ0NzUsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjE5MC42NjQ3NDQwNTkyNDQ3NSwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6MTkwLjY2NDc0NDA1OTI0NDc1LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6MTcyLjA5NTExMzExODQ4OTU2LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6MTcyLjA5NTExMzExODQ4OTU2LCJ5IjoxMzQ2LjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M360.36418602353046,568.6409950256348L360.36418602353046,615.5699272137692Q360.36418602353046,622.6409950256348 367.43525383539594,622.6409950256348L382.2969128545222,622.6409950256348Q389.36798066638767,622.6409950256348 389.36798066638767,629.7120628375003L389.36798066638767,690.6409950256348" id="my-svg-L_native_sysroot_builddir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_builddir_0" data-points="W3sieCI6MzYwLjM2NDE4NjAyMzUzMDQ2LCJ5Ijo1NjguNjQwOTk1MDI1NjM0OH0seyJ4IjozNjAuMzY0MTg2MDIzNTMwNDYsInkiOjYyMi42NDA5OTUwMjU2MzQ4fSx7IngiOjM4OS4zNjc5ODA2NjYzODc2NywieSI6NjIyLjY0MDk5NTAyNTYzNDh9LHsieCI6Mzg5LjM2Nzk4MDY2NjM4NzY3LCJ5Ijo2OTQuNjQwOTk1MDI1NjM0OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M388.3565967378162,568.6409950256348L388.3565967378162,603.5699272137692Q388.3565967378162,610.6409950256348 395.42766454968165,610.6409950256348L583.7266003545221,610.6409950256348Q590.7976681663877,610.6409950256348 590.7976681663877,617.7120628375003L590.7976681663877,690.6409950256348" id="my-svg-L_native_sysroot_sysroot_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_sysroot_0" data-points="W3sieCI6Mzg4LjM1NjU5NjczNzgxNjIsInkiOjU2OC42NDA5OTUwMjU2MzQ4fSx7IngiOjM4OC4zNTY1OTY3Mzc4MTYyLCJ5Ijo2MTAuNjQwOTk1MDI1NjM0OH0seyJ4Ijo1OTAuNzk3NjY4MTY2Mzg3NywieSI6NjEwLjY0MDk5NTAyNTYzNDh9LHsieCI6NTkwLjc5NzY2ODE2NjM4NzcsInkiOjY5NC42NDA5OTUwMjU2MzQ4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M389.36798066638767,733.3039786038389L389.36798066638767,733.3039970397949L389.36798066638767,798.2329292279294Q389.36798066638767,805.3039970397949 396.43904847825314,805.3039970397949L543.6286836878555,805.3039970397949Q550.699751499721,805.3039970397949 550.699751499721,812.3750648516605L550.699751499721,831.3039970397949" id="my-svg-L_builddir_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_builddir_destdir_0" data-points="W3sieCI6Mzg5LjM2Nzk4MDY2NjM4NzY3LCJ5Ijo3MzMuMzAzOTc4NjAzODM4OX0seyJ4IjozODkuMzY3OTgwNjY2Mzg3NjcsInkiOjczMy4zMDM5OTcwMzk3OTQ5fSx7IngiOjM4OS4zNjc5ODA2NjYzODc2NywieSI6ODA1LjMwMzk5NzAzOTc5NDl9LHsieCI6NTUwLjY5OTc1MTQ5OTcyMSwieSI6ODA1LjMwMzk5NzAzOTc5NDl9LHsieCI6NTUwLjY5OTc1MTQ5OTcyMSwieSI6ODM1LjMwMzk5NzAzOTc5NDl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M581.0476681663876,888.6299934387207L581.0476681663876,922.6299934387207L581.0476681663876,945.5589256268552Q581.0476681663876,952.6299934387207 588.118735978253,952.6299934387207L673.7714664259506,952.6299934387207Q680.8425342378162,952.6299934387207 680.8425342378162,959.7010612505862L680.8425342378162,1223.618984222412L680.8425342378162,1242.5041236877441Q680.8425342378162,1243.618984222412 681.9573947724841,1243.618984222412L681.9573947724841,1243.618984222412Q683.0722553071521,1243.618984222412 683.0722553071521,1244.73384475708L683.0722553071521,1309.2109107953122Q683.0722553071521,1316.2819786071777 676.0011874952866,1316.2819786071777L616.9573184803459,1316.2819786071777Q609.8862506684803,1316.2819786071777 609.8862506684803,1323.3530464190433L609.8862506684802,1336.2819786071777L609.8862506684802,1500.873908994775Q609.8862506684802,1507.9449768066406 602.8151828566147,1507.9449768066406L594.0239851470124,1507.9449768066406Q586.9529173351469,1507.9449768066406 586.9529173351469,1515.0160446185062L586.9529173351469,1533.9449768066406" id="my-svg-L_destdir_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_destdir_appbin_0" data-points="W3sieCI6NTgxLjA0NzY2ODE2NjM4NzYsInkiOjg4OC42Mjk5OTM0Mzg3MjA3fSx7IngiOjU4MS4wNDc2NjgxNjYzODc2LCJ5Ijo5MjIuNjI5OTkzNDM4NzIwN30seyJ4Ijo1ODEuMDQ3NjY4MTY2Mzg3NiwieSI6OTUyLjYyOTk5MzQzODcyMDd9LHsieCI6NjgwLjg0MjUzNDIzNzgxNjIsInkiOjk1Mi42Mjk5OTM0Mzg3MjA3fSx7IngiOjY4MC44NDI1MzQyMzc4MTYyLCJ5IjoxMjIzLjYxODk4NDIyMjQxMn0seyJ4Ijo2ODAuODQyNTM0MjM3ODE2MiwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6NjgzLjA3MjI1NTMwNzE1MjEsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjY4My4wNzIyNTUzMDcxNTIxLCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6NjA5Ljg4NjI1MDY2ODQ4MDMsInkiOjEzMTYuMjgxOTc4NjA3MTc3N30seyJ4Ijo2MDkuODg2MjUwNjY4NDgwMiwieSI6MTMzNi4yODE5Nzg2MDcxNzc3fSx7IngiOjYwOS44ODYyNTA2Njg0ODAyLCJ5IjoxNTA3Ljk0NDk3NjgwNjY0MDZ9LHsieCI6NTg2Ljk1MjkxNzMzNTE0NjksInkiOjE1MDcuOTQ0OTc2ODA2NjQwNn0seyJ4Ijo1ODYuOTUyOTE3MzM1MTQ2OSwieSI6MTUzNy45NDQ5NzY4MDY2NDA2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M416.3490074521019,568.6409950256348L416.3490074521019,591.5699272137692Q416.3490074521019,598.6409950256348 423.42007526396736,598.6409950256348L765.6562878545221,598.6409950256348Q772.7273556663877,598.6409950256348 772.7273556663877,605.7120628375003L772.7273556663877,798.2329292279294Q772.7273556663877,805.3039970397949 765.6562878545221,805.3039970397949L618.4666526449198,805.3039970397949Q611.3955848330543,805.3039970397949 611.3955848330543,812.3750648516605L611.3955848330543,831.3039970397949" id="my-svg-L_native_sysroot_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_destdir_0" data-points="W3sieCI6NDE2LjM0OTAwNzQ1MjEwMTksInkiOjU2OC42NDA5OTUwMjU2MzQ4fSx7IngiOjQxNi4zNDkwMDc0NTIxMDE5LCJ5Ijo1OTguNjQwOTk1MDI1NjM0OH0seyJ4Ijo3NzIuNzI3MzU1NjY2Mzg3NywieSI6NTk4LjY0MDk5NTAyNTYzNDh9LHsieCI6NzcyLjcyNzM1NTY2NjM4NzcsInkiOjgwNS4zMDM5OTcwMzk3OTQ5fSx7IngiOjYxMS4zOTU1ODQ4MzMwNTQzLCJ5Ijo4MDUuMzAzOTk3MDM5Nzk0OX0seyJ4Ijo2MTEuMzk1NTg0ODMzMDU0MywieSI6ODM1LjMwMzk5NzAzOTc5NDl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M332.37177530924475,568.6409950256348L332.37177530924475,615.5699272137692Q332.37177530924475,622.6409950256348 325.3007074973793,622.6409950256348L310.4390484782531,622.6409950256348Q303.3679806663876,622.6409950256348 303.3679806663876,629.7120628375003L303.3679806663876,922.6299934387207L303.3679806663876,945.5589256268552Q303.3679806663876,952.6299934387207 310.4390484782531,952.6299934387207L345.13865392595073,952.6299934387207Q352.2097217378162,952.6299934387207 352.2097217378162,959.7010612505862L352.2097217378162,1051.2929878234863L352.2097217378162,1098.2929878234863" id="my-svg-L_native_sysroot_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_rootfsdbg_0" data-points="W3sieCI6MzMyLjM3MTc3NTMwOTI0NDc1LCJ5Ijo1NjguNjQwOTk1MDI1NjM0OH0seyJ4IjozMzIuMzcxNzc1MzA5MjQ0NzUsInkiOjYyMi42NDA5OTUwMjU2MzQ4fSx7IngiOjMwMy4zNjc5ODA2NjYzODc2LCJ5Ijo2MjIuNjQwOTk1MDI1NjM0OH0seyJ4IjozMDMuMzY3OTgwNjY2Mzg3NiwieSI6OTIyLjYyOTk5MzQzODcyMDd9LHsieCI6MzAzLjM2Nzk4MDY2NjM4NzYsInkiOjk1Mi42Mjk5OTM0Mzg3MjA3fSx7IngiOjM1Mi4yMDk3MjE3Mzc4MTYyLCJ5Ijo5NTIuNjI5OTkzNDM4NzIwN30seyJ4IjozNTIuMjA5NzIxNzM3ODE2MiwieSI6MTA1MS4yOTI5ODc4MjM0ODYzfSx7IngiOjM1Mi4yMDk3MjE3Mzc4MTYyLCJ5IjoxMTAyLjI5Mjk4NzgyMzQ4NjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M304.379364594959,568.6409950256348L304.379364594959,603.5699272137692Q304.379364594959,610.6409950256348 297.3082967830935,610.6409950256348L285.94284312111023,610.6409950256348Q278.87177530924475,610.6409950256348 278.87177530924475,617.7120628375003L278.87177530924475,922.6299934387207L278.87177530924475,957.5589256268552Q278.87177530924475,964.6299934387207 271.8007074973793,964.6299934387207L237.10110204968163,964.6299934387207Q230.03003423781615,964.6299934387207 230.03003423781615,971.7010612505861L230.0300342378162,1223.618984222412L230.0300342378162,1236.5479164105466Q230.0300342378162,1243.618984222412 237.10110204968169,1243.618984222412L356.2115453066241,1243.618984222412Q363.28261311848956,1243.618984222412 363.28261311848956,1250.6900520342776L363.28261311848956,1309.2109107953122Q363.28261311848956,1316.2819786071777 370.35368093035504,1316.2819786071777L510.81518285661485,1316.2819786071777Q517.8862506684803,1316.2819786071777 517.8862506684803,1323.3530464190433L517.8862506684802,1336.2819786071777L517.8862506684802,1383.2819786071777" id="my-svg-L_native_sysroot_debugserver_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_debugserver_0" data-points="W3sieCI6MzA0LjM3OTM2NDU5NDk1OSwieSI6NTY4LjY0MDk5NTAyNTYzNDh9LHsieCI6MzA0LjM3OTM2NDU5NDk1OSwieSI6NjEwLjY0MDk5NTAyNTYzNDh9LHsieCI6Mjc4Ljg3MTc3NTMwOTI0NDc1LCJ5Ijo2MTAuNjQwOTk1MDI1NjM0OH0seyJ4IjoyNzguODcxNzc1MzA5MjQ0NzUsInkiOjkyMi42Mjk5OTM0Mzg3MjA3fSx7IngiOjI3OC44NzE3NzUzMDkyNDQ3NSwieSI6OTY0LjYyOTk5MzQzODcyMDd9LHsieCI6MjMwLjAzMDAzNDIzNzgxNjE1LCJ5Ijo5NjQuNjI5OTkzNDM4NzIwN30seyJ4IjoyMzAuMDMwMDM0MjM3ODE2MiwieSI6MTIyMy42MTg5ODQyMjI0MTJ9LHsieCI6MjMwLjAzMDAzNDIzNzgxNjIsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjM2My4yODI2MTMxMTg0ODk1NiwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6MzYzLjI4MjYxMzExODQ4OTU2LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6NTE3Ljg4NjI1MDY2ODQ4MDMsInkiOjEzMTYuMjgxOTc4NjA3MTc3N30seyJ4Ijo1MTcuODg2MjUwNjY4NDgwMiwieSI6MTMzNi4yODE5Nzg2MDcxNzc3fSx7IngiOjUxNy44ODYyNTA2Njg0ODAyLCJ5IjoxMzg3LjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M517.8862506684803,1435.9449768066406L517.8862506684803,1500.873908994775Q517.8862506684803,1507.9449768066406 524.9573184803457,1507.9449768066406L533.7485161899481,1507.9449768066406Q540.8195840018136,1507.9449768066406 540.8195840018136,1515.0160446185062L540.8195840018136,1533.9449768066406" id="my-svg-L_debugserver_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debugserver_appbin_0" data-points="W3sieCI6NTE3Ljg4NjI1MDY2ODQ4MDMsInkiOjE0MzUuOTQ0OTc2ODA2NjQwNn0seyJ4Ijo1MTcuODg2MjUwNjY4NDgwMywieSI6MTUwNy45NDQ5NzY4MDY2NDA2fSx7IngiOjU0MC44MTk1ODQwMDE4MTM2LCJ5IjoxNTA3Ljk0NDk3NjgwNjY0MDZ9LHsieCI6NTQwLjgxOTU4NDAwMTgxMzYsInkiOjE1MzcuOTQ0OTc2ODA2NjQwNn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M566.1159717378155,1155.6189823150635L566.1159717378162,1155.618984222412L566.1159717378162,1189.618984222412L566.1159717378162,1223.618984222412L566.1159717378162,1242.5041236877441Q566.1159717378162,1243.618984222412 565.0011112031482,1243.618984222412L565.0011112031482,1243.618984222412Q563.8862506684802,1243.618984222412 563.8862506684802,1244.73384475708L563.8862506684803,1342.2819786071777" id="my-svg-L_rootfs_target_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_rootfs_target_0" data-points="W3sieCI6NTY2LjExNTk3MTczNzgxNTUsInkiOjExNTUuNjE4OTgyMzE1MDYzNX0seyJ4Ijo1NjYuMTE1OTcxNzM3ODE2MiwieSI6MTE1NS42MTg5ODQyMjI0MTJ9LHsieCI6NTY2LjExNTk3MTczNzgxNjIsInkiOjExODkuNjE4OTg0MjIyNDEyfSx7IngiOjU2Ni4xMTU5NzE3Mzc4MTYyLCJ5IjoxMjIzLjYxODk4NDIyMjQxMn0seyJ4Ijo1NjYuMTE1OTcxNzM3ODE2MiwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6NTYzLjg4NjI1MDY2ODQ4MDIsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjU2My44ODYyNTA2Njg0ODAzLCJ5IjoxMzQ2LjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(157.1566928681873, 109.66299819946289)"><g class="label" data-id="L_idesdk_ideconfig_0" transform="translate(-0.16689300537109375, -10.329999923706055)"><g><rect class="background" style="" x="-31.3828125" y="1.3299999237060547" width="63.09941101074219" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(487.15339733305433, 185.32599639892578)"><g class="label" data-id="L_idesdk_sdk_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.03125" y="1.3299999237060547" width="192.0625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (via</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(238.5366748628162, 334.9889945983887)"><g class="label" data-id="L_ide_native_sysroot_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.2265625" y="1.3299999237060547" width="192.453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">calls</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directly,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(65.5856703985305, 803.8039894104004)"><g class="label" data-id="L_ide_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-34.6171875" y="1.3299999237060547" width="69.234375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(190.2350565592447, 1279.950481414795)"><g class="label" data-id="L_native_sysroot_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-55.5703125" y="1.3299999237060547" width="111.140625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reads</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(389.32110566638767, 661.6409950256348)"><g class="label" data-id="L_native_sysroot_builddir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-26.453125" y="1.3299999237060547" width="52.90625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">builds</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(590.5282513573056, 661.6409950256348)"><g class="label" data-id="L_native_sysroot_sysroot_0" transform="translate(-0.14464569091796875, -10.329999923706055)"><g><rect class="background" style="" x="-27.5859375" y="1.3299999237060547" width="55.46116638183594" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--sysroot</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(388.8885189964658, 766.3039970397949)"><g class="label" data-id="L_builddir_destdir_0" transform="translate(-0.020538330078125, -10.329999923706055)"><g><rect class="background" style="" x="-19" y="1.3299999237060547" width="38.04107666015625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">install</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(682.7988178071521, 1279.950481414795)"><g class="label" data-id="L_destdir_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-44.7265625" y="1.3299999237060547" width="89.453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deploy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (--strip)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(772.6177288963681, 713.9724960327148)"><g class="label" data-id="L_native_sysroot_destdir_0" transform="translate(-0.16381072998046875, -17.661499977111816)"><g><rect class="background" style="" x="-53.2265625" y="1.3299999237060547" width="106.78074645996094" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(351.7175342378162, 1010.9614906311035)"><g class="label" data-id="L_native_sysroot_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-48.5078125" y="1.3299999237060547" width="97.015625" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(363.2044881184895, 1279.950481414795)"><g class="label" data-id="L_native_sysroot_debugserver_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-42.921875" y="1.3299999237060547" width="85.84375" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">remote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">protocol</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(517.8081256684803, 1468.9449768066406)"><g class="label" data-id="L_debugserver_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-35.421875" y="1.3299999237060547" width="70.84375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">attach</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(563.4792529878162, 1279.950481414795)"><g class="label" data-id="L_rootfs_target_0" transform="translate(-0.1398773193359375, -10.329999923706055)"><g><rect class="background" style="" x="-54.453125" y="1.3299999237060547" width="109.18600463867188" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">installed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> on</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> target</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-idesdk-0" data-look="classic" transform="translate(268.1265186128162, 36.331499099731445)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80.5859375" y="-24.33150005340576" width="161.171875" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tinfoil</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> client)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ideconfig-1" data-look="classic" transform="translate(157.6069873628162, 185.32599639892578)"><polygon points="0,0 153.078125,0 153.078125,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 161.078125,0 161.078125,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-76.5390625,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> configuration</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> preset,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ide-2" data-look="classic" transform="translate(120.38088989257811, 268.9889945983887)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> VSCode)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-srcdir-3" data-look="classic" transform="translate(134.5713348388672, 1372.9449768066406)"><polygon points="0,0 229.14266967773438,0 229.14266967773438,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 237.14266967773438,0 237.14266967773438,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-114.57133483886719,26.66299819946289)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">S</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace/sources/<recipe></tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> edited</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-native_sysroot-4" data-look="classic" transform="translate(346.3679806663876, 527.3149948120117)"><polygon points="0,0 201.546875,0 201.546875,-82.6520004272461 0,-82.6520004272461 0,0 -8,0 209.546875,0 209.546875,-82.6520004272461 -8,-82.6520004272461 -8,0" class="label-container" transform="translate(-100.7734375,41.32600021362305)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -36.32600021362305)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot-native</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CMake)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">cross-compiler</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> <arch>-gcc)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdb)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">more</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tools...</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-builddir-5" data-look="classic" transform="translate(389.36798066638767, 713.9724960327148)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directory)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> artifacts</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-sysroot-6" data-look="classic" transform="translate(590.7976681663877, 713.9724960327148)"><polygon points="0,0 140.859375,0 140.859375,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 148.859375,0 148.859375,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-70.4296875,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> headers</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libs)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-destdir-7" data-look="classic" transform="translate(581.0476681663877, 861.9669952392578)"><polygon points="0,0 187.6875,0 187.6875,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 195.6875,0 195.6875,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-93.84375,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">D</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(non-stripped,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> relocated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rpath,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">managed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pseudo)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfsdbg-8" data-look="classic" transform="translate(352.2097217378162, 1128.9559860229492)"><polygon points="0,0 154.359375,0 154.359375,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 162.359375,0 162.359375,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-77.1796875,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> other</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipes'</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfs-9" data-look="classic" transform="translate(566.1159717378162, 1136.287483215332)"><polygon points="0,0 141.453125,0 141.453125,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 149.453125,0 149.453125,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-70.7265625,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> root</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> filesystem)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-appbin-10" data-look="classic" transform="translate(563.8862506684803, 1562.276475906372)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(running)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-debugserver-11" data-look="classic" transform="translate(517.8862506684803, 1411.6134777069092)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug-server</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,89 @@
+---
+config:
+ theme: base
+ look: classic
+ htmlLabels: false
+ fontFamily: '"Nimbus Sans", Helvetica, Arial, sans-serif'
+ fontSize: 13.33
+ themeVariables:
+ primaryColor: "#99c1f1"
+ primaryBorderColor: "#62a0ea"
+ primaryTextColor: "#000000"
+ lineColor: "#000000"
+ edgeLabelBackground: "#ffffff"
+ clusterBkg: "#f6f5f4"
+ clusterBorder: "#c0bfbc"
+ titleColor: "#000000"
+ fontSize: 13.33px
+ themeCSS: |
+ .cluster-label tspan { font-weight: bold; }
+ rect { rx: 7.5px; ry: 7.5px; }
+ flowchart:
+ htmlLabels: false
+ useMaxWidth: false
+ curve: basis
+ padding: 10
+ nodeSpacing: 23
+ rankSpacing: 37
+ wrappingWidth: 300
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-nfs-architecture.mmd -o devtool-ide-sdk-nfs-architecture.svg
+%% && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-nfs-architecture.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+ idesdk["devtool ide-sdk --nfs=rootfs-dbg<br/>(bitbake tinfoil client)"]
+ ideconfig[["IDE configuration<br/>(e.g. build tool preset,<br/>debugger launch config)"]]
+ ide["IDE (e.g. VSCode)"]
+ srcdir[["S = e.g. workspace/sources/<recipe><br/>(source code, extracted by<br/>devtool modify, edited in the IDE)"]]
+
+ subgraph sdk["SDK (regular bitbake environment)"]
+ subgraph recipe_workdir["Recipe WORKDIR(s)"]
+ native_sysroot[["recipe-sysroot-native<br/>build tool (e.g. CMake)<br/>cross-compiler (e.g. <arch>-gcc)<br/>debugger (e.g. gdb)"]]
+ builddir[["B (build directory)<br/>build artifacts"]]
+ sysroot[["recipe-sysroot<br/>(target headers & libs)"]]
+ destdir[["D = image<br/>(non-stripped, relocated rpath,<br/>managed by pseudo)"]]
+ end
+
+ subgraph image_workdir["Image WORKDIR"]
+ rootfsdbg_src[["rootfs-dbg<br/>(stripped binaries + debug symbols<br/>of every recipe, combined by<br/>image-combined-dbg)"]]
+ end
+ end
+
+ subgraph nfs["NFS export"]
+ rootfsdbg[["<workspace>/nfs-exports/<br/><image-recipe>/rootfs-dbg<br/>(copy, kept in sync by<br/>devtool deploy-target;<br/>persists across debug sessions)"]]
+ end
+
+ subgraph target["Target device"]
+ appbin["Application binary<br/>(running)"]
+ debugserver["debug-server<br/>(e.g. gdbserver)"]
+ end
+
+ idesdk -->|generates| ideconfig
+ idesdk -->|"generates the SDK (via bitbake)"| sdk
+ rootfsdbg_src -->|"deployed, extracted<br/>(--nfs=rootfs-dbg)"| rootfsdbg
+ ideconfig --> ide
+ ideconfig --> native_sysroot
+ ide -->|"calls directly, no bitbake needed"| native_sysroot
+ ide -->|"edit source"| srcdir
+ native_sysroot -->|"reads source from"| srcdir
+ native_sysroot -->|"builds in"| builddir
+ native_sysroot -.->|"--sysroot"| sysroot
+ builddir -->|install| destdir
+ destdir -->|"devtool deploy-target<br/>(direct write, no SSH)"| rootfsdbg
+ native_sysroot -->|"debug symbols:<br/>unstripped binary"| destdir
+ native_sysroot -->|"debug symbols:<br/>other recipes'<br/>shared libraries"| rootfsdbg
+ native_sysroot -->|"remote debug<br/>protocol"| debugserver
+ debugserver -->|"attach / run"| appbin
+ target -->|"booted from<br/>(NFS-mounted<br/>root filesystem)"| rootfsdbg
+
+ style sdk fill:#f6f5f4,stroke:#3584e4,stroke-width:1px
+ style recipe_workdir fill:#ffffff,stroke:#62a0ea,stroke-width:1px
+ style image_workdir fill:#ffffff,stroke:#57e389,stroke-width:1px
+ style nfs fill:#f6f5f4,stroke:#c061cb,stroke-width:1px
+ style target fill:#f6f5f4,stroke:#b5835a,stroke-width:1px
+
+ classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+ classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+ classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+ class idesdk orange;
+ class srcdir,rootfsdbg green;
new file mode 100644
@@ -0,0 +1 @@
+<svg id="my-svg" width="1323.3128662109375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1621.9339599609375" viewBox="4 3.999998092651367 1323.3128662109375 1621.9339599609375" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-target" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#b5835a !important;stroke-width:1px !important" x="446.1582946777344" y="1084.6299858093262" width="208" height="228.32599639892578"/><g class="cluster-label" transform="translate(507.8301696777344, 1084.6299858093262)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> device</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-nfs" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c061cb !important;stroke-width:1px !important" x="517.1856384277344" y="1470.2819786071777" width="263.625" height="147.6520004272461"/><g class="cluster-label" transform="translate(613.4903259277344, 1470.2819786071777)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">NFS</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> export</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-sdk" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#3584e4 !important;stroke-width:1px !important" x="303.8333943684897" y="393.9889945983887" width="1015.4794464111329" height="527.9779968261719"/><g class="cluster-label" transform="translate(701.8387425740561, 393.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (regular</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> environment)</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-image_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#57e389 !important;stroke-width:1px !important" x="1014.2469533284507" y="764.9779930114746" width="281.0658874511719" height="132.98899841308594"/><g class="cluster-label" transform="translate(1101.0925877889, 764.9779930114746)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Image</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-recipe_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#62a0ea !important;stroke-width:1px !important" x="327.8333943684896" y="444.9889945983887" width="583.1328125" height="452.9779968261719"/><g class="cluster-label" transform="translate(555.1654256184896, 444.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR(s)</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M356.96698811848955,60.66299819946289L356.96698811848955,73.59193038759742Q356.96698811848955,80.66299819946289 349.8959203066241,80.66299819946289L288.07321218035503,80.66299819946289Q281.00214436848955,80.66299819946289 281.00214436848955,87.73406601132837L281.00214436848955,154.6629981994629" id="my-svg-L_idesdk_ideconfig_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_ideconfig_0" data-points="W3sieCI6MzU2Ljk2Njk4ODExODQ4OTU1LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjozNTYuOTY2OTg4MTE4NDg5NTUsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjI4MS4wMDIxNDQzNjg0ODk1NSwieSI6ODAuNjYyOTk4MTk5NDYyODl9LHsieCI6MjgxLjAwMjE0NDM2ODQ4OTU1LCJ5IjoxNTguNjYyOTk4MTk5NDYyOX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M426.07636311848955,60.66299819946289L426.07636311848955,73.59193038759742Q426.07636311848955,80.66299819946289 433.14743093035503,80.66299819946289L594.7899307232908,80.66299819946289Q601.8609985351562,80.66299819946289 601.8609985351562,87.73406601132837L601.8609985351562,109.66299819946289L601.8609985351562,268.9889945983887L601.8609985351562,334.9889945983887L601.8609985351562,356.9179267865232Q601.8609985351562,363.9889945983887 594.7899307232908,363.9889945983887L512.3357121803551,363.9889945983887Q505.2646443684896,363.9889945983887 505.2646443684896,371.06006241025415L505.2646443684896,389.9889945983887" id="my-svg-L_idesdk_sdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_sdk_0" data-points="W3sieCI6NDI2LjA3NjM2MzExODQ4OTU1LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4Ijo0MjYuMDc2MzYzMTE4NDg5NTUsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjYwMS44NjA5OTg1MzUxNTYyLCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4Ijo2MDEuODYwOTk4NTM1MTU2MiwieSI6MTA5LjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjYwMS44NjA5OTg1MzUxNTYyLCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4Ijo2MDEuODYwOTk4NTM1MTU2MiwieSI6MzM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6NjAxLjg2MDk5ODUzNTE1NjIsInkiOjM2My45ODg5OTQ1OTgzODg3fSx7IngiOjUwNS4yNjQ2NDQzNjg0ODk2LCJ5IjozNjMuOTg4OTk0NTk4Mzg4N30seyJ4Ijo1MDUuMjY0NjQ0MzY4NDg5NiwieSI6MzkzLjk4ODk5NDU5ODM4ODd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1154.7798970540366,873.9669914245605L1154.7798970540366,907.9669914245605L1154.7798970540366,941.9669914245605L1154.7798970540366,954.895923612695Q1154.7798970540366,961.9669914245605 1147.708829242171,961.9669914245605L1102.5658950823733,961.9669914245605Q1095.4948272705078,961.9669914245605 1095.4948272705078,969.0380592364261L1095.4948272705078,1018.2984886169434L1095.4948272705078,1376.6189804077148L1095.4948272705078,1433.2109107953122Q1095.4948272705078,1440.2819786071777 1088.4237594586423,1440.2819786071777L714.2767062396001,1440.2819786071777Q707.2056384277346,1440.2819786071777 707.2056384277346,1447.3530464190433L707.2056384277346,1460.2819786071777L707.2056384277346,1507.2819786071777" id="my-svg-L_rootfsdbg_src_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_rootfsdbg_src_rootfsdbg_0" data-points="W3sieCI6MTE1NC43Nzk4OTcwNTQwMzY2LCJ5Ijo4NzMuOTY2OTkxNDI0NTYwNX0seyJ4IjoxMTU0Ljc3OTg5NzA1NDAzNjYsInkiOjkwNy45NjY5OTE0MjQ1NjA1fSx7IngiOjExNTQuNzc5ODk3MDU0MDM2NiwieSI6OTQxLjk2Njk5MTQyNDU2MDV9LHsieCI6MTE1NC43Nzk4OTcwNTQwMzY2LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4IjoxMDk1LjQ5NDgyNzI3MDUwNzgsInkiOjk2MS45NjY5OTE0MjQ1NjA1fSx7IngiOjEwOTUuNDk0ODI3MjcwNTA3OCwieSI6MTAxOC4yOTg0ODg2MTY5NDM0fSx7IngiOjEwOTUuNDk0ODI3MjcwNTA3OCwieSI6MTM3Ni42MTg5ODA0MDc3MTQ4fSx7IngiOjEwOTUuNDk0ODI3MjcwNTA3OCwieSI6MTQ0MC4yODE5Nzg2MDcxNzc3fSx7IngiOjcwNy4yMDU2Mzg0Mjc3MzQ2LCJ5IjoxNDQwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NzA3LjIwNTYzODQyNzczNDYsInkiOjE0NjAuMjgxOTc4NjA3MTc3N30seyJ4Ijo3MDcuMjA1NjM4NDI3NzM0NiwieSI6MTUxMS4yODE5Nzg2MDcxNzc3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M256.1557902018229,211.98899459838867L256.1557902018229,230.37727584838865Q256.1557902018229,231.98899459838867 254.5440714518229,231.98899459838867L254.5440714518229,231.98899459838867Q252.93235270182288,231.98899459838867 252.93235270182288,233.6007133483887L252.93235270182288,247.98899459838867" id="my-svg-L_ideconfig_ide_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_ide_0" data-points="W3sieCI6MjU2LjE1NTc5MDIwMTgyMjksInkiOjIxMS45ODg5OTQ1OTgzODg2N30seyJ4IjoyNTYuMTU1NzkwMjAxODIyOSwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjI1Mi45MzIzNTI3MDE4MjI4OCwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjI1Mi45MzIzNTI3MDE4MjI4OCwieSI6MjUxLjk4ODk5NDU5ODM4ODY3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M305.84849853515624,211.98899459838867L305.84849853515624,224.9179267865232Q305.84849853515624,231.98899459838867 312.9195663470217,231.98899459838867L486.19357655662407,231.98899459838867Q493.26464436848954,231.98899459838867 493.26464436848954,239.06006241025415L493.26464436848954,268.9889945983887L493.26464436848954,334.9889945983887L493.2646443684896,383.9889945983887L493.2646443684896,434.9889945983887L493.2646443684896,481.9889945983887" id="my-svg-L_ideconfig_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_native_sysroot_0" data-points="W3sieCI6MzA1Ljg0ODQ5ODUzNTE1NjI0LCJ5IjoyMTEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MzA1Ljg0ODQ5ODUzNTE1NjI0LCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6NDkzLjI2NDY0NDM2ODQ4OTU0LCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6NDkzLjI2NDY0NDM2ODQ4OTU0LCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4Ijo0OTMuMjY0NjQ0MzY4NDg5NTQsInkiOjMzNC45ODg5OTQ1OTgzODg3fSx7IngiOjQ5My4yNjQ2NDQzNjg0ODk2LCJ5IjozODMuOTg4OTk0NTk4Mzg4N30seyJ4Ijo0OTMuMjY0NjQ0MzY4NDg5NiwieSI6NDM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6NDkzLjI2NDY0NDM2ODQ4OTYsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M276.2656860351562,285.9889945983887L276.2656860351562,298.9179267865232Q276.2656860351562,305.9889945983887 283.33675384702167,305.9889945983887L355.1342015566241,305.9889945983887Q362.20526936848955,305.9889945983887 362.20526936848955,313.06006241025415L362.20526936848955,356.9179267865232Q362.20526936848955,363.9889945983887 369.27633718035503,363.9889945983887L420.87795155662417,363.9889945983887Q427.94901936848964,363.9889945983887 427.94901936848964,371.06006241025415L427.94901936848964,383.9889945983887L427.94901936848964,434.9889945983887L427.9490193684896,481.9889945983887" id="my-svg-L_ide_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_native_sysroot_0" data-points="W3sieCI6Mjc2LjI2NTY4NjAzNTE1NjIsInkiOjI4NS45ODg5OTQ1OTgzODg3fSx7IngiOjI3Ni4yNjU2ODYwMzUxNTYyLCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4IjozNjIuMjA1MjY5MzY4NDg5NTUsInkiOjMwNS45ODg5OTQ1OTgzODg3fSx7IngiOjM2Mi4yMDUyNjkzNjg0ODk1NSwieSI6MzYzLjk4ODk5NDU5ODM4ODd9LHsieCI6NDI3Ljk0OTAxOTM2ODQ4OTY0LCJ5IjozNjMuOTg4OTk0NTk4Mzg4N30seyJ4Ijo0MjcuOTQ5MDE5MzY4NDg5NjQsInkiOjM4My45ODg5OTQ1OTgzODg3fSx7IngiOjQyNy45NDkwMTkzNjg0ODk2NCwieSI6NDM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6NDI3Ljk0OTAxOTM2ODQ4OTYsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M229.59901936848954,285.9889945983887L229.59901936848954,298.9179267865232Q229.59901936848954,305.9889945983887 222.52795155662406,305.9889945983887L104.11862437111026,305.9889945983887Q97.04755655924478,305.9889945983887 97.04755655924478,313.06006241025415L97.04755655924478,334.9889945983887L97.04755655924478,1018.2984886169434L97.04755655924478,1080.6299858093262" id="my-svg-L_ide_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_srcdir_0" data-points="W3sieCI6MjI5LjU5OTAxOTM2ODQ4OTU0LCJ5IjoyODUuOTg4OTk0NTk4Mzg4N30seyJ4IjoyMjkuNTk5MDE5MzY4NDg5NTQsInkiOjMwNS45ODg5OTQ1OTgzODg3fSx7IngiOjk3LjA0NzU1NjU1OTI0NDc4LCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4Ijo5Ny4wNDc1NTY1NTkyNDQ3OCwieSI6MzM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6OTcuMDQ3NTU2NTU5MjQ0NzgsInkiOjEwMTguMjk4NDg4NjE2OTQzNH0seyJ4Ijo5Ny4wNDc1NTY1NTkyNDQ3OCwieSI6MTA4NC42Mjk5ODU4MDkzMjYyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M390.62580508277534,553.9779930114746L390.62580508277534,576.9069251996091Q390.62580508277534,583.9779930114746 383.55473727090987,583.9779930114746L375.6854889660694,583.9779930114746Q368.6144211542039,583.9779930114746 368.6144211542039,591.0490608233401L368.6144211542039,907.9669914245605L368.6144211542039,941.9669914245605L368.6144211542039,954.895923612695Q368.6144211542039,961.9669914245605 361.54335334233843,961.9669914245605L179.16618093035504,961.9669914245605Q172.09511311848956,961.9669914245605 172.09511311848956,969.0380592364261L172.09511311848956,1080.6299858093262" id="my-svg-L_native_sysroot_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_srcdir_0" data-points="W3sieCI6MzkwLjYyNTgwNTA4Mjc3NTM0LCJ5Ijo1NTMuOTc3OTkzMDExNDc0Nn0seyJ4IjozOTAuNjI1ODA1MDgyNzc1MzQsInkiOjU4My45Nzc5OTMwMTE0NzQ2fSx7IngiOjM2OC42MTQ0MjExNTQyMDM5LCJ5Ijo1ODMuOTc3OTkzMDExNDc0Nn0seyJ4IjozNjguNjE0NDIxMTU0MjAzOSwieSI6OTA3Ljk2Njk5MTQyNDU2MDV9LHsieCI6MzY4LjYxNDQyMTE1NDIwMzksInkiOjk0MS45NjY5OTE0MjQ1NjA1fSx7IngiOjM2OC42MTQ0MjExNTQyMDM5LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4IjoxNzIuMDk1MTEzMTE4NDg5NTYsInkiOjk2MS45NjY5OTE0MjQ1NjA1fSx7IngiOjE3Mi4wOTUxMTMxMTg0ODk1NiwieSI6MTA4NC42Mjk5ODU4MDkzMjYyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M474.6030372256325,553.9779930114746L474.6030372256325,600.9069251996091Q474.6030372256325,607.9779930114746 481.67410503749795,607.9779930114746L496.53576405662415,607.9779930114746Q503.6068318684896,607.9779930114746 503.6068318684896,615.0490608233401L503.6068318684896,675.9779930114746" id="my-svg-L_native_sysroot_builddir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_builddir_0" data-points="W3sieCI6NDc0LjYwMzAzNzIyNTYzMjUsInkiOjU1My45Nzc5OTMwMTE0NzQ2fSx7IngiOjQ3NC42MDMwMzcyMjU2MzI1LCJ5Ijo2MDcuOTc3OTkzMDExNDc0Nn0seyJ4Ijo1MDMuNjA2ODMxODY4NDg5NiwieSI6NjA3Ljk3Nzk5MzAxMTQ3NDZ9LHsieCI6NTAzLjYwNjgzMTg2ODQ4OTYsInkiOjY3OS45Nzc5OTMwMTE0NzQ2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M502.5954479399182,553.9779930114746L502.5954479399182,588.9069251996091Q502.5954479399182,595.9779930114746 509.66651575178366,595.9779930114746L697.9654515566242,595.9779930114746Q705.0365193684896,595.9779930114746 705.0365193684896,603.0490608233401L705.0365193684896,675.9779930114746" id="my-svg-L_native_sysroot_sysroot_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_sysroot_0" data-points="W3sieCI6NTAyLjU5NTQ0NzkzOTkxODIsInkiOjU1My45Nzc5OTMwMTE0NzQ2fSx7IngiOjUwMi41OTU0NDc5Mzk5MTgyLCJ5Ijo1OTUuOTc3OTkzMDExNDc0Nn0seyJ4Ijo3MDUuMDM2NTE5MzY4NDg5NiwieSI6NTk1Ljk3Nzk5MzAxMTQ3NDZ9LHsieCI6NzA1LjAzNjUxOTM2ODQ4OTYsInkiOjY3OS45Nzc5OTMwMTE0NzQ2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M503.6068318684896,718.6409765896788L503.6068318684896,718.6409950256348L503.6068318684896,783.5699272137692Q503.6068318684896,790.6409950256348 510.6778996803551,790.6409950256348L657.8675348899574,790.6409950256348Q664.9386027018229,790.6409950256348 664.9386027018229,797.7120628375003L664.9386027018229,816.6409950256348" id="my-svg-L_builddir_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_builddir_destdir_0" data-points="W3sieCI6NTAzLjYwNjgzMTg2ODQ4OTYsInkiOjcxOC42NDA5NzY1ODk2Nzg4fSx7IngiOjUwMy42MDY4MzE4Njg0ODk2LCJ5Ijo3MTguNjQwOTk1MDI1NjM0OH0seyJ4Ijo1MDMuNjA2ODMxODY4NDg5NiwieSI6NzkwLjY0MDk5NTAyNTYzNDh9LHsieCI6NjY0LjkzODYwMjcwMTgyMjksInkiOjc5MC42NDA5OTUwMjU2MzQ4fSx7IngiOjY2NC45Mzg2MDI3MDE4MjI5LCJ5Ijo4MjAuNjQwOTk1MDI1NjM0OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M695.2865193684896,873.9669914245605L695.2865193684896,907.9669914245605L695.2865193684896,941.9669914245605L695.2865193684896,954.895923612695Q695.2865193684896,961.9669914245605 702.357587180355,961.9669914245605L786.4270706158688,961.9669914245605Q793.4981384277344,961.9669914245605 793.4981384277344,969.0380592364261L793.4981384277344,1018.2984886169434L793.4981384277344,1376.6189804077148L793.4981384277344,1413.2109107953122Q793.4981384277344,1420.2819786071777 786.4270706158688,1420.2819786071777L675.4717062395998,1420.2819786071777Q668.4006384277344,1420.2819786071777 668.4006384277344,1427.3530464190433L668.4006384277344,1460.2819786071777L668.4006384277345,1507.2819786071777" id="my-svg-L_destdir_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_destdir_rootfsdbg_0" data-points="W3sieCI6Njk1LjI4NjUxOTM2ODQ4OTYsInkiOjg3My45NjY5OTE0MjQ1NjA1fSx7IngiOjY5NS4yODY1MTkzNjg0ODk2LCJ5Ijo5MDcuOTY2OTkxNDI0NTYwNX0seyJ4Ijo2OTUuMjg2NTE5MzY4NDg5NiwieSI6OTQxLjk2Njk5MTQyNDU2MDV9LHsieCI6Njk1LjI4NjUxOTM2ODQ4OTYsInkiOjk2MS45NjY5OTE0MjQ1NjA1fSx7IngiOjc5My40OTgxMzg0Mjc3MzQ0LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4Ijo3OTMuNDk4MTM4NDI3NzM0NCwieSI6MTAxOC4yOTg0ODg2MTY5NDM0fSx7IngiOjc5My40OTgxMzg0Mjc3MzQ0LCJ5IjoxMzc2LjYxODk4MDQwNzcxNDh9LHsieCI6NzkzLjQ5ODEzODQyNzczNDQsInkiOjE0MjAuMjgxOTc4NjA3MTc3N30seyJ4Ijo2NjguNDAwNjM4NDI3NzM0NCwieSI6MTQyMC4yODE5Nzg2MDcxNzc3fSx7IngiOjY2OC40MDA2Mzg0Mjc3MzQ0LCJ5IjoxNDYwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NjY4LjQwMDYzODQyNzczNDUsInkiOjE1MTEuMjgxOTc4NjA3MTc3N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M530.587858654204,553.9779930114746L530.587858654204,576.9069251996091Q530.587858654204,583.9779930114746 537.6589264660695,583.9779930114746L879.8951390566242,583.9779930114746Q886.9662068684896,583.9779930114746 886.9662068684896,591.0490608233401L886.9662068684896,783.5699272137692Q886.9662068684896,790.6409950256348 879.8951390566242,790.6409950256348L732.7055038470219,790.6409950256348Q725.6344360351563,790.6409950256348 725.6344360351563,797.7120628375003L725.6344360351563,816.6409950256348" id="my-svg-L_native_sysroot_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_destdir_0" data-points="W3sieCI6NTMwLjU4Nzg1ODY1NDIwNCwieSI6NTUzLjk3Nzk5MzAxMTQ3NDZ9LHsieCI6NTMwLjU4Nzg1ODY1NDIwNCwieSI6NTgzLjk3Nzk5MzAxMTQ3NDZ9LHsieCI6ODg2Ljk2NjIwNjg2ODQ4OTYsInkiOjU4My45Nzc5OTMwMTE0NzQ2fSx7IngiOjg4Ni45NjYyMDY4Njg0ODk2LCJ5Ijo3OTAuNjQwOTk1MDI1NjM0OH0seyJ4Ijo3MjUuNjM0NDM2MDM1MTU2MywieSI6NzkwLjY0MDk5NTAyNTYzNDh9LHsieCI6NzI1LjYzNDQzNjAzNTE1NjMsInkiOjgyMC42NDA5OTUwMjU2MzQ4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M418.61821579706105,553.9779930114746L418.61821579706105,588.9069251996091Q418.61821579706105,595.9779930114746 411.5471479851956,595.9779930114746L400.1816943232123,595.9779930114746Q393.1106265113468,595.9779930114746 393.1106265113468,603.0490608233401L393.1106265113468,907.9669914245605L393.1106265113468,941.9669914245605L393.1106265113468,974.895923612695Q393.1106265113468,981.9669914245605 386.03955869948135,981.9669914245605L353.21373748959985,981.9669914245605Q346.1426696777344,981.9669914245605 346.1426696777344,989.0380592364261L346.1426696777344,1018.2984886169434L346.1426696777344,1376.6189804077148L346.1426696777344,1433.2109107953122Q346.1426696777344,1440.2819786071777 353.21373748959985,1440.2819786071777L583.7195706158689,1440.2819786071777Q590.7906384277344,1440.2819786071777 590.7906384277344,1447.3530464190433L590.7906384277345,1460.2819786071777L590.7906384277345,1507.2819786071777" id="my-svg-L_native_sysroot_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_rootfsdbg_0" data-points="W3sieCI6NDE4LjYxODIxNTc5NzA2MTA1LCJ5Ijo1NTMuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0MTguNjE4MjE1Nzk3MDYxMDUsInkiOjU5NS45Nzc5OTMwMTE0NzQ2fSx7IngiOjM5My4xMTA2MjY1MTEzNDY4LCJ5Ijo1OTUuOTc3OTkzMDExNDc0Nn0seyJ4IjozOTMuMTEwNjI2NTExMzQ2OCwieSI6OTA3Ljk2Njk5MTQyNDU2MDV9LHsieCI6MzkzLjExMDYyNjUxMTM0NjgsInkiOjk0MS45NjY5OTE0MjQ1NjA1fSx7IngiOjM5My4xMTA2MjY1MTEzNDY4LCJ5Ijo5ODEuOTY2OTkxNDI0NTYwNX0seyJ4IjozNDYuMTQyNjY5Njc3NzM0NCwieSI6OTgxLjk2Njk5MTQyNDU2MDV9LHsieCI6MzQ2LjE0MjY2OTY3NzczNDQsInkiOjEwMTguMjk4NDg4NjE2OTQzNH0seyJ4IjozNDYuMTQyNjY5Njc3NzM0NCwieSI6MTM3Ni42MTg5ODA0MDc3MTQ4fSx7IngiOjM0Ni4xNDI2Njk2Nzc3MzQ0LCJ5IjoxNDQwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NTkwLjc5MDYzODQyNzczNDQsInkiOjE0NDAuMjgxOTc4NjA3MTc3N30seyJ4Ijo1OTAuNzkwNjM4NDI3NzM0NSwieSI6MTQ2MC4yODE5Nzg2MDcxNzc3fSx7IngiOjU5MC43OTA2Mzg0Mjc3MzQ1LCJ5IjoxNTExLjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M446.61062651134677,553.9779930114746L446.61062651134677,600.9069251996091Q446.61062651134677,607.9779930114746 439.5395586994813,607.9779930114746L424.6778996803551,607.9779930114746Q417.6068318684896,607.9779930114746 417.6068318684896,615.0490608233401L417.6068318684896,907.9669914245605L417.6068318684896,941.9669914245605L417.6068318684896,954.895923612695Q417.6068318684896,961.9669914245605 424.6778996803551,961.9669914245605L543.0872268658688,961.9669914245605Q550.1582946777344,961.9669914245605 550.1582946777344,969.0380592364261L550.1582946777344,1074.6299858093262L550.1582946777344,1121.6299858093262" id="my-svg-L_native_sysroot_debugserver_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_debugserver_0" data-points="W3sieCI6NDQ2LjYxMDYyNjUxMTM0Njc3LCJ5Ijo1NTMuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0NDYuNjEwNjI2NTExMzQ2NzcsInkiOjYwNy45Nzc5OTMwMTE0NzQ2fSx7IngiOjQxNy42MDY4MzE4Njg0ODk2LCJ5Ijo2MDcuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0MTcuNjA2ODMxODY4NDg5NiwieSI6OTA3Ljk2Njk5MTQyNDU2MDV9LHsieCI6NDE3LjYwNjgzMTg2ODQ4OTYsInkiOjk0MS45NjY5OTE0MjQ1NjA1fSx7IngiOjQxNy42MDY4MzE4Njg0ODk2LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4Ijo1NTAuMTU4Mjk0Njc3NzM0NCwieSI6OTYxLjk2Njk5MTQyNDU2MDV9LHsieCI6NTUwLjE1ODI5NDY3NzczNDQsInkiOjEwNzQuNjI5OTg1ODA5MzI2Mn0seyJ4Ijo1NTAuMTU4Mjk0Njc3NzM0NCwieSI6MTEyNS42Mjk5ODU4MDkzMjYyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M550.1582946777344,1174.292984008789L550.1582946777344,1236.292984008789" id="my-svg-L_debugserver_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debugserver_appbin_0" data-points="W3sieCI6NTUwLjE1ODI5NDY3NzczNDQsInkiOjExNzQuMjkyOTg0MDA4Nzg5fSx7IngiOjU1MC4xNTgyOTQ2Nzc3MzQ0LCJ5IjoxMjQwLjI5Mjk4NDAwODc4OX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M470.1582946777344,1312.955982208252L470.1582946777344,1413.2109107953122Q470.1582946777344,1420.2819786071777 477.22936248959985,1420.2819786071777L622.5245706158689,1420.2819786071777Q629.5956384277345,1420.2819786071777 629.5956384277345,1427.3530464190433L629.5956384277345,1460.2819786071777L629.5956384277345,1507.2819786071777" id="my-svg-L_target_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_target_rootfsdbg_0" data-points="W3sieCI6NDcwLjE1ODI5NDY3NzczNDQsInkiOjEzMTIuOTU1OTgyMjA4MjUyfSx7IngiOjQ3MC4xNTgyOTQ2Nzc3MzQ0LCJ5IjoxNDIwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NjI5LjU5NTYzODQyNzczNDUsInkiOjE0MjAuMjgxOTc4NjA3MTc3N30seyJ4Ijo2MjkuNTk1NjM4NDI3NzM0NSwieSI6MTQ2MC4yODE5Nzg2MDcxNzc3fSx7IngiOjYyOS41OTU2Mzg0Mjc3MzQ1LCJ5IjoxNTExLjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(280.55184987386065, 109.66299819946289)"><g class="label" data-id="L_idesdk_ideconfig_0" transform="translate(-0.16689300537109375, -10.329999923706055)"><g><rect class="background" style="" x="-31.3828125" y="1.3299999237060547" width="63.09941101074219" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(601.3922485351562, 185.32599639892578)"><g class="label" data-id="L_idesdk_sdk_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.03125" y="1.3299999237060547" width="192.0625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (via</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(1095.4557647705078, 1193.792984008789)"><g class="label" data-id="L_rootfsdbg_src_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-59.4609375" y="1.3299999237060547" width="118.921875" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deployed,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(--nfs=rootfs-dbg)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(361.93183186848955, 334.9889945983887)"><g class="label" data-id="L_ide_native_sysroot_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.2265625" y="1.3299999237060547" width="192.453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">calls</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directly,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(97.04755655924478, 662.9779930114746)"><g class="label" data-id="L_ide_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-34.6171875" y="1.3299999237060547" width="69.234375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(172.09511311848956, 1018.2984886169434)"><g class="label" data-id="L_native_sysroot_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-55.5703125" y="1.3299999237060547" width="111.140625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reads</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(503.5599568684896, 646.9779930114746)"><g class="label" data-id="L_native_sysroot_builddir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-26.453125" y="1.3299999237060547" width="52.90625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">builds</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(704.7671025594076, 646.9779930114746)"><g class="label" data-id="L_native_sysroot_sysroot_0" transform="translate(-0.14464569091796875, -10.329999923706055)"><g><rect class="background" style="" x="-27.5859375" y="1.3299999237060547" width="55.46116638183594" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--sysroot</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(503.12737019856775, 751.6409950256348)"><g class="label" data-id="L_builddir_destdir_0" transform="translate(-0.020538330078125, -10.329999923706055)"><g><rect class="background" style="" x="-19" y="1.3299999237060547" width="38.04107666015625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">install</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(793.4981384277344, 1193.792984008789)"><g class="label" data-id="L_destdir_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-65" y="1.3299999237060547" width="130" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> deploy-target</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(direct</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> write,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SSH)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(886.8565800984701, 699.3094940185547)"><g class="label" data-id="L_native_sysroot_destdir_0" transform="translate(-0.16381072998046875, -17.661499977111816)"><g><rect class="background" style="" x="-53.2265625" y="1.3299999237060547" width="106.78074645996094" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(345.6504821777344, 1193.792984008789)"><g class="label" data-id="L_native_sysroot_rootfsdbg_0" transform="translate(0, -24.992998123168945)"><g><rect class="background" style="" x="-48.5078125" y="1.3299999237060547" width="97.015625" height="47.32599639892578"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">other</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipes'</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(550.0801696777344, 1018.2984886169434)"><g class="label" data-id="L_native_sysroot_debugserver_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-42.921875" y="1.3299999237060547" width="85.84375" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">remote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">protocol</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(550.0801696777344, 1207.292984008789)"><g class="label" data-id="L_debugserver_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-35.421875" y="1.3299999237060547" width="70.84375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">attach</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(469.8926696777344, 1376.6189804077148)"><g class="label" data-id="L_target_rootfsdbg_0" transform="translate(0, -24.992998123168945)"><g><rect class="background" style="" x="-46.734375" y="1.3299999237060547" width="93.46875" height="47.32599639892578"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">booted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(NFS-mounted</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">root</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> filesystem)</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-idesdk-0" data-look="classic" transform="translate(391.52167561848955, 36.331499099731445)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-113.6640625" y="-24.33150005340576" width="227.328125" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --nfs=rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tinfoil</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> client)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ideconfig-1" data-look="classic" transform="translate(281.00214436848955, 185.32599639892578)"><polygon points="0,0 153.078125,0 153.078125,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 161.078125,0 161.078125,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-76.5390625,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> configuration</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> preset,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ide-2" data-look="classic" transform="translate(252.93235270182288, 268.9889945983887)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> VSCode)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-srcdir-3" data-look="classic" transform="translate(134.5713348388672, 1111.292984008789)"><polygon points="0,0 229.14266967773438,0 229.14266967773438,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 237.14266967773438,0 237.14266967773438,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-114.57133483886719,26.66299819946289)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">S</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace/sources/<recipe></tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> edited</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-native_sysroot-4" data-look="classic" transform="translate(460.6068318684896, 519.9834938049316)"><polygon points="0,0 201.546875,0 201.546875,-67.98899841308594 0,-67.98899841308594 0,0 -8,0 209.546875,0 209.546875,-67.98899841308594 -8,-67.98899841308594 -8,0" class="label-container" transform="translate(-100.7734375,33.99449920654297)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.99449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot-native</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CMake)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">cross-compiler</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> <arch>-gcc)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdb)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-builddir-5" data-look="classic" transform="translate(503.6068318684896, 699.3094940185547)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directory)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> artifacts</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-sysroot-6" data-look="classic" transform="translate(705.0365193684896, 699.3094940185547)"><polygon points="0,0 140.859375,0 140.859375,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 148.859375,0 148.859375,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-70.4296875,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> headers</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libs)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-destdir-7" data-look="classic" transform="translate(695.2865193684896, 847.3039932250977)"><polygon points="0,0 187.6875,0 187.6875,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 195.6875,0 195.6875,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-93.84375,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">D</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(non-stripped,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> relocated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rpath,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">managed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pseudo)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfsdbg_src-8" data-look="classic" transform="translate(1154.7798970540366, 839.9724922180176)"><polygon points="0,0 217.06588745117188,0 217.06588745117188,-67.98899841308594 0,-67.98899841308594 0,0 -8,0 225.06588745117188,0 225.06588745117188,-67.98899841308594 -8,-67.98899841308594 -8,0" class="label-container" transform="translate(-108.53294372558594,33.99449920654297)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.99449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(stripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binaries</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> every</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> combined</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">image-combined-dbg)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-rootfsdbg-9" data-look="classic" transform="translate(648.9981384277344, 1552.6079788208008)"><polygon points="0,0 199.625,0 199.625,-82.6520004272461 0,-82.6520004272461 0,0 -8,0 207.625,0 207.625,-82.6520004272461 -8,-82.6520004272461 -8,0" class="label-container" transform="translate(-99.8125,41.32600021362305)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -36.32600021362305)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"><workspace>/nfs-exports/</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"><image-recipe>/rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(copy,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> kept</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sync</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> deploy-target;</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">persists</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> across</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sessions)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-appbin-10" data-look="classic" transform="translate(550.1582946777344, 1264.6244831085205)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(running)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-debugserver-11" data-look="classic" transform="translate(550.1582946777344, 1149.9614849090576)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug-server</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,76 @@
+---
+config:
+ theme: base
+ look: classic
+ htmlLabels: false
+ fontFamily: '"Nimbus Sans", Helvetica, Arial, sans-serif'
+ fontSize: 13.33
+ themeVariables:
+ primaryColor: "#99c1f1"
+ primaryBorderColor: "#62a0ea"
+ primaryTextColor: "#000000"
+ lineColor: "#000000"
+ edgeLabelBackground: "#ffffff"
+ clusterBkg: "#f6f5f4"
+ clusterBorder: "#c0bfbc"
+ titleColor: "#000000"
+ fontSize: 13.33px
+ themeCSS: |
+ .cluster-label tspan { font-weight: bold; }
+ rect { rx: 7.5px; ry: 7.5px; }
+ flowchart:
+ htmlLabels: false
+ useMaxWidth: false
+ curve: basis
+ padding: 10
+ nodeSpacing: 23
+ rankSpacing: 37
+ wrappingWidth: 270
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-workflow.mmd -o devtool-ide-sdk-workflow.svg
+%% && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-workflow.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+ modify["devtool modify recipe --debug-build"]
+
+ subgraph workspace["devtool workspace"]
+ ws_appends[["appends/recipe.bbappend"]]
+ ws_src[["sources/recipe<br/>(extracted here)"]]
+ end
+
+ gensdk["devtool ide-sdk recipe image<br/>(generate SDK + IDE config)"]
+
+ subgraph loop["Edit/build/debug loop"]
+ edit["Edit source code"]
+ build["Build<br/>(build tool called<br/>directly by the IDE)"]
+ deploy["Deploy to target"]
+ debug["Debug remotely<br/>(e.g. GDB/LLDB + gdbserver/lldb-server)"]
+ end
+
+ finish["devtool finish recipe layer<br/>(turn changes into patches)"]
+ rerun_note>"rerun only if recipe<br/>deps/config change"]
+
+ modify --> ws_appends
+ modify -->|extracts| ws_src
+ ws_appends --> gensdk
+ ws_src --> gensdk
+ gensdk -->|"one-time setup"| edit
+ edit --> build
+ build --> deploy
+ deploy --> debug
+ debug -->|repeat| edit
+ edit -.->|"when done"| finish
+ gensdk -.- rerun_note
+
+ style workspace fill:#f6f5f4,stroke:#c061cb,stroke-width:1px
+ style loop fill:#f6f5f4,stroke:#c0bfbc,stroke-width:1px
+
+ classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+ classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+ classDef purple fill:#dc8add,stroke:#c061cb,stroke-width:1px,color:#000000;
+ classDef note fill:#f6f5f4,stroke:#c0bfbc,stroke-width:1px,color:#5e5c64;
+ classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+ class modify,gensdk,build,deploy,debug,finish orange;
+ class ws_src,edit green;
+ class ws_appends purple;
+ class rerun_note note;
new file mode 100644
@@ -0,0 +1 @@
+<svg id="my-svg" width="491.6734924316406" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1050.97802734375" viewBox="4 4 491.6734924316406 1050.97802734375" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .purple rect{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple polygon{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple ellipse{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple circle{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple path{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple tspan{fill:rgb(0, 0, 0)!important;}#my-svg .note rect{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note polygon{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note ellipse{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note circle{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note path{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note tspan{fill:rgb(94, 92, 100)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-loop" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important" x="12" y="501.32600021362305" width="344.11895751953125" height="388.9889945983887"/><g class="cluster-label" transform="translate(115.80947875976562, 501.32600021362305)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Edit/build/debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> loop</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-workspace" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c061cb !important;stroke-width:1px !important" x="63.98600311279296" y="154" width="423.6875" height="103.66300201416016"/><g class="cluster-label" transform="translate(216.11881561279296, 154)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M274.9992515563965,46L274.9992515563965,58.928932188134524Q274.9992515563965,66 267.928183744531,66L213.64063186826195,66Q206.56956405639647,66 206.56956405639647,73.07106781186548L206.56956405639647,95L206.56956405639647,116.92893218813452Q206.56956405639647,124 199.498496244531,124L184.90082092465843,124Q177.82975311279296,124 177.82975311279296,131.07106781186548L177.82975311279296,144L177.82975311279296,198.33150100708008" id="my-svg-L_modify_ws_appends_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_modify_ws_appends_0" data-points="W3sieCI6Mjc0Ljk5OTI1MTU1NjM5NjUsInkiOjQ2fSx7IngiOjI3NC45OTkyNTE1NTYzOTY1LCJ5Ijo2Nn0seyJ4IjoyMDYuNTY5NTY0MDU2Mzk2NDcsInkiOjY2fSx7IngiOjIwNi41Njk1NjQwNTYzOTY0NywieSI6OTV9LHsieCI6MjA2LjU2OTU2NDA1NjM5NjQ3LCJ5IjoxMjR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoxMjR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoxNDR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoyMDIuMzMxNTAxMDA3MDgwMDh9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M350.9836265563965,46L350.9836265563965,116.92893218813452Q350.9836265563965,124 358.05469436826195,124L383.6024353009275,124Q390.67350311279296,124 390.67350311279296,131.07106781186548L390.67350311279296,144L390.67350311279296,191" id="my-svg-L_modify_ws_src_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_modify_ws_src_0" data-points="W3sieCI6MzUwLjk4MzYyNjU1NjM5NjUsInkiOjQ2fSx7IngiOjM1MC45ODM2MjY1NTYzOTY1LCJ5IjoxMjR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoxMjR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoxNDR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoxOTV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M177.82975311279296,226.33150100708008L177.82975311279296,284L177.82975311279296,296.9289321881345Q177.82975311279296,304 184.90082092465843,304L248.4065363548012,304Q255.47760416666668,304 255.47760416666668,311.0710678118655L255.47760416666668,320" id="my-svg-L_ws_appends_gensdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ws_appends_gensdk_0" data-points="W3sieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoyMjYuMzMxNTAxMDA3MDgwMDh9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoyODR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjozMDR9LHsieCI6MjU1LjQ3NzYwNDE2NjY2NjY4LCJ5IjozMDR9LHsieCI6MjU1LjQ3NzYwNDE2NjY2NjY4LCJ5IjozMjR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M390.67350311279296,233.66298357820415L390.67350311279296,233.66300201416016L390.67350311279296,284L390.67350311279296,296.9289321881345Q390.67350311279296,304 383.6024353009275,304L325.5903386451988,304Q318.51927083333334,304 318.51927083333334,311.0710678118655L318.51927083333334,320" id="my-svg-L_ws_src_gensdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ws_src_gensdk_0" data-points="W3sieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoyMzMuNjYyOTgzNTc4MjA0MTV9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoyMzMuNjYzMDAyMDE0MTYwMTZ9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoyODR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjozMDR9LHsieCI6MzE4LjUxOTI3MDgzMzMzMzM0LCJ5IjozMDR9LHsieCI6MzE4LjUxOTI3MDgzMzMzMzM0LCJ5IjozMjR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M255.47760416666668,372.6629981994629L255.47760416666668,385.5919303875974Q255.47760416666668,392.6629981994629 248.4065363548012,392.6629981994629L242.38044281186546,392.6629981994629Q235.309375,392.6629981994629 235.309375,399.73406601132837L235.309375,491.32600021362305L235.309375,538.326000213623" id="my-svg-L_gensdk_edit_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_gensdk_edit_0" data-points="W3sieCI6MjU1LjQ3NzYwNDE2NjY2NjY4LCJ5IjozNzIuNjYyOTk4MTk5NDYyOX0seyJ4IjoyNTUuNDc3NjA0MTY2NjY2NjgsInkiOjM5Mi42NjI5OTgxOTk0NjI5fSx7IngiOjIzNS4zMDkzNzUsInkiOjM5Mi42NjI5OTgxOTk0NjI5fSx7IngiOjIzNS4zMDkzNzUsInkiOjQ5MS4zMjYwMDAyMTM2MjMwNX0seyJ4IjoyMzUuMzA5Mzc1LCJ5Ijo1NDIuMzI2MDAwMjEzNjIzfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M235.309375,576.326000213623L235.309375,599.2549324017575Q235.309375,606.326000213623 242.38044281186546,606.326000213623L245.04788970766577,606.326000213623Q252.11895751953125,606.326000213623 252.11895751953125,613.3970680254886L252.11895751953125,632.326000213623" id="my-svg-L_edit_build_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_edit_build_0" data-points="W3sieCI6MjM1LjMwOTM3NSwieSI6NTc2LjMyNjAwMDIxMzYyM30seyJ4IjoyMzUuMzA5Mzc1LCJ5Ijo2MDYuMzI2MDAwMjEzNjIzfSx7IngiOjI1Mi4xMTg5NTc1MTk1MzEyNSwieSI6NjA2LjMyNjAwMDIxMzYyM30seyJ4IjoyNTIuMTE4OTU3NTE5NTMxMjUsInkiOjYzNi4zMjYwMDAyMTM2MjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M252.11895751953125,699.6519966125488L252.11895751953125,719.6519966125488" id="my-svg-L_build_deploy_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_build_deploy_0" data-points="W3sieCI6MjUyLjExODk1NzUxOTUzMTI1LCJ5Ijo2OTkuNjUxOTk2NjEyNTQ4OH0seyJ4IjoyNTIuMTE4OTU3NTE5NTMxMjUsInkiOjcyMy42NTE5OTY2MTI1NDg4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M252.11895751953125,757.6519966125488L252.11895751953125,780.5809288006833Q252.11895751953125,787.6519966125488 245.04788970766577,787.6519966125488L227.15856781186545,787.6519966125488Q220.08749999999998,787.6519966125488 220.08749999999998,794.7230644244144L220.08749999999998,813.6519966125488" id="my-svg-L_deploy_debug_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_deploy_debug_0" data-points="W3sieCI6MjUyLjExODk1NzUxOTUzMTI1LCJ5Ijo3NTcuNjUxOTk2NjEyNTQ4OH0seyJ4IjoyNTIuMTE4OTU3NTE5NTMxMjUsInkiOjc4Ny42NTE5OTY2MTI1NDg4fSx7IngiOjIyMC4wODc0OTk5OTk5OTk5OCwieSI6Nzg3LjY1MTk5NjYxMjU0ODh9LHsieCI6MjIwLjA4NzQ5OTk5OTk5OTk4LCJ5Ijo4MTcuNjUxOTk2NjEyNTQ4OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M133.44375,817.6519966125488L133.44375,794.7230644244144Q133.44375,787.6519966125488 126.37268218813452,787.6519966125488L108.48336029233423,787.6519966125488Q101.41229248046875,787.6519966125488 101.41229248046875,780.5809288006833L101.41229248046875,613.3970680254886Q101.41229248046875,606.326000213623 108.48336029233423,606.326000213623L193.6383071881345,606.326000213623Q200.70937499999997,606.326000213623 200.70937499999997,599.2549324017575L200.70937499999997,580.326000213623" id="my-svg-L_debug_edit_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debug_edit_0" data-points="W3sieCI6MTMzLjQ0Mzc1LCJ5Ijo4MTcuNjUxOTk2NjEyNTQ4OH0seyJ4IjoxMzMuNDQzNzUsInkiOjc4Ny42NTE5OTY2MTI1NDg4fSx7IngiOjEwMS40MTIyOTI0ODA0Njg3NSwieSI6Nzg3LjY1MTk5NjYxMjU0ODh9LHsieCI6MTAxLjQxMjI5MjQ4MDQ2ODc1LCJ5Ijo2MDYuMzI2MDAwMjEzNjIzfSx7IngiOjIwMC43MDkzNzQ5OTk5OTk5NywieSI6NjA2LjMyNjAwMDIxMzYyM30seyJ4IjoyMDAuNzA5Mzc0OTk5OTk5OTcsInkiOjU3Ni4zMjYwMDAyMTM2MjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M269.90937499999995,576.326000213623L269.90937499999995,599.2549324017575Q269.90937499999995,606.326000213623 276.98044281186543,606.326000213623L345.7697647076658,606.326000213623Q352.84083251953126,606.326000213623 352.84083251953126,613.3970680254886L352.84083251953126,900.3149948120117L352.84083251953126,994.3149948120117" id="my-svg-L_edit_finish_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_edit_finish_0" data-points="W3sieCI6MjY5LjkwOTM3NDk5OTk5OTk1LCJ5Ijo1NzYuMzI2MDAwMjEzNjIzfSx7IngiOjI2OS45MDkzNzQ5OTk5OTk5NSwieSI6NjA2LjMyNjAwMDIxMzYyM30seyJ4IjozNTIuODQwODMyNTE5NTMxMjYsInkiOjYwNi4zMjYwMDAyMTM2MjN9LHsieCI6MzUyLjg0MDgzMjUxOTUzMTI2LCJ5Ijo5MDAuMzE0OTk0ODEyMDExN30seyJ4IjozNTIuODQwODMyNTE5NTMxMjYsInkiOjk5OC4zMTQ5OTQ4MTIwMTE3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M318.51927083333334,372.6629981994629L318.51927083333334,385.5919303875974Q318.51927083333334,392.6629981994629 325.5903386451988,392.6629981994629L383.6024353009275,392.6629981994629Q390.67350311279296,392.6629981994629 390.67350311279296,399.73406601132837L390.67350311279296,412.6629981994629" id="my-svg-L_gensdk_rerun_note_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_gensdk_rerun_note_0" data-points="W3sieCI6MzE4LjUxOTI3MDgzMzMzMzM0LCJ5IjozNzIuNjYyOTk4MTk5NDYyOX0seyJ4IjozMTguNTE5MjcwODMzMzMzMzQsInkiOjM5Mi42NjI5OTgxOTk0NjI5fSx7IngiOjM5MC42NzM1MDMxMTI3OTI5NiwieSI6MzkyLjY2Mjk5ODE5OTQ2Mjl9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5Ijo0MTIuNjYyOTk4MTk5NDYyOX1d" data-look="classic"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(350.9836265563965, 95)"><g class="label" data-id="L_modify_ws_src_0" transform="translate(-0.166015625, -10.329999923706055)"><g><rect class="background" style="" x="-25.1328125" y="1.3299999237060547" width="50.59765625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">extracts</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(234.825, 431.99449920654297)"><g class="label" data-id="L_gensdk_edit_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-46.015625" y="1.3299999237060547" width="92.03125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">one-time</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> setup</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(101.265625, 667.9889984130859)"><g class="label" data-id="L_debug_edit_0" transform="translate(-0.14239501953125, -10.329999923706055)"><g><rect class="background" style="" x="-20.7109375" y="1.3299999237060547" width="41.7066650390625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">repeat</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(352.45020751953126, 949.3149948120117)"><g class="label" data-id="L_edit_finish_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-34.609375" y="1.3299999237060547" width="69.21875" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">when</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> done</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-modify-0" data-look="classic" transform="translate(312.9914390563965, 29)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-123.9765625" y="-17" width="247.953125" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --debug-build</tspan></tspan></text></g></g></g><g class="node default purple" id="my-svg-flowchart-ws_appends-1" data-look="classic" transform="translate(177.82975311279296, 214.33150100708008)"><polygon points="0,0 163.6875,0 163.6875,-24 0,-24 0,0 -8,0 171.6875,0 171.6875,-24 -8,-24 -8,0" class="label-container" transform="translate(-81.84375,12)" style="fill:#dc8add !important;stroke:#c061cb !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">appends/recipe.bbappend</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-ws_src-2" data-look="classic" transform="translate(390.67350311279296, 214.33150100708008)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">sources/recipe</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> here)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-gensdk-3" data-look="classic" transform="translate(286.9984375, 348.33149909973145)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-104.5625" y="-24.33150005340576" width="209.125" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(generate</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-edit-4" data-look="classic" transform="translate(235.309375, 559.326000213623)"><rect class="basic label-container" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-build-5" data-look="classic" transform="translate(252.11895751953125, 667.9889984130859)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80" y="-31.66299819946289" width="160" height="63.32599639892578"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Build</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> called</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">directly</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-deploy-6" data-look="classic" transform="translate(252.11895751953125, 740.6519966125488)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Deploy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> to</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> target</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-debug-7" data-look="classic" transform="translate(176.765625, 841.9834957122803)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-140.765625" y="-24.33150005340576" width="281.53125" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> remotely</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> GDB/LLDB</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver/lldb-server)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-finish-8" data-look="classic" transform="translate(352.84083251953126, 1022.6464939117432)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-100.4296875" y="-24.33150005340576" width="200.859375" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> finish</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> layer</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(turn</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> changes</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> into</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> patches)</tspan></tspan></text></g></g></g><g class="node default note" id="my-svg-flowchart-rerun_note-9" data-look="classic" transform="translate(390.67350311279296, 431.99449920654297)"><g class="basic label-container outer-path" transform="translate(4.83287501335144,0)"><path d="M-74.66575002670288 -19.33150005340576 C-71.40538971050414 -12.810779421008267, -68.14502939430538 -6.29005878861077, -65 0 C-67.94551634496064 5.891032689921286, -70.89103268992129 11.782065379842573, -74.66575002670288 19.33150005340576 C-44.44243276766865 19.33150005340576, -14.219115508634424 19.33150005340576, 65 19.33150005340576 C65 5.559444130880824, 65 -8.212611791644115, 65 -19.33150005340576 C15.99965419423188 -19.33150005340576, -33.00069161153624 -19.33150005340576, -74.66575002670288 -19.33150005340576" stroke="none" stroke-width="0" fill="#f6f5f4" style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important"/><path d="M-74.66575002670288 -19.33150005340576 C-71.5251224278427 -13.050244855685419, -68.38449482898254 -6.768989657965076, -65 0 M-74.66575002670288 -19.33150005340576 C-71.62351113337313 -13.247022266746264, -68.58127224004338 -7.1625444800867655, -65 0 M-65 0 C-67.82578458116387 5.651569162327756, -70.65156916232776 11.303138324655512, -74.66575002670288 19.33150005340576 M-65 0 C-68.31876689677354 6.637533793547082, -71.63753379354708 13.275067587094163, -74.66575002670288 19.33150005340576 M-74.66575002670288 19.33150005340576 C-39.987920406742916 19.33150005340576, -5.3100907867829505 19.33150005340576, 65 19.33150005340576 M-74.66575002670288 19.33150005340576 C-42.115118925576866 19.33150005340576, -9.56448782445085 19.33150005340576, 65 19.33150005340576 M65 19.33150005340576 C65 5.214944971224332, 65 -8.901610110957098, 65 -19.33150005340576 M65 19.33150005340576 C65 10.24527523198579, 65 1.1590504105658184, 65 -19.33150005340576 M65 -19.33150005340576 C21.288527445718366 -19.33150005340576, -22.42294510856327 -19.33150005340576, -74.66575002670288 -19.33150005340576 M65 -19.33150005340576 C21.919020972014586 -19.33150005340576, -21.16195805597083 -19.33150005340576, -74.66575002670288 -19.33150005340576" stroke="#c0bfbc" stroke-width="1" fill="none" stroke-dasharray="0 0" style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important"/></g><g class="label" style="color:#5e5c64 !important" transform="translate(4.83287501335144, -17.661499977111816)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#5e5c64 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rerun</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> if</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deps/config</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> change</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
@@ -96,6 +96,11 @@ em {
color: #444;
}
+/* Scale with the page, but never beyond the size the text is meant for */
+img.max-natural-size {
+ max-width: max-content;
+}
+
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }