mirror of
https://github.com/opnsense/docs.git
synced 2026-02-18 18:17:50 -05:00
development/architecture - add operating stages
This commit is contained in:
parent
3be13e30c6
commit
fcae9dd9e1
8 changed files with 834 additions and 35 deletions
|
|
@ -22,7 +22,7 @@ This article describes how this will be achieved.
|
|||
High-level architecture
|
||||
-----------------------
|
||||
|
||||
|OPNsense Components.png|
|
||||
|OPNsense Components.svg|
|
||||
|
||||
As the above model shows there are two main areas in our stack, the
|
||||
frontend implemented with PHP/Phalcon and the backend using a custom
|
||||
|
|
@ -42,37 +42,13 @@ Manipulation of the core configuration file is handled at the frontend
|
|||
model; the backend service is merely a consumer of the information
|
||||
provided.
|
||||
|
||||
--------------------
|
||||
Backend Architecture
|
||||
--------------------
|
||||
|
||||
|OPNsense backend.png|
|
||||
|
||||
Configd, is responsible
|
||||
for the core system interaction like starting and stopping of daemons
|
||||
and generating configuration files for used services and applications.
|
||||
|
||||
The daemon listens on a unix domain socket and is capable of executing
|
||||
actions defined in it’s own configuration directory
|
||||
(“/usr/local/opnsense/service/conf/actions\_\*.conf”).
|
||||
|
||||
Currently there are four types of services implemented in the daemon:
|
||||
|
||||
- script : execute external (rc) scripts, report back success or failure
|
||||
- script_output: execute external scripts, report back their contents, usually in json format
|
||||
- stream_output: open streams to backend components
|
||||
- inline : perform inline actions which are part of configd, most notable template generation and maintanance.
|
||||
|
||||
|
|
||||
| Template generation is handled by Jinja2 (http://jinja.pocoo.org/),
|
||||
more information on how to create application templates can be found
|
||||
at :doc:`/development/backend/templates`.
|
||||
|
||||
---------------------
|
||||
Frontend Architecture
|
||||
---------------------
|
||||
|
||||
|OPNsense frontend.png|
|
||||
|OPNsense frontend.svg|
|
||||
|
||||
Routing
|
||||
-------
|
||||
|
|
@ -123,12 +99,71 @@ control and the repositories are split into 4 parts:
|
|||
| For detailed information about the development workflow see:
|
||||
| :doc:`OPNsense development workflow </development/workflow>`
|
||||
|
||||
.. |OPNsense Components.png| image:: images/OPNsense_Components.png
|
||||
|
||||
--------------------
|
||||
Backend Architecture
|
||||
--------------------
|
||||
|
||||
|
||||
Middleware
|
||||
--------------------------------------
|
||||
|
||||
|OPNsense backend.svg|
|
||||
|
||||
Configd, is responsible
|
||||
for the core system interaction like starting and stopping of daemons
|
||||
and generating configuration files for used services and applications.
|
||||
|
||||
The daemon listens on a unix domain socket and is capable of executing
|
||||
actions defined in it’s own configuration directory
|
||||
(“/usr/local/opnsense/service/conf/actions\_\*.conf”).
|
||||
|
||||
Currently there are four types of services implemented in the daemon:
|
||||
|
||||
- script : execute external (rc) scripts, report back success or failure
|
||||
- script_output: execute external scripts, report back their contents, usually in json format
|
||||
- stream_output: open streams to backend components
|
||||
- inline : perform inline actions which are part of configd, most notable template generation and maintanance.
|
||||
|
||||
|
|
||||
| Template generation is handled by Jinja2 (http://jinja.pocoo.org/),
|
||||
more information on how to create application templates can be found
|
||||
at :doc:`/development/backend/templates`.
|
||||
|
||||
|
||||
|
||||
Operating stages
|
||||
--------------------------------------
|
||||
|
||||
|OPNsense_operating_events.svg|
|
||||
|
||||
As all earlier layers describe how user input can be persisted and service information can be exchanged, we still
|
||||
have a gap in our functionality when looking at the life of a firewall.
|
||||
Until this point we have means to manually manage services and devices, including ways to collect information on demand,
|
||||
but still in a rather isolated way (events triggered via the api layer).
|
||||
|
||||
This is where :doc:`syshooks <backend/autorun>` and :doc:`plugins <backend/legacy>` come into play,
|
||||
these offer mechanisms to ensure different types of services can cooperate with the shared functionality available.
|
||||
|
||||
Between starting and stopping our firewall, we can identify three stages.
|
||||
After power-on, we are booting, when this initial stage has been reached we end up with a running firewall with
|
||||
all configured services available. During time, various events can happen, for example, someone pulling an network cable
|
||||
and pushing it back in, this is the running stage.
|
||||
Eventually, if someone decides to power-down or reboot the machine, we are entering shutdown stage, letting services know
|
||||
we are ending operation.
|
||||
|
||||
Further details of each stage can be found in the :doc:`overview <backend/overview>` document.
|
||||
|
||||
To avoid endless dependency loops, services should prevent hooking on events that are not strictly required for operating.
|
||||
For example, forcing a restart of a component when a network interface has changed is usually a sign of not
|
||||
following best practices for designing network services.
|
||||
|
||||
|
||||
.. |OPNsense Components.svg| image:: images/OPNsense_Components.svg
|
||||
:width: 600px
|
||||
:height: 548px
|
||||
.. |OPNsense backend.png| image:: images/OPNsense_backend.png
|
||||
.. |OPNsense backend.svg| image:: images/OPNsense_backend.svg
|
||||
:width: 500px
|
||||
.. |OPNsense frontend.svg| image:: images/OPNsense_frontend.svg
|
||||
:width: 600px
|
||||
:height: 575px
|
||||
.. |OPNsense frontend.png| image:: images/OPNsense_frontend.png
|
||||
:width: 600px
|
||||
:height: 461px
|
||||
.. |OPNsense_operating_events.svg| image:: images/OPNsense_operating_events.svg
|
||||
:width: 700px
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ Our core backend service (configd) is implemented using `Python <https://en.wiki
|
|||
- Service interaction (using configd actions)
|
||||
- Generation of configuration data (using templates)
|
||||
|
||||
Because some of the codebase still integrates with our legacy codebase, we provide additional plugin options for the following components:
|
||||
Because we need integration between (legacy) components, we provide additional plugin options for the following components:
|
||||
|
||||
- Services (the services status)
|
||||
- Syslog (define syslog targets)
|
||||
|
|
@ -18,6 +18,8 @@ Because some of the codebase still integrates with our legacy codebase, we provi
|
|||
|
||||
|
||||
Services which need to be executed at system startup can use rc(8) or our syshook system.
|
||||
Our :doc:`overview <backend/overview>` document contains a practical write up to explain the various phases of
|
||||
operation and hooks available in them.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ in sequence:
|
|||
|
||||
|
||||
....................................
|
||||
Normal operation
|
||||
Running stage
|
||||
....................................
|
||||
|
||||
Now the system is booted and events may take place, some of the common integration points with their purpose are listed below:
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 36 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 44 KiB |
476
source/development/images/OPNsense_operating_events.graphml
Normal file
476
source/development/images/OPNsense_operating_events.graphml
Normal file
|
|
@ -0,0 +1,476 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||
<!--Created by yEd 3.24-->
|
||||
<key attr.name="Description" attr.type="string" for="graph" id="d0"/>
|
||||
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||
<graph edgedefault="directed" id="G">
|
||||
<data key="d0"/>
|
||||
<node id="n0">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Activity.withShadow">
|
||||
<y:Geometry height="72.0" width="109.0" x="282.5" y="378.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#123EA2" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="39.33203125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.5068359375" x="22.74658203125" xml:space="preserve" y="16.333984375">bootloader
|
||||
/
|
||||
kernel stage<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.TaskTypeEnum" name="com.yworks.bpmn.taskType" value="TASK_TYPE_ABSTRACT"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ACTIVITY_TYPE"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.ActivityTypeEnum" name="com.yworks.bpmn.activityType" value="ACTIVITY_TYPE_TASK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n1">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event.withShadow">
|
||||
<y:Geometry height="30.0" width="30.0" x="222.5" y="399.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#27AE27" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.3173828125" x="-9.65869140625" xml:space="preserve" y="34.0">power on<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n2">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Activity.withShadow">
|
||||
<y:Geometry height="72.0" width="109.0" x="421.5" y="378.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#123EA2" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="48.853515625" x="30.0732421875" xml:space="preserve" y="22.22265625">syshooks
|
||||
[early]<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.TaskTypeEnum" name="com.yworks.bpmn.taskType" value="TASK_TYPE_ABSTRACT"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ACTIVITY_TYPE"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.ActivityTypeEnum" name="com.yworks.bpmn.activityType" value="ACTIVITY_TYPE_TASK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n3">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Activity.withShadow">
|
||||
<y:Geometry height="72.0" width="109.0" x="560.5" y="378.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#123EA2" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="100.259765625" x="4.3701171875" xml:space="preserve" y="22.22265625">plugins
|
||||
(registration points)<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.TaskTypeEnum" name="com.yworks.bpmn.taskType" value="TASK_TYPE_ABSTRACT"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ACTIVITY_TYPE"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.ActivityTypeEnum" name="com.yworks.bpmn.activityType" value="ACTIVITY_TYPE_TASK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n4">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Activity.withShadow">
|
||||
<y:Geometry height="72.0" width="109.0" x="699.5" y="378.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#123EA2" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="80.7138671875" x="14.14306640625" xml:space="preserve" y="22.22265625">syshooks [start]
|
||||
-> rc(8)<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.TaskTypeEnum" name="com.yworks.bpmn.taskType" value="TASK_TYPE_ABSTRACT"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ACTIVITY_TYPE"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.ActivityTypeEnum" name="com.yworks.bpmn.activityType" value="ACTIVITY_TYPE_TASK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n5">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event.withShadow">
|
||||
<y:Geometry height="30.0" width="30.0" x="838.5" y="399.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#27AE27" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.0419921875" x="-6.02099609375" xml:space="preserve" y="34.0">running<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n6">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Activity.withShadow">
|
||||
<y:Geometry height="72.0" width="109.0" x="898.5" y="378.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#123EA2" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="86.05078125" x="11.474609375" xml:space="preserve" y="22.22265625">syshook / plugin
|
||||
events<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.TaskTypeEnum" name="com.yworks.bpmn.taskType" value="TASK_TYPE_ABSTRACT"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ACTIVITY_TYPE"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.ActivityTypeEnum" name="com.yworks.bpmn.activityType" value="ACTIVITY_TYPE_TASK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n7">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Event.withShadow">
|
||||
<y:Geometry height="30.0" width="30.0" x="1037.5" y="399.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#27AE27" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="81.4072265625" x="-25.70361328125" xml:space="preserve" y="34.0">stop [power off]<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="-0.5" nodeRatioX="0.0" nodeRatioY="0.5" offsetX="0.0" offsetY="4.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.EventCharEnum" name="com.yworks.bpmn.characteristic" value="EVENT_CHARACTERISTIC_START"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="EVENT_TYPE_PLAIN"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n8">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Activity.withShadow">
|
||||
<y:Geometry height="72.0" width="109.0" x="1097.5" y="378.5"/>
|
||||
<y:Fill color="#FFFFFFE6" color2="#D4D4D4CC" transparent="false"/>
|
||||
<y:BorderStyle color="#123EA2" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="48.853515625" x="30.0732421875" xml:space="preserve" y="22.22265625">syshooks
|
||||
[stop]<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.TaskTypeEnum" name="com.yworks.bpmn.taskType" value="TASK_TYPE_ABSTRACT"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ACTIVITY_TYPE"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.ActivityTypeEnum" name="com.yworks.bpmn.activityType" value="ACTIVITY_TYPE_TASK"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n9">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Artifact.withShadow">
|
||||
<y:Geometry height="30.0" width="249.0" x="629.5" y="181.0"/>
|
||||
<y:Fill color="#FFFFFFE6" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="italic" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="l" textColor="#000000" verticalTextPosition="bottom" visible="true" width="243.12109375" x="4.0" xml:space="preserve" y="1.22265625">Simple scripts, executed early, also used by core
|
||||
components to handle early-boot requirements</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ARTIFACT_TYPE_ANNOTATION"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n10">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Artifact.withShadow">
|
||||
<y:Geometry height="30.0" width="249.0" x="742.0" y="230.25"/>
|
||||
<y:Fill color="#FFFFFFE6" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="italic" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="l" textColor="#000000" verticalTextPosition="bottom" visible="true" width="236.83203125" x="4.0" xml:space="preserve" y="1.22265625">Structures pluggable core services, devices and
|
||||
offers configure event handlers</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ARTIFACT_TYPE_ANNOTATION"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n11">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Artifact.withShadow">
|
||||
<y:Geometry height="30.0" width="249.0" x="856.9" y="279.5"/>
|
||||
<y:Fill color="#FFFFFFE6" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="italic" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="l" textColor="#000000" verticalTextPosition="bottom" visible="true" width="143.8193359375" x="4.0" xml:space="preserve" y="7.111328125">Regular service startup point</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ARTIFACT_TYPE_ANNOTATION"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n12">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.flowchart.userMessage">
|
||||
<y:Geometry height="40.0" width="643.0" x="222.5" y="480.5"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="71.9833984375" x="285.50830078125" xml:space="preserve" y="12.111328125">bootup stage<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n13">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.flowchart.networkMessage">
|
||||
<y:Geometry height="40.0" width="201.75" x="851.7115098111999" y="480.5"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="76.001953125" x="62.8740234375" xml:space="preserve" y="12.111328125">running stage<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n14">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.flowchart.networkMessage">
|
||||
<y:Geometry height="40.0" width="168.9999999999999" x="1037.5" y="480.5"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="15.77734375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="86.3876953125" x="41.30615234375" xml:space="preserve" y="12.111328125">shutdown stage<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n15">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.bpmn.Artifact.withShadow">
|
||||
<y:Geometry height="30.0" width="179.70000000000005" x="1026.8000000000002" y="329.0"/>
|
||||
<y:Fill color="#FFFFFFE6" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="10" fontStyle="italic" hasBackgroundColor="false" hasLineColor="false" height="27.5546875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="l" textColor="#000000" verticalTextPosition="bottom" visible="true" width="148.052734375" x="4.0" xml:space="preserve" y="1.22265625">integration points for (device
|
||||
related) events</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.line.color" value="#000000"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill2" value="#d4d4d4cc"/>
|
||||
<y:Property class="java.awt.Color" name="com.yworks.bpmn.icon.fill" value="#ffffffe6"/>
|
||||
<y:Property class="com.yworks.yfiles.bpmn.view.BPMNTypeEnum" name="com.yworks.bpmn.type" value="ARTIFACT_TYPE_ANNOTATION"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n1" target="n0">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e1" source="n0" target="n2">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e2" source="n2" target="n3">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e3" source="n3" target="n4">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e4" source="n4" target="n5">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e5" source="n5" target="n6">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e6" source="n6" target="n7">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e7" source="n7" target="n8">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e8" source="n2" target="n9">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="617.0" y="196.0"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
|
||||
<y:Arrows source="none" target="none"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="88.63472993741766" y="-87.12303021621301">
|
||||
<y:LabelModel>
|
||||
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/>
|
||||
</y:ModelParameter>
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e9" source="n3" target="n10">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="726.0" y="245.25"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
|
||||
<y:Arrows source="none" target="none"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="73.1893486034719" y="-61.943583582114">
|
||||
<y:LabelModel>
|
||||
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/>
|
||||
</y:ModelParameter>
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e10" source="n4" target="n11">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="838.9888" y="294.5"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
|
||||
<y:Arrows source="none" target="none"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="57.984512618745384" y="-34.78907105634141">
|
||||
<y:LabelModel>
|
||||
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/>
|
||||
</y:ModelParameter>
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e11" source="n6" target="n15">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="1001.2881067471993" y="344.0"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
|
||||
<y:Arrows source="none" target="none"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="40.49212519416176" y="-10.949325364396941">
|
||||
<y:LabelModel>
|
||||
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/>
|
||||
</y:ModelParameter>
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
<data key="d7">
|
||||
<y:Resources/>
|
||||
</data>
|
||||
</graphml>
|
||||
286
source/development/images/OPNsense_operating_events.svg
Normal file
286
source/development/images/OPNsense_operating_events.svg
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="1025" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="370" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto">
|
||||
<!--Generated by ySVG 2.6-->
|
||||
<defs id="genericDefs"/>
|
||||
<g>
|
||||
<defs id="defs1">
|
||||
<linearGradient x1="282.5" gradientUnits="userSpaceOnUse" x2="391.5" y1="378.5" y2="450.5" id="linearGradient1" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="222.5" gradientUnits="userSpaceOnUse" x2="252.5" y1="399.5" y2="429.5" id="linearGradient2" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="421.5" gradientUnits="userSpaceOnUse" x2="530.5" y1="378.5" y2="450.5" id="linearGradient3" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="560.5" gradientUnits="userSpaceOnUse" x2="669.5" y1="378.5" y2="450.5" id="linearGradient4" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="699.5" gradientUnits="userSpaceOnUse" x2="808.5" y1="378.5" y2="450.5" id="linearGradient5" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="838.5" gradientUnits="userSpaceOnUse" x2="868.5" y1="399.5" y2="429.5" id="linearGradient6" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="898.5" gradientUnits="userSpaceOnUse" x2="1007.5" y1="378.5" y2="450.5" id="linearGradient7" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="1037.5" gradientUnits="userSpaceOnUse" x2="1067.5" y1="399.5" y2="429.5" id="linearGradient8" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="1097.5" gradientUnits="userSpaceOnUse" x2="1206.5" y1="378.5" y2="450.5" id="linearGradient9" spreadMethod="reflect">
|
||||
<stop stop-opacity="0.902" stop-color="rgb(255,255,255)" offset="0%"/>
|
||||
<stop stop-opacity="0.8" stop-color="rgb(212,212,212)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="222.5" gradientUnits="userSpaceOnUse" x2="865.5" y1="480.5" y2="520.5" id="linearGradient10" spreadMethod="reflect">
|
||||
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
||||
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="851.7115" gradientUnits="userSpaceOnUse" x2="1053.4615" y1="480.5" y2="520.5" id="linearGradient11" spreadMethod="reflect">
|
||||
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
||||
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<linearGradient x1="1037.5" gradientUnits="userSpaceOnUse" x2="1206.5" y1="480.5" y2="520.5" id="linearGradient12" spreadMethod="reflect">
|
||||
<stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
|
||||
<stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
|
||||
</linearGradient>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
|
||||
<path d="M0 0 L1025 0 L1025 370 L0 370 L0 0 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
|
||||
<path d="M197 166 L1222 166 L1222 536 L197 536 L197 166 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
|
||||
<path d="M-77.5 -204.5 L947.5 -204.5 L947.5 165.5 L-77.5 165.5 L-77.5 -204.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
|
||||
<path d="M-7.8413 -225.5 L1017.1587 -225.5 L1017.1587 144.5 L-7.8413 144.5 L-7.8413 -225.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
|
||||
<path d="M-216.5 -204.5 L808.5 -204.5 L808.5 165.5 L-216.5 165.5 L-216.5 -204.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
|
||||
<path d="M-355.5 -204.5 L669.5 -204.5 L669.5 165.5 L-355.5 165.5 L-355.5 -204.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
|
||||
<path d="M-494.5 -204.5 L530.5 -204.5 L530.5 165.5 L-494.5 165.5 L-494.5 -204.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
|
||||
<path d="M-627.479 -225.5 L397.521 -225.5 L397.521 144.5 L-627.479 144.5 L-627.479 -225.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
|
||||
<path d="M-693.5 -204.5 L331.5 -204.5 L331.5 165.5 L-693.5 165.5 L-693.5 -204.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
|
||||
<path d="M-806.7964 -225.5 L218.2036 -225.5 L218.2036 144.5 L-806.7964 144.5 L-806.7964 -225.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
|
||||
<path d="M-892.5 -204.5 L132.5 -204.5 L132.5 165.5 L-892.5 165.5 L-892.5 -204.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
|
||||
<path d="M-424.5 -7 L600.5 -7 L600.5 363 L-424.5 363 L-424.5 -7 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
|
||||
<path d="M-537 -56.25 L488 -56.25 L488 313.75 L-537 313.75 L-537 -56.25 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
|
||||
<path d="M-651.9 -105.5 L373.1 -105.5 L373.1 264.5 L-651.9 264.5 L-651.9 -105.5 Z"/>
|
||||
</clipPath>
|
||||
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
|
||||
<path d="M-821.8 -155 L203.2 -155 L203.2 215 L-821.8 215 L-821.8 -155 Z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,77.5,204.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath3)" width="130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAADUklEQVR4Xu3dWU8U URBA4UIRcRcSRFTcBZdEXHBHxeX//ybr1LVjZwIvPTN2P5xKvvBEN8k9U93zRITj OI7jOI7jOM6iZyWdmXFWo+qfBeeDpU0XwGo6l9bSeU0KZ8LZcEZdFAubfgDc7EK6 nK6ma+m6JoGz4Ew4G86IKNgWC4uhi2A9XUmbaTvdSnc0GbfTTroR7Yw4K86Ms5s7 Bi7QRUBxBHA3PU5P0/P0QqPjHJ6l/fQo7UYLgg3BFmczzDVsAy5EXUTwINpNX6XD 9D590CRwFpzJQbQo7keLgUcF7w2Dt0K3DXjesGrYBETwNn1OX9M3TcL3vz+P0sf0 JloMbIaNaBudD/WgIQRKoijK4nHAJviUjtPP9EuT8iNaEMTAZniYttLFmOPxQEG8 efKc4SWE5w+rh01ABL81OV0MbAY29166Ge3DvBoDp3s/4CWRN1JWDc8hiuOGs3+A xjF7DoTAh/VdtBd6vt3xjsd2HzT9EPh6wvvBSSHM/mH6/04LgQ8vIbDVlxrC7B+k 8RiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiC iiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGo GIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGILK qCEYwzT0z2K0EIxhXLPnsNQQuv8Wz8VPCkHT0A/hMNp/i9+JBfy3+LVoF+Fi++lt Oko/49+NNQ3deRynL+lNepK20+W0GgNnJVpFXORGepQO0sdoW4HyNC3H0bbBh/Qy PUxb6WI6GwNnJdovX0ibaTfa44HSPkXbDNxU08EmIILX0R4LvNtdj/aIZ8MPnv7j ga1wP1oMbAYeE7wzaBp4J+BDyiYggnvRtgEbnc3OB3vw8Ms8W9ajvXkSw260lbMX 7YaEofFxFpwJZ8MmIAI+wGyDwY+F/vRjoK6NaDe5Ge2rCd8oND7OgjPhbDgjzqqL YK5t0J/ufYHHBEFcilYbWwJ8xdR4unPg8DkbzojHwUIj6IYL8s7AxdkQ3IgwNA2c BzibpQRw2nAjTY/jOI7jOI7jOM4S5g9hNzoHUnGfsAAAAABJRU5ErkJggg==" height="93" preserveAspectRatio="none"/>
|
||||
<rect x="282.5" y="378.5" transform="matrix(1,0,0,1,-274.5,-370.5)" clip-path="url(#clipPath2)" fill="url(#linearGradient1)" width="109" image-rendering="auto" rx="4" ry="4" height="72" stroke="none"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(18,62,162)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(18,62,162)" stroke-miterlimit="1.45">
|
||||
<rect x="282.5" y="378.5" clip-path="url(#clipPath2)" fill="none" width="109" rx="4" ry="4" height="72"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="310.584" xml:space="preserve" y="406.502" clip-path="url(#clipPath2)" stroke="none">bootloader</text>
|
||||
<text x="332.7959" xml:space="preserve" y="418.2793" clip-path="url(#clipPath2)" stroke="none">/ </text>
|
||||
<text x="307.2466" xml:space="preserve" y="430.0566" clip-path="url(#clipPath2)" stroke="none">kernel stage</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,7.8413,225.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath4)" width="70" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAE60lEQVR4Xu3aB28c NxAF4EnkJE51ei9nSYnTe2/eOP7/vyn8wBuIIFbnk2LAvDMHeLB0y11xHt+84fIc MWPGjBkzZsyIeKLBkyvIa49FtEScFNwoeKrg6Q4+cw1aoo4uWjIk/UzBswXPF7xQ 8GLBSw387poxxrrHvUdFkESSkJtRE75V8GrBGwVvFbxT8O4Wfn57e+217VjkISkJ OnhyrLBysOoIeTlqwgj4qOCs4OOCOwWfbuHnT7bXNgXvFbxZ8EpUgpCbJXaQBJm4 FbbSygMhkjyNSsCXBd8W/FDwY8FPW/jZZ659tR2LpA+iEkRBz0V99kGRk35i4hKg EqWxiZrkN1GT/7Xg94I/C/7q4DPXjDEWSZ9FJZXalCEFMmp/6yCiJYX8JWLFKYQS foua/N2CpeCfgnsdfOaaMca6B0EUpPTej+o/yEnlDB3Uov6VT5Iika8Lfo6qBMlK /t8t7l+CvG7ssr33l6jq4UPIoRwL4G8OW1LZfZgjH9BdzqOWjoSsPCXsImMNSZB7 /45aXshh0DzLAvibw3YrclbzOgeTvB1V+vuQksnvUlFPDsLPo/oXcx/Sb9oSIm8d 5POovrCLlJ6QHmvjPcszlSbf2hS8HhclNVSkWuxYbdisJLnrLEtcnuQ+WLtvKfgj qpnzG16WqhmqnE6i1rl6T7VYUbJnnmvJXQX9/Z6ZJaVcN1G7FMWayxCRZaR12sSd Rq3/VEufVJ/0vuifsURVzfdROx+l8jdzGSIQYy+hjBihbkHi2muvlj7Zq6AnOL3G btnmT4fSDYcpJ/7iXcik7C3aMmoT6hO9DlpikG5PpJyY8IdRS9lchuhOJpH+YnIm abIm3SbTJ3kd9Opbou6Kla7tgY5oLkMQcxJ1Mibljdku12SXeLikJHpieJkOyNvS gIcjZhOPlhj7mSGJuUwxD4uc/nlLDKyYR+Ux9+LCYyzGJgbzGJPIrqRlap1rXen/ ktM+J4lBvnexIbvSrn2MvUafUJ/wvuifsbaPGeq1IHe+XuKYn7apfabP9Eldh5y1 +5eo/vJd1Hez4Xa+4iRqbTvGtMmzglbSipJ8n9hVyFm7zzM9O8uI6fOXod6VRJZT nsWcxYNVsw85/XhI06UW70lK16HYUGWUYTJWKrsT1Tj4Tq9ZYney+xCS45aoz6TI L6KqJdv0jRgwdIJUjbfsTVSZ51nvEhdnvX3CD0ISloarhLTos6jewviHPMHLoBrt kqx1KBN3XrJGzj7qSGT55IG4MnXU4ICKrw195iuyQ6URq/0kh/T5gv3NEhdflbQE 9GQkIfYrzl4QTClIyYPwLKFhSclIckw4yTmN6gfM0opLEkH53RIoE8jfXTPGWDtp fqU0z6OSkl+dKN/hScloybEj5gNM0vks9UjS6utaEgdlAvm7a0g0lkqY+SZqiVJK +zXtQUVbVsxR5+AJm6gtloJ4hQ2a5CG/t6Ys1ygEmRRHJTaQ/CvL5+BIycg2rmNY YeqRnPJyaH47amkgCgH5Px185pr3H2TqcsrSuTJzH9po9w0JWFkrLCkEUZByQJIN ofIAhPnXZ64ZQyHucW+q5OBJaSMJstq8QaJKov1fVeBnnyFDGVLbURKyFi1JkgZk JfzuWpJx9ITsiiTgsSZhxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjxoyjiP8A +3jHsSVM0bsAAAAASUVORK5CYII=" height="70" preserveAspectRatio="none"/>
|
||||
<path fill="url(#linearGradient2)" d="M252.5 414.5 C252.5 422.7843 245.7843 429.5 237.5 429.5 C229.2157 429.5 222.5 422.7843 222.5 414.5 C222.5 406.2157 229.2157 399.5 237.5 399.5 C245.7843 399.5 252.5 406.2157 252.5 414.5 Z" clip-path="url(#clipPath2)" transform="matrix(1,0,0,1,-204.8413,-391.5)" stroke="none" image-rendering="auto"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(39,174,39)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(39,174,39)" stroke-miterlimit="1.45">
|
||||
<path fill="none" d="M252.5 414.5 C252.5 422.7843 245.7843 429.5 237.5 429.5 C229.2157 429.5 222.5 422.7843 222.5 414.5 C222.5 406.2157 229.2157 399.5 237.5 399.5 C245.7843 399.5 252.5 406.2157 252.5 414.5 Z" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="214.8413" xml:space="preserve" y="445.168" clip-path="url(#clipPath2)" stroke="none">power on</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,216.5,204.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath5)" width="130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAADUklEQVR4Xu3dWU8U URBA4UIRcRcSRFTcBZdEXHBHxeX//ybr1LVjZwIvPTN2P5xKvvBEN8k9U93zRITj OI7jOI7jOM6iZyWdmXFWo+qfBeeDpU0XwGo6l9bSeU0KZ8LZcEZdFAubfgDc7EK6 nK6ma+m6JoGz4Ew4G86IKNgWC4uhi2A9XUmbaTvdSnc0GbfTTroR7Yw4K86Ms5s7 Bi7QRUBxBHA3PU5P0/P0QqPjHJ6l/fQo7UYLgg3BFmczzDVsAy5EXUTwINpNX6XD 9D590CRwFpzJQbQo7keLgUcF7w2Dt0K3DXjesGrYBETwNn1OX9M3TcL3vz+P0sf0 JloMbIaNaBudD/WgIQRKoijK4nHAJviUjtPP9EuT8iNaEMTAZniYttLFmOPxQEG8 efKc4SWE5w+rh01ABL81OV0MbAY29166Ge3DvBoDp3s/4CWRN1JWDc8hiuOGs3+A xjF7DoTAh/VdtBd6vt3xjsd2HzT9EPh6wvvBSSHM/mH6/04LgQ8vIbDVlxrC7B+k 8RiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiC iiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGo GIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGILK qCEYwzT0z2K0EIxhXLPnsNQQuv8Wz8VPCkHT0A/hMNp/i9+JBfy3+LVoF+Fi++lt Oko/49+NNQ3deRynL+lNepK20+W0GgNnJVpFXORGepQO0sdoW4HyNC3H0bbBh/Qy PUxb6WI6GwNnJdovX0ibaTfa44HSPkXbDNxU08EmIILX0R4LvNtdj/aIZ8MPnv7j ga1wP1oMbAYeE7wzaBp4J+BDyiYggnvRtgEbnc3OB3vw8Ms8W9ajvXkSw260lbMX 7YaEofFxFpwJZ8MmIAI+wGyDwY+F/vRjoK6NaDe5Ge2rCd8oND7OgjPhbDgjzqqL YK5t0J/ufYHHBEFcilYbWwJ8xdR4unPg8DkbzojHwUIj6IYL8s7AxdkQ3IgwNA2c BzibpQRw2nAjTY/jOI7jOI7jOM4S5g9hNzoHUnGfsAAAAABJRU5ErkJggg==" height="93" preserveAspectRatio="none"/>
|
||||
<rect x="421.5" y="378.5" transform="matrix(1,0,0,1,-413.5,-370.5)" clip-path="url(#clipPath2)" fill="url(#linearGradient3)" width="109" image-rendering="auto" rx="4" ry="4" height="72" stroke="none"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(18,62,162)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(18,62,162)" stroke-miterlimit="1.45">
|
||||
<rect x="421.5" y="378.5" clip-path="url(#clipPath2)" fill="none" width="109" rx="4" ry="4" height="72"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="453.5732" xml:space="preserve" y="412.3906" clip-path="url(#clipPath2)" stroke="none">syshooks</text>
|
||||
<text x="461.0977" xml:space="preserve" y="424.168" clip-path="url(#clipPath2)" stroke="none">[early]</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,355.5,204.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath6)" width="130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAADUklEQVR4Xu3dWU8U URBA4UIRcRcSRFTcBZdEXHBHxeX//ybr1LVjZwIvPTN2P5xKvvBEN8k9U93zRITj OI7jOI7jOM6iZyWdmXFWo+qfBeeDpU0XwGo6l9bSeU0KZ8LZcEZdFAubfgDc7EK6 nK6ma+m6JoGz4Ew4G86IKNgWC4uhi2A9XUmbaTvdSnc0GbfTTroR7Yw4K86Ms5s7 Bi7QRUBxBHA3PU5P0/P0QqPjHJ6l/fQo7UYLgg3BFmczzDVsAy5EXUTwINpNX6XD 9D590CRwFpzJQbQo7keLgUcF7w2Dt0K3DXjesGrYBETwNn1OX9M3TcL3vz+P0sf0 JloMbIaNaBudD/WgIQRKoijK4nHAJviUjtPP9EuT8iNaEMTAZniYttLFmOPxQEG8 efKc4SWE5w+rh01ABL81OV0MbAY29166Ge3DvBoDp3s/4CWRN1JWDc8hiuOGs3+A xjF7DoTAh/VdtBd6vt3xjsd2HzT9EPh6wvvBSSHM/mH6/04LgQ8vIbDVlxrC7B+k 8RiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiC iiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGo GIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGILK qCEYwzT0z2K0EIxhXLPnsNQQuv8Wz8VPCkHT0A/hMNp/i9+JBfy3+LVoF+Fi++lt Oko/49+NNQ3deRynL+lNepK20+W0GgNnJVpFXORGepQO0sdoW4HyNC3H0bbBh/Qy PUxb6WI6GwNnJdovX0ibaTfa44HSPkXbDNxU08EmIILX0R4LvNtdj/aIZ8MPnv7j ga1wP1oMbAYeE7wzaBp4J+BDyiYggnvRtgEbnc3OB3vw8Ms8W9ajvXkSw260lbMX 7YaEofFxFpwJZ8MmIAI+wGyDwY+F/vRjoK6NaDe5Ge2rCd8oND7OgjPhbDgjzqqL YK5t0J/ufYHHBEFcilYbWwJ8xdR4unPg8DkbzojHwUIj6IYL8s7AxdkQ3IgwNA2c BzibpQRw2nAjTY/jOI7jOI7jOM4S5g9hNzoHUnGfsAAAAABJRU5ErkJggg==" height="93" preserveAspectRatio="none"/>
|
||||
<rect x="560.5" y="378.5" transform="matrix(1,0,0,1,-552.5,-370.5)" clip-path="url(#clipPath2)" fill="url(#linearGradient4)" width="109" image-rendering="auto" rx="4" ry="4" height="72" stroke="none"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(18,62,162)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(18,62,162)" stroke-miterlimit="1.45">
|
||||
<rect x="560.5" y="378.5" clip-path="url(#clipPath2)" fill="none" width="109" rx="4" ry="4" height="72"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="597.0898" xml:space="preserve" y="412.3906" clip-path="url(#clipPath2)" stroke="none">plugins</text>
|
||||
<text x="566.8701" xml:space="preserve" y="424.168" clip-path="url(#clipPath2)" stroke="none">(registration points)</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,494.5,204.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath7)" width="130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAADUklEQVR4Xu3dWU8U URBA4UIRcRcSRFTcBZdEXHBHxeX//ybr1LVjZwIvPTN2P5xKvvBEN8k9U93zRITj OI7jOI7jOM6iZyWdmXFWo+qfBeeDpU0XwGo6l9bSeU0KZ8LZcEZdFAubfgDc7EK6 nK6ma+m6JoGz4Ew4G86IKNgWC4uhi2A9XUmbaTvdSnc0GbfTTroR7Yw4K86Ms5s7 Bi7QRUBxBHA3PU5P0/P0QqPjHJ6l/fQo7UYLgg3BFmczzDVsAy5EXUTwINpNX6XD 9D590CRwFpzJQbQo7keLgUcF7w2Dt0K3DXjesGrYBETwNn1OX9M3TcL3vz+P0sf0 JloMbIaNaBudD/WgIQRKoijK4nHAJviUjtPP9EuT8iNaEMTAZniYttLFmOPxQEG8 efKc4SWE5w+rh01ABL81OV0MbAY29166Ge3DvBoDp3s/4CWRN1JWDc8hiuOGs3+A xjF7DoTAh/VdtBd6vt3xjsd2HzT9EPh6wvvBSSHM/mH6/04LgQ8vIbDVlxrC7B+k 8RiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiC iiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGo GIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGILK qCEYwzT0z2K0EIxhXLPnsNQQuv8Wz8VPCkHT0A/hMNp/i9+JBfy3+LVoF+Fi++lt Oko/49+NNQ3deRynL+lNepK20+W0GgNnJVpFXORGepQO0sdoW4HyNC3H0bbBh/Qy PUxb6WI6GwNnJdovX0ibaTfa44HSPkXbDNxU08EmIILX0R4LvNtdj/aIZ8MPnv7j ga1wP1oMbAYeE7wzaBp4J+BDyiYggnvRtgEbnc3OB3vw8Ms8W9ajvXkSw260lbMX 7YaEofFxFpwJZ8MmIAI+wGyDwY+F/vRjoK6NaDe5Ge2rCd8oND7OgjPhbDgjzqqL YK5t0J/ufYHHBEFcilYbWwJ8xdR4unPg8DkbzojHwUIj6IYL8s7AxdkQ3IgwNA2c BzibpQRw2nAjTY/jOI7jOI7jOM4S5g9hNzoHUnGfsAAAAABJRU5ErkJggg==" height="93" preserveAspectRatio="none"/>
|
||||
<rect x="699.5" y="378.5" transform="matrix(1,0,0,1,-691.5,-370.5)" clip-path="url(#clipPath2)" fill="url(#linearGradient5)" width="109" image-rendering="auto" rx="4" ry="4" height="72" stroke="none"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(18,62,162)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(18,62,162)" stroke-miterlimit="1.45">
|
||||
<rect x="699.5" y="378.5" clip-path="url(#clipPath2)" fill="none" width="109" rx="4" ry="4" height="72"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="715.6431" xml:space="preserve" y="412.3906" clip-path="url(#clipPath2)" stroke="none">syshooks [start]</text>
|
||||
<text x="734.5298" xml:space="preserve" y="424.168" clip-path="url(#clipPath2)" stroke="none">-> rc(8)</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,627.479,225.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath8)" width="63" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAABGCAYAAAB7ckzWAAAE30lEQVR4Xu3ZB2/k NhAF4LnYaZd6KZeeOLAvPVfSe5Ty/39T+IEaHENoDdswJDnhAA/eFYv4Zt4MyXXE sGHDhg0bdt12a8YTC8i2/5Ql2aOC44InC55agOfa9Utn3Fiz+CSM3DMFtwueL3ih 4MUGvnuuXT/9jbtxTshIW/zTUQkhd6fgtYI3Ct4qeHuGz28W3J3b9dPfOONvjBMy 2iJn8aL6alRy7xV8WHCv4OOCTxr4fja366e/ccY/GzUlzLtbByRx0SLhV6JG9YOC jwo+L3hQ8FXBNwXfzvAZHs3t+nGQcZxgHvOZd5cOsCDylK+i9XrUCCLxRVTC3xf8 VPDLjF87/FzwY8F3c3/jjDeP+aTC7hyQEU/icvqk4NOo0UQasd8KpoI/Cv5cgOfa 9dOfEx5GTQsqUBPMvxsHtFK3MAuUt6T7ddRII5OE/yr4+xxoT0cYRwnm+SyqQ81P AWqKIripWYCFyEnSPIlKXA6L3hQXI90jnfB7VAemAyjAjvBc1CK4WfQzz1VjRUlu krqFJnEklojn80PtrQOmqA5QB6TAu1G3Q++luk0so07uqrriJMctdIplUj3pHn1/ SAVIATXgLOouQP6bRL+Nuv34JGp1VtzkqgX3JHqih7A0Tg2wIyiC0or8qW2T6GfU eV8U7ONkSe4WukTgMlgaP0VVFXVRmV1FrVk9+rxta3s5aq6LxqGo98Quit4BbfQV P7nv/Xaa1cin5B1fSd7W5mS2lOs9ocuiJd/m/v2oqeb9gkCJqxjypGa7se+eRZW8 U1sv+Z7MZdHPNcVj6Z9G3V4F4ShWsiQv3zLfbW8k2Uq+J3JVtPNxLid7X+a9IBzH SoZ8FjtbnBuZQ82a5L2P0zk/i94q1pN38LCYvtj1JK6KQ+Q53fs3Jb9F5Mm+jfyq sr9Izl+HA/q5kHeWUGA3y3kva6u96rt0wOnJXBb9XFPUau+YexobVHvmZXm0tc/b d+2/Uywv+ipo54Dc538o+DLqPu+Iu+o+z7wsT3hOWk5cTl590buqA/rxQFVSy09f bo/vFLwUtf5Q42qWRS/zPm907VW2X3xP8BD6cTm2v9nl2f44VrbM+7zLu2U534t+ Fr4lIj3RHn3/HJNVXtSp7P2od/rVJZ/mpe3NTjRERXRE6ZADlpzQt7f9zCOd5Lo7 xGlseKNL89KjqNEXBbnvwGMbUpFbB5xH8BBa4hwqrZwp5LpaI+rev5mJfl5y/LZG /vlTVjqAZC8S5SScpI1L4hxqXnK3w9jejmOjqLfWyt++mw6wYAtXA6b49y+4S9CW pDlNjpO6iJvPvOYn9138estS/n5UaB0gBdQARYoKOAGpaQaSiXymXT/9jZPjpC7i +Y+L3RBPax0gMlJADTiLuguIHjIiiZgtMf9zA757rl0/TlPVT6PmOKm3Ed9c7r2l AyxQDVAE7QKixgnIOAlyhJRQF1yI/PUdYSc3EtffOFVdcZPj5jX/7oinWVgWQdWY TJ0DkKCEk6jRdCgiZ3Ax8t1z7SKtf/6r2jyK266kfp61KrAVkqwIkq/cRY4qXIn9 9d1zjnJk1R9pTtx1tA9ZqsDikVAPOIKEkRNV8Bk8167fjSW9ZK0jSBgQTPiuDXZZ 0K7bEEwMGzZs2LBhw4YNGzZs2LBhw4YNGzZs2LBhw4b9f+0f14LHeXVcFtgAAAAA SUVORK5CYII=" height="70" preserveAspectRatio="none"/>
|
||||
<path fill="url(#linearGradient6)" d="M868.5 414.5 C868.5 422.7843 861.7843 429.5 853.5 429.5 C845.2157 429.5 838.5 422.7843 838.5 414.5 C838.5 406.2157 845.2157 399.5 853.5 399.5 C861.7843 399.5 868.5 406.2157 868.5 414.5 Z" clip-path="url(#clipPath2)" transform="matrix(1,0,0,1,-824.479,-391.5)" stroke="none" image-rendering="auto"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(39,174,39)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(39,174,39)" stroke-miterlimit="1.45">
|
||||
<path fill="none" d="M868.5 414.5 C868.5 422.7843 861.7843 429.5 853.5 429.5 C845.2157 429.5 838.5 422.7843 838.5 414.5 C838.5 406.2157 845.2157 399.5 853.5 399.5 C861.7843 399.5 868.5 406.2157 868.5 414.5 Z" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="834.479" xml:space="preserve" y="445.168" clip-path="url(#clipPath2)" stroke="none">running</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,693.5,204.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath9)" width="130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAADUklEQVR4Xu3dWU8U URBA4UIRcRcSRFTcBZdEXHBHxeX//ybr1LVjZwIvPTN2P5xKvvBEN8k9U93zRITj OI7jOI7jOM6iZyWdmXFWo+qfBeeDpU0XwGo6l9bSeU0KZ8LZcEZdFAubfgDc7EK6 nK6ma+m6JoGz4Ew4G86IKNgWC4uhi2A9XUmbaTvdSnc0GbfTTroR7Yw4K86Ms5s7 Bi7QRUBxBHA3PU5P0/P0QqPjHJ6l/fQo7UYLgg3BFmczzDVsAy5EXUTwINpNX6XD 9D590CRwFpzJQbQo7keLgUcF7w2Dt0K3DXjesGrYBETwNn1OX9M3TcL3vz+P0sf0 JloMbIaNaBudD/WgIQRKoijK4nHAJviUjtPP9EuT8iNaEMTAZniYttLFmOPxQEG8 efKc4SWE5w+rh01ABL81OV0MbAY29166Ge3DvBoDp3s/4CWRN1JWDc8hiuOGs3+A xjF7DoTAh/VdtBd6vt3xjsd2HzT9EPh6wvvBSSHM/mH6/04LgQ8vIbDVlxrC7B+k 8RiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiC iiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGo GIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGILK qCEYwzT0z2K0EIxhXLPnsNQQuv8Wz8VPCkHT0A/hMNp/i9+JBfy3+LVoF+Fi++lt Oko/49+NNQ3deRynL+lNepK20+W0GgNnJVpFXORGepQO0sdoW4HyNC3H0bbBh/Qy PUxb6WI6GwNnJdovX0ibaTfa44HSPkXbDNxU08EmIILX0R4LvNtdj/aIZ8MPnv7j ga1wP1oMbAYeE7wzaBp4J+BDyiYggnvRtgEbnc3OB3vw8Ms8W9ajvXkSw260lbMX 7YaEofFxFpwJZ8MmIAI+wGyDwY+F/vRjoK6NaDe5Ge2rCd8oND7OgjPhbDgjzqqL YK5t0J/ufYHHBEFcilYbWwJ8xdR4unPg8DkbzojHwUIj6IYL8s7AxdkQ3IgwNA2c BzibpQRw2nAjTY/jOI7jOI7jOM4S5g9hNzoHUnGfsAAAAABJRU5ErkJggg==" height="93" preserveAspectRatio="none"/>
|
||||
<rect x="898.5" y="378.5" transform="matrix(1,0,0,1,-890.5,-370.5)" clip-path="url(#clipPath2)" fill="url(#linearGradient7)" width="109" image-rendering="auto" rx="4" ry="4" height="72" stroke="none"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(18,62,162)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(18,62,162)" stroke-miterlimit="1.45">
|
||||
<rect x="898.5" y="378.5" clip-path="url(#clipPath2)" fill="none" width="109" rx="4" ry="4" height="72"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="911.9746" xml:space="preserve" y="412.3906" clip-path="url(#clipPath2)" stroke="none">syshook / plugin</text>
|
||||
<text x="937.3188" xml:space="preserve" y="424.168" clip-path="url(#clipPath2)" stroke="none">events</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,806.7964,225.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath10)" width="102" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGYAAABGCAYAAAA+c+FUAAAFI0lEQVR4Xu3b53Ij RwwEYNg655yzj3eSc87ZXof3fybPV0MUx3NLSqJU9B90VVdR3CAVGmhgZlcRhUKh UCgUCoXCTfDQwIdXmMcKJ8AoxFnjncZHGh+d6Dt03HkpVOGWMYoh4I81PtH4VOPT jc80PjvQz445x7muKYFuGQKZgjwePeDPNb7Y+Erja41vNL65pc+vN77a+NL2XOIR STW5V4lzQ8hwdiTrCfJ8dDEIcLfxfuN7jR80frilz+83njduGt+KLtIL0QUiLpGr eo6EwAmgTGdPL0cPMjEI8Gnjl43fNH7b+N2WPvvuq8bPGj+KLtI70QUi7pNR1XMU UhQBFEjWtIleDV9ED/6PjT83/tr420Tf/bI9h1gE/Di6qKqNDarAEucaGEVhPwIp 41WISvgpevD/aFwa/2z8a6Lv0DnOJSCBPo9uc29H7z+sjTh+Z+EAZK6ewr5UClEu ogf0++hVINiC//eW/+xhHnfuEl2gH6JXj8pjbcRRORKhqmYPcvrS6E1S7CtFEVCB VQWHxNhH17j29+gVp/8QR+WoSolQlrYHaWHsxeR1L3rzVimXiZLVcaiKRnH0HpVj ojNeGy7K0laQ1SJzZTCbMU1p8hr5PlFmQWaune9ehCa4vrWJPvHpaXeiquY/GKvF gvEiekZr2kvsD/JVuHbdEr1fGSZYml7GPqtqJpxFX/hp+HzfaGuKktma91pwr8P5 evc0RLA0drmJPghkrynEbhJjJSxFb7FW0aSXeDCwc9CvyvkeS/Sq+Tr6CG3YULEq txBdGMGw8Sg4gsRisrfMAT2Wa1WTvUaFqtS0s+oz0T09R2RbLpo+GzM9jTY2B/oY ziKPdmbvzeDBUqvPRA9C9hfT2CfR1y2CNgZzDvKxnO2MZbJOFpp9poSJXeOXrbJW 9sriJR4M5G1wFsbkZwK8H73H1QCwhSAQxsZiCrPW+OcAH8s1YewElDATBGGtYk5l ZVUxe3DKHpP3GoWZe0w1/y0EwVRmv+rQVHZTccb7oHuPU9m70avW31LCxG4dk9sx NhYt+tbWMTcRZ75P7plJAskgKWodM2Bt5W+rn8XMdnasOGvXL9FX/hq/ZJAUksPf UtjiLLqF5F5Z7izv2yu7jjjzdeierFIvq72yAxjtzAsT57HbL8uqWQvyLMLM+fy8 Zok+jeU+md3lfCZTNjZAMGTquMPsTRh7ZuxmicuDfZkgeZ7eon/pLSZAI7pqyecx hQlZNZ7B6zWb6IETQIFcYvesfw74ZUzBsuGzMH3sPPrGqQ3UehZzAKpGgNiKZmzR pwekOPOLGIdEGs9xzRI7UdgkCzOJqVCV6neXje3BaGlGV8/jZbVHwIYBfUHTXmL3 qtIowCwGqhKCskRb/CkKu7QNVI+Ur4gcn/MVJlajcjwzMdrKeEEmkIAvWxIA82fH nKPSLCL1KwJfRK+UfOkvX5ctXAGjOCrHpKZJy3TWJsiy39RGJCRAvoGJjhFRpakS w8S96FVoha9SSpQjkOKwNc3Z5GSs3UQXyGAg4KqIUJjvLRuDHVMhBFFxrMtrUfoX wUuUGyB7joFAhufL5bLehqcKYE2E8rZLvunvO2LY/yImQdgi67KQrZ5yCxBAmS2Y gkogFcSOiMTm9CEc/zfGMecQcxTEvUqUW0QKpILYkECzpPG/ytBn3xGQDaq2EuRE GEUSdCRW0s+OpRglyP+IFKBEKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgU CoVCoXAa/AsuJse/SpChuwAAAABJRU5ErkJggg==" height="70" preserveAspectRatio="none"/>
|
||||
<path fill="url(#linearGradient8)" d="M1067.5 414.5 C1067.5 422.7843 1060.7843 429.5 1052.5 429.5 C1044.2157 429.5 1037.5 422.7843 1037.5 414.5 C1037.5 406.2157 1044.2157 399.5 1052.5 399.5 C1060.7843 399.5 1067.5 406.2157 1067.5 414.5 Z" clip-path="url(#clipPath2)" transform="matrix(1,0,0,1,-1003.7964,-391.5)" stroke="none" image-rendering="auto"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(39,174,39)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(39,174,39)" stroke-miterlimit="1.45">
|
||||
<path fill="none" d="M1067.5 414.5 C1067.5 422.7843 1060.7843 429.5 1052.5 429.5 C1044.2157 429.5 1037.5 422.7843 1037.5 414.5 C1037.5 406.2157 1044.2157 399.5 1052.5 399.5 C1060.7843 399.5 1067.5 406.2157 1067.5 414.5 Z" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="1013.7964" xml:space="preserve" y="445.168" clip-path="url(#clipPath2)" stroke="none">stop [power off]</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,892.5,204.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath11)" width="130" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAABdCAYAAABpa74HAAADUklEQVR4Xu3dWU8U URBA4UIRcRcSRFTcBZdEXHBHxeX//ybr1LVjZwIvPTN2P5xKvvBEN8k9U93zRITj OI7jOI7jOM6iZyWdmXFWo+qfBeeDpU0XwGo6l9bSeU0KZ8LZcEZdFAubfgDc7EK6 nK6ma+m6JoGz4Ew4G86IKNgWC4uhi2A9XUmbaTvdSnc0GbfTTroR7Yw4K86Ms5s7 Bi7QRUBxBHA3PU5P0/P0QqPjHJ6l/fQo7UYLgg3BFmczzDVsAy5EXUTwINpNX6XD 9D590CRwFpzJQbQo7keLgUcF7w2Dt0K3DXjesGrYBETwNn1OX9M3TcL3vz+P0sf0 JloMbIaNaBudD/WgIQRKoijK4nHAJviUjtPP9EuT8iNaEMTAZniYttLFmOPxQEG8 efKc4SWE5w+rh01ABL81OV0MbAY29166Ge3DvBoDp3s/4CWRN1JWDc8hiuOGs3+A xjF7DoTAh/VdtBd6vt3xjsd2HzT9EPh6wvvBSSHM/mH6/04LgQ8vIbDVlxrC7B+k 8RiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiC iiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGo GIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGIKKIagYgoohqBiCiiGoGILK qCEYwzT0z2K0EIxhXLPnsNQQuv8Wz8VPCkHT0A/hMNp/i9+JBfy3+LVoF+Fi++lt Oko/49+NNQ3deRynL+lNepK20+W0GgNnJVpFXORGepQO0sdoW4HyNC3H0bbBh/Qy PUxb6WI6GwNnJdovX0ibaTfa44HSPkXbDNxU08EmIILX0R4LvNtdj/aIZ8MPnv7j ga1wP1oMbAYeE7wzaBp4J+BDyiYggnvRtgEbnc3OB3vw8Ms8W9ajvXkSw260lbMX 7YaEofFxFpwJZ8MmIAI+wGyDwY+F/vRjoK6NaDe5Ge2rCd8oND7OgjPhbDgjzqqL YK5t0J/ufYHHBEFcilYbWwJ8xdR4unPg8DkbzojHwUIj6IYL8s7AxdkQ3IgwNA2c BzibpQRw2nAjTY/jOI7jOI7jOM4S5g9hNzoHUnGfsAAAAABJRU5ErkJggg==" height="93" preserveAspectRatio="none"/>
|
||||
<rect x="1097.5" y="378.5" transform="matrix(1,0,0,1,-1089.5,-370.5)" clip-path="url(#clipPath2)" fill="url(#linearGradient9)" width="109" image-rendering="auto" rx="4" ry="4" height="72" stroke="none"/>
|
||||
</g>
|
||||
<g stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" fill="rgb(18,62,162)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(18,62,162)" stroke-miterlimit="1.45">
|
||||
<rect x="1097.5" y="378.5" clip-path="url(#clipPath2)" fill="none" width="109" rx="4" ry="4" height="72"/>
|
||||
</g>
|
||||
<g font-size="10px" stroke-linecap="butt" transform="matrix(1,0,0,1,-197,-166)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
|
||||
<text x="1129.5732" xml:space="preserve" y="412.3906" clip-path="url(#clipPath2)" stroke="none">syshooks</text>
|
||||
<text x="1138.1108" xml:space="preserve" y="424.168" clip-path="url(#clipPath2)" stroke="none">[stop]</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,424.5,7)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath12)" width="270" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAAAzCAYAAABmIuZiAAADHUlEQVR4Xu3d2U4V QRSF4Q2ICqigyOCMGBXneUYFh/d/Jfef6g5H4k1xqk4i+Vfy5VxZpRe1endfWBHG GGOMMcYYY4wxxhhjjDGmXeYG8xMWGplcE+NekmaneViUA34mnU3nOmHtxQF7SZqN yYd4kxIZS4NDvZwuptW01hhrXoqy/oW0EmU/SX0tpfNRHt48tKcuj8nS4DBfSVvp erqZbg2/LdyIsu522kwb6aqk7tbT5SgPbopkLI8Th+JgjGExSoPDvZsepsfpSSOs 9SjtpQfpfro3YD9J/exEGQJ4aDP9M4Fw7k88dczH0bTBpMEmT9Pr9D59aIS18C69 ibL+q8FLSd28SM+iPLg531tRPhdw7jn/Jwp/kPceRhheI5g0ONSf07f0ffht5Wva H3wZsJekPj5FeXhzrikPPhusRTn3UxcHHy5ZkFcKJgMO+Y/0sxHWGh1KmpmDKA9s yoPJ406UzxJ8LJ26OGgg3oH4HsEGTBq/0u/ht6fjJSOpHR7WnGcmD15bdqJhcfxr 4mBTD7b0f7M4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFWz OCRVszgkVbM4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFXrWhz+Z8XS6dS1OGY9 cfCPkdTfYZTz/DE6FQfXP3JhC7et7UfZcNy4pYMBLSipL0qDi88YCLil8XaUe2Sb FMd4kxv3unItI+3EJS5sym8LlBEmb29jfJLUD2eZ0uBc70UZEJrc5DbeHbuZ7kb5 zsEmTB5syG8Lb+Pve2PHey0l9fM8yqRBaXC+OedT3x07F+XWam6vZnxh6mBxJg9e W/jmwW8L/MUfxtFN9btR9pLUz06Uax/5hsmF00wbSzHlbfX8wYUo7bMSpTxopGtR RpqWKKXtKH/5jXQ1rUvqjo+hFAaTBqWxGFNMG2Mmy4NFeW1hA757rDbCWmBdCmo5 yl6S+uNDKN80OONMGpTGiaeNybAIi7EobcQGrbEu2IOiGrGvpNloUhjHw6K9GWOM McYYY4wxxhhjjDHGGGPMKckfuFGv0cj5VlIAAAAASUVORK5CYII=" height="51" preserveAspectRatio="none"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-197,-166)" fill-opacity="0.902" fill="rgb(255,255,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(255,255,255)" stroke-opacity="0.902">
|
||||
<rect x="629.5" width="249" height="30" y="181" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M654.4 181 L629.5 181 L629.5 211 L654.4 211" clip-path="url(#clipPath2)"/>
|
||||
<text x="635.5" font-size="10px" y="193.8906" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">Simple scripts, executed early, also used by core </text>
|
||||
<text x="635.5" font-size="10px" y="205.668" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">components to handle early-boot requirements</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,537,56.25)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath13)" width="270" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAAAzCAYAAABmIuZiAAADHUlEQVR4Xu3d2U4V QRSF4Q2ICqigyOCMGBXneUYFh/d/Jfef6g5H4k1xqk4i+Vfy5VxZpRe1endfWBHG GGOMMcYYY4wxxhhjjDGmXeYG8xMWGplcE+NekmaneViUA34mnU3nOmHtxQF7SZqN yYd4kxIZS4NDvZwuptW01hhrXoqy/oW0EmU/SX0tpfNRHt48tKcuj8nS4DBfSVvp erqZbg2/LdyIsu522kwb6aqk7tbT5SgPbopkLI8Th+JgjGExSoPDvZsepsfpSSOs 9SjtpQfpfro3YD9J/exEGQJ4aDP9M4Fw7k88dczH0bTBpMEmT9Pr9D59aIS18C69 ibL+q8FLSd28SM+iPLg531tRPhdw7jn/Jwp/kPceRhheI5g0ONSf07f0ffht5Wva H3wZsJekPj5FeXhzrikPPhusRTn3UxcHHy5ZkFcKJgMO+Y/0sxHWGh1KmpmDKA9s yoPJ406UzxJ8LJ26OGgg3oH4HsEGTBq/0u/ht6fjJSOpHR7WnGcmD15bdqJhcfxr 4mBTD7b0f7M4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFWz OCRVszgkVbM4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFXrWhz+Z8XS6dS1OGY9 cfCPkdTfYZTz/DE6FQfXP3JhC7et7UfZcNy4pYMBLSipL0qDi88YCLil8XaUe2Sb FMd4kxv3unItI+3EJS5sym8LlBEmb29jfJLUD2eZ0uBc70UZEJrc5DbeHbuZ7kb5 zsEmTB5syG8Lb+Pve2PHey0l9fM8yqRBaXC+OedT3x07F+XWam6vZnxh6mBxJg9e W/jmwW8L/MUfxtFN9btR9pLUz06Uax/5hsmF00wbSzHlbfX8wYUo7bMSpTxopGtR RpqWKKXtKH/5jXQ1rUvqjo+hFAaTBqWxGFNMG2Mmy4NFeW1hA757rDbCWmBdCmo5 yl6S+uNDKN80OONMGpTGiaeNybAIi7EobcQGrbEu2IOiGrGvpNloUhjHw6K9GWOM McYYY4wxxhhjjDHGGGPMKckfuFGv0cj5VlIAAAAASUVORK5CYII=" height="51" preserveAspectRatio="none"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-197,-166)" fill-opacity="0.902" fill="rgb(255,255,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(255,255,255)" stroke-opacity="0.902">
|
||||
<rect x="742" width="249" height="30" y="230.25" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M766.9 230.25 L742 230.25 L742 260.25 L766.9 260.25" clip-path="url(#clipPath2)"/>
|
||||
<text x="748" font-size="10px" y="243.1406" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">Structures pluggable core services, devices and </text>
|
||||
<text x="748" font-size="10px" y="254.918" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">offers configure event handlers</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,651.9,105.5)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath14)" width="270" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQ4AAAAzCAYAAABmIuZiAAADHUlEQVR4Xu3d2U4V QRSF4Q2ICqigyOCMGBXneUYFh/d/Jfef6g5H4k1xqk4i+Vfy5VxZpRe1endfWBHG GGOMMcYYY4wxxhhjjDGmXeYG8xMWGplcE+NekmaneViUA34mnU3nOmHtxQF7SZqN yYd4kxIZS4NDvZwuptW01hhrXoqy/oW0EmU/SX0tpfNRHt48tKcuj8nS4DBfSVvp erqZbg2/LdyIsu522kwb6aqk7tbT5SgPbopkLI8Th+JgjGExSoPDvZsepsfpSSOs 9SjtpQfpfro3YD9J/exEGQJ4aDP9M4Fw7k88dczH0bTBpMEmT9Pr9D59aIS18C69 ibL+q8FLSd28SM+iPLg531tRPhdw7jn/Jwp/kPceRhheI5g0ONSf07f0ffht5Wva H3wZsJekPj5FeXhzrikPPhusRTn3UxcHHy5ZkFcKJgMO+Y/0sxHWGh1KmpmDKA9s yoPJ406UzxJ8LJ26OGgg3oH4HsEGTBq/0u/ht6fjJSOpHR7WnGcmD15bdqJhcfxr 4mBTD7b0f7M4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFWz OCRVszgkVbM4JFWzOCRVszgkVbM4JFWzOCRVszgkVbM4JFXrWhz+Z8XS6dS1OGY9 cfCPkdTfYZTz/DE6FQfXP3JhC7et7UfZcNy4pYMBLSipL0qDi88YCLil8XaUe2Sb FMd4kxv3unItI+3EJS5sym8LlBEmb29jfJLUD2eZ0uBc70UZEJrc5DbeHbuZ7kb5 zsEmTB5syG8Lb+Pve2PHey0l9fM8yqRBaXC+OedT3x07F+XWam6vZnxh6mBxJg9e W/jmwW8L/MUfxtFN9btR9pLUz06Uax/5hsmF00wbSzHlbfX8wYUo7bMSpTxopGtR RpqWKKXtKH/5jXQ1rUvqjo+hFAaTBqWxGFNMG2Mmy4NFeW1hA757rDbCWmBdCmo5 yl6S+uNDKN80OONMGpTGiaeNybAIi7EobcQGrbEu2IOiGrGvpNloUhjHw6K9GWOM McYYY4wxxhhjjDHGGGPMKckfuFGv0cj5VlIAAAAASUVORK5CYII=" height="51" preserveAspectRatio="none"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-197,-166)" fill-opacity="0.902" fill="rgb(255,255,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(255,255,255)" stroke-opacity="0.902">
|
||||
<rect x="856.9" width="249" height="30" y="279.5" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M881.8 279.5 L856.9 279.5 L856.9 309.5 L881.8 309.5" clip-path="url(#clipPath2)"/>
|
||||
<text x="862.9" font-size="10px" y="298.2793" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">Regular service startup point</text>
|
||||
</g>
|
||||
<g fill="url(#linearGradient10)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke="url(#linearGradient10)">
|
||||
<path d="M222.5 480.5 L855.5 480.5 L865.5 500.5 L855.5 520.5 L222.5 520.5 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M222.5 480.5 L855.5 480.5 L865.5 500.5 L855.5 520.5 L222.5 520.5 Z" clip-path="url(#clipPath2)"/>
|
||||
<text x="510.0083" font-size="10px" y="504.2793" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" font-weight="bold" xml:space="preserve">bootup stage</text>
|
||||
</g>
|
||||
<g fill="url(#linearGradient11)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke="url(#linearGradient11)">
|
||||
<path d="M851.7115 480.5 L1053.4615 480.5 L1053.4615 520.5 L851.7115 520.5 L861.7115 500.5 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M851.7115 480.5 L1053.4615 480.5 L1053.4615 520.5 L851.7115 520.5 L861.7115 500.5 Z" clip-path="url(#clipPath2)"/>
|
||||
<text x="916.5855" font-size="10px" y="504.2793" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" font-weight="bold" xml:space="preserve">running stage</text>
|
||||
</g>
|
||||
<g fill="url(#linearGradient12)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke="url(#linearGradient12)">
|
||||
<path d="M1037.5 480.5 L1206.5 480.5 L1206.5 520.5 L1037.5 520.5 L1047.5 500.5 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M1037.5 480.5 L1206.5 480.5 L1206.5 520.5 L1037.5 520.5 L1047.5 500.5 Z" clip-path="url(#clipPath2)"/>
|
||||
<text x="1080.8062" font-size="10px" y="504.2793" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" font-weight="bold" xml:space="preserve">shutdown stage</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,821.8,155)" image-rendering="optimizeQuality">
|
||||
<image x="0" y="0" clip-path="url(#clipPath15)" width="200" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAzCAYAAADSDUdEAAADC0lEQVR4Xu3dV2/U QBSG4ZNCCyWhJBA6ARJ67y0hwP//S5xXYysWika79q4jovdIj3yzHu/FfDPjm+MI y7Isy7Isy7Isy7IsyzoutdBY7FiaQvc+tONJR2GmxYBM8uV0Mp0agPtxIsp40pi6 C/ZMwtKGg0m9ks6n1bTWA/ddiDLGuXQ2ypjSWM6k01HmM4Fpg9KruuFgQl9KV9P1 dDPdaq6TutHcey1tpPV0RRoRc5jFmkWaoLQh6VUEhAFIHgMzwbfSTnqSnk6B3z9O j9J2epjuNxhTmrd76U6UxZrFmdMMIWET6LWLLMbB7sHOwUOepTfpQ/o4BX6P9+lt lDFeN15JI3gZZf6ywN+OsqNwzOd9uHdAeLEmaRyNGJiJ/SX9SLvNdRrf07fG1wbj SfP2OcoCTVA4wWxGOWqxCQwKCC/XbEsck9gFmOj76dcU+H3rp3QEWNBZkN9FOe7z ysDcHhyQtSgv5LxLcFziQb/Tn+Y61L9hkuaBkHCCYZFnsWfRn0lADttBeKCTW/8T AyJVGBCpwoBIFQZEqjAgUoUBkSoMiFRhQKQKAyJVGBCpwoBIFQZEqjAgUoUBkSoM iFRhQKQKAyJVGBCpwoBIFXMLiE0bdBzMLSDz2EH2pZHtRenHRm+smQeEHkL0EmJw HkIaeSjXae11sBtJY2D3oIEcnT1pgcucpini4IC0nRW3o7QK/RTlYewkXCdFsNDt pki3O2kMvB7QNO5FehCliTqdFQe1HiVd9ObdiNL8l/cQQsJOwnGL66T4c92+vG2/ VGkMz6PMXxZ63qnb3rzL0TMg3MTNfFPhYpRdhJDwAI5bnOO4ToptbScOOrtvRRlP GsPdKE2rmcfrUU5GnJCWomctxMH3QUgaIWEn2YxyfpsWf4x76RTPHyTBl6WR8AkP 5vBqlFNR+30Q5nnv6oaEnYSBObeRPh40KX7f/brUSoMxpTEQCLBr8N7BvOY1YnAR EgYibQxMWPrg3vbbhPy5FmNLY2JOD9o5Dqt20KEsy7Isy7Isy7Isy7Isy7KsmdVf Bs2NO86RzTgAAAAASUVORK5CYII=" height="51" preserveAspectRatio="none"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-197,-166)" fill-opacity="0.902" fill="rgb(255,255,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(255,255,255)" stroke-opacity="0.902">
|
||||
<rect x="1026.8" width="179.7" height="30" y="329" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M1044.77 329 L1026.8 329 L1026.8 359 L1044.77 359" clip-path="url(#clipPath2)"/>
|
||||
<text x="1032.8" font-size="10px" y="341.8906" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">integration points for (device </text>
|
||||
<text x="1032.8" font-size="10px" y="353.668" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve">related) events</text>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path fill="none" d="M252.5125 414.5 L274.5039 414.5" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,-197,-166)" stroke-linecap="butt">
|
||||
<path d="M282.5039 414.5 L270.5039 409.5 L273.5039 414.5 L270.5039 419.5 Z" stroke="none" clip-path="url(#clipPath2)"/>
|
||||
<path fill="none" d="M391.4666 414.5 L413.4743 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M421.4743 414.5 L409.4743 409.5 L412.4743 414.5 L409.4743 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" d="M530.4666 414.5 L552.4743 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M560.4743 414.5 L548.4743 409.5 L551.4743 414.5 L548.4743 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" d="M669.4666 414.5 L691.4743 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M699.4743 414.5 L687.4743 409.5 L690.4743 414.5 L687.4743 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" d="M808.4626 414.5 L830.5022 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M838.5022 414.5 L826.5022 409.5 L829.5022 414.5 L826.5022 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" d="M868.5125 414.5 L890.5039 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M898.5039 414.5 L886.5039 409.5 L889.5039 414.5 L886.5039 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" d="M1007.4626 414.5 L1029.5022 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M1037.5022 414.5 L1025.5022 409.5 L1028.5022 414.5 L1025.5022 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" d="M1067.5125 414.5 L1089.5039 414.5" clip-path="url(#clipPath2)"/>
|
||||
<path d="M1097.5039 414.5 L1085.5039 409.5 L1088.5039 414.5 L1085.5039 419.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
|
||||
<path fill="none" stroke-dasharray="6,2" d="M499.2189 378.519 L617 196 L629.4758 196" clip-path="url(#clipPath2)"/>
|
||||
<path fill="none" stroke-dasharray="6,2" d="M638.6038 378.5096 L726 245.25 L742.0189 245.25" clip-path="url(#clipPath2)"/>
|
||||
<path fill="none" stroke-dasharray="6,2" d="M779.5008 378.4941 L838.9888 294.5 L856.8945 294.5" clip-path="url(#clipPath2)"/>
|
||||
<path fill="none" stroke-dasharray="6,2" d="M977.6392 378.5271 L1001.2881 344 L1026.777 344" clip-path="url(#clipPath2)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 47 KiB |
Loading…
Reference in a new issue