commit 35c9457fb41618bf9aa02bf2eda7ea355bea78bf
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Mon Oct 22 12:24:27 2018 +0200

    Finalized (hopefully) the documentation/specification.

diff --git a/doc/classdiagrams/overview.svg b/doc/classdiagrams/overview.svg
index 39acc3b..f125c3f 100644
--- a/doc/classdiagrams/overview.svg
+++ b/doc/classdiagrams/overview.svg
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1800px" preserveAspectRatio="none" style="width:8149px;height:1800px;" version="1.1" viewBox="0 0 8149 1800" width="8149px" zoomAndPan="magnify"><defs><filter height="300%" id="fx5q9amszycal" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="4002.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="87" x="4003.5" y="37.6611">Overview</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="4050" y="58.6143"/><!--cluster primitives--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="318.921,1463.8594,401.921,1463.8594,408.921,1486.1563,796.921,1486.1563,796.921,1656.8594,318.921,1656.8594,318.921,1463.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="318.921" x2="408.921" y1="1486.1563" y2="1486.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="322.921" y="1478.8545">primitives</text><!--cluster interfaces--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="3543.92,899.8594,3629.92,899.8594,3636.92,922.1563,7980.92,922.1563,7980.92,1788.8594,3543.92,1788.8594,3543.92,899.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="3543.92" x2="3636.92" y1="922.1563" y2="922.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="3547.92" y="914.8545">interfaces</text><!--cluster condition variable--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="4353.92,1123.8594,4499.92,1123.8594,4506.92,1146.1563,5057.92,1146.1563,5057.92,1628.8594,4353.92,1628.8594,4353.92,1123.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4353.92" x2="4506.92" y1="1146.1563" y2="1146.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="140" x="4357.92" y="1138.8545">condition variable</text><!--cluster timer--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="3567.92,1123.8594,3614.92,1123.8594,3621.92,1146.1563,4329.92,1146.1563,4329.92,1616.3594,3567.92,1616.3594,3567.92,1123.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="3567.92" x2="3621.92" y1="1146.1563" y2="1146.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="3571.92" y="1138.8545">timer</text><!--cluster thread--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="5081.92,942.8594,5139.92,942.8594,5146.92,965.1563,5827.92,965.1563,5827.92,1622.8594,5081.92,1622.8594,5081.92,942.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5081.92" x2="5146.92" y1="965.1563" y2="965.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="5085.92" y="957.8545">thread</text><!--cluster events--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="5851.92,1130.3594,5911.92,1130.3594,5918.92,1152.6563,7352.92,1152.6563,7352.92,1764.8594,5851.92,1764.8594,5851.92,1130.3594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5851.92" x2="5918.92" y1="1152.6563" y2="1152.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="5855.92" y="1145.3545">events</text><!--cluster middleware--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="717.921,86.8594,815.921,86.8594,822.921,109.1563,3519.92,109.1563,3519.92,1304.3594,717.921,1304.3594,717.921,86.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="717.921" x2="822.921" y1="109.1563" y2="109.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="92" x="721.921" y="101.8545">middleware</text><!--cluster real-time class--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="741.921,469.3594,862.921,469.3594,869.921,491.6563,1726.92,491.6563,1726.92,1280.3594,741.921,1280.3594,741.921,469.3594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="741.921" x2="869.921" y1="491.6563" y2="491.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="115" x="745.921" y="484.3545">real-time class</text><!--cluster node--><polygon fill="#FFFFFF" filter="url(#fx5q9amszycal)" points="2366.92,734.8594,2412.92,734.8594,2419.92,757.1563,3427.92,757.1563,3427.92,846.8594,2366.92,846.8594,2366.92,734.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="2366.92" x2="2419.92" y1="757.1563" y2="757.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="2370.92" y="749.8545">node</text><!--class urt_delay_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="99.2188" id="urt_delay_t" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="680.921" y="1520.3594"/><ellipse cx="695.921" cy="1536.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M696.7648,1543.1094 L694.3116,1543.1094 L694.3116,1532.8594 L691.171,1532.8594 L691.171,1530.7188 L699.9054,1530.7188 L699.9054,1532.8594 L696.7648,1532.8594 L696.7648,1543.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="68" x="709.921" y="1540.5137">urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="681.921" x2="779.921" y1="1552.3594" y2="1552.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="686.921" y="1583.3745">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="681.921" x2="714.421" y1="1566.7617" y2="1566.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="714.421" y="1570.0698">either</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="747.421" x2="779.921" y1="1566.7617" y2="1566.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="686.921" y="1612.9839">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="681.921" x2="724.921" y1="1596.3711" y2="1596.3711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="724.921" y="1599.6792">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="736.921" x2="779.921" y1="1596.3711" y2="1596.3711"/><!--class urt_status_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="86.4141" id="urt_status_t" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="479.921" y="1526.8594"/><ellipse cx="521.471" cy="1542.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M525.5804,1548.8594 L517.8616,1548.8594 L517.8616,1536.4688 L525.5804,1536.4688 L525.5804,1538.625 L520.3148,1538.625 L520.3148,1541.2969 L525.0804,1541.2969 L525.0804,1543.4531 L520.3148,1543.4531 L520.3148,1546.7031 L525.5804,1546.7031 L525.5804,1548.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="541.371" y="1547.0137">urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="480.921" x2="644.921" y1="1558.8594" y2="1558.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="485.921" y="1573.0698">URT_STATUS_OK = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="154" x="485.921" y="1585.8745">URT_STATUS_WARNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="485.921" y="1598.6792">URT_STATUS_ERROR = -1</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="480.921" x2="644.921" y1="1605.2734" y2="1605.2734"/><!--class urt_topicid_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="141.6328" id="urt_topicid_t" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="335.421" y="1498.8594"/><ellipse cx="350.421" cy="1514.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M351.2648,1521.6094 L348.8116,1521.6094 L348.8116,1511.3594 L345.671,1511.3594 L345.671,1509.2188 L354.4054,1509.2188 L354.4054,1511.3594 L351.2648,1511.3594 L351.2648,1521.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="364.421" y="1519.0137">urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="336.421" x2="443.421" y1="1530.8594" y2="1530.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="341.421" y="1545.0698">uin8_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="341.421" y="1574.6792">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="336.421" x2="383.921" y1="1558.0664" y2="1558.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="383.921" y="1561.3745">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="395.921" x2="443.421" y1="1558.0664" y2="1558.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="341.421" y="1604.2886">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="336.421" x2="383.921" y1="1587.6758" y2="1587.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="383.921" y="1590.9839">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="395.921" x2="443.421" y1="1587.6758" y2="1587.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="341.421" y="1633.8979">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="336.421" x2="383.921" y1="1617.2852" y2="1617.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="383.921" y="1620.5933">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="395.921" x2="443.421" y1="1617.2852" y2="1617.2852"/><!--class urt_osTime_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="73.6094" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="7707.42" y="1532.8594"/><ellipse cx="7792.17" cy="1548.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7793.0138,1555.6094 L7790.5606,1555.6094 L7790.5606,1545.3594 L7787.42,1545.3594 L7787.42,1543.2188 L7796.1544,1543.2188 L7796.1544,1545.3594 L7793.0138,1545.3594 L7793.0138,1555.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="7812.67" y="1553.0137">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7708.42" x2="7963.42" y1="1564.8594" y2="1564.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7708.42" x2="7963.42" y1="1572.8594" y2="1572.8594"/><ellipse cx="7718.42" cy="1584.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="7727.42" y="1587.0698">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="7718.42" cy="1597.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="7727.42" y="1599.8745">urtTimeNow (void) : urt_osTime_t</text><!--class urt_osMutex_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="99.2188" id="urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.5;" width="300" x="7371.92" y="1520.3594"/><ellipse cx="7474.17" cy="1536.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7475.0138,1543.1094 L7472.5606,1543.1094 L7472.5606,1532.8594 L7469.42,1532.8594 L7469.42,1530.7188 L7478.1544,1530.7188 L7478.1544,1532.8594 L7475.0138,1532.8594 L7475.0138,1543.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="7494.67" y="1540.5137">urt_osMutex_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7372.92" x2="7670.92" y1="1552.3594" y2="1552.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7372.92" x2="7670.92" y1="1560.3594" y2="1560.3594"/><ellipse cx="7382.92" cy="1572.2617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="247" x="7391.92" y="1574.5698">urtMutexInit (mutex : urt_osmutex_t*) : void</text><ellipse cx="7382.92" cy="1585.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="255" x="7391.92" y="1587.3745">urtMutexLock (mutex : urt_osmutex_t*) : void</text><ellipse cx="7382.92" cy="1597.8711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="7391.92" y="1600.1792">urtMutexTryLock (mutex : urt_osmutex_t*) : bool</text><ellipse cx="7382.92" cy="1610.6758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="267" x="7391.92" y="1612.9839">urtMutexUnlock (mutex : urt_osmutex_t*) : void</text><!--class urt_condvarStatus_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="86.4141" id="urt_condvarStatus_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="4576.92" y="1526.8594"/><ellipse cx="4638.67" cy="1542.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4642.7794,1548.8594 L4635.0606,1548.8594 L4635.0606,1536.4688 L4642.7794,1536.4688 L4642.7794,1538.625 L4637.5138,1538.625 L4637.5138,1541.2969 L4642.2794,1541.2969 L4642.2794,1543.4531 L4637.5138,1543.4531 L4637.5138,1546.7031 L4642.7794,1546.7031 L4642.7794,1548.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="4659.17" y="1547.0137">urt_condvarStatus_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4577.92" x2="4833.92" y1="1558.8594" y2="1558.8594"/><ellipse cx="4587.92" cy="1570.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="4596.92" y="1573.0698">URT_CONDVAR_STATUS_SIGNAL = 0</text><ellipse cx="4587.92" cy="1583.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="4596.92" y="1585.8745">URT_CONDVAR_STATUS_BROADCAST = 1</text><ellipse cx="4587.92" cy="1596.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="4596.92" y="1598.6792">URT_CONDVAR_STATUS_TIMEOUT = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4577.92" x2="4833.92" y1="1605.2734" y2="1605.2734"/><!--class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="99.2188" id="urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.5;" width="671" x="4370.42" y="1158.8594"/><ellipse cx="4651.17" cy="1174.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4652.0138,1181.6094 L4649.5606,1181.6094 L4649.5606,1171.3594 L4646.42,1171.3594 L4646.42,1169.2188 L4655.1544,1169.2188 L4655.1544,1171.3594 L4652.0138,1171.3594 L4652.0138,1181.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="4671.67" y="1179.0137">urt_osCondvar_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4371.42" x2="5040.42" y1="1190.8594" y2="1190.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4371.42" x2="5040.42" y1="1198.8594" y2="1198.8594"/><ellipse cx="4381.42" cy="1210.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="4390.42" y="1213.0698">urtCondvarInit (condvar : urt_osCondvar_t*) : void</text><ellipse cx="4381.42" cy="1223.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="4390.42" y="1225.8745">urtConvarSignal (condvar : urt_osCondvar_t*) : void</text><ellipse cx="4381.42" cy="1236.3711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="324" x="4390.42" y="1238.6792">urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void</text><ellipse cx="4381.42" cy="1249.1758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="645" x="4390.42" y="1251.4839">urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_condvarStatus_t</text><!--class urt_osTimerCallback_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="3694.92" y="1539.3594"/><ellipse cx="3765.67" cy="1555.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3766.5138,1562.1094 L3764.0606,1562.1094 L3764.0606,1551.8594 L3760.92,1551.8594 L3760.92,1549.7188 L3769.6544,1549.7188 L3769.6544,1551.8594 L3766.5138,1551.8594 L3766.5138,1562.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="3786.17" y="1559.5137">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3695.92" x2="3979.92" y1="1571.3594" y2="1571.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3695.92" x2="3979.92" y1="1579.3594" y2="1579.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="3700.92" y="1593.5698">urt_osTimerCallback_t (parameter : void*) : void</text><!--class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="99.2188" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="731" x="3583.42" y="1158.8594"/><ellipse cx="3902.67" cy="1174.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3903.5138,1181.6094 L3901.0606,1181.6094 L3901.0606,1171.3594 L3897.92,1171.3594 L3897.92,1169.2188 L3906.6544,1169.2188 L3906.6544,1171.3594 L3903.5138,1171.3594 L3903.5138,1181.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="3923.17" y="1179.0137">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3584.42" x2="4313.42" y1="1190.8594" y2="1190.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3584.42" x2="4313.42" y1="1198.8594" y2="1198.8594"/><ellipse cx="3594.42" cy="1210.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="3603.42" y="1213.0698">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="3594.42" cy="1223.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="705" x="3603.42" y="1225.8745">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="3594.42" cy="1236.3711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="300" x="3603.42" y="1238.6792">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="3594.42" cy="1249.1758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="254" x="3603.42" y="1251.4839">urtTimerIsArmed (timer : urt_timer_t*) : bool</text><!--class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="48" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="5097.92" y="1545.8594"/><ellipse cx="5112.92" cy="1561.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5113.7638,1568.6094 L5111.3106,1568.6094 L5111.3106,1558.3594 L5108.17,1558.3594 L5108.17,1556.2188 L5116.9044,1556.2188 L5116.9044,1558.3594 L5113.7638,1558.3594 L5113.7638,1568.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="5126.92" y="1566.0137">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5098.92" x2="5246.92" y1="1577.8594" y2="1577.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5098.92" x2="5246.92" y1="1585.8594" y2="1585.8594"/><!--class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="5282.92" y="1539.3594"/><ellipse cx="5330.67" cy="1555.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5331.5138,1562.1094 L5329.0606,1562.1094 L5329.0606,1551.8594 L5325.92,1551.8594 L5325.92,1549.7188 L5334.6544,1549.7188 L5334.6544,1551.8594 L5331.5138,1551.8594 L5331.5138,1562.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="5351.17" y="1559.5137">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5283.92" x2="5533.92" y1="1571.3594" y2="1571.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5283.92" x2="5533.92" y1="1579.3594" y2="1579.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="5288.92" y="1593.5698">urt_osThreadFunction_t (arg : void*) : void</text><!--class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="5569.92" y="1532.8594"/><ellipse cx="5591.67" cy="1548.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5595.7794,1554.8594 L5588.0606,1554.8594 L5588.0606,1542.4688 L5595.7794,1542.4688 L5595.7794,1544.625 L5590.5138,1544.625 L5590.5138,1547.2969 L5595.2794,1547.2969 L5595.2794,1549.4531 L5590.5138,1549.4531 L5590.5138,1552.7031 L5595.7794,1552.7031 L5595.7794,1554.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="5607.17" y="1553.0137">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5570.92" x2="5810.92" y1="1564.8594" y2="1564.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="5575.92" y="1579.0698">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="5575.92" y="1591.8745">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5570.92" x2="5810.92" y1="1598.4688" y2="1598.4688"/><!--class urt_osThread_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="460.9453" id="urt_osThread_t" style="stroke: #A80036; stroke-width: 1.5;" width="613" x="5102.42" y="977.8594"/><ellipse cx="5357.67" cy="993.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5358.5138,1000.6094 L5356.0606,1000.6094 L5356.0606,990.3594 L5352.92,990.3594 L5352.92,988.2188 L5361.6544,988.2188 L5361.6544,990.3594 L5358.5138,990.3594 L5358.5138,1000.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="5378.17" y="998.0137">urt_osThread_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5103.42" x2="5714.42" y1="1009.8594" y2="1009.8594"/><ellipse cx="5113.42" cy="1021.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="280" x="5122.42" y="1024.0698">URT_THREAD_PRIO_LOW_MIN : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1034.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="5122.42" y="1036.8745">URT_THREAD_PRIO_LOW_MAX : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1047.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="302" x="5122.42" y="1049.6792">URT_THREAD_PRIO_NORMAL_MIN : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1060.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="305" x="5122.42" y="1062.4839">URT_THREAD_PRIO_NORMAL_MAX : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1072.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="284" x="5122.42" y="1075.2886">URT_THREAD_PRIO_HIGH_MIN : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1085.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="287" x="5122.42" y="1088.0933">URT_THREAD_PRIO_HIGH_MAX : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1098.5898" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="270" x="5122.42" y="1100.8979">URT_THREAD_PRIO_RT_MIN : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1111.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="273" x="5122.42" y="1113.7026">URT_THREAD_PRIO_RT_MAX : urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5103.42" x2="5714.42" y1="1120.2969" y2="1120.2969"/><ellipse cx="5113.42" cy="1132.1992" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="5122.42" y="1134.5073">URT_THREAD_MAX_SLEEP : float</text><ellipse cx="5113.42" cy="1145.0039" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="5122.42" y="1147.312">URT_THREAD_MAX_SSLEP : unsigned int</text><ellipse cx="5113.42" cy="1157.8086" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="233" x="5122.42" y="1160.1167">URT_THREAD_MAX_MSLEEP : unsigned int</text><ellipse cx="5113.42" cy="1170.6133" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="5122.42" y="1172.9214">URT_THREAD_MAX_USLEEP : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5103.42" x2="5714.42" y1="1179.5156" y2="1179.5156"/><ellipse cx="5113.42" cy="1191.418" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="360" x="5122.42" y="1193.7261">URT_THREAD_WORKING_AREA (var : varname, stacksize : size_t)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5103.42" x2="5714.42" y1="1200.3203" y2="1200.3203"/><ellipse cx="5113.42" cy="1212.2227" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="587" x="5122.42" y="1214.5308">urtThreadInit (wa : void*, wasize : size_t, func : urt_osThreadFunction_t*, arg : void*) : urt_osThread_t*</text><ellipse cx="5113.42" cy="1225.0273" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="490" x="5122.42" y="1227.3354">urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void</text><ellipse cx="5113.42" cy="1237.832" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="5122.42" y="1240.1401">urtThreadYield (void) : void</text><ellipse cx="5113.42" cy="1250.6367" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="389" x="5122.42" y="1252.9448">urtThreadGetPriority (thread : urt_osThread_t*) : urt_osThreadPrio_t</text><ellipse cx="5113.42" cy="1263.4414" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="453" x="5122.42" y="1265.7495">urtThreadSetPriority (thread : urt_osThread_t*, prio : urt_osThreadPrio_t) : void</text><ellipse cx="5113.42" cy="1276.2461" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="380" x="5122.42" y="1278.5542">urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="5113.42" cy="1289.0508" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="370" x="5122.42" y="1291.3589">urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="5113.42" cy="1301.8555" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="5122.42" y="1304.1636">urtThreadSuspend (void) : void</text><ellipse cx="5113.42" cy="1314.6602" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="319" x="5122.42" y="1316.9683">urtThreadIsSuspended (thread : urt_osThread_t*) : bool</text><ellipse cx="5113.42" cy="1327.4648" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="335" x="5122.42" y="1329.7729">urtThreadResume (thread : urt_osThread_t*) : urt_status_t</text><ellipse cx="5113.42" cy="1340.2695" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="5122.42" y="1342.5776">urtThreadSleep (seconds : float) : void</text><ellipse cx="5113.42" cy="1353.0742" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="273" x="5122.42" y="1355.3823">urtThreadSSleep (seconds : usnigned int) : void</text><ellipse cx="5113.42" cy="1365.8789" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="5122.42" y="1368.187">urtThreadMSleep (milliseconds : unsigned int) : void</text><ellipse cx="5113.42" cy="1378.6836" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="305" x="5122.42" y="1380.9917">urtThreadUSleep (microseconds : unsigned int) : void</text><ellipse cx="5113.42" cy="1391.4883" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="5122.42" y="1393.7964">urtThreadSleepUntil (time : urt_osTime_t) : void</text><ellipse cx="5113.42" cy="1404.293" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="5122.42" y="1406.6011">urtThreadExit (void) : void</text><ellipse cx="5113.42" cy="1417.0977" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="518" x="5122.42" y="1419.4058">urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="5113.42" cy="1429.9023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="264" x="5122.42" y="1432.2104">urtThreadJoin (thread : urt_osThread_t*) : void</text><!--class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="48" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="6450.42" y="1545.8594"/><ellipse cx="6465.42" cy="1561.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6466.2638,1568.6094 L6463.8106,1568.6094 L6463.8106,1558.3594 L6460.67,1558.3594 L6460.67,1556.2188 L6469.4044,1556.2188 L6469.4044,1558.3594 L6466.2638,1558.3594 L6466.2638,1568.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="6479.42" y="1566.0137">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6451.42" x2="6598.42" y1="1577.8594" y2="1577.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6451.42" x2="6598.42" y1="1585.8594" y2="1585.8594"/><!--class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="6540.92" y="1700.8594"/><ellipse cx="6555.92" cy="1716.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6556.7638,1723.6094 L6554.3106,1723.6094 L6554.3106,1713.3594 L6551.17,1713.3594 L6551.17,1711.2188 L6559.9044,1711.2188 L6559.9044,1713.3594 L6556.7638,1713.3594 L6556.7638,1723.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="6569.92" y="1721.0137">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6541.92" x2="6689.92" y1="1732.8594" y2="1732.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6541.92" x2="6689.92" y1="1740.8594" y2="1740.8594"/><!--class urt_osEventWaitType_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="86.4141" id="urt_osEventWaitType_t" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="6634.42" y="1526.8594"/><ellipse cx="6649.42" cy="1542.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6653.5294,1548.8594 L6645.8106,1548.8594 L6645.8106,1536.4688 L6653.5294,1536.4688 L6653.5294,1538.625 L6648.2638,1538.625 L6648.2638,1541.2969 L6653.0294,1541.2969 L6653.0294,1543.4531 L6648.2638,1543.4531 L6648.2638,1546.7031 L6653.5294,1546.7031 L6653.5294,1548.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="141" x="6663.42" y="1547.0137">urt_osEventWaitType_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6635.42" x2="6806.42" y1="1558.8594" y2="1558.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="6640.42" y="1573.0698">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="6640.42" y="1585.8745">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="6640.42" y="1598.6792">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6635.42" x2="6806.42" y1="1605.2734" y2="1605.2734"/><!--class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="6842.92" y="1526.8594"/><ellipse cx="7018.17" cy="1542.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7019.0138,1549.6094 L7016.5606,1549.6094 L7016.5606,1539.3594 L7013.42,1539.3594 L7013.42,1537.2188 L7022.1544,1537.2188 L7022.1544,1539.3594 L7019.0138,1539.3594 L7019.0138,1549.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="7038.67" y="1547.0137">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6843.92" x2="7335.92" y1="1558.8594" y2="1558.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6843.92" x2="7335.92" y1="1566.8594" y2="1566.8594"/><ellipse cx="6853.92" cy="1578.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="341" x="6862.92" y="1581.0698">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="6853.92" cy="1591.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="458" x="6862.92" y="1593.8745">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="6853.92" cy="1604.3711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="468" x="6862.92" y="1606.6792">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="5868.42" y="1532.8594"/><ellipse cx="6073.17" cy="1548.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6074.0138,1555.6094 L6071.5606,1555.6094 L6071.5606,1545.3594 L6068.42,1545.3594 L6068.42,1543.2188 L6077.1544,1543.2188 L6077.1544,1545.3594 L6074.0138,1545.3594 L6074.0138,1555.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="6093.67" y="1553.0137">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5869.42" x2="6414.42" y1="1564.8594" y2="1564.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5869.42" x2="6414.42" y1="1572.8594" y2="1572.8594"/><ellipse cx="5879.42" cy="1584.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="325" x="5888.42" y="1587.0698">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="5879.42" cy="1597.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="5888.42" y="1599.8745">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--class urt_events--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="735" x="5867.42" y="1165.3594"/><ellipse cx="6197.67" cy="1181.3594" fill="#FFFFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6201.9044,1177.125 L6196.6231,1177.125 L6196.6231,1179.7969 L6201.42,1179.7969 L6201.42,1181.9531 L6196.6231,1181.9531 L6196.6231,1187.3594 L6194.1856,1187.3594 L6194.1856,1174.9688 L6201.9044,1174.9688 L6201.9044,1177.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="6218.17" y="1185.5137">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5868.42" x2="6601.42" y1="1197.3594" y2="1197.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5868.42" x2="6601.42" y1="1205.3594" y2="1205.3594"/><ellipse cx="5878.42" cy="1217.2617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="709" x="5887.42" y="1219.5698">urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t) : urt_status_t</text><ellipse cx="5878.42" cy="1230.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="567" x="5887.42" y="1232.3745">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="5878.42" cy="1242.8711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="488" x="5887.42" y="1245.1792">urtEventWait (type : urt_osEventWaitType_t, timeout : urt_delay_t) : urt_osEventMask_t</text><!--class urt_message_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="167.2422" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="1878.42" y="716.8594"/><ellipse cx="2053.67" cy="732.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2053.1544,733.4219 Q2051.295,732.7188 2050.6466,731.9453 Q2049.9981,731.1719 2049.9981,729.8594 Q2049.9981,728.1719 2051.0763,727.2031 Q2052.1544,726.2344 2054.0294,726.2344 Q2054.8888,726.2344 2055.7403,726.4297 Q2056.5919,726.625 2057.4356,727.0156 L2057.4356,729.4063 Q2056.6544,728.8438 2055.8341,728.5547 Q2055.0138,728.2656 2054.2169,728.2656 Q2053.3419,728.2656 2052.8653,728.625 Q2052.3888,728.9844 2052.3888,729.6406 Q2052.3888,730.1563 2052.7325,730.4922 Q2053.0763,730.8281 2054.17,731.2344 L2055.2325,731.6406 Q2056.7169,732.1875 2057.4278,733.0938 Q2058.1388,734 2058.1388,735.375 Q2058.1388,737.25 2057.0294,738.1719 Q2055.92,739.0938 2053.67,739.0938 Q2052.7481,739.0938 2051.8263,738.875 Q2050.9044,738.6563 2050.045,738.2344 L2050.045,735.7031 Q2051.0138,736.3906 2051.9356,736.7344 Q2052.8575,737.0781 2053.7481,737.0781 Q2054.6544,737.0781 2055.1544,736.6641 Q2055.6544,736.25 2055.6544,735.5156 Q2055.6544,734.9531 2055.3184,734.5391 Q2054.9825,734.125 2054.3575,733.875 L2053.1544,733.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="2074.17" y="737.0137">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1879.42" x2="2328.42" y1="748.8594" y2="748.8594"/><ellipse cx="1889.42" cy="760.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="1898.42" y="763.0698">next : urt_message_t*</text><ellipse cx="1889.42" cy="773.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="1898.42" y="775.8745">payload : void*</text><ellipse cx="1889.42" cy="786.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="1898.42" y="788.6792">originTime : urt_osTime_t</text><ellipse cx="1889.42" cy="799.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="1898.42" y="801.4839">lock : urt_osMutex_t</text><ellipse cx="1889.42" cy="811.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="1898.42" y="814.2886">numHrtConsumersLeft : unsigned int</text><ellipse cx="1889.42" cy="824.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="1898.42" y="827.0933">hrtConsumersLeft : urt_osCondvar_t</text><ellipse cx="1889.42" cy="854.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1898.42" y="856.7026">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1879.42" x2="2060.42" y1="840.0898" y2="840.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="2060.42" y="843.3979">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="2147.42" x2="2328.42" y1="840.0898" y2="840.0898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1879.42" x2="2328.42" y1="863.2969" y2="863.2969"/><ellipse cx="1889.42" cy="875.1992" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="1898.42" y="877.5073">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="244.0703" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="851" x="1093.42" y="121.8594"/><ellipse cx="1464.17" cy="137.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1463.6544,138.4219 Q1461.795,137.7188 1461.1466,136.9453 Q1460.4981,136.1719 1460.4981,134.8594 Q1460.4981,133.1719 1461.5763,132.2031 Q1462.6544,131.2344 1464.5294,131.2344 Q1465.3888,131.2344 1466.2403,131.4297 Q1467.0919,131.625 1467.9356,132.0156 L1467.9356,134.4063 Q1467.1544,133.8438 1466.3341,133.5547 Q1465.5138,133.2656 1464.7169,133.2656 Q1463.8419,133.2656 1463.3653,133.625 Q1462.8888,133.9844 1462.8888,134.6406 Q1462.8888,135.1563 1463.2325,135.4922 Q1463.5763,135.8281 1464.67,136.2344 L1465.7325,136.6406 Q1467.2169,137.1875 1467.9278,138.0938 Q1468.6388,139 1468.6388,140.375 Q1468.6388,142.25 1467.5294,143.1719 Q1466.42,144.0938 1464.17,144.0938 Q1463.2481,144.0938 1462.3263,143.875 Q1461.4044,143.6563 1460.545,143.2344 L1460.545,140.7031 Q1461.5138,141.3906 1462.4356,141.7344 Q1463.3575,142.0781 1464.2481,142.0781 Q1465.1544,142.0781 1465.6544,141.6641 Q1466.1544,141.25 1466.1544,140.5156 Q1466.1544,139.9531 1465.8184,139.5391 Q1465.4825,139.125 1464.8575,138.875 L1463.6544,138.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1484.67" y="142.0137">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1094.42" x2="1943.42" y1="153.8594" y2="153.8594"/><ellipse cx="1104.42" cy="165.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1113.42" y="168.0698">next : urt_subscriber_t*</text><ellipse cx="1104.42" cy="178.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1113.42" y="180.8745">topic : urt_topic_t*</text><ellipse cx="1104.42" cy="191.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="1113.42" y="193.6792">evtListener : urt_osEventListener_t</text><ellipse cx="1104.42" cy="204.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="1113.42" y="206.4839">rtclass : urt_rtclass_t</text><ellipse cx="1104.42" cy="216.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1113.42" y="219.2886">lastMessage : urt_message_t*</text><ellipse cx="1104.42" cy="229.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1113.42" y="232.0933">lastMessageTime : urt_osTime_t</text><ellipse cx="1104.42" cy="259.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1113.42" y="261.7026">minLatency : urt_delay_t</text><ellipse cx="1104.42" cy="272.1992" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1113.42" y="274.5073">maxLatency : urt_delay_t</text><ellipse cx="1104.42" cy="285.0039" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="1113.42" y="287.312">sumLatencies : uint64_t</text><ellipse cx="1104.42" cy="297.8086" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="215" x="1113.42" y="300.1167">numMessagesReceived : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1094.42" x2="1475.42" y1="245.0898" y2="245.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="1475.42" y="248.3979">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1562.42" x2="1943.42" y1="245.0898" y2="245.0898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1094.42" x2="1943.42" y1="306.7109" y2="306.7109"/><ellipse cx="1104.42" cy="318.6133" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="1113.42" y="320.9214">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1104.42" cy="331.418" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="825" x="1113.42" y="333.7261">urtSubscriberSubscribe (subscriber : urt_subscriber_t*, topic : urt_topic_t*, rtclass : urt_rtclass_t*, messages : urt_messages_t*) : urt_status_t</text><ellipse cx="1104.42" cy="344.2227" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="1113.42" y="346.5308">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1104.42" cy="357.0273" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="499" x="1113.42" y="359.3354">urtSubscriberFetchMessage (subscriber : urt_subscriber_t*, latest : bool) : urt_status_t</text><!--class urt_topic_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="231.2656" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="511" x="1780.42" y="425.8594"/><ellipse cx="1998.67" cy="441.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1998.1544,442.4219 Q1996.295,441.7188 1995.6466,440.9453 Q1994.9981,440.1719 1994.9981,438.8594 Q1994.9981,437.1719 1996.0763,436.2031 Q1997.1544,435.2344 1999.0294,435.2344 Q1999.8888,435.2344 2000.7403,435.4297 Q2001.5919,435.625 2002.4356,436.0156 L2002.4356,438.4063 Q2001.6544,437.8438 2000.8341,437.5547 Q2000.0138,437.2656 1999.2169,437.2656 Q1998.3419,437.2656 1997.8653,437.625 Q1997.3888,437.9844 1997.3888,438.6406 Q1997.3888,439.1563 1997.7325,439.4922 Q1998.0763,439.8281 1999.17,440.2344 L2000.2325,440.6406 Q2001.7169,441.1875 2002.4278,442.0938 Q2003.1388,443 2003.1388,444.375 Q2003.1388,446.25 2002.0294,447.1719 Q2000.92,448.0938 1998.67,448.0938 Q1997.7481,448.0938 1996.8263,447.875 Q1995.9044,447.6563 1995.045,447.2344 L1995.045,444.7031 Q1996.0138,445.3906 1996.9356,445.7344 Q1997.8575,446.0781 1998.7481,446.0781 Q1999.6544,446.0781 2000.1544,445.6641 Q2000.6544,445.25 2000.6544,444.5156 Q2000.6544,443.9531 2000.3184,443.5391 Q1999.9825,443.125 1999.3575,442.875 L1998.1544,442.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="2019.17" y="446.0137">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1781.42" x2="2290.42" y1="457.8594" y2="457.8594"/><ellipse cx="1791.42" cy="469.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1800.42" y="472.0698">next : urt_topic_t*</text><ellipse cx="1791.42" cy="482.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="1800.42" y="484.8745">mutex : urt_osMutex_t</text><ellipse cx="1791.42" cy="495.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1800.42" y="497.6792">evtSource : urt_osEventSource_t</text><ellipse cx="1791.42" cy="508.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="1800.42" y="510.4839">numHrtSubscribers : unsigned int</text><ellipse cx="1791.42" cy="520.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="1800.42" y="523.2886">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="1791.42" cy="533.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="1800.42" y="536.0933">qosTimer : urt_osTimer_t</text><ellipse cx="1791.42" cy="546.5898" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="1800.42" y="548.8979">mandatoryMessage : urt_message_t</text><ellipse cx="1791.42" cy="559.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1800.42" y="561.7026">latestMessage : urt_message_t*</text><ellipse cx="1791.42" cy="572.1992" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="1800.42" y="574.5073">id : urt_topicid_t</text><ellipse cx="1791.42" cy="601.8086" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="1800.42" y="604.1167">numDiscardedMessages : unsigned int</text><ellipse cx="1791.42" cy="614.6133" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="1800.42" y="616.9214">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1781.42" x2="1992.42" y1="587.5039" y2="587.5039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="1992.42" y="590.812">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="2079.42" x2="2290.42" y1="587.5039" y2="587.5039"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1781.42" x2="2290.42" y1="623.5156" y2="623.5156"/><ellipse cx="1791.42" cy="635.418" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="1800.42" y="637.7261">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><ellipse cx="1791.42" cy="648.2227" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="485" x="1800.42" y="650.5308">urtTopicContributeMessages (topic : urt_topic_t*, messages : urt_message_t*) : void</text><!--class urt_publisher_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="1997.42" y="179.3594"/><ellipse cx="2326.17" cy="195.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2325.6544,195.9219 Q2323.795,195.2188 2323.1466,194.4453 Q2322.4981,193.6719 2322.4981,192.3594 Q2322.4981,190.6719 2323.5763,189.7031 Q2324.6544,188.7344 2326.5294,188.7344 Q2327.3888,188.7344 2328.2403,188.9297 Q2329.0919,189.125 2329.9356,189.5156 L2329.9356,191.9063 Q2329.1544,191.3438 2328.3341,191.0547 Q2327.5138,190.7656 2326.7169,190.7656 Q2325.8419,190.7656 2325.3653,191.125 Q2324.8888,191.4844 2324.8888,192.1406 Q2324.8888,192.6563 2325.2325,192.9922 Q2325.5763,193.3281 2326.67,193.7344 L2327.7325,194.1406 Q2329.2169,194.6875 2329.9278,195.5938 Q2330.6388,196.5 2330.6388,197.875 Q2330.6388,199.75 2329.5294,200.6719 Q2328.42,201.5938 2326.17,201.5938 Q2325.2481,201.5938 2324.3263,201.375 Q2323.4044,201.1563 2322.545,200.7344 L2322.545,198.2031 Q2323.5138,198.8906 2324.4356,199.2344 Q2325.3575,199.5781 2326.2481,199.5781 Q2327.1544,199.5781 2327.6544,199.1641 Q2328.1544,198.75 2328.1544,198.0156 Q2328.1544,197.4531 2327.8184,197.0391 Q2327.4825,196.625 2326.8575,196.375 L2325.6544,195.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="2346.67" y="199.5137">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1998.42" x2="2755.42" y1="211.3594" y2="211.3594"/><ellipse cx="2008.42" cy="223.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="2017.42" y="225.5698">topic : urt_topic_t*</text><ellipse cx="2008.42" cy="252.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="174" x="2017.42" y="255.1792">publishAttempts : unsigned int</text><ellipse cx="2008.42" cy="265.6758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="2017.42" y="267.9839">publishFails : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1998.42" x2="2333.42" y1="238.5664" y2="238.5664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="2333.42" y="241.8745">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="2420.42" x2="2755.42" y1="238.5664" y2="238.5664"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1998.42" x2="2755.42" y1="274.5781" y2="274.5781"/><ellipse cx="2008.42" cy="286.4805" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="2017.42" y="288.7886">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="2008.42" cy="299.2852" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="2017.42" y="301.5933">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--class urt_core_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="124.8281" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="325" x="733.421" y="181.3594"/><ellipse cx="860.171" cy="197.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M859.6554,197.9219 Q857.796,197.2188 857.1476,196.4453 Q856.4991,195.6719 856.4991,194.3594 Q856.4991,192.6719 857.5773,191.7031 Q858.6554,190.7344 860.5304,190.7344 Q861.3898,190.7344 862.2413,190.9297 Q863.0929,191.125 863.9366,191.5156 L863.9366,193.9063 Q863.1554,193.3438 862.3351,193.0547 Q861.5148,192.7656 860.7179,192.7656 Q859.8429,192.7656 859.3663,193.125 Q858.8898,193.4844 858.8898,194.1406 Q858.8898,194.6563 859.2335,194.9922 Q859.5773,195.3281 860.671,195.7344 L861.7335,196.1406 Q863.2179,196.6875 863.9288,197.5938 Q864.6398,198.5 864.6398,199.875 Q864.6398,201.75 863.5304,202.6719 Q862.421,203.5938 860.171,203.5938 Q859.2491,203.5938 858.3273,203.375 Q857.4054,203.1563 856.546,202.7344 L856.546,200.2031 Q857.5148,200.8906 858.4366,201.2344 Q859.3585,201.5781 860.2491,201.5781 Q861.1554,201.5781 861.6554,201.1641 Q862.1554,200.75 862.1554,200.0156 Q862.1554,199.4531 861.8194,199.0391 Q861.4835,198.625 860.8585,198.375 L859.6554,197.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="880.671" y="201.5137">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="734.421" x2="1057.421" y1="213.3594" y2="213.3594"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="741.421" y="222.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="753.421" y="227.5698">_nodes : urt_node_t*</text><line style="stroke: #000000; stroke-width: 1.0;" x1="753.421" x2="872.421" y1="229.5698" y2="229.5698"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="741.421" y="235.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="753.421" y="240.3745">_topics : urt_topic_t*</text><line style="stroke: #000000; stroke-width: 1.0;" x1="753.421" x2="870.421" y1="242.3745" y2="242.3745"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="734.421" x2="1057.421" y1="246.9688" y2="246.9688"/><ellipse cx="744.421" cy="258.8711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="753.421" y="261.1792">urtCoreInit (void) : urt_status_t</text><ellipse cx="744.421" cy="271.6758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="753.421" y="273.9839">urtCoreStartAll (void) : urt_status_t</text><ellipse cx="744.421" cy="284.4805" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="753.421" y="286.7886">urtCoreStopAll (void) : urt_status_t</text><ellipse cx="744.421" cy="297.2852" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="753.421" y="299.5933">urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><!--class urt_node_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="201.6563" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1104" x="2381.92" y="440.3594"/><ellipse cx="2896.17" cy="456.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2895.6544,456.9219 Q2893.795,456.2188 2893.1466,455.4453 Q2892.4981,454.6719 2892.4981,453.3594 Q2892.4981,451.6719 2893.5763,450.7031 Q2894.6544,449.7344 2896.5294,449.7344 Q2897.3888,449.7344 2898.2403,449.9297 Q2899.0919,450.125 2899.9356,450.5156 L2899.9356,452.9063 Q2899.1544,452.3438 2898.3341,452.0547 Q2897.5138,451.7656 2896.7169,451.7656 Q2895.8419,451.7656 2895.3653,452.125 Q2894.8888,452.4844 2894.8888,453.1406 Q2894.8888,453.6563 2895.2325,453.9922 Q2895.5763,454.3281 2896.67,454.7344 L2897.7325,455.1406 Q2899.2169,455.6875 2899.9278,456.5938 Q2900.6388,457.5 2900.6388,458.875 Q2900.6388,460.75 2899.5294,461.6719 Q2898.42,462.5938 2896.17,462.5938 Q2895.2481,462.5938 2894.3263,462.375 Q2893.4044,462.1563 2892.545,461.7344 L2892.545,459.2031 Q2893.5138,459.8906 2894.4356,460.2344 Q2895.3575,460.5781 2896.2481,460.5781 Q2897.1544,460.5781 2897.6544,460.1641 Q2898.1544,459.75 2898.1544,459.0156 Q2898.1544,458.4531 2897.8184,458.0391 Q2897.4825,457.625 2896.8575,457.375 L2895.6544,456.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="2916.67" y="460.5137">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2382.92" x2="3484.92" y1="472.3594" y2="472.3594"/><ellipse cx="2392.92" cy="484.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="2401.92" y="486.5698">next : urt_node_t*</text><ellipse cx="2392.92" cy="497.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="2401.92" y="499.3745">thread : urt_osThread_t*</text><ellipse cx="2392.92" cy="509.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="2401.92" y="512.1792">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="2392.92" cy="522.6758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="2401.92" y="524.9839">setupparams : void*</text><ellipse cx="2392.92" cy="535.4805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="2401.92" y="537.7886">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="2392.92" cy="548.2852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="2401.92" y="550.5933">loopparams : void*</text><ellipse cx="2392.92" cy="561.0898" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="2401.92" y="563.3979">waitmask : urt_osEventMask_t</text><ellipse cx="2392.92" cy="573.8945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="2401.92" y="576.2026">waittype : urt_osEventWaitType_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2382.92" x2="3484.92" y1="582.7969" y2="582.7969"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2389.92" y="591.6992"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="2401.92" y="597.0073">_main : urt_osThreadFunction_t</text><line style="stroke: #000000; stroke-width: 1.0;" x1="2401.92" x2="2580.92" y1="599.0073" y2="599.0073"/><ellipse cx="2392.92" cy="607.5039" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1078" x="2401.92" y="609.812">urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><ellipse cx="2392.92" cy="620.3086" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="531" x="2401.92" y="622.6167">urtNodeTerminateRecusively (node : urt_node_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="2392.92" cy="633.1133" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="282" x="2401.92" y="635.4214">urtNodeJoinRecursively (node : urt_node_t*) : void</text><!--class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="73.6094" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1408.42" y="504.3594"/><ellipse cx="1464.17" cy="520.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1463.6544,520.9219 Q1461.795,520.2188 1461.1466,519.4453 Q1460.4981,518.6719 1460.4981,517.3594 Q1460.4981,515.6719 1461.5763,514.7031 Q1462.6544,513.7344 1464.5294,513.7344 Q1465.3888,513.7344 1466.2403,513.9297 Q1467.0919,514.125 1467.9356,514.5156 L1467.9356,516.9063 Q1467.1544,516.3438 1466.3341,516.0547 Q1465.5138,515.7656 1464.7169,515.7656 Q1463.8419,515.7656 1463.3653,516.125 Q1462.8888,516.4844 1462.8888,517.1406 Q1462.8888,517.6563 1463.2325,517.9922 Q1463.5763,518.3281 1464.67,518.7344 L1465.7325,519.1406 Q1467.2169,519.6875 1467.9278,520.5938 Q1468.6388,521.5 1468.6388,522.875 Q1468.6388,524.75 1467.5294,525.6719 Q1466.42,526.5938 1464.17,526.5938 Q1463.2481,526.5938 1462.3263,526.375 Q1461.4044,526.1563 1460.545,525.7344 L1460.545,523.2031 Q1461.5138,523.8906 1462.4356,524.2344 Q1463.3575,524.5781 1464.2481,524.5781 Q1465.1544,524.5781 1465.6544,524.1641 Q1466.1544,523.75 1466.1544,523.0156 Q1466.1544,522.4531 1465.8184,522.0391 Q1465.4825,521.625 1464.8575,521.375 L1463.6544,520.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="1484.67" y="524.5137">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1409.42" x2="1604.42" y1="536.3594" y2="536.3594"/><ellipse cx="1419.42" cy="548.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="1428.42" y="550.5698">class : urt_rtclasstype_t</text><ellipse cx="1419.42" cy="561.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="171" x="1428.42" y="563.3745">params : urt_rtclassparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1409.42" x2="1604.42" y1="569.9688" y2="569.9688"/><!--class urt_rtclasstype_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="99.2188" id="urt_rtclasstype_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1430.42" y="750.8594"/><ellipse cx="1453.07" cy="766.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1457.1794,772.8594 L1449.4606,772.8594 L1449.4606,760.4688 L1457.1794,760.4688 L1457.1794,762.625 L1451.9138,762.625 L1451.9138,765.2969 L1456.6794,765.2969 L1456.6794,767.4531 L1451.9138,767.4531 L1451.9138,770.7031 L1457.1794,770.7031 L1457.1794,772.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="1468.77" y="771.0137">urt_rtclasstype_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.42" x2="1582.42" y1="782.8594" y2="782.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1436.42" y="797.0698">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="1436.42" y="809.8745">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1436.42" y="822.6792">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1436.42" y="835.4839">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.42" x2="1582.42" y1="842.0781" y2="842.0781"/><!--class urt_rtclassparams_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="99.2188" id="urt_rtclassparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1226.92" y="750.8594"/><ellipse cx="1241.92" cy="766.8594" fill="#90EE90" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1237.795,768.7813 L1237.795,760.9688 L1240.2481,760.9688 L1240.2481,769.4063 Q1240.2481,770.3281 1240.7247,770.8594 Q1241.2013,771.3906 1242.0294,771.3906 Q1242.8731,771.3906 1243.3419,770.8594 Q1243.8106,770.3281 1243.8106,769.4063 L1243.8106,760.9688 L1246.2638,760.9688 L1246.2638,768.7813 Q1246.2638,771.3125 1245.2638,772.4531 Q1244.2638,773.5938 1242.0294,773.5938 Q1239.8106,773.5938 1238.8028,772.4531 Q1237.795,771.3125 1237.795,768.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="124" x="1255.92" y="771.0137">urt_rtclassparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1227.92" x2="1381.92" y1="782.8594" y2="782.8594"/><ellipse cx="1237.92" cy="794.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1246.92" y="797.0698">hrt : urt_hrtparams_t</text><ellipse cx="1237.92" cy="807.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="1246.92" y="809.8745">frt : urt_frtparams_t</text><ellipse cx="1237.92" cy="820.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1246.92" y="822.6792">srt : urt_srtparans_t</text><ellipse cx="1237.92" cy="833.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1246.92" y="835.4839">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1227.92" x2="1381.92" y1="842.0781" y2="842.0781"/><!--class urt_hrtparams_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="86.4141" id="urt_hrtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="183" x="925.421" y="1165.3594"/><ellipse cx="963.371" cy="1181.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M962.8554,1181.9219 Q960.996,1181.2188 960.3476,1180.4453 Q959.6991,1179.6719 959.6991,1178.3594 Q959.6991,1176.6719 960.7773,1175.7031 Q961.8554,1174.7344 963.7304,1174.7344 Q964.5898,1174.7344 965.4413,1174.9297 Q966.2929,1175.125 967.1366,1175.5156 L967.1366,1177.9063 Q966.3554,1177.3438 965.5351,1177.0547 Q964.7148,1176.7656 963.9179,1176.7656 Q963.0429,1176.7656 962.5663,1177.125 Q962.0898,1177.4844 962.0898,1178.1406 Q962.0898,1178.6563 962.4335,1178.9922 Q962.7773,1179.3281 963.871,1179.7344 L964.9335,1180.1406 Q966.4179,1180.6875 967.1288,1181.5938 Q967.8398,1182.5 967.8398,1183.875 Q967.8398,1185.75 966.7304,1186.6719 Q965.621,1187.5938 963.371,1187.5938 Q962.4491,1187.5938 961.5273,1187.375 Q960.6054,1187.1563 959.746,1186.7344 L959.746,1184.2031 Q960.7148,1184.8906 961.6366,1185.2344 Q962.5585,1185.5781 963.4491,1185.5781 Q964.3554,1185.5781 964.8554,1185.1641 Q965.3554,1184.75 965.3554,1184.0156 Q965.3554,1183.4531 965.0194,1183.0391 Q964.6835,1182.625 964.0585,1182.375 L962.8554,1181.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="982.471" y="1185.5137">urt_hrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="926.421" x2="1107.421" y1="1197.3594" y2="1197.3594"/><ellipse cx="936.421" cy="1209.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="945.421" y="1211.5698">deadlineOffset : urt_delay_t</text><ellipse cx="936.421" cy="1222.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="945.421" y="1224.3745">expectedRate : urt_delay_t</text><ellipse cx="936.421" cy="1234.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="945.421" y="1237.1792">qosTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="926.421" x2="1107.421" y1="1243.7734" y2="1243.7734"/><!--class urt_frtparams_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="112.0234" id="urt_frtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="1501.42" y="1152.3594"/><ellipse cx="1553.67" cy="1168.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1553.1544,1168.9219 Q1551.295,1168.2188 1550.6466,1167.4453 Q1549.9981,1166.6719 1549.9981,1165.3594 Q1549.9981,1163.6719 1551.0763,1162.7031 Q1552.1544,1161.7344 1554.0294,1161.7344 Q1554.8888,1161.7344 1555.7403,1161.9297 Q1556.5919,1162.125 1557.4356,1162.5156 L1557.4356,1164.9063 Q1556.6544,1164.3438 1555.8341,1164.0547 Q1555.0138,1163.7656 1554.2169,1163.7656 Q1553.3419,1163.7656 1552.8653,1164.125 Q1552.3888,1164.4844 1552.3888,1165.1406 Q1552.3888,1165.6563 1552.7325,1165.9922 Q1553.0763,1166.3281 1554.17,1166.7344 L1555.2325,1167.1406 Q1556.7169,1167.6875 1557.4278,1168.5938 Q1558.1388,1169.5 1558.1388,1170.875 Q1558.1388,1172.75 1557.0294,1173.6719 Q1555.92,1174.5938 1553.67,1174.5938 Q1552.7481,1174.5938 1551.8263,1174.375 Q1550.9044,1174.1563 1550.045,1173.7344 L1550.045,1171.2031 Q1551.0138,1171.8906 1551.9356,1172.2344 Q1552.8575,1172.5781 1553.7481,1172.5781 Q1554.6544,1172.5781 1555.1544,1172.1641 Q1555.6544,1171.75 1555.6544,1171.0156 Q1555.6544,1170.4531 1555.3184,1170.0391 Q1554.9825,1169.625 1554.3575,1169.375 L1553.1544,1168.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="96" x="1574.17" y="1172.5137">urt_frtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1502.42" x2="1709.42" y1="1184.3594" y2="1184.3594"/><ellipse cx="1512.42" cy="1196.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1521.42" y="1198.5698">deadlineOffset : urt_delay_t</text><ellipse cx="1512.42" cy="1209.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1521.42" y="1211.3745">expectedRate : urt_delay_t</text><ellipse cx="1512.42" cy="1221.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="1521.42" y="1224.1792">qosTimer : urt_osTimer_t</text><ellipse cx="1512.42" cy="1234.6758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="1521.42" y="1236.9839">callback : urt_osTimerCallback_t</text><ellipse cx="1512.42" cy="1247.4805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="1521.42" y="1249.7886">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1502.42" x2="1709.42" y1="1256.3828" y2="1256.3828"/><!--class urt_srtparams_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="73.6094" id="urt_srtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="322" x="1143.92" y="1171.3594"/><ellipse cx="1251.17" cy="1187.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1250.6544,1187.9219 Q1248.795,1187.2188 1248.1466,1186.4453 Q1247.4981,1185.6719 1247.4981,1184.3594 Q1247.4981,1182.6719 1248.5763,1181.7031 Q1249.6544,1180.7344 1251.5294,1180.7344 Q1252.3888,1180.7344 1253.2403,1180.9297 Q1254.0919,1181.125 1254.9356,1181.5156 L1254.9356,1183.9063 Q1254.1544,1183.3438 1253.3341,1183.0547 Q1252.5138,1182.7656 1251.7169,1182.7656 Q1250.8419,1182.7656 1250.3653,1183.125 Q1249.8888,1183.4844 1249.8888,1184.1406 Q1249.8888,1184.6563 1250.2325,1184.9922 Q1250.5763,1185.3281 1251.67,1185.7344 L1252.7325,1186.1406 Q1254.2169,1186.6875 1254.9278,1187.5938 Q1255.6388,1188.5 1255.6388,1189.875 Q1255.6388,1191.75 1254.5294,1192.6719 Q1253.42,1193.5938 1251.17,1193.5938 Q1250.2481,1193.5938 1249.3263,1193.375 Q1248.4044,1193.1563 1247.545,1192.7344 L1247.545,1190.2031 Q1248.5138,1190.8906 1249.4356,1191.2344 Q1250.3575,1191.5781 1251.2481,1191.5781 Q1252.1544,1191.5781 1252.6544,1191.1641 Q1253.1544,1190.75 1253.1544,1190.0156 Q1253.1544,1189.4531 1252.8184,1189.0391 Q1252.4825,1188.625 1251.8575,1188.375 L1250.6544,1187.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="99" x="1271.67" y="1191.5137">urt_srtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1144.92" x2="1464.92" y1="1203.3594" y2="1203.3594"/><ellipse cx="1154.92" cy="1215.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="1163.92" y="1217.5698">params : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1144.92" x2="1464.92" y1="1224.1641" y2="1224.1641"/><ellipse cx="1154.92" cy="1236.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="296" x="1163.92" y="1238.3745">*usefulness (dt : urt_delay_t, params : void*) : float</text><!--class urt_nrtparams_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="48" id="urt_nrtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="757.921" y="1184.3594"/><ellipse cx="772.921" cy="1200.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M772.4054,1200.9219 Q770.546,1200.2188 769.8976,1199.4453 Q769.2491,1198.6719 769.2491,1197.3594 Q769.2491,1195.6719 770.3273,1194.7031 Q771.4054,1193.7344 773.2804,1193.7344 Q774.1398,1193.7344 774.9913,1193.9297 Q775.8429,1194.125 776.6866,1194.5156 L776.6866,1196.9063 Q775.9054,1196.3438 775.0851,1196.0547 Q774.2648,1195.7656 773.4679,1195.7656 Q772.5929,1195.7656 772.1163,1196.125 Q771.6398,1196.4844 771.6398,1197.1406 Q771.6398,1197.6563 771.9835,1197.9922 Q772.3273,1198.3281 773.421,1198.7344 L774.4835,1199.1406 Q775.9679,1199.6875 776.6788,1200.5938 Q777.3898,1201.5 777.3898,1202.875 Q777.3898,1204.75 776.2804,1205.6719 Q775.171,1206.5938 772.921,1206.5938 Q771.9991,1206.5938 771.0773,1206.375 Q770.1554,1206.1563 769.296,1205.7344 L769.296,1203.2031 Q770.2648,1203.8906 771.1866,1204.2344 Q772.1085,1204.5781 772.9991,1204.5781 Q773.9054,1204.5781 774.4054,1204.1641 Q774.9054,1203.75 774.9054,1203.0156 Q774.9054,1202.4531 774.5694,1202.0391 Q774.2335,1201.625 773.6085,1201.375 L772.4054,1200.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="786.921" y="1204.5137">urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="758.921" x2="888.921" y1="1216.3594" y2="1216.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="758.921" x2="888.921" y1="1224.3594" y2="1224.3594"/><!--class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="418" x="2382.92" y="769.8594"/><ellipse cx="2509.67" cy="785.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2510.5138,792.6094 L2508.0606,792.6094 L2508.0606,782.3594 L2504.92,782.3594 L2504.92,780.2188 L2513.6544,780.2188 L2513.6544,782.3594 L2510.5138,782.3594 L2510.5138,792.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="2530.17" y="790.0137">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2383.92" x2="2799.92" y1="801.8594" y2="801.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2383.92" x2="2799.92" y1="809.8594" y2="809.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="406" x="2388.92" y="824.0698">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_status_t</text><!--class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#fx5q9amszycal)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="576" x="2835.92" y="769.8594"/><ellipse cx="3045.17" cy="785.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3046.0138,792.6094 L3043.5606,792.6094 L3043.5606,782.3594 L3040.42,782.3594 L3040.42,780.2188 L3049.1544,780.2188 L3049.1544,782.3594 L3046.0138,782.3594 L3046.0138,792.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="3065.67" y="790.0137">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2836.92" x2="3410.92" y1="801.8594" y2="801.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2836.92" x2="3410.92" y1="809.8594" y2="809.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="564" x="2841.92" y="824.0698">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_status_t</text><!--link urt_osCondvar_t to urt_osMutex_t--><path d="M4763,1258.0844 C4832.84,1314.2304 4957.26,1403.3164 5081.92,1438.8594 C5203.26,1473.4544 7232.33,1418.7634 7352.92,1455.8594 C7393.12,1468.2244 7432.5,1493.5574 7463.13,1517.1094 " fill="none" id="urt_osCondvar_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7467.2,1520.2694,7462.5505,1511.5871,7463.2529,1517.2002,7457.6398,1517.9025,7467.2,1520.2694" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osCondvar_t to urt_delay_t--><path d="M4648.44,1258.0164 C4578.45,1313.8684 4454.13,1402.4474 4329.92,1438.8594 C4248.65,1462.6824 3652.57,1453.2294 3567.92,1455.8594 C2446.28,1490.7064 1075.96,1552.9394 786.296,1566.2924 " fill="none" id="urt_osCondvar_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="781.287,1566.5234,790.4614,1570.1052,786.2817,1566.2934,790.0935,1562.1137,781.287,1566.5234" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osCondvar_t to urt_condvarStatus_t--><path d="M4705.92,1258.2174 C4705.92,1327.4464 4705.92,1453.2524 4705.92,1521.5984 " fill="none" id="urt_osCondvar_t-urt_condvarStatus_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4705.92,1526.8214,4709.92,1517.8214,4705.92,1521.8214,4701.92,1517.8214,4705.92,1526.8214" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osTimer_t to urt_delay_t--><path d="M3583.3,1250.2054 C2823.04,1335.1374 1114.94,1525.9584 786.23,1562.6804 " fill="none" id="urt_osTimer_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="781.026,1563.2624,790.414,1566.2399,785.9952,1562.708,789.527,1558.2892,781.026,1563.2624" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osTimer_t to urt_status_t--><path d="M3583.08,1257.0034 C3143.34,1311.9864 2382.62,1399.8334 1726.92,1438.8594 C1667.91,1442.3714 716.629,1431.1524 662.921,1455.8594 C632.661,1469.7794 607.792,1497.7464 590.423,1522.3734 " fill="none" id="urt_osTimer_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="587.484,1526.6104,595.9004,1521.4952,590.3338,1522.502,589.327,1516.9355,587.484,1526.6104" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osTimer_t to urt_osTimerCallback_t--><path d="M3933.84,1258.2174 C3911.07,1331.9374 3868.5,1469.8114 3848.64,1534.1424 " fill="none" id="urt_osTimer_t-urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3847.13,1539.0184,3853.6086,1531.6003,3848.6061,1534.2412,3845.9652,1529.2386,3847.13,1539.0184" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadPrio_t--><path d="M5258.12,1439.0714 C5231.25,1480.0084 5206.84,1517.1894 5191.1,1541.1594 " fill="none" id="urt_osThread_t-urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5188.27,1545.4794,5196.5498,1540.146,5191.0115,1541.2979,5189.8595,1535.7596,5188.27,1545.4794" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadFunction_t--><path d="M5408.92,1439.0714 C5408.92,1476.1724 5408.92,1510.1884 5408.92,1534.0814 " fill="none" id="urt_osThread_t-urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5408.92,1539.3254,5412.92,1530.3254,5408.92,1534.3254,5404.92,1530.3254,5408.92,1539.3254" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osTime_t--><path d="M5715.7,1391.1894 C5760.15,1410.6874 5806.32,1427.5244 5851.92,1438.8594 C5950.97,1463.4784 7592.44,1422.5644 7688.92,1455.8594 C7731.44,1470.5324 7771.33,1502.8514 7798.81,1529.1824 " fill="none" id="urt_osThread_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7802.43,1532.6914,7798.7388,1523.5604,7798.8349,1529.2164,7793.1789,1529.3125,7802.43,1532.6914" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M5589.11,1439.0714 C5616.15,1473.5444 5641.11,1505.3534 5659.54,1528.8534 " fill="none" id="urt_osThread_t-urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5662.67,1532.8474,5660.2543,1523.2994,5659.5806,1528.916,5653.964,1528.2424,5662.67,1532.8474" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osEventListener_t to urt_osEventFlags_t--><path d="M6976.67,1612.8774 C6929.92,1629.7384 6875.04,1648.9134 6824.92,1664.8594 C6782.8,1678.2594 6735.43,1691.7594 6696.44,1702.4584 " fill="none" id="urt_osEventListener_t-urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6691.25,1703.8824,6700.985,1705.3753,6696.0741,1702.5678,6698.8817,1697.6568,6691.25,1703.8824" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osEventSource_t to urt_osEventFlags_t--><path d="M6253.5,1606.9184 C6307.66,1624.4174 6373.68,1645.7414 6432.92,1664.8594 C6467.89,1676.1454 6506.63,1688.6354 6539.42,1699.2064 " fill="none" id="urt_osEventSource_t-urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6544.22,1700.7514,6536.8746,1694.1905,6539.4596,1699.2222,6534.4279,1701.8072,6544.22,1700.7514" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventSource_t--><path d="M6223.98,1251.6554 C6206.01,1321.1194 6170.47,1458.5144 6152.64,1527.4164 " fill="none" id="urt_events-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6151.29,1532.6604,6157.4145,1524.9474,6152.5409,1527.8194,6149.6689,1522.9458,6151.29,1532.6604" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventListener_t--><path d="M6285,1251.3874 C6352.83,1305.5704 6479.93,1397.7044 6605.92,1438.8594 C6698.72,1469.1734 6730.1,1432.6274 6824.92,1455.8594 C6887.76,1471.2544 6954.75,1499.9394 7005.65,1524.5554 " fill="none" id="urt_events-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7010.22,1526.7724,7003.8739,1519.2406,7005.723,1524.5867,7000.3769,1526.4358,7010.22,1526.7724" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventMask_t--><path d="M6269.04,1251.6554 C6329.26,1326.3014 6452.75,1479.3924 6502.96,1541.6374 " fill="none" id="urt_events-urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6506.16,1545.6044,6503.6145,1536.0902,6503.0174,1541.7154,6497.3921,1541.1184,6506.16,1545.6044" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_status_t--><path d="M6181.6,1251.4274 C6107.36,1307.0474 5966.34,1402.2784 5827.92,1438.8594 C5758.57,1457.1884 728.281,1426.2924 662.921,1455.8594 C632.461,1469.6384 607.519,1497.7614 590.163,1522.5024 " fill="none" id="urt_events-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="587.228,1526.7584,595.6306,1521.6206,590.0668,1522.6424,589.045,1517.0786,587.228,1526.7584" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventWaitType_t--><path d="M6312.42,1251.5514 C6392.52,1296.8964 6519.27,1373.6194 6616.92,1455.8594 C6640.73,1475.9084 6664.45,1501.1694 6683.21,1522.7204 " fill="none" id="urt_events-urt_osEventWaitType_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6686.65,1526.6984,6683.7723,1517.2793,6683.3729,1522.9221,6677.7302,1522.5227,6686.65,1526.6984" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_delay_t--><path d="M6181.26,1251.5794 C6106.91,1307.1344 5966.07,1402.0374 5827.92,1438.8594 C5767.26,1455.0284 3630.68,1454.3734 3567.92,1455.8594 C2446.05,1482.4144 1075.91,1551.1034 786.287,1565.9874 " fill="none" id="urt_events-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="781.279,1566.2454,790.4718,1569.7798,786.2725,1565.9896,790.0626,1561.7903,781.279,1566.2454" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_rtclass_t to urt_rtclasstype_t--><path d="M1506.92,591.4894 C1506.92,637.1594 1506.92,704.8194 1506.92,750.4194 " fill="none" id="urt_rtclass_t-urt_rtclasstype_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1506.92,578.3694,1502.92,584.3694,1506.92,590.3694,1510.92,584.3694,1506.92,578.3694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1498.2325" y="598.1314">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1498.3825" y="739.762">1</text><!--link urt_rtclass_t to urt_rtclassparams_t--><path d="M1470.37,588.8694 C1434.47,634.5394 1379.93,703.9294 1343.39,750.4194 " fill="none" id="urt_rtclass_t-urt_rtclassparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1478.62,578.3694,1471.7654,580.6088,1471.1962,587.7974,1478.0508,585.558,1478.62,578.3694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1465.0684" y="598.1314">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1340.0219" y="739.762">1</text><!--link urt_rtclassparams_t to urt_hrtparams_t--><path d="M1214.68,830.8014 C1183,844.9664 1149.48,864.8764 1125.92,891.8594 C1055.89,972.0794 1030.24,1099.6844 1021.33,1165.3224 " fill="none" id="urt_rtclassparams_t-urt_hrtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1226.71,825.6514,1219.6188,824.3419,1215.6826,830.384,1222.7739,831.6935,1226.71,825.6514" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1210.8744" y="824.41">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1023.9452" y="1154.3125">0..1</text><!--link urt_rtclassparams_t to urt_frtparams_t--><path d="M1367.38,857.8954 C1381.51,868.0724 1397.05,877.4644 1412.92,883.8594 C1441.97,895.5634 1458.11,872.7494 1482.92,891.8594 C1564.65,954.8264 1592.13,1079.7364 1601.33,1152.0674 " fill="none" id="urt_rtclassparams_t-urt_frtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1356.86,849.9954,1359.2513,856.7984,1366.4508,857.2076,1364.0595,850.4046,1356.86,849.9954" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1355.6016" y="870.091">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1575.3081" y="1141.3663">0..1</text><!--link urt_rtclassparams_t to urt_srtparams_t--><path d="M1304.92,863.1194 C1304.92,949.0264 1304.92,1101.8374 1304.92,1171.2574 " fill="none" id="urt_rtclassparams_t-urt_srtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1304.92,849.9294,1300.92,855.9294,1304.92,861.9294,1308.92,855.9294,1304.92,849.9294" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1296.3575" y="870.0157">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1278.7825" y="1160.4262">0..1</text><!--link urt_rtclassparams_t to urt_nrtparams_t--><path d="M1213.91,811.1834 C1110.65,824.1514 950.981,850.3254 907.921,891.8594 C824.491,972.3324 820.751,1125.5664 822.622,1183.9624 " fill="none" id="urt_rtclassparams_t-urt_nrtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1226.83,809.5914,1220.3834,806.3601,1214.9212,811.0681,1221.3678,814.2993,1226.83,809.5914" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1211.0058" y="806.8171">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="795.3804" y="1173.2706">0..1</text><!--link urt_hrtparams_t to urt_delay_t--><path d="M1003.628,1251.7904 C986.809,1300.6884 954.215,1381.6474 906.921,1438.8594 C873.081,1479.7954 823.706,1514.7944 785.86,1538.1294 " fill="none" id="urt_hrtparams_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="781.303,1540.9174,791.0675,1539.6307,785.5676,1538.3072,786.8911,1532.8073,781.303,1540.9174" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_hrtparams_t to urt_osTimer_t--><path d="M1020.21,1152.0084 C1027.49,1080.7564 1050.89,959.2684 1125.92,891.8594 C1131.86,886.5274 1135.49,888.7544 1143.42,887.8594 C1174.67,884.3334 1678.06,885.6264 1709.42,887.8594 C2430.53,939.1974 3272.41,1082.3954 3688.61,1158.8204 " fill="none" id="urt_hrtparams_t-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1018.99,1165.1304,1023.5268,1159.5253,1020.0978,1153.1816,1015.561,1158.7867,1018.99,1165.1304" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1010.6943" y="1154.4079">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3643.4414" y="1147.8601">1</text><!--link urt_frtparams_t to urt_delay_t--><path d="M1591.67,1264.3714 C1574.86,1317.7184 1541.49,1396.6064 1482.92,1438.8594 C1370.69,1519.8284 940.89,1555.2174 786.528,1565.4994 " fill="none" id="urt_frtparams_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="781.154,1565.8544,790.3984,1569.2516,786.1431,1565.5243,789.8703,1561.269,781.154,1565.8544" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_frtparams_t to urt_osTimer_t--><path d="M1723.86,1208.3594 C2343.69,1208.3594 2963.51,1208.3594 3583.34,1208.3594 " fill="none" id="urt_frtparams_t-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1710.6,1208.3594,1716.6,1212.3594,1722.6,1208.3594,1716.6,1204.3594,1710.6,1208.3594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1718.5812" y="1204.8795">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3567.8329" y="1205.2731">1</text><!--link urt_frtparams_t to urt_osTimerCallback_t--><path d="M1723.68,1228.3264 C2101.55,1289.1884 3282.78,1479.4454 3694.59,1545.7734 " fill="none" id="urt_frtparams_t-urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1710.58,1226.2164,1715.8661,1231.1212,1722.4267,1228.1282,1717.1406,1223.2234,1710.58,1226.2164" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1718.5597" y="1224.0479">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3678.9933" y="1541.2201">1</text><!--link urt_srtparams_t to urt_delay_t--><path d="M1285.92,1245.4534 C1257.61,1295.8544 1199.69,1386.9544 1125.92,1438.8594 C1019.47,1513.7624 867.044,1547.6414 786.197,1561.1284 " fill="none" id="urt_srtparams_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="780.977,1561.9874,790.5075,1564.4713,785.9105,1561.1746,789.2071,1556.5777,780.977,1561.9874" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_message_t to urt_message_t--><path d="M2341.49,766.8794 C2355.82,774.8394 2364.42,785.9994 2364.42,800.3594 C2364.42,818.3744 2350.87,831.3574 2329.45,839.3094 " fill="none" id="urt_message_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2329.45,761.4094,2333.2592,767.5323,2340.3762,766.371,2336.567,760.2481,2329.45,761.4094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2337.6987" y="756.805">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2337.244" y="837.4064">0..1</text><!--link urt_message_t to urt_osTime_t--><path d="M2342.48,879.5614 C2350.69,881.1734 2358.85,882.6164 2366.92,883.8594 C2384.37,886.5464 7437.52,881.6494 7451.92,891.8594 C7662.25,1040.9334 7465.34,1253.8984 7644.92,1438.8594 C7659.52,1453.9004 7670.65,1445.5884 7688.92,1455.8594 C7727.65,1477.6234 7767.34,1508.7604 7795.7,1532.8394 " fill="none" id="urt_message_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2329.56,876.8944,2334.6273,882.0249,2341.3121,879.3208,2336.2449,874.1902,2329.56,876.8944" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2337.0951" y="891.7169">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7779.5469" y="1521.7461">1</text><!--link urt_message_t to urt_osMutex_t--><path d="M2342.48,879.5614 C2350.69,881.1734 2358.85,882.6164 2366.92,883.8594 C2384.03,886.4944 7339.29,881.1914 7352.92,891.8594 C7403.61,931.5144 7486.59,1371.8094 7513.33,1520.2954 " fill="none" id="urt_message_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2329.56,876.8944,2334.6273,882.0249,2341.3121,879.3208,2336.2449,874.1902,2329.56,876.8944" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2337.0951" y="876.2247">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7503.5595" y="1509.3316">1</text><!--link urt_message_t to urt_osCondvar_t--><path d="M2342.49,879.5354 C2350.69,881.1544 2358.85,882.6064 2366.92,883.8594 C2393.86,888.0424 4304.32,882.4824 4329.92,891.8594 C4476.75,945.6394 4606.27,1084.4244 4667.86,1158.7194 " fill="none" id="urt_message_t-urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2329.56,876.8574,2334.6272,881.9881,2341.3121,879.284,2336.2449,874.1533,2329.56,876.8574" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2337.1441" y="894.8265">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4653.9453" y="1147.7449">1</text><!--link urt_subscriber_t to urt_subscriber_t--><path d="M1956.41,213.2694 C1971.06,221.4494 1979.42,231.6494 1979.42,243.8594 C1979.42,259.0394 1966.51,271.0994 1944.66,280.0494 " fill="none" id="urt_subscriber_t-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1944.66,207.6694,1948.3571,213.8606,1955.4941,212.8291,1951.7969,206.6379,1944.66,207.6694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1952.0462" y="203.9859">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1952.1837" y="277.6099">0..1</text><!--link urt_subscriber_t to urt_topic_t--><path d="M1729.44,372.4094 C1760.24,390.1294 1791.99,408.2394 1822.85,425.6994 " fill="none" id="urt_subscriber_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1718.13,365.8994,1721.332,372.3606,1728.5277,371.89,1725.3257,365.4287,1718.13,365.8994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1722.0256" y="385.862">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1784.4315" y="414.8721">0..1</text><!--link urt_topic_t to urt_subscriber_t--><path d="M1836.91,418.9994 C1806.49,401.4694 1774.92,383.4294 1744,365.8994 " fill="none" id="urt_topic_t-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1848.5,425.6994,1845.3041,419.2351,1838.108,419.6989,1841.3038,426.1631,1848.5,425.6994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1828.2372" y="414.8721">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1734.015" y="385.862">0..*</text><!--link urt_subscriber_t to urt_osEventListener_t--><path d="M1957.64,362.3494 C1965.11,363.5894 1972.54,364.7594 1979.92,365.8594 C2657.86,466.7894 2836.61,387.1494 3520.92,425.8594 C4393.03,475.1894 6650.59,344.8394 7440.92,716.8594 C7739.01,857.1754 7834.39,1198.6344 7608.92,1438.8594 C7588.5,1460.6154 7369.88,1448.6744 7340.92,1455.8594 C7278.77,1471.2794 7212.91,1501.5164 7164.26,1526.8354 " fill="none" id="urt_subscriber_t-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1944.59,360.1294,1949.8374,365.0756,1956.4213,362.1342,1951.174,357.188,1944.59,360.1294" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1951.975" y="359.0663">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7167.4704" y="1515.8276">1</text><!--link urt_subscriber_t to urt_rtclass_t--><path d="M1513.47,379.0994 C1511.61,424.9594 1509.67,472.5694 1508.39,504.0594 " fill="none" id="urt_subscriber_t-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1514.01,365.8994,1509.7693,371.7317,1513.522,377.8894,1517.7627,372.0571,1514.01,365.8994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1505.467" y="385.862">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1499.9393" y="493.1929">1</text><!--link urt_subscriber_t to urt_message_t--><path d="M1691.74,376.1294 C1705.17,391.6994 1717.24,408.3294 1726.92,425.8594 C1777.16,516.8094 1698.82,575.0794 1762.92,656.8594 C1792.61,694.7294 1834.17,722.6494 1878.1,743.1894 " fill="none" id="urt_subscriber_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1682.74,366.0594,1683.7561,373.1985,1690.7369,375.0064,1689.7208,367.8673,1682.74,366.0594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1684.479" y="386.0318">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1846.2965" y="738.1325">0..1</text><!--link urt_subscriber_t to urt_osTime_t--><path d="M1957.6,362.5694 C1965.09,363.7394 1972.53,364.8394 1979.92,365.8594 C2737.09,470.2994 4656.79,367.8594 5418.92,425.8594 C6380.85,499.0694 6740.94,223.4494 7569.92,716.8594 C7862.2,890.8224 7848.82,1392.8324 7839.07,1532.4474 " fill="none" id="urt_subscriber_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1944.55,360.4694,1949.8357,365.3747,1956.3966,362.3822,1951.1109,357.477,1944.55,360.4694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1951.9343" y="374.6699">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7830.9239" y="1521.84">1</text><!--link urt_subscriber_t to urt_delay_t--><path d="M1080.51,364.8794 C1078.98,365.2094 1077.45,365.5394 1075.92,365.8594 C988.626,384.3094 737.107,358.2194 678.921,425.8594 C397.814,752.6394 630.634,1346.6954 708.096,1520.1124 " fill="none" id="urt_subscriber_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1093.28,362.1194,1086.5686,359.4818,1081.5526,364.6625,1088.264,367.3001,1093.28,362.1194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1077.8956" y="361.0905">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="696.3237" y="1509.1229">2</text><!--link urt_subscriber_t to urt_status_t--><path d="M1093.34,362.4094 C1087.5,363.5894 1081.69,364.7394 1075.92,365.8594 C962.147,387.8594 652.877,359.4394 557.921,425.8594 C179.279,690.7094 17.8076,1092.7224 323.921,1438.8594 C344.39,1462.0054 434.543,1441.5364 461.921,1455.8594 C491.123,1471.1364 515.928,1498.5154 533.648,1522.4964 " fill="none" id="urt_subscriber_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="536.651,1526.6214,534.5884,1516.9909,533.7084,1522.5789,528.1204,1521.699,536.651,1526.6214" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_subscriber_t to urt_topicid_t--><path d="M1093.39,362.7094 C1087.54,363.7994 1081.71,364.8494 1075.92,365.8594 C907.049,395.2394 445.989,325.6594 306.921,425.8594 C-31.5844,669.7694 240.178,1281.0434 349.545,1494.1634 " fill="none" id="urt_subscriber_t-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="351.939,1498.8154,351.3762,1488.9826,349.6505,1494.3698,344.2633,1492.6442,351.939,1498.8154" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_topic_t--><path d="M2293.44,317.1994 C2255.75,349.8594 2210.31,389.2394 2168.16,425.7594 " fill="none" id="urt_publisher_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2303.35,308.6194,2296.1959,309.5246,2294.28,316.4765,2301.434,315.5713,2303.35,308.6194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2287.3506" y="328.1538">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2168.3754" y="414.9359">1</text><!--link urt_publisher_t to urt_message_t--><path d="M2372.2,308.3994 C2363.71,416.6494 2345.07,627.9994 2326.92,656.8594 C2313.39,678.3694 2295.3,697.2394 2275.24,713.5994 " fill="none" id="urt_publisher_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2271.21,716.8394,2280.7332,714.3278,2275.1102,713.7107,2275.7273,708.0876,2271.21,716.8394" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_osTime_t--><path d="M2756.46,250.0894 C4001.89,268.1394 7889.97,331.9194 7980.92,425.8594 C8137.51,587.5894 8072.7,1233.3074 7980.92,1438.8594 C7964.23,1476.2344 7930.9,1507.3334 7900.4,1529.7324 " fill="none" id="urt_publisher_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7896.31,1532.6974,7905.9466,1530.6635,7900.3612,1529.7669,7901.2578,1524.1815,7896.31,1532.6974" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_delay_t--><path d="M2201.82,308.4394 C2133.49,330.5394 2053.93,352.9894 1979.92,365.8594 C1844.24,389.4494 837.394,326.6094 741.921,425.8594 C590.993,582.7594 690.7,1310.3464 722.283,1515.1094 " fill="none" id="urt_publisher_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="723.061,1520.1404,725.6383,1510.6347,722.2967,1515.1991,717.7323,1511.8575,723.061,1520.1404" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_status_t--><path d="M2202.33,308.3994 C2133.9,330.5594 2054.12,353.0694 1979.92,365.8594 C1835.45,390.7594 782.952,343.1394 661.921,425.8594 C284.195,683.9994 349.484,1000.0414 478.921,1438.8594 C487.868,1469.1924 506.342,1499.1114 523.693,1522.5854 " fill="none" id="urt_publisher_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="526.691,1526.5934,524.5009,1516.9911,523.6951,1522.5903,518.0959,1521.7845,526.691,1526.5934" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_topic_t to urt_topic_t--><path d="M2303.78,509.4194 C2318,517.2594 2326.42,527.9094 2326.42,541.3594 C2326.42,558.2394 2313.16,570.6994 2291.83,578.7494 " fill="none" id="urt_topic_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2291.83,503.9694,2295.627,510.0999,2302.7463,508.9529,2298.9493,502.8224,2291.83,503.9694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2299.5461" y="499.7016">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2299.7836" y="576.7017">0..1</text><!--link urt_topic_t to urt_osMutex_t--><path d="M2304.45,643.5994 C2324.39,648.7994 2344.35,653.3194 2363.92,656.8594 C2920.83,757.5194 7046.14,497.3594 7451.92,891.8594 C7626.02,1061.1224 7565.72,1394.8864 7535.15,1519.9794 " fill="none" id="urt_topic_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2291.7,640.1794,2296.4576,645.5984,2303.2896,643.291,2298.532,637.872,2291.7,640.1794" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2299.4122" y="655.4007">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7528.3903" y="1509.3301">1</text><!--link urt_topic_t to urt_osEventSource_t--><path d="M2304.56,642.9794 C2324.47,648.3294 2344.4,653.0494 2363.92,656.8594 C2892.83,760.0494 3036.81,688.0694 3574.92,716.8594 C3913.33,734.9694 6387.26,645.4494 6619.92,891.8594 C6786.82,1068.6274 6783.86,1259.3404 6619.92,1438.8594 C6591.78,1469.6714 6473.54,1446.3254 6432.92,1455.8594 C6357.34,1473.5984 6275.23,1506.8674 6217.56,1532.7314 " fill="none" id="urt_topic_t-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2291.83,639.4794,2296.5556,644.9263,2303.4011,642.6591,2298.6754,637.2122,2291.83,639.4794" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2299.5461" y="654.6799">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6222.3209" y="1521.8955">1</text><!--link urt_topic_t to urt_osTimer_t--><path d="M2304.59,642.8294 C2324.5,648.2094 2344.42,652.9894 2363.92,656.8594 C2596.2,702.9994 3210.33,623.3794 3427.92,716.8594 C3654.21,814.0804 3842.47,1054.8834 3915.89,1158.5804 " fill="none" id="urt_topic_t-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2291.86,639.3094,2296.5798,644.7613,2303.4277,642.5014,2298.7078,637.0495,2291.86,639.3094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2299.577" y="639.0595">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3902.9141" y="1147.9446">1</text><!--link urt_topic_t to urt_message_t--><path d="M2056.87,669.6994 C2061.07,685.6294 2065.53,701.5794 2070.01,716.5694 " fill="none" id="urt_topic_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2053.56,656.9594,2051.1908,663.7702,2056.5665,668.5766,2058.9357,661.7658,2053.56,656.9594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2046.4764" y="677.2926">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="2043.1076" y="705.7863">1..*</text><!--link urt_topic_t to urt_message_t--><path d="M2083.11,669.6994 C2087.34,685.6294 2091.3,701.5794 2094.73,716.5694 " fill="none" id="urt_topic_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2079.67,656.9594,2077.3718,663.7945,2082.7973,668.5447,2085.0954,661.7096,2079.67,656.9594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2074.3407" y="677.2926">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2085.5965" y="705.7863">1</text><!--link urt_topic_t to urt_topicid_t--><path d="M1767.15,647.3694 C1753.65,650.9294 1740.19,654.1294 1726.92,656.8594 C1596.8,683.5794 637.789,635.3294 532.921,716.8594 C292.402,903.8554 343.537,1330.5024 374.921,1498.7664 " fill="none" id="urt_topic_t-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1780.1,643.8394,1773.26,641.5557,1768.5213,646.9912,1775.3613,649.2749,1780.1,643.8394" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1764.3866" y="643.724">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="364.9616" y="1487.7541">1</text><!--link urt_topic_t to urt_osTime_t--><path d="M2291.65,640.4094 C2315.82,647.0094 2340.16,652.6794 2363.92,656.8594 C2884.19,748.4394 6599.08,617.5294 7117.92,716.8594 C7331.53,757.7594 7420.96,738.2394 7574.92,891.8594 C7761.42,1077.9344 7817.39,1411.8214 7831.63,1527.8184 " fill="none" id="urt_topic_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7832.24,1532.8454,7835.1301,1523.4301,7831.6395,1527.8816,7827.188,1524.3909,7832.24,1532.8454" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_topic_t to urt_status_t--><path d="M1780.06,643.6294 C1762.24,648.6794 1744.41,653.1694 1726.92,656.8594 C1512.35,702.1094 945.366,635.0094 741.921,716.8594 C630.471,761.6994 586.36,782.8294 535.921,891.8594 C435.673,1108.5594 511.373,1407.2404 547.027,1521.6594 " fill="none" id="urt_topic_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="548.59,1526.6394,549.7121,1516.8546,547.0931,1521.8687,542.079,1519.2497,548.59,1526.6394" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_core_t to urt_topic_t--><path d="M980.075,314.0894 C1008.83,334.1594 1042.26,353.8794 1075.92,365.8594 C1349.67,463.2694 1443.58,361.4894 1726.92,425.8594 C1744.49,429.8494 1762.42,434.5994 1780.35,439.8394 " fill="none" id="urt_core_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="969.294,306.3894,971.8507,313.132,979.058,313.3654,976.5013,306.6227,969.294,306.3894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="977.7567" y="326.1325">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1749.4214" y="433.6678">0..*</text><!--link urt_core_t to urt_node_t--><path d="M978.968,314.3994 C1007.88,334.7294 1041.69,354.5194 1075.92,365.8594 C1340.12,453.3794 2050.51,393.3194 2326.92,425.8594 C2361.67,429.9494 2397.42,434.8594 2433.35,440.3094 " fill="none" id="urt_core_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="968.136,306.5994,970.6647,313.3526,977.871,313.6157,975.3423,306.8625,968.136,306.5994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="967.597" y="326.3654">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="2372.7449" y="429.4221">0..*</text><!--link urt_core_t to urt_status_t--><path d="M733.214,258.9494 C526.453,280.6094 187.171,330.0294 110.921,425.8594 C22.2604,537.2894 51.7099,1256.5464 252.921,1438.8594 C287.452,1470.1474 420.193,1435.1184 461.921,1455.8594 C491.656,1470.6394 516.619,1498.3084 534.289,1522.5664 " fill="none" id="urt_core_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="537.282,1526.7394,535.2866,1517.0948,534.3677,1522.6765,528.786,1521.7576,537.282,1526.7394" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_core_t to urt_topicid_t--><path d="M733.21,256.3994 C513.973,275.7094 141.471,323.0594 57.9209,425.8594 C-24.1507,526.8394 1.6902,1345.6994 65.9209,1438.8594 C125.808,1525.7184 254.056,1554.5614 330.01,1564.1264 " fill="none" id="urt_core_t-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="335.386,1564.7824,326.9369,1559.7215,330.4228,1564.1766,325.9677,1567.6626,335.386,1564.7824" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_nodeSetupCallback_t to urt_node_t--><path d="M2622.99,769.6094 C2659.94,739.2394 2723.68,690.3394 2783.92,645.6694 " fill="none" id="urt_nodeSetupCallback_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2788.25,642.4594,2778.6363,644.5989,2784.2312,645.4341,2783.396,651.029,2788.25,642.4594" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_node_t to urt_nodeSetupCallback_t--><path d="M2803.35,650.5094 C2746.34,693.8394 2683.02,740.3294 2640.53,769.6094 " fill="none" id="urt_node_t-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2813.92,642.4594,2806.723,642.91,2804.3709,649.7267,2811.5679,649.2761,2813.92,642.4594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2797.2013" y="662.179">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2641.7308" y="758.821">1</text><!--link urt_nodeSetupCallback_t to urt_status_t--><path d="M2533.05,830.8824 C2491.22,850.1684 2433.08,873.6104 2378.92,883.8594 C2366.84,886.1464 616.882,883.4364 607.921,891.8594 C517.356,976.9884 545.527,1381.8334 558.216,1521.4194 " fill="none" id="urt_nodeSetupCallback_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="558.698,1526.6714,561.8583,1517.3433,558.2408,1521.6923,553.8918,1518.0748,558.698,1526.6714" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_nodeLoopCallback_t to urt_node_t--><path d="M3093.41,769.6094 C3067.7,739.4794 3030.6,691.1194 2998.54,646.7394 " fill="none" id="urt_nodeLoopCallback_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2995.45,642.4594,2997.4742,652.098,2998.3764,646.5135,3003.9609,647.4157,2995.45,642.4594" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_node_t to urt_nodeLoopCallback_t--><path d="M3029.05,652.9394 C3061.13,695.5694 3093.18,740.8794 3110.95,769.6094 " fill="none" id="urt_node_t-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3021.13,642.4594,3021.5585,649.6577,3028.3679,652.0308,3027.9394,644.8325,3021.13,642.4594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3018.9807" y="662.179">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3099.4499" y="758.821">1</text><!--link urt_nodeLoopCallback_t to urt_osEventMask_t--><path d="M3412.16,803.5094 C4239.15,810.3634 6564.21,834.6854 6619.92,891.8594 C6704.75,978.9174 6657.64,1323.3054 6619.92,1438.8594 C6606.75,1479.2174 6575.77,1517.4444 6552.75,1541.8644 " fill="none" id="urt_nodeLoopCallback_t-urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6549.12,1545.6634,6558.2277,1541.9151,6552.5724,1542.0466,6552.4409,1536.3913,6549.12,1545.6634" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_nodeLoopCallback_t to urt_status_t--><path d="M3038.09,830.9214 C2977.42,850.2254 2893.72,873.6724 2817.92,883.8594 C2803.63,885.7794 753.292,882.9974 741.921,891.8594 C543.989,1046.1244 669.101,1197.0714 601.921,1438.8594 C594.233,1466.5284 585.026,1497.3174 577.489,1521.9834 " fill="none" id="urt_nodeLoopCallback_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="576.004,1526.8324,582.4647,1519.3987,577.4685,1522.0517,574.8155,1517.0555,576.004,1526.8324" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_node_t to urt_node_t--><path d="M3498.34,517.5094 C3512.81,524.1294 3520.92,532.0694 3520.92,541.3594 C3520.92,553.0094 3508.15,562.5594 3486.06,569.9994 " fill="none" id="urt_node_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3486.06,512.7194,3490.1949,518.6273,3497.2386,517.0827,3493.1038,511.1748,3486.06,512.7194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3493.8807" y="509.2814">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3493.9932" y="582.5778">0..1</text><!--link urt_node_t to urt_osThread_t--><path d="M3498.98,599.1094 C4032.47,659.1594 4789.54,762.9994 5057.92,891.8594 C5104.27,914.1134 5148.99,944.4144 5190.09,977.4794 " fill="none" id="urt_node_t-urt_osThread_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3486.02,597.6494,3491.5337,602.2969,3497.9443,598.9948,3492.4306,594.3473,3486.02,597.6494" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3493.8402" y="595.4057">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5174.7784" y="966.7275">1</text><!--link urt_node_t to urt_osEventMask_t--><path d="M3499.29,552.1994 C4559.46,572.6794 6770.13,625.7094 7108.92,716.8594 C7270.37,760.2994 7355.46,748.7594 7441.92,891.8594 C7567.64,1099.9434 7612.05,1265.1924 7441.92,1438.8594 C7409.84,1471.6074 6658.12,1435.7524 6616.92,1455.8594 C6578.27,1474.7224 6550.38,1518.3634 6536.01,1545.5564 " fill="none" id="urt_node_t-urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3486.09,551.9394,3492.0096,556.0574,3498.0876,552.177,3492.168,548.0589,3486.09,551.9394" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3493.9111" y="549.0529">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6529.7382" y="1534.8875">1</text><!--link urt_node_t to urt_osEventWaitType_t--><path d="M3499.35,545.7994 C4599.4,555.2894 6950.55,590.2794 7297.92,716.8594 C7613.84,831.9764 7758.77,1198.2274 7523.92,1438.8594 C7496.79,1466.6584 6860.3,1439.8224 6824.92,1455.8594 C6792.26,1470.6644 6765.21,1501.1044 6746.89,1526.6644 " fill="none" id="urt_node_t-urt_osEventWaitType_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3486.07,545.6894,3492.0346,549.742,3498.0695,545.7949,3492.1049,541.7423,3486.07,545.6894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3493.8909" y="557.926">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6742.2542" y="1515.9471">1</text><!--link urt_node_t to urt_osThreadTerminateSignal_t--><path d="M3485.95,545.1094 C4613.19,556.4794 7095.47,613.2394 7352.92,891.8594 C7517.91,1070.4134 7523.85,1265.9834 7352.92,1438.8594 C7323.6,1468.5104 5891.61,1443.0734 5851.92,1455.8594 C5806.5,1470.4904 5762.7,1502.8134 5732.28,1529.1564 " fill="none" id="urt_node_t-urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5728.27,1532.6664,5737.6807,1529.7615,5732.0369,1529.3784,5732.42,1523.7345,5728.27,1532.6664" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1905px" preserveAspectRatio="none" style="width:9314px;height:1905px;" version="1.1" viewBox="0 0 9314 1905" width="9314px" zoomAndPan="magnify"><defs><filter height="300%" id="f13anogsv9jdn" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="4590.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="87" x="4591.5" y="37.6611">Overview</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="4638" y="58.6143"/><!--cluster primitives--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="117.951,1450.8594,200.951,1450.8594,207.951,1473.1563,1037.95,1473.1563,1037.95,1761.8594,117.951,1761.8594,117.951,1450.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="117.951" x2="207.951" y1="1473.1563" y2="1473.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="77" x="121.951" y="1465.8545">primitives</text><!--cluster interfaces--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="3584.95,886.8594,3670.95,886.8594,3677.95,909.1563,8863.95,909.1563,8863.95,1893.8594,3584.95,1893.8594,3584.95,886.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="3584.95" x2="3677.95" y1="909.1563" y2="909.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="80" x="3588.95" y="901.8545">interfaces</text><!--cluster condition variable--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="4829.95,1110.8594,4975.95,1110.8594,4982.95,1133.1563,5533.95,1133.1563,5533.95,1674.8594,4829.95,1674.8594,4829.95,1110.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4829.95" x2="4982.95" y1="1133.1563" y2="1133.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="140" x="4833.95" y="1125.8545">condition variable</text><!--cluster timer--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="4043.95,1110.8594,4090.95,1110.8594,4097.95,1133.1563,4805.95,1133.1563,4805.95,1662.3594,4043.95,1662.3594,4043.95,1110.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="4043.95" x2="4097.95" y1="1133.1563" y2="1133.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="4047.95" y="1125.8545">timer</text><!--cluster thread--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="5557.95,929.8594,5615.95,929.8594,5622.95,952.1563,6564.95,952.1563,6564.95,1694.3594,5557.95,1694.3594,5557.95,929.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="5557.95" x2="5622.95" y1="952.1563" y2="952.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="5561.95" y="944.8545">thread</text><!--cluster events--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="6588.95,1117.3594,6648.95,1117.3594,6655.95,1139.6563,8235.95,1139.6563,8235.95,1869.8594,6588.95,1869.8594,6588.95,1117.3594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="6588.95" x2="6655.95" y1="1139.6563" y2="1139.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="6592.95" y="1132.3545">events</text><!--cluster middleware--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="887.951,86.8594,985.951,86.8594,992.951,109.1563,3560.95,109.1563,3560.95,1291.3594,887.951,1291.3594,887.951,86.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="887.951" x2="992.951" y1="109.1563" y2="109.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="92" x="891.951" y="101.8545">middleware</text><!--cluster real-time class--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="911.951,462.8594,1032.951,462.8594,1039.951,485.1563,1895.95,485.1563,1895.95,1267.3594,911.951,1267.3594,911.951,462.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="911.951" x2="1039.951" y1="485.1563" y2="485.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="115" x="915.951" y="477.8545">real-time class</text><!--cluster node--><polygon fill="#FFFFFF" filter="url(#f13anogsv9jdn)" points="1919.95,721.8594,1965.95,721.8594,1972.95,744.1563,3056.95,744.1563,3056.95,833.8594,1919.95,833.8594,1919.95,721.8594" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1919.95" x2="1972.95" y1="744.1563" y2="744.1563"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="40" x="1923.95" y="736.8545">node</text><!--class urt_delay_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="99.2188" id="urt_delay_t" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="921.951" y="1566.3594"/><ellipse cx="936.951" cy="1582.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M937.7948,1589.1094 L935.3416,1589.1094 L935.3416,1578.8594 L932.201,1578.8594 L932.201,1576.7188 L940.9354,1576.7188 L940.9354,1578.8594 L937.7948,1578.8594 L937.7948,1589.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="68" x="950.951" y="1586.5137">urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="922.951" x2="1020.951" y1="1598.3594" y2="1598.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="927.951" y="1629.3745">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="922.951" x2="955.451" y1="1612.7617" y2="1612.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="955.451" y="1616.0698">either</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="988.451" x2="1020.951" y1="1612.7617" y2="1612.7617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="927.951" y="1658.9839">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="922.951" x2="965.951" y1="1642.3711" y2="1642.3711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="965.951" y="1645.6792">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="977.951" x2="1020.951" y1="1642.3711" y2="1642.3711"/><!--class urt_status_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="86.4141" id="urt_status_t" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="720.951" y="1572.8594"/><ellipse cx="762.501" cy="1588.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M766.6104,1594.8594 L758.8916,1594.8594 L758.8916,1582.4688 L766.6104,1582.4688 L766.6104,1584.625 L761.3448,1584.625 L761.3448,1587.2969 L766.1104,1587.2969 L766.1104,1589.4531 L761.3448,1589.4531 L761.3448,1592.7031 L766.6104,1592.7031 L766.6104,1594.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="782.401" y="1593.0137">urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.951" x2="885.951" y1="1604.8594" y2="1604.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="726.951" y="1619.0698">URT_STATUS_OK = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="154" x="726.951" y="1631.8745">URT_STATUS_WARNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="726.951" y="1644.6792">URT_STATUS_ERROR = -1</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.951" x2="885.951" y1="1651.2734" y2="1651.2734"/><!--class urt_topicid_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="141.6328" id="urt_topicid_t" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="576.451" y="1544.8594"/><ellipse cx="591.451" cy="1560.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M592.2948,1567.6094 L589.8416,1567.6094 L589.8416,1557.3594 L586.701,1557.3594 L586.701,1555.2188 L595.4354,1555.2188 L595.4354,1557.3594 L592.2948,1557.3594 L592.2948,1567.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="605.451" y="1565.0137">urt_topicid_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="577.451" x2="684.451" y1="1576.8594" y2="1576.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="582.451" y="1591.0698">uin8_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="582.451" y="1620.6792">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="577.451" x2="624.951" y1="1604.0664" y2="1604.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="624.951" y="1607.3745">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="636.951" x2="684.451" y1="1604.0664" y2="1604.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="582.451" y="1650.2886">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="577.451" x2="624.951" y1="1633.6758" y2="1633.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="624.951" y="1636.9839">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="636.951" x2="684.451" y1="1633.6758" y2="1633.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="582.451" y="1679.8979">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="577.451" x2="624.951" y1="1663.2852" y2="1663.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="624.951" y="1666.5933">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="636.951" x2="684.451" y1="1663.2852" y2="1663.2852"/><!--class urt_debug--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_debug" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="296.451" y="1585.3594"/><ellipse cx="382.701" cy="1601.3594" fill="#FFFFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M386.9354,1597.125 L381.6541,1597.125 L381.6541,1599.7969 L386.451,1599.7969 L386.451,1601.9531 L381.6541,1601.9531 L381.6541,1607.3594 L379.2166,1607.3594 L379.2166,1594.9688 L386.9354,1594.9688 L386.9354,1597.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="403.201" y="1605.5137">urt_debug</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="297.451" x2="540.451" y1="1617.3594" y2="1617.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="297.451" x2="540.451" y1="1625.3594" y2="1625.3594"/><ellipse cx="307.451" cy="1637.2617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="316.451" y="1639.5698">urtDebugAssert(condition : bool) : void</text><!--class urt_nodesync_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="260.0703" id="urt_nodesync_t" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="134.451" y="1485.8594"/><ellipse cx="149.451" cy="1501.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M150.2948,1508.6094 L147.8416,1508.6094 L147.8416,1498.3594 L144.701,1498.3594 L144.701,1496.2188 L153.4354,1496.2188 L153.4354,1498.3594 L150.2948,1498.3594 L150.2948,1508.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="163.451" y="1506.0137">urt_nodesync_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="135.451" x2="260.451" y1="1517.8594" y2="1517.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="140.451" y="1532.0698">uin8_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="140.451" y="1561.6792">int8_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1545.0664" y2="1545.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1548.3745">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1545.0664" y2="1545.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="140.451" y="1591.2886">uint16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1574.6758" y2="1574.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1577.9839">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1574.6758" y2="1574.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="140.451" y="1620.8979">int16_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1604.2852" y2="1604.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1607.5933">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1604.2852" y2="1604.2852"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="140.451" y="1650.5073">uint32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1633.8945" y2="1633.8945"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1637.2026">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1633.8945" y2="1633.8945"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="140.451" y="1680.1167">int32_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1663.5039" y2="1663.5039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1666.812">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1663.5039" y2="1663.5039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="140.451" y="1709.7261">uint64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1693.1133" y2="1693.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1696.4214">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1693.1133" y2="1693.1133"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="140.451" y="1739.3354">int64_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="135.451" x2="191.951" y1="1722.7227" y2="1722.7227"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="191.951" y="1726.0308">or</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="203.951" x2="260.451" y1="1722.7227" y2="1722.7227"/><!--class urt_config--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_config" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="3845.45" y="1164.8594"/><ellipse cx="3899.7" cy="1180.8594" fill="#808080" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3902.6688,1186.5 Q3902.0906,1186.7969 3901.45,1186.9453 Q3900.8094,1187.0938 3900.1063,1187.0938 Q3897.6063,1187.0938 3896.2859,1185.4453 Q3894.9656,1183.7969 3894.9656,1180.6719 Q3894.9656,1177.5469 3896.2859,1175.8906 Q3897.6063,1174.2344 3900.1063,1174.2344 Q3900.8094,1174.2344 3901.4578,1174.3906 Q3902.1063,1174.5469 3902.6688,1174.8438 L3902.6688,1177.5625 Q3902.0438,1176.9844 3901.45,1176.7109 Q3900.8563,1176.4375 3900.2313,1176.4375 Q3898.8875,1176.4375 3898.2,1177.5078 Q3897.5125,1178.5781 3897.5125,1180.6719 Q3897.5125,1182.7656 3898.2,1183.8359 Q3898.8875,1184.9063 3900.2313,1184.9063 Q3900.8563,1184.9063 3901.45,1184.6328 Q3902.0438,1184.3594 3902.6688,1183.7813 L3902.6688,1186.5 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="3920.2" y="1185.0137">urt_config</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3846.45" x2="4023.45" y1="1196.8594" y2="1196.8594"/><ellipse cx="3856.45" cy="1208.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="3865.45" y="1211.0698">URT_CONFIG_DEBUG : bool</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3846.45" x2="4023.45" y1="1217.6641" y2="1217.6641"/><!--class urt_osTime_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="73.6094" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="8590.45" y="1578.8594"/><ellipse cx="8675.2" cy="1594.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8676.0438,1601.6094 L8673.5906,1601.6094 L8673.5906,1591.3594 L8670.45,1591.3594 L8670.45,1589.2188 L8679.1844,1589.2188 L8679.1844,1591.3594 L8676.0438,1591.3594 L8676.0438,1601.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="8695.7" y="1599.0137">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8591.45" x2="8846.45" y1="1610.8594" y2="1610.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8591.45" x2="8846.45" y1="1618.8594" y2="1618.8594"/><ellipse cx="8601.45" cy="1630.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="8610.45" y="1633.0698">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="8601.45" cy="1643.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="8610.45" y="1645.8745">urtTimeNow (void) : urt_osTime_t</text><!--class urt_osMutex_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="99.2188" id="urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.5;" width="300" x="8254.95" y="1566.3594"/><ellipse cx="8357.2" cy="1582.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M8358.0438,1589.1094 L8355.5906,1589.1094 L8355.5906,1578.8594 L8352.45,1578.8594 L8352.45,1576.7188 L8361.1844,1576.7188 L8361.1844,1578.8594 L8358.0438,1578.8594 L8358.0438,1589.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="8377.7" y="1586.5137">urt_osMutex_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8255.95" x2="8553.95" y1="1598.3594" y2="1598.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8255.95" x2="8553.95" y1="1606.3594" y2="1606.3594"/><ellipse cx="8265.95" cy="1618.2617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="247" x="8274.95" y="1620.5698">urtMutexInit (mutex : urt_osmutex_t*) : void</text><ellipse cx="8265.95" cy="1631.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="255" x="8274.95" y="1633.3745">urtMutexLock (mutex : urt_osmutex_t*) : void</text><ellipse cx="8265.95" cy="1643.8711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="8274.95" y="1646.1792">urtMutexTryLock (mutex : urt_osmutex_t*) : bool</text><ellipse cx="8265.95" cy="1656.6758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="267" x="8274.95" y="1658.9839">urtMutexUnlock (mutex : urt_osmutex_t*) : void</text><!--class urt_streams--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="73.6094" id="urt_streams" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="3601.45" y="1158.3594"/><ellipse cx="3664.2" cy="1174.3594" fill="#FFFFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3668.4344,1170.125 L3663.1531,1170.125 L3663.1531,1172.7969 L3667.95,1172.7969 L3667.95,1174.9531 L3663.1531,1174.9531 L3663.1531,1180.3594 L3660.7156,1180.3594 L3660.7156,1167.9688 L3668.4344,1167.9688 L3668.4344,1170.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="3684.7" y="1178.5137">urt_streams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3602.45" x2="3809.45" y1="1190.3594" y2="1190.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3602.45" x2="3809.45" y1="1198.3594" y2="1198.3594"/><ellipse cx="3612.45" cy="1210.2617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="3621.45" y="1212.5698">urtPrintf(fmt : char*, ... ) : int</text><ellipse cx="3612.45" cy="1223.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="3621.45" y="1225.3745">urtErrPrintf(fmt : char*, ... ) : int</text><!--class urt_condvarStatus_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="86.4141" id="urt_condvarStatus_t" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="5052.95" y="1572.8594"/><ellipse cx="5114.7" cy="1588.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5118.8094,1594.8594 L5111.0906,1594.8594 L5111.0906,1582.4688 L5118.8094,1582.4688 L5118.8094,1584.625 L5113.5438,1584.625 L5113.5438,1587.2969 L5118.3094,1587.2969 L5118.3094,1589.4531 L5113.5438,1589.4531 L5113.5438,1592.7031 L5118.8094,1592.7031 L5118.8094,1594.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="5135.2" y="1593.0137">urt_condvarStatus_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5053.95" x2="5309.95" y1="1604.8594" y2="1604.8594"/><ellipse cx="5063.95" cy="1616.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="5072.95" y="1619.0698">URT_CONDVAR_STATUS_SIGNAL = 0</text><ellipse cx="5063.95" cy="1629.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="5072.95" y="1631.8745">URT_CONDVAR_STATUS_BROADCAST = 1</text><ellipse cx="5063.95" cy="1642.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="5072.95" y="1644.6792">URT_CONDVAR_STATUS_TIMEOUT = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5053.95" x2="5309.95" y1="1651.2734" y2="1651.2734"/><!--class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="99.2188" id="urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.5;" width="671" x="4846.45" y="1145.8594"/><ellipse cx="5127.2" cy="1161.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5128.0438,1168.6094 L5125.5906,1168.6094 L5125.5906,1158.3594 L5122.45,1158.3594 L5122.45,1156.2188 L5131.1844,1156.2188 L5131.1844,1158.3594 L5128.0438,1158.3594 L5128.0438,1168.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="5147.7" y="1166.0137">urt_osCondvar_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4847.45" x2="5516.45" y1="1177.8594" y2="1177.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4847.45" x2="5516.45" y1="1185.8594" y2="1185.8594"/><ellipse cx="4857.45" cy="1197.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="4866.45" y="1200.0698">urtCondvarInit (condvar : urt_osCondvar_t*) : void</text><ellipse cx="4857.45" cy="1210.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="4866.45" y="1212.8745">urtConvarSignal (condvar : urt_osCondvar_t*) : void</text><ellipse cx="4857.45" cy="1223.3711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="324" x="4866.45" y="1225.6792">urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void</text><ellipse cx="4857.45" cy="1236.1758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="645" x="4866.45" y="1238.4839">urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_condvarStatus_t</text><!--class urt_osTimerCallback_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="4170.95" y="1585.3594"/><ellipse cx="4241.7" cy="1601.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4242.5438,1608.1094 L4240.0906,1608.1094 L4240.0906,1597.8594 L4236.95,1597.8594 L4236.95,1595.7188 L4245.6844,1595.7188 L4245.6844,1597.8594 L4242.5438,1597.8594 L4242.5438,1608.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="4262.2" y="1605.5137">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4171.95" x2="4455.95" y1="1617.3594" y2="1617.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4171.95" x2="4455.95" y1="1625.3594" y2="1625.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="4176.95" y="1639.5698">urt_osTimerCallback_t (parameter : void*) : void</text><!--class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="99.2188" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="731" x="4059.45" y="1145.8594"/><ellipse cx="4378.7" cy="1161.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4379.5438,1168.6094 L4377.0906,1168.6094 L4377.0906,1158.3594 L4373.95,1158.3594 L4373.95,1156.2188 L4382.6844,1156.2188 L4382.6844,1158.3594 L4379.5438,1158.3594 L4379.5438,1168.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="4399.2" y="1166.0137">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4060.45" x2="4789.45" y1="1177.8594" y2="1177.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4060.45" x2="4789.45" y1="1185.8594" y2="1185.8594"/><ellipse cx="4070.45" cy="1197.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="4079.45" y="1200.0698">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="4070.45" cy="1210.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="705" x="4079.45" y="1212.8745">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="4070.45" cy="1223.3711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="300" x="4079.45" y="1225.6792">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="4070.45" cy="1236.1758" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="254" x="4079.45" y="1238.4839">urtTimerIsArmed (timer : urt_timer_t*) : bool</text><!--class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="48" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="5573.95" y="1591.8594"/><ellipse cx="5588.95" cy="1607.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5589.7938,1614.6094 L5587.3406,1614.6094 L5587.3406,1604.3594 L5584.2,1604.3594 L5584.2,1602.2188 L5592.9344,1602.2188 L5592.9344,1604.3594 L5589.7938,1604.3594 L5589.7938,1614.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="5602.95" y="1612.0137">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5574.95" x2="5722.95" y1="1623.8594" y2="1623.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5574.95" x2="5722.95" y1="1631.8594" y2="1631.8594"/><!--class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="6019.95" y="1585.3594"/><ellipse cx="6067.7" cy="1601.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6068.5438,1608.1094 L6066.0906,1608.1094 L6066.0906,1597.8594 L6062.95,1597.8594 L6062.95,1595.7188 L6071.6844,1595.7188 L6071.6844,1597.8594 L6068.5438,1597.8594 L6068.5438,1608.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="6088.2" y="1605.5137">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6020.95" x2="6270.95" y1="1617.3594" y2="1617.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6020.95" x2="6270.95" y1="1625.3594" y2="1625.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="6025.95" y="1639.5698">urt_osThreadFunction_t (arg : void*) : void</text><!--class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="6306.95" y="1578.8594"/><ellipse cx="6328.7" cy="1594.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6332.8094,1600.8594 L6325.0906,1600.8594 L6325.0906,1588.4688 L6332.8094,1588.4688 L6332.8094,1590.625 L6327.5438,1590.625 L6327.5438,1593.2969 L6332.3094,1593.2969 L6332.3094,1595.4531 L6327.5438,1595.4531 L6327.5438,1598.7031 L6332.8094,1598.7031 L6332.8094,1600.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="6344.2" y="1599.0137">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6307.95" x2="6547.95" y1="1610.8594" y2="1610.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="6312.95" y="1625.0698">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="6312.95" y="1637.8745">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6307.95" x2="6547.95" y1="1644.4688" y2="1644.4688"/><!--class urt_osThreadState_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="124.8281" id="urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="5758.95" y="1553.3594"/><ellipse cx="5803.7" cy="1569.3594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5807.8094,1575.3594 L5800.0906,1575.3594 L5800.0906,1562.9688 L5807.8094,1562.9688 L5807.8094,1565.125 L5802.5438,1565.125 L5802.5438,1567.7969 L5807.3094,1567.7969 L5807.3094,1569.9531 L5802.5438,1569.9531 L5802.5438,1573.2031 L5807.8094,1573.2031 L5807.8094,1575.3594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="5824.2" y="1573.5137">urt_osThreadState_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5759.95" x2="5983.95" y1="1585.3594" y2="1585.3594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="5764.95" y="1599.5698">URT_THREAD_STATE_RUNNING = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="5764.95" y="1612.3745">URT_THREAD_STATE_READY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="5764.95" y="1625.1792">URT_THREAD_STATE_SLEEPING = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="5764.95" y="1637.9839">URT_THREAD_STATE_SUSPENDED = 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="5764.95" y="1650.7886">URT_THREAD_STATE_WAITING = 4</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="5764.95" y="1663.5933">URT_THREAD_STATE_TERMINATED = 5</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5759.95" x2="5983.95" y1="1670.1875" y2="1670.1875"/><!--class urt_osThread_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="460.9453" id="urt_osThread_t" style="stroke: #A80036; stroke-width: 1.5;" width="613" x="5707.45" y="964.8594"/><ellipse cx="5962.7" cy="980.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5963.5438,987.6094 L5961.0906,987.6094 L5961.0906,977.3594 L5957.95,977.3594 L5957.95,975.2188 L5966.6844,975.2188 L5966.6844,977.3594 L5963.5438,977.3594 L5963.5438,987.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="5983.2" y="985.0137">urt_osThread_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5708.45" x2="6319.45" y1="996.8594" y2="996.8594"/><ellipse cx="5718.45" cy="1008.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="280" x="5727.45" y="1011.0698">URT_THREAD_PRIO_LOW_MIN : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1021.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="5727.45" y="1023.8745">URT_THREAD_PRIO_LOW_MAX : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1034.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="302" x="5727.45" y="1036.6792">URT_THREAD_PRIO_NORMAL_MIN : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1047.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="305" x="5727.45" y="1049.4839">URT_THREAD_PRIO_NORMAL_MAX : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1059.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="284" x="5727.45" y="1062.2886">URT_THREAD_PRIO_HIGH_MIN : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1072.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="287" x="5727.45" y="1075.0933">URT_THREAD_PRIO_HIGH_MAX : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1085.5898" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="270" x="5727.45" y="1087.8979">URT_THREAD_PRIO_RT_MIN : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1098.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="273" x="5727.45" y="1100.7026">URT_THREAD_PRIO_RT_MAX : urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5708.45" x2="6319.45" y1="1107.2969" y2="1107.2969"/><ellipse cx="5718.45" cy="1119.1992" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="5727.45" y="1121.5073">URT_THREAD_MAX_SLEEP : float</text><ellipse cx="5718.45" cy="1132.0039" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="5727.45" y="1134.312">URT_THREAD_MAX_SSLEP : unsigned int</text><ellipse cx="5718.45" cy="1144.8086" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="233" x="5727.45" y="1147.1167">URT_THREAD_MAX_MSLEEP : unsigned int</text><ellipse cx="5718.45" cy="1157.6133" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="232" x="5727.45" y="1159.9214">URT_THREAD_MAX_USLEEP : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5708.45" x2="6319.45" y1="1166.5156" y2="1166.5156"/><ellipse cx="5718.45" cy="1178.418" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="286" x="5727.45" y="1180.7261">URT_THREAD_WORKING_AREA (varname, stacksize)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="5708.45" x2="6319.45" y1="1187.3203" y2="1187.3203"/><ellipse cx="5718.45" cy="1199.2227" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="587" x="5727.45" y="1201.5308">urtThreadInit (wa : void*, wasize : size_t, func : urt_osThreadFunction_t*, arg : void*) : urt_osThread_t*</text><ellipse cx="5718.45" cy="1212.0273" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="490" x="5727.45" y="1214.3354">urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void</text><ellipse cx="5718.45" cy="1224.832" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="5727.45" y="1227.1401">urtThreadYield (void) : void</text><ellipse cx="5718.45" cy="1237.6367" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="389" x="5727.45" y="1239.9448">urtThreadGetPriority (thread : urt_osThread_t*) : urt_osThreadPrio_t</text><ellipse cx="5718.45" cy="1250.4414" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="453" x="5727.45" y="1252.7495">urtThreadSetPriority (thread : urt_osThread_t*, prio : urt_osThreadPrio_t) : void</text><ellipse cx="5718.45" cy="1263.2461" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="5727.45" y="1265.5542">urtThreadSuspend (void) : void</text><ellipse cx="5718.45" cy="1276.0508" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="335" x="5727.45" y="1278.3589">urtThreadResume (thread : urt_osThread_t*) : urt_status_t</text><ellipse cx="5718.45" cy="1288.8555" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="5727.45" y="1291.1636">urtThreadSleep (seconds : float) : void</text><ellipse cx="5718.45" cy="1301.6602" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="273" x="5727.45" y="1303.9683">urtThreadSSleep (seconds : usnigned int) : void</text><ellipse cx="5718.45" cy="1314.4648" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="5727.45" y="1316.7729">urtThreadMSleep (milliseconds : unsigned int) : void</text><ellipse cx="5718.45" cy="1327.2695" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="305" x="5727.45" y="1329.5776">urtThreadUSleep (microseconds : unsigned int) : void</text><ellipse cx="5718.45" cy="1340.0742" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="5727.45" y="1342.3823">urtThreadSleepUntil (time : urt_osTime_t) : void</text><ellipse cx="5718.45" cy="1352.8789" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="5727.45" y="1355.187">urtThreadExit (void) : void</text><ellipse cx="5718.45" cy="1365.6836" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="518" x="5727.45" y="1367.9917">urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="5718.45" cy="1378.4883" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="264" x="5727.45" y="1380.7964">urtThreadJoin (thread : urt_osThread_t*) : void</text><ellipse cx="5718.45" cy="1391.293" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="5727.45" y="1393.6011">urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t</text><ellipse cx="5718.45" cy="1404.0977" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="380" x="5727.45" y="1406.4058">urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="5718.45" cy="1416.9023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="371" x="5727.45" y="1419.2104">urtThreadGetSibling (thread : urt_osThread_t*) : urt_psThread_t*</text><!--class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="294" x="6604.95" y="1585.3594"/><ellipse cx="6689.2" cy="1601.3594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6690.0438,1608.1094 L6687.5906,1608.1094 L6687.5906,1597.8594 L6684.45,1597.8594 L6684.45,1595.7188 L6693.1844,1595.7188 L6693.1844,1597.8594 L6690.0438,1597.8594 L6690.0438,1608.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="6709.7" y="1605.5137">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6605.95" x2="6897.95" y1="1617.3594" y2="1617.3594"/><ellipse cx="6615.95" cy="1629.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="6624.95" y="1631.5698">URT_EVENTMASK_MAXPRIO : urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6605.95" x2="6897.95" y1="1638.1641" y2="1638.1641"/><!--class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="7592.95" y="1805.8594"/><ellipse cx="7607.95" cy="1821.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7608.7938,1828.6094 L7606.3406,1828.6094 L7606.3406,1818.3594 L7603.2,1818.3594 L7603.2,1816.2188 L7611.9344,1816.2188 L7611.9344,1818.3594 L7608.7938,1818.3594 L7608.7938,1828.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="7621.95" y="1826.0137">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7593.95" x2="7741.95" y1="1837.8594" y2="1837.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7593.95" x2="7741.95" y1="1845.8594" y2="1845.8594"/><!--class urt_osEventWaitType_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="86.4141" id="urt_osEventWaitType_t" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="6934.45" y="1572.8594"/><ellipse cx="6949.45" cy="1588.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6953.5594,1594.8594 L6945.8406,1594.8594 L6945.8406,1582.4688 L6953.5594,1582.4688 L6953.5594,1584.625 L6948.2938,1584.625 L6948.2938,1587.2969 L6953.0594,1587.2969 L6953.0594,1589.4531 L6948.2938,1589.4531 L6948.2938,1592.7031 L6953.5594,1592.7031 L6953.5594,1594.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="141" x="6963.45" y="1593.0137">urt_osEventWaitType_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6935.45" x2="7106.45" y1="1604.8594" y2="1604.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="6940.45" y="1619.0698">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="6940.45" y="1631.8745">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="6940.45" y="1644.6792">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6935.45" x2="7106.45" y1="1651.2734" y2="1651.2734"/><!--class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="7142.95" y="1572.8594"/><ellipse cx="7318.2" cy="1588.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7319.0438,1595.6094 L7316.5906,1595.6094 L7316.5906,1585.3594 L7313.45,1585.3594 L7313.45,1583.2188 L7322.1844,1583.2188 L7322.1844,1585.3594 L7319.0438,1585.3594 L7319.0438,1595.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="7338.7" y="1593.0137">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7143.95" x2="7635.95" y1="1604.8594" y2="1604.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7143.95" x2="7635.95" y1="1612.8594" y2="1612.8594"/><ellipse cx="7153.95" cy="1624.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="341" x="7162.95" y="1627.0698">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="7153.95" cy="1637.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="458" x="7162.95" y="1639.8745">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="7153.95" cy="1650.3711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="468" x="7162.95" y="1652.6792">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="7672.45" y="1578.8594"/><ellipse cx="7877.2" cy="1594.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M7878.0438,1601.6094 L7875.5906,1601.6094 L7875.5906,1591.3594 L7872.45,1591.3594 L7872.45,1589.2188 L7881.1844,1589.2188 L7881.1844,1591.3594 L7878.0438,1591.3594 L7878.0438,1601.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="7897.7" y="1599.0137">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7673.45" x2="8218.45" y1="1610.8594" y2="1610.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7673.45" x2="8218.45" y1="1618.8594" y2="1618.8594"/><ellipse cx="7683.45" cy="1630.7617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="325" x="7692.45" y="1633.0698">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="7683.45" cy="1643.5664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="7692.45" y="1645.8745">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--class urt_events--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="735" x="6604.45" y="1152.3594"/><ellipse cx="6934.7" cy="1168.3594" fill="#FFFFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M6938.9344,1164.125 L6933.6531,1164.125 L6933.6531,1166.7969 L6938.45,1166.7969 L6938.45,1168.9531 L6933.6531,1168.9531 L6933.6531,1174.3594 L6931.2156,1174.3594 L6931.2156,1161.9688 L6938.9344,1161.9688 L6938.9344,1164.125 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="6955.2" y="1172.5137">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="6605.45" x2="7338.45" y1="1184.3594" y2="1184.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="6605.45" x2="7338.45" y1="1192.3594" y2="1192.3594"/><ellipse cx="6615.45" cy="1204.2617" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="709" x="6624.45" y="1206.5698">urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t) : urt_status_t</text><ellipse cx="6615.45" cy="1217.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="567" x="6624.45" y="1219.3745">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="6615.45" cy="1229.8711" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="488" x="6624.45" y="1232.1792">urtEventWait (type : urt_osEventWaitType_t, timeout : urt_delay_t) : urt_osEventMask_t</text><!--class urt_message_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="167.2422" id="urt_message_t" style="stroke: #A80036; stroke-width: 1.5;" width="451" x="3076.45" y="703.8594"/><ellipse cx="3251.7" cy="719.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3251.1844,720.4219 Q3249.325,719.7188 3248.6766,718.9453 Q3248.0281,718.1719 3248.0281,716.8594 Q3248.0281,715.1719 3249.1063,714.2031 Q3250.1844,713.2344 3252.0594,713.2344 Q3252.9188,713.2344 3253.7703,713.4297 Q3254.6219,713.625 3255.4656,714.0156 L3255.4656,716.4063 Q3254.6844,715.8438 3253.8641,715.5547 Q3253.0438,715.2656 3252.2469,715.2656 Q3251.3719,715.2656 3250.8953,715.625 Q3250.4188,715.9844 3250.4188,716.6406 Q3250.4188,717.1563 3250.7625,717.4922 Q3251.1063,717.8281 3252.2,718.2344 L3253.2625,718.6406 Q3254.7469,719.1875 3255.4578,720.0938 Q3256.1688,721 3256.1688,722.375 Q3256.1688,724.25 3255.0594,725.1719 Q3253.95,726.0938 3251.7,726.0938 Q3250.7781,726.0938 3249.8563,725.875 Q3248.9344,725.6563 3248.075,725.2344 L3248.075,722.7031 Q3249.0438,723.3906 3249.9656,723.7344 Q3250.8875,724.0781 3251.7781,724.0781 Q3252.6844,724.0781 3253.1844,723.6641 Q3253.6844,723.25 3253.6844,722.5156 Q3253.6844,721.9531 3253.3484,721.5391 Q3253.0125,721.125 3252.3875,720.875 L3251.1844,720.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="3272.2" y="724.0137">urt_message_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3077.45" x2="3526.45" y1="735.8594" y2="735.8594"/><ellipse cx="3087.45" cy="747.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="3096.45" y="750.0698">next : urt_message_t*</text><ellipse cx="3087.45" cy="760.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="3096.45" y="762.8745">payload : void*</text><ellipse cx="3087.45" cy="773.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="3096.45" y="775.6792">originTime : urt_osTime_t</text><ellipse cx="3087.45" cy="786.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="3096.45" y="788.4839">lock : urt_osMutex_t</text><ellipse cx="3087.45" cy="798.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="3096.45" y="801.2886">numHrtConsumersLeft : unsigned int</text><ellipse cx="3087.45" cy="811.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="3096.45" y="814.0933">hrtConsumersLeft : urt_osCondvar_t</text><ellipse cx="3087.45" cy="841.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="3096.45" y="843.7026">numConsumersLeft : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="3077.45" x2="3258.45" y1="827.0898" y2="827.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="3258.45" y="830.3979">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="3345.45" x2="3526.45" y1="827.0898" y2="827.0898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3077.45" x2="3526.45" y1="850.2969" y2="850.2969"/><ellipse cx="3087.45" cy="862.1992" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="425" x="3096.45" y="864.5073">urtMessageInit (message : urt_message_t*, payload : void*) : urt_status_t</text><!--class urt_subscriber_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="244.0703" id="urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.5;" width="851" x="1337.45" y="121.8594"/><ellipse cx="1708.2" cy="137.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1707.6844,138.4219 Q1705.825,137.7188 1705.1766,136.9453 Q1704.5281,136.1719 1704.5281,134.8594 Q1704.5281,133.1719 1705.6063,132.2031 Q1706.6844,131.2344 1708.5594,131.2344 Q1709.4188,131.2344 1710.2703,131.4297 Q1711.1219,131.625 1711.9656,132.0156 L1711.9656,134.4063 Q1711.1844,133.8438 1710.3641,133.5547 Q1709.5438,133.2656 1708.7469,133.2656 Q1707.8719,133.2656 1707.3953,133.625 Q1706.9188,133.9844 1706.9188,134.6406 Q1706.9188,135.1563 1707.2625,135.4922 Q1707.6063,135.8281 1708.7,136.2344 L1709.7625,136.6406 Q1711.2469,137.1875 1711.9578,138.0938 Q1712.6688,139 1712.6688,140.375 Q1712.6688,142.25 1711.5594,143.1719 Q1710.45,144.0938 1708.2,144.0938 Q1707.2781,144.0938 1706.3563,143.875 Q1705.4344,143.6563 1704.575,143.2344 L1704.575,140.7031 Q1705.5438,141.3906 1706.4656,141.7344 Q1707.3875,142.0781 1708.2781,142.0781 Q1709.1844,142.0781 1709.6844,141.6641 Q1710.1844,141.25 1710.1844,140.5156 Q1710.1844,139.9531 1709.8484,139.5391 Q1709.5125,139.125 1708.8875,138.875 L1707.6844,138.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="1728.7" y="142.0137">urt_subscriber_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.45" x2="2187.45" y1="153.8594" y2="153.8594"/><ellipse cx="1348.45" cy="165.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="1357.45" y="168.0698">next : urt_subscriber_t*</text><ellipse cx="1348.45" cy="178.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="1357.45" y="180.8745">topic : urt_topic_t*</text><ellipse cx="1348.45" cy="191.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="1357.45" y="193.6792">evtListener : urt_osEventListener_t</text><ellipse cx="1348.45" cy="204.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="1357.45" y="206.4839">rtclass : urt_rtclass_t</text><ellipse cx="1348.45" cy="216.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="1357.45" y="219.2886">lastMessage : urt_message_t*</text><ellipse cx="1348.45" cy="229.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1357.45" y="232.0933">lastMessageTime : urt_osTime_t</text><ellipse cx="1348.45" cy="259.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="138" x="1357.45" y="261.7026">minLatency : urt_delay_t</text><ellipse cx="1348.45" cy="272.1992" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1357.45" y="274.5073">maxLatency : urt_delay_t</text><ellipse cx="1348.45" cy="285.0039" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="1357.45" y="287.312">sumLatencies : uint64_t</text><ellipse cx="1348.45" cy="297.8086" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="215" x="1357.45" y="300.1167">numMessagesReceived : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1338.45" x2="1719.45" y1="245.0898" y2="245.0898"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="1719.45" y="248.3979">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1806.45" x2="2187.45" y1="245.0898" y2="245.0898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.45" x2="2187.45" y1="306.7109" y2="306.7109"/><ellipse cx="1348.45" cy="318.6133" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="359" x="1357.45" y="320.9214">urtSubscriberInit (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1348.45" cy="331.418" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="825" x="1357.45" y="333.7261">urtSubscriberSubscribe (subscriber : urt_subscriber_t*, topic : urt_topic_t*, rtclass : urt_rtclass_t*, messages : urt_messages_t*) : urt_status_t</text><ellipse cx="1348.45" cy="344.2227" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="413" x="1357.45" y="346.5308">urtSubscriberUnsubscribe (subscriber : urt_subscriber_t*) : urt_status_t</text><ellipse cx="1348.45" cy="357.0273" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="499" x="1357.45" y="359.3354">urtSubscriberFetchMessage (subscriber : urt_subscriber_t*, latest : bool) : urt_status_t</text><!--class urt_topic_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="218.4609" id="urt_topic_t" style="stroke: #A80036; stroke-width: 1.5;" width="384" x="3105.95" y="425.8594"/><ellipse cx="3260.7" cy="441.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3260.1844,442.4219 Q3258.325,441.7188 3257.6766,440.9453 Q3257.0281,440.1719 3257.0281,438.8594 Q3257.0281,437.1719 3258.1063,436.2031 Q3259.1844,435.2344 3261.0594,435.2344 Q3261.9188,435.2344 3262.7703,435.4297 Q3263.6219,435.625 3264.4656,436.0156 L3264.4656,438.4063 Q3263.6844,437.8438 3262.8641,437.5547 Q3262.0438,437.2656 3261.2469,437.2656 Q3260.3719,437.2656 3259.8953,437.625 Q3259.4188,437.9844 3259.4188,438.6406 Q3259.4188,439.1563 3259.7625,439.4922 Q3260.1063,439.8281 3261.2,440.2344 L3262.2625,440.6406 Q3263.7469,441.1875 3264.4578,442.0938 Q3265.1688,443 3265.1688,444.375 Q3265.1688,446.25 3264.0594,447.1719 Q3262.95,448.0938 3260.7,448.0938 Q3259.7781,448.0938 3258.8563,447.875 Q3257.9344,447.6563 3257.075,447.2344 L3257.075,444.7031 Q3258.0438,445.3906 3258.9656,445.7344 Q3259.8875,446.0781 3260.7781,446.0781 Q3261.6844,446.0781 3262.1844,445.6641 Q3262.6844,445.25 3262.6844,444.5156 Q3262.6844,443.9531 3262.3484,443.5391 Q3262.0125,443.125 3261.3875,442.875 L3260.1844,442.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="3281.2" y="446.0137">urt_topic_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3106.95" x2="3488.95" y1="457.8594" y2="457.8594"/><ellipse cx="3116.95" cy="469.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="3125.95" y="472.0698">next : urt_topic_t*</text><ellipse cx="3116.95" cy="482.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="3125.95" y="484.8745">lock : urt_osMutex_t</text><ellipse cx="3116.95" cy="495.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="3125.95" y="497.6792">evtSource : urt_osEventSource_t</text><ellipse cx="3116.95" cy="508.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="3125.95" y="510.4839">numHrtSubscribers : unsigned int</text><ellipse cx="3116.95" cy="520.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="196" x="3125.95" y="523.2886">hrtSubscribers : urt_subscriber_t*</text><ellipse cx="3116.95" cy="533.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="3125.95" y="536.0933">qosTimer : urt_osTimer_t</text><ellipse cx="3116.95" cy="546.5898" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="3125.95" y="548.8979">mandatoryMessage : urt_message_t</text><ellipse cx="3116.95" cy="559.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="3125.95" y="561.7026">latestMessage : urt_message_t*</text><ellipse cx="3116.95" cy="572.1992" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="3125.95" y="574.5073">id : urt_topicid_t</text><ellipse cx="3116.95" cy="601.8086" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="3125.95" y="604.1167">numDiscardedMessages : unsigned int</text><ellipse cx="3116.95" cy="614.6133" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="3125.95" y="616.9214">numSubscribers : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="3106.95" x2="3254.45" y1="587.5039" y2="587.5039"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="3254.45" y="590.812">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="3341.45" x2="3488.95" y1="587.5039" y2="587.5039"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3106.95" x2="3488.95" y1="623.5156" y2="623.5156"/><ellipse cx="3116.95" cy="635.418" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="3125.95" y="637.7261">urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t</text><!--class urt_publisher_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="128.8281" id="urt_publisher_t" style="stroke: #A80036; stroke-width: 1.5;" width="759" x="2785.45" y="179.3594"/><ellipse cx="3114.2" cy="195.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3113.6844,195.9219 Q3111.825,195.2188 3111.1766,194.4453 Q3110.5281,193.6719 3110.5281,192.3594 Q3110.5281,190.6719 3111.6063,189.7031 Q3112.6844,188.7344 3114.5594,188.7344 Q3115.4188,188.7344 3116.2703,188.9297 Q3117.1219,189.125 3117.9656,189.5156 L3117.9656,191.9063 Q3117.1844,191.3438 3116.3641,191.0547 Q3115.5438,190.7656 3114.7469,190.7656 Q3113.8719,190.7656 3113.3953,191.125 Q3112.9188,191.4844 3112.9188,192.1406 Q3112.9188,192.6563 3113.2625,192.9922 Q3113.6063,193.3281 3114.7,193.7344 L3115.7625,194.1406 Q3117.2469,194.6875 3117.9578,195.5938 Q3118.6688,196.5 3118.6688,197.875 Q3118.6688,199.75 3117.5594,200.6719 Q3116.45,201.5938 3114.2,201.5938 Q3113.2781,201.5938 3112.3563,201.375 Q3111.4344,201.1563 3110.575,200.7344 L3110.575,198.2031 Q3111.5438,198.8906 3112.4656,199.2344 Q3113.3875,199.5781 3114.2781,199.5781 Q3115.1844,199.5781 3115.6844,199.1641 Q3116.1844,198.75 3116.1844,198.0156 Q3116.1844,197.4531 3115.8484,197.0391 Q3115.5125,196.625 3114.8875,196.375 L3113.6844,195.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="3134.7" y="199.5137">urt_publisher_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2786.45" x2="3543.45" y1="211.3594" y2="211.3594"/><ellipse cx="2796.45" cy="223.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="2805.45" y="225.5698">topic : urt_topic_t*</text><ellipse cx="2796.45" cy="252.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="174" x="2805.45" y="255.1792">publishAttempts : unsigned int</text><ellipse cx="2796.45" cy="265.6758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="2805.45" y="267.9839">publishFails : unsigned int</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="2786.45" x2="3121.45" y1="238.5664" y2="238.5664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="3121.45" y="241.8745">evaluation data</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="3208.45" x2="3543.45" y1="238.5664" y2="238.5664"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2786.45" x2="3543.45" y1="274.5781" y2="274.5781"/><ellipse cx="2796.45" cy="286.4805" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="617" x="2805.45" y="288.7886">urtPublisherInit (publisher : urt_publisher_t*, topic : urt_topic_t*, messages : urt_message_t*) : urt_status_t</text><ellipse cx="2796.45" cy="299.2852" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="733" x="2805.45" y="301.5933">urtPublisherPublish (publisher : urt_publisher_t*, payload : void*, n : size_t, t : urt_osTime_t, timeout : urt_delay_t) : urt_status_t</text><!--class urt_core_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="163.2422" id="urt_core_t" style="stroke: #A80036; stroke-width: 1.5;" width="509" x="2241.45" y="162.3594"/><ellipse cx="2460.2" cy="178.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2459.6844,178.9219 Q2457.825,178.2188 2457.1766,177.4453 Q2456.5281,176.6719 2456.5281,175.3594 Q2456.5281,173.6719 2457.6063,172.7031 Q2458.6844,171.7344 2460.5594,171.7344 Q2461.4188,171.7344 2462.2703,171.9297 Q2463.1219,172.125 2463.9656,172.5156 L2463.9656,174.9063 Q2463.1844,174.3438 2462.3641,174.0547 Q2461.5438,173.7656 2460.7469,173.7656 Q2459.8719,173.7656 2459.3953,174.125 Q2458.9188,174.4844 2458.9188,175.1406 Q2458.9188,175.6563 2459.2625,175.9922 Q2459.6063,176.3281 2460.7,176.7344 L2461.7625,177.1406 Q2463.2469,177.6875 2463.9578,178.5938 Q2464.6688,179.5 2464.6688,180.875 Q2464.6688,182.75 2463.5594,183.6719 Q2462.45,184.5938 2460.2,184.5938 Q2459.2781,184.5938 2458.3563,184.375 Q2457.4344,184.1563 2456.575,183.7344 L2456.575,181.2031 Q2457.5438,181.8906 2458.4656,182.2344 Q2459.3875,182.5781 2460.2781,182.5781 Q2461.1844,182.5781 2461.6844,182.1641 Q2462.1844,181.75 2462.1844,181.0156 Q2462.1844,180.4531 2461.8484,180.0391 Q2461.5125,179.625 2460.8875,179.375 L2459.6844,178.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="2480.7" y="182.5137">urt_core_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2242.45" x2="2749.45" y1="194.3594" y2="194.3594"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2249.45" y="203.2617"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="2261.45" y="208.5698">_nodes : urt_node_t*</text><line style="stroke: #000000; stroke-width: 1.0;" x1="2261.45" x2="2380.45" y1="210.5698" y2="210.5698"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2249.45" y="216.0664"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="117" x="2261.45" y="221.3745">_topics : urt_topic_t*</text><line style="stroke: #000000; stroke-width: 1.0;" x1="2261.45" x2="2378.45" y1="223.3745" y2="223.3745"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2249.45" y="228.8711"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="192" x="2261.45" y="234.1792">_evtSource : urt_osEventSource_t</text><line style="stroke: #000000; stroke-width: 1.0;" x1="2261.45" x2="2453.45" y1="236.1792" y2="236.1792"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="2249.45" y="241.6758"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="119" x="2261.45" y="246.9839">_lock : urt_osMutex_t</text><line style="stroke: #000000; stroke-width: 1.0;" x1="2261.45" x2="2380.45" y1="248.9839" y2="248.9839"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2242.45" x2="2749.45" y1="253.5781" y2="253.5781"/><ellipse cx="2252.45" cy="265.4805" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="175" x="2261.45" y="267.7886">urtCoreInit (void) : urt_status_t</text><ellipse cx="2252.45" cy="278.2852" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="222" x="2261.45" y="280.5933">urtCoreStartNodes (void) : urt_status_t</text><ellipse cx="2252.45" cy="291.0898" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="483" x="2261.45" y="293.3979">urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodesync_t) : urt_status_t</text><ellipse cx="2252.45" cy="303.8945" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="2261.45" y="306.2026">urtCoreStopNodes (void) : urt_status_t</text><ellipse cx="2252.45" cy="316.6992" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="2261.45" y="319.0073">urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*</text><!--class urt_node_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="176.0469" id="urt_node_t" style="stroke: #A80036; stroke-width: 1.5;" width="1104" x="1948.95" y="446.8594"/><ellipse cx="2463.2" cy="462.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2462.6844,463.4219 Q2460.825,462.7188 2460.1766,461.9453 Q2459.5281,461.1719 2459.5281,459.8594 Q2459.5281,458.1719 2460.6063,457.2031 Q2461.6844,456.2344 2463.5594,456.2344 Q2464.4188,456.2344 2465.2703,456.4297 Q2466.1219,456.625 2466.9656,457.0156 L2466.9656,459.4063 Q2466.1844,458.8438 2465.3641,458.5547 Q2464.5438,458.2656 2463.7469,458.2656 Q2462.8719,458.2656 2462.3953,458.625 Q2461.9188,458.9844 2461.9188,459.6406 Q2461.9188,460.1563 2462.2625,460.4922 Q2462.6063,460.8281 2463.7,461.2344 L2464.7625,461.6406 Q2466.2469,462.1875 2466.9578,463.0938 Q2467.6688,464 2467.6688,465.375 Q2467.6688,467.25 2466.5594,468.1719 Q2465.45,469.0938 2463.2,469.0938 Q2462.2781,469.0938 2461.3563,468.875 Q2460.4344,468.6563 2459.575,468.2344 L2459.575,465.7031 Q2460.5438,466.3906 2461.4656,466.7344 Q2462.3875,467.0781 2463.2781,467.0781 Q2464.1844,467.0781 2464.6844,466.6641 Q2465.1844,466.25 2465.1844,465.5156 Q2465.1844,464.9531 2464.8484,464.5391 Q2464.5125,464.125 2463.8875,463.875 L2462.6844,463.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="67" x="2483.7" y="467.0137">urt_node_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1949.95" x2="3051.95" y1="478.8594" y2="478.8594"/><ellipse cx="1959.95" cy="490.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="1968.95" y="493.0698">next : urt_node_t*</text><ellipse cx="1959.95" cy="503.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1968.95" y="505.8745">thread : urt_osThread_t*</text><ellipse cx="1959.95" cy="516.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="1968.95" y="518.6792">setupcallback : urt_nodeSetupCallback_t*</text><ellipse cx="1959.95" cy="529.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="1968.95" y="531.4839">setupparams : void*</text><ellipse cx="1959.95" cy="541.9805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="1968.95" y="544.2886">loopcallback : urt_nodeLoopCallback_t*</text><ellipse cx="1959.95" cy="554.7852" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="1968.95" y="557.0933">loopparams : void*</text><ellipse cx="1959.95" cy="567.5898" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="130" x="1968.95" y="569.8979">stage : urt_nodesync_t</text><ellipse cx="1959.95" cy="580.3945" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="1968.95" y="582.7026">listener : urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1949.95" x2="3051.95" y1="589.2969" y2="589.2969"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1956.95" y="598.1992"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="179" x="1968.95" y="603.5073">_main : urt_osThreadFunction_t</text><line style="stroke: #000000; stroke-width: 1.0;" x1="1968.95" x2="2147.95" y1="605.5073" y2="605.5073"/><ellipse cx="1959.95" cy="614.0039" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="1078" x="1968.95" y="616.312">urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t</text><!--class urt_rtclass_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="73.6094" id="urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1509.45" y="497.8594"/><ellipse cx="1565.2" cy="513.8594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1564.6844,514.4219 Q1562.825,513.7188 1562.1766,512.9453 Q1561.5281,512.1719 1561.5281,510.8594 Q1561.5281,509.1719 1562.6063,508.2031 Q1563.6844,507.2344 1565.5594,507.2344 Q1566.4188,507.2344 1567.2703,507.4297 Q1568.1219,507.625 1568.9656,508.0156 L1568.9656,510.4063 Q1568.1844,509.8438 1567.3641,509.5547 Q1566.5438,509.2656 1565.7469,509.2656 Q1564.8719,509.2656 1564.3953,509.625 Q1563.9188,509.9844 1563.9188,510.6406 Q1563.9188,511.1563 1564.2625,511.4922 Q1564.6063,511.8281 1565.7,512.2344 L1566.7625,512.6406 Q1568.2469,513.1875 1568.9578,514.0938 Q1569.6688,515 1569.6688,516.375 Q1569.6688,518.25 1568.5594,519.1719 Q1567.45,520.0938 1565.2,520.0938 Q1564.2781,520.0938 1563.3563,519.875 Q1562.4344,519.6563 1561.575,519.2344 L1561.575,516.7031 Q1562.5438,517.3906 1563.4656,517.7344 Q1564.3875,518.0781 1565.2781,518.0781 Q1566.1844,518.0781 1566.6844,517.6641 Q1567.1844,517.25 1567.1844,516.5156 Q1567.1844,515.9531 1566.8484,515.5391 Q1566.5125,515.125 1565.8875,514.875 L1564.6844,514.4219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="1585.7" y="518.0137">urt_rtclass_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1510.45" x2="1705.45" y1="529.8594" y2="529.8594"/><ellipse cx="1520.45" cy="541.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="1529.45" y="544.0698">class : urt_rtclasstype_t</text><ellipse cx="1520.45" cy="554.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="171" x="1529.45" y="556.8745">params : urt_rtclassparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1510.45" x2="1705.45" y1="563.4688" y2="563.4688"/><!--class urt_rtclasstype_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="99.2188" id="urt_rtclasstype_t" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1341.45" y="737.8594"/><ellipse cx="1364.1" cy="753.8594" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1368.2094,759.8594 L1360.4906,759.8594 L1360.4906,747.4688 L1368.2094,747.4688 L1368.2094,749.625 L1362.9438,749.625 L1362.9438,752.2969 L1367.7094,752.2969 L1367.7094,754.4531 L1362.9438,754.4531 L1362.9438,757.7031 L1368.2094,757.7031 L1368.2094,759.8594 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="1379.8" y="758.0137">urt_rtclasstype_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1342.45" x2="1493.45" y1="769.8594" y2="769.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1347.45" y="784.0698">URT_RTCLASS_HARD = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="1347.45" y="796.8745">URT_RTCLASS_FIRM = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1347.45" y="809.6792">URT_RTCLASS_SOFT = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1347.45" y="822.4839">URT_RTCLASS_NONE = 3</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1342.45" x2="1493.45" y1="829.0781" y2="829.0781"/><!--class urt_rtclassparams_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="99.2188" id="urt_rtclassparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1529.95" y="737.8594"/><ellipse cx="1544.95" cy="753.8594" fill="#90EE90" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1540.825,755.7813 L1540.825,747.9688 L1543.2781,747.9688 L1543.2781,756.4063 Q1543.2781,757.3281 1543.7547,757.8594 Q1544.2313,758.3906 1545.0594,758.3906 Q1545.9031,758.3906 1546.3719,757.8594 Q1546.8406,757.3281 1546.8406,756.4063 L1546.8406,747.9688 L1549.2938,747.9688 L1549.2938,755.7813 Q1549.2938,758.3125 1548.2938,759.4531 Q1547.2938,760.5938 1545.0594,760.5938 Q1542.8406,760.5938 1541.8328,759.4531 Q1540.825,758.3125 1540.825,755.7813 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="124" x="1558.95" y="758.0137">urt_rtclassparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1530.95" x2="1684.95" y1="769.8594" y2="769.8594"/><ellipse cx="1540.95" cy="781.7617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1549.95" y="784.0698">hrt : urt_hrtparams_t</text><ellipse cx="1540.95" cy="794.5664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="1549.95" y="796.8745">frt : urt_frtparams_t</text><ellipse cx="1540.95" cy="807.3711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1549.95" y="809.6792">srt : urt_srtparans_t</text><ellipse cx="1540.95" cy="820.1758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="1549.95" y="822.4839">nrt : urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1530.95" x2="1684.95" y1="829.0781" y2="829.0781"/><!--class urt_hrtparams_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="86.4141" id="urt_hrtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="183" x="1285.45" y="1152.3594"/><ellipse cx="1323.4" cy="1168.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1322.8844,1168.9219 Q1321.025,1168.2188 1320.3766,1167.4453 Q1319.7281,1166.6719 1319.7281,1165.3594 Q1319.7281,1163.6719 1320.8063,1162.7031 Q1321.8844,1161.7344 1323.7594,1161.7344 Q1324.6188,1161.7344 1325.4703,1161.9297 Q1326.3219,1162.125 1327.1656,1162.5156 L1327.1656,1164.9063 Q1326.3844,1164.3438 1325.5641,1164.0547 Q1324.7438,1163.7656 1323.9469,1163.7656 Q1323.0719,1163.7656 1322.5953,1164.125 Q1322.1188,1164.4844 1322.1188,1165.1406 Q1322.1188,1165.6563 1322.4625,1165.9922 Q1322.8063,1166.3281 1323.9,1166.7344 L1324.9625,1167.1406 Q1326.4469,1167.6875 1327.1578,1168.5938 Q1327.8688,1169.5 1327.8688,1170.875 Q1327.8688,1172.75 1326.7594,1173.6719 Q1325.65,1174.5938 1323.4,1174.5938 Q1322.4781,1174.5938 1321.5563,1174.375 Q1320.6344,1174.1563 1319.775,1173.7344 L1319.775,1171.2031 Q1320.7438,1171.8906 1321.6656,1172.2344 Q1322.5875,1172.5781 1323.4781,1172.5781 Q1324.3844,1172.5781 1324.8844,1172.1641 Q1325.3844,1171.75 1325.3844,1171.0156 Q1325.3844,1170.4531 1325.0484,1170.0391 Q1324.7125,1169.625 1324.0875,1169.375 L1322.8844,1168.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="1342.5" y="1172.5137">urt_hrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1286.45" x2="1467.45" y1="1184.3594" y2="1184.3594"/><ellipse cx="1296.45" cy="1196.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1305.45" y="1198.5698">deadlineOffset : urt_delay_t</text><ellipse cx="1296.45" cy="1209.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1305.45" y="1211.3745">expectedRate : urt_delay_t</text><ellipse cx="1296.45" cy="1221.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="1305.45" y="1224.1792">qosTimer : urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1286.45" x2="1467.45" y1="1230.7734" y2="1230.7734"/><!--class urt_frtparams_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="112.0234" id="urt_frtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="1503.45" y="1139.3594"/><ellipse cx="1555.7" cy="1155.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1555.1844,1155.9219 Q1553.325,1155.2188 1552.6766,1154.4453 Q1552.0281,1153.6719 1552.0281,1152.3594 Q1552.0281,1150.6719 1553.1063,1149.7031 Q1554.1844,1148.7344 1556.0594,1148.7344 Q1556.9188,1148.7344 1557.7703,1148.9297 Q1558.6219,1149.125 1559.4656,1149.5156 L1559.4656,1151.9063 Q1558.6844,1151.3438 1557.8641,1151.0547 Q1557.0438,1150.7656 1556.2469,1150.7656 Q1555.3719,1150.7656 1554.8953,1151.125 Q1554.4188,1151.4844 1554.4188,1152.1406 Q1554.4188,1152.6563 1554.7625,1152.9922 Q1555.1063,1153.3281 1556.2,1153.7344 L1557.2625,1154.1406 Q1558.7469,1154.6875 1559.4578,1155.5938 Q1560.1688,1156.5 1560.1688,1157.875 Q1560.1688,1159.75 1559.0594,1160.6719 Q1557.95,1161.5938 1555.7,1161.5938 Q1554.7781,1161.5938 1553.8563,1161.375 Q1552.9344,1161.1563 1552.075,1160.7344 L1552.075,1158.2031 Q1553.0438,1158.8906 1553.9656,1159.2344 Q1554.8875,1159.5781 1555.7781,1159.5781 Q1556.6844,1159.5781 1557.1844,1159.1641 Q1557.6844,1158.75 1557.6844,1158.0156 Q1557.6844,1157.4531 1557.3484,1157.0391 Q1557.0125,1156.625 1556.3875,1156.375 L1555.1844,1155.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="96" x="1576.2" y="1159.5137">urt_frtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1504.45" x2="1711.45" y1="1171.3594" y2="1171.3594"/><ellipse cx="1514.45" cy="1183.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="1523.45" y="1185.5698">deadlineOffset : urt_delay_t</text><ellipse cx="1514.45" cy="1196.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1523.45" y="1198.3745">expectedRate : urt_delay_t</text><ellipse cx="1514.45" cy="1208.8711" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="1523.45" y="1211.1792">qosTimer : urt_osTimer_t</text><ellipse cx="1514.45" cy="1221.6758" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="1523.45" y="1223.9839">callback : urt_osTimerCallback_t</text><ellipse cx="1514.45" cy="1234.4805" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="1523.45" y="1236.7886">cbparams : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1504.45" x2="1711.45" y1="1243.3828" y2="1243.3828"/><!--class urt_srtparams_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="73.6094" id="urt_srtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="322" x="927.951" y="1158.3594"/><ellipse cx="1035.201" cy="1174.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1034.6854,1174.9219 Q1032.826,1174.2188 1032.1776,1173.4453 Q1031.5291,1172.6719 1031.5291,1171.3594 Q1031.5291,1169.6719 1032.6073,1168.7031 Q1033.6854,1167.7344 1035.5604,1167.7344 Q1036.4198,1167.7344 1037.2713,1167.9297 Q1038.1229,1168.125 1038.9666,1168.5156 L1038.9666,1170.9063 Q1038.1854,1170.3438 1037.3651,1170.0547 Q1036.5448,1169.7656 1035.7479,1169.7656 Q1034.8729,1169.7656 1034.3963,1170.125 Q1033.9198,1170.4844 1033.9198,1171.1406 Q1033.9198,1171.6563 1034.2635,1171.9922 Q1034.6073,1172.3281 1035.701,1172.7344 L1036.7635,1173.1406 Q1038.2479,1173.6875 1038.9588,1174.5938 Q1039.6698,1175.5 1039.6698,1176.875 Q1039.6698,1178.75 1038.5604,1179.6719 Q1037.451,1180.5938 1035.201,1180.5938 Q1034.2791,1180.5938 1033.3573,1180.375 Q1032.4354,1180.1563 1031.576,1179.7344 L1031.576,1177.2031 Q1032.5448,1177.8906 1033.4666,1178.2344 Q1034.3885,1178.5781 1035.2791,1178.5781 Q1036.1854,1178.5781 1036.6854,1178.1641 Q1037.1854,1177.75 1037.1854,1177.0156 Q1037.1854,1176.4531 1036.8494,1176.0391 Q1036.5135,1175.625 1035.8885,1175.375 L1034.6854,1174.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="99" x="1055.701" y="1178.5137">urt_srtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="928.951" x2="1248.951" y1="1190.3594" y2="1190.3594"/><ellipse cx="938.951" cy="1202.2617" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="947.951" y="1204.5698">params : void*</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="928.951" x2="1248.951" y1="1211.1641" y2="1211.1641"/><ellipse cx="938.951" cy="1223.0664" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="296" x="947.951" y="1225.3745">*usefulness (dt : urt_delay_t, params : void*) : float</text><!--class urt_nrtparams_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="48" id="urt_nrtparams_t" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1747.95" y="1171.3594"/><ellipse cx="1762.95" cy="1187.3594" fill="#D3D3D3" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1762.4344,1187.9219 Q1760.575,1187.2188 1759.9266,1186.4453 Q1759.2781,1185.6719 1759.2781,1184.3594 Q1759.2781,1182.6719 1760.3563,1181.7031 Q1761.4344,1180.7344 1763.3094,1180.7344 Q1764.1688,1180.7344 1765.0203,1180.9297 Q1765.8719,1181.125 1766.7156,1181.5156 L1766.7156,1183.9063 Q1765.9344,1183.3438 1765.1141,1183.0547 Q1764.2938,1182.7656 1763.4969,1182.7656 Q1762.6219,1182.7656 1762.1453,1183.125 Q1761.6688,1183.4844 1761.6688,1184.1406 Q1761.6688,1184.6563 1762.0125,1184.9922 Q1762.3563,1185.3281 1763.45,1185.7344 L1764.5125,1186.1406 Q1765.9969,1186.6875 1766.7078,1187.5938 Q1767.4188,1188.5 1767.4188,1189.875 Q1767.4188,1191.75 1766.3094,1192.6719 Q1765.2,1193.5938 1762.95,1193.5938 Q1762.0281,1193.5938 1761.1063,1193.375 Q1760.1844,1193.1563 1759.325,1192.7344 L1759.325,1190.2031 Q1760.2938,1190.8906 1761.2156,1191.2344 Q1762.1375,1191.5781 1763.0281,1191.5781 Q1763.9344,1191.5781 1764.4344,1191.1641 Q1764.9344,1190.75 1764.9344,1190.0156 Q1764.9344,1189.4531 1764.5984,1189.0391 Q1764.2625,1188.625 1763.6375,1188.375 L1762.4344,1187.9219 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="1776.95" y="1191.5137">urt_nrtparams_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1748.95" x2="1878.95" y1="1203.3594" y2="1203.3594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1748.95" x2="1878.95" y1="1211.3594" y2="1211.3594"/><!--class urt_nodeSetupCallback_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="456" x="1935.95" y="756.8594"/><ellipse cx="2081.7" cy="772.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2082.5438,779.6094 L2080.0906,779.6094 L2080.0906,769.3594 L2076.95,769.3594 L2076.95,767.2188 L2085.6844,767.2188 L2085.6844,769.3594 L2082.5438,769.3594 L2082.5438,779.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="156" x="2102.2" y="777.0137">urt_nodeSetupCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1936.95" x2="2390.95" y1="788.8594" y2="788.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1936.95" x2="2390.95" y1="796.8594" y2="796.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="1941.95" y="811.0698">urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t</text><!--class urt_nodeLoopCallback_t--><rect fill="#FEFECE" filter="url(#f13anogsv9jdn)" height="60.8047" id="urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="614" x="2426.95" y="756.8594"/><ellipse cx="2655.2" cy="772.8594" fill="#ADD8E6" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2656.0438,779.6094 L2653.5906,779.6094 L2653.5906,769.3594 L2650.45,769.3594 L2650.45,767.2188 L2659.1844,767.2188 L2659.1844,769.3594 L2656.0438,769.3594 L2656.0438,779.6094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="2675.7" y="777.0137">urt_nodeLoopCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2427.95" x2="3039.95" y1="788.8594" y2="788.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2427.95" x2="3039.95" y1="796.8594" y2="796.8594"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="602" x="2432.95" y="811.0698">urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t</text><!--link urt_osCondvar_t to urt_osMutex_t--><path d="M5238.71,1244.8604 C5308.49,1301.0144 5433.09,1390.3354 5557.95,1425.8594 C5629.5,1446.2154 8167.44,1413.8714 8235.95,1442.8594 C8293.05,1467.0194 8340.65,1520.7924 8370.62,1561.8284 " fill="none" id="urt_osCondvar_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="8373.83,1566.2614,8371.8035,1556.6232,8370.9027,1562.2079,8365.318,1561.307,8373.83,1566.2614" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osCondvar_t to urt_delay_t--><path d="M5124.47,1245.0164 C5054.48,1300.8684 4930.16,1389.4474 4805.95,1425.8594 C4724.68,1449.6824 4128.57,1439.5474 4043.95,1442.8594 C2822.83,1490.6524 1330.86,1590.3874 1027.35,1611.0594 " fill="none" id="urt_osCondvar_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1022.11,1611.4164,1031.3631,1614.7899,1027.0982,1611.0735,1030.8146,1606.8087,1022.11,1611.4164" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osCondvar_t to urt_condvarStatus_t--><path d="M5181.95,1245.1854 C5181.95,1326.2034 5181.95,1487.4084 5181.95,1567.4684 " fill="none" id="urt_osCondvar_t-urt_condvarStatus_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5181.95,1572.6224,5185.95,1563.6224,5181.95,1567.6224,5177.95,1563.6224,5181.95,1572.6224" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osTimer_t to urt_delay_t--><path d="M4367.36,1244.9234 C4298.21,1300.0204 4176.32,1387.2214 4054.95,1425.8594 C3459.39,1615.4584 1392.19,1616.4784 1027.22,1615.1444 " fill="none" id="urt_osTimer_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1021.97,1615.1244,1030.9585,1619.1501,1026.97,1615.1387,1030.9814,1611.1501,1021.97,1615.1244" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osTimer_t to urt_status_t--><path d="M4369.24,1244.8704 C4300.72,1301.0334 4178.26,1390.3634 4054.95,1425.8594 C4012.89,1437.9664 941.826,1420.9324 903.951,1442.8594 C857.847,1469.5504 830.998,1526.5104 816.938,1567.5794 " fill="none" id="urt_osTimer_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="815.286,1572.5054,821.9406,1565.2448,816.8761,1567.765,814.3559,1562.7005,815.286,1572.5054" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osTimer_t to urt_osTimerCallback_t--><path d="M4412,1245.1854 C4389.33,1330.6744 4342.97,1505.4434 4323.21,1579.9534 " fill="none" id="urt_osTimer_t-urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4321.83,1585.1414,4327.9991,1577.464,4323.109,1580.3077,4320.2653,1575.4176,4321.83,1585.1414" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadPrio_t--><path d="M5754.62,1425.9564 C5749.94,1431.5634 5745.38,1437.2004 5740.95,1442.8594 C5704.81,1489.0654 5675.46,1551.4924 5660.25,1587.0324 " fill="none" id="urt_osThread_t-urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5658.29,1591.6524,5665.4907,1584.933,5660.2451,1587.0505,5658.1276,1581.8049,5658.29,1591.6524" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadFunction_t--><path d="M6086.42,1426.1164 C6105.51,1486.6524 6123.88,1544.8764 6135.04,1580.2614 " fill="none" id="urt_osThread_t-urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6136.63,1585.3134,6137.7388,1575.5271,6135.1266,1580.5448,6130.109,1577.9326,6136.63,1585.3134" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osTime_t--><path d="M6320.51,1343.0124 C6405.53,1376.9164 6499.17,1408.2054 6588.95,1425.8594 C6643,1436.4884 8522.02,1419.5914 8571.95,1442.8594 C8630.18,1469.9944 8674,1532.6544 8698.06,1574.3764 " fill="none" id="urt_osThread_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="8700.61,1578.8504,8699.6254,1569.0509,8698.1327,1574.5072,8692.6763,1573.0146,8700.61,1578.8504" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M6272.75,1426.0844 C6278.24,1431.6854 6283.65,1437.2814 6288.95,1442.8594 C6329.36,1485.3854 6371.04,1538.4174 6398.09,1574.2664 " fill="none" id="urt_osThread_t-urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6401.32,1578.5514,6399.1112,1568.9534,6398.3163,1574.5541,6392.7156,1573.7592,6401.32,1578.5514" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osThread_t to urt_osThreadState_t--><path d="M5935.99,1426.1164 C5920.8,1470.8844 5906.04,1514.3874 5894.53,1548.3244 " fill="none" id="urt_osThread_t-urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="5892.85,1553.2604,5899.5268,1546.0202,5894.4547,1548.5249,5891.95,1543.4527,5892.85,1553.2604" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osEventListener_t to urt_osEventFlags_t--><path d="M7445.21,1658.9974 C7501.31,1701.7804 7586.43,1766.6934 7633.54,1802.6204 " fill="none" id="urt_osEventListener_t-urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7637.7,1805.7934,7632.9645,1797.1577,7633.7226,1802.7635,7628.1167,1803.5215,7637.7,1805.7934" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_osEventSource_t to urt_osEventFlags_t--><path d="M7898.48,1653.0624 C7842.82,1695.5074 7751.91,1764.8314 7702.53,1802.4924 " fill="none" id="urt_osEventSource_t-urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7698.46,1805.5914,7708.0433,1803.3195,7702.4374,1802.5615,7703.1955,1796.9557,7698.46,1805.5914" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventSource_t--><path d="M7021.6,1238.5864 C7089.2,1293.2194 7216.32,1386.0904 7342.95,1425.8594 C7475.02,1467.3354 7521.44,1402.8164 7653.95,1442.8594 C7746.72,1470.8914 7840.99,1534.0534 7896.43,1575.5354 " fill="none" id="urt_events-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7900.68,1578.7324,7895.8844,1570.1299,7896.6815,1575.7303,7891.0811,1576.5274,7900.68,1578.7324" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventListener_t--><path d="M7013.94,1238.4034 C7092.81,1317.3654 7262.48,1487.2334 7344.16,1569.0164 " fill="none" id="urt_events-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7347.99,1572.8434,7344.4675,1563.646,7344.4595,1569.3028,7338.8026,1569.2949,7347.99,1572.8434" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventMask_t--><path d="M6949.85,1238.4034 C6906.29,1321.2564 6810.13,1504.1944 6770.04,1580.4424 " fill="none" id="urt_events-urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6767.49,1585.3084,6775.2174,1579.2021,6769.8158,1580.8823,6768.1356,1575.4807,6767.49,1585.3084" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_status_t--><path d="M6918.63,1238.4334 C6844.39,1294.0594 6703.38,1389.2984 6564.95,1425.8594 C6526.94,1435.8984 937.997,1423.2034 903.951,1442.8594 C857.815,1469.4954 830.973,1526.4664 816.923,1567.5534 " fill="none" id="urt_events-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="815.273,1572.4814,821.9249,1565.2183,816.8614,1567.7404,814.3394,1562.6769,815.273,1572.4814" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_osEventWaitType_t--><path d="M6976.87,1238.4034 C6986.06,1316.8954 7005.77,1485.2144 7015.41,1567.5474 " fill="none" id="urt_events-urt_osEventWaitType_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="7016.03,1572.8434,7018.9575,1563.4397,7015.4492,1567.8772,7011.0116,1564.369,7016.03,1572.8434" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_events to urt_delay_t--><path d="M6918.29,1238.5944 C6843.95,1294.1684 6703.11,1389.0914 6564.95,1425.8594 C6497.28,1443.8684 4113.95,1440.6654 4043.95,1442.8594 C2822.5,1481.1484 1330.79,1588.3664 1027.34,1610.7364 " fill="none" id="urt_events-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1022.1,1611.1234,1031.3723,1614.4437,1027.0862,1610.7519,1030.778,1606.4658,1022.1,1611.1234" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_rtclass_t to urt_rtclasstype_t--><path d="M1572.59,582.4794 C1539.05,626.6994 1488.86,692.8694 1454.83,737.7394 " fill="none" id="urt_rtclass_t-urt_rtclasstype_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1580.53,572.0194,1573.7206,574.3925,1573.2921,581.5908,1580.1015,579.2177,1580.53,572.0194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1567.3261" y="591.5264">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1451.4538" y="726.7677">1</text><!--link urt_rtclass_t to urt_rtclassparams_t--><path d="M1607.95,585.0294 C1607.95,629.2094 1607.95,693.7294 1607.95,737.7394 " fill="none" id="urt_rtclass_t-urt_rtclassparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1607.95,572.0194,1603.95,578.0194,1607.95,584.0194,1611.95,578.0194,1607.95,572.0194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1599.2875" y="591.5264">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1599.3875" y="726.7677">1</text><!--link urt_rtclassparams_t to urt_hrtparams_t--><path d="M1549.06,845.4394 C1537.38,854.8394 1524.75,863.7994 1511.95,870.8594 C1501.37,876.6994 1494.64,870.4594 1485.95,878.8594 C1408.86,953.3624 1386.27,1084.9494 1379.66,1152.2084 " fill="none" id="urt_rtclassparams_t-urt_hrtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1559.06,837.1094,1551.8903,837.8806,1549.8446,844.7955,1557.0143,844.0242,1559.06,837.1094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1543.6223" y="857.221">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1354.1794" y="1141.1804">0..1</text><!--link urt_rtclassparams_t to urt_frtparams_t--><path d="M1607.95,850.0094 C1607.95,928.7394 1607.95,1063.8034 1607.95,1139.2574 " fill="none" id="urt_rtclassparams_t-urt_frtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1607.95,836.9294,1603.95,842.9294,1607.95,848.9294,1611.95,842.9294,1607.95,836.9294" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1599.3875" y="857.0157">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1582.4125" y="1128.1823">0..1</text><!--link urt_rtclassparams_t to urt_srtparams_t--><path d="M1553.65,845.7794 C1540.99,855.9194 1526.83,865.0694 1511.95,870.8594 C1486.67,880.6994 1291.16,864.8294 1267.95,878.8594 C1163.8,941.8214 1114.89,1089.5124 1097.17,1158.1334 " fill="none" id="urt_rtclassparams_t-urt_srtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1563.92,837.0894,1556.7564,837.9161,1554.7644,844.8466,1561.9279,844.0199,1563.92,837.0894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1558.2908" y="857.1982">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1072.4965" y="1147.2801">0..1</text><!--link urt_rtclassparams_t to urt_nrtparams_t--><path d="M1696.41,842.4394 C1709.05,853.2294 1720.83,865.4294 1729.95,878.8594 C1794.42,973.8264 1809.46,1115.9634 1812.92,1171.2234 " fill="none" id="urt_rtclassparams_t-urt_nrtparams_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1686.12,834.0894,1688.258,840.9762,1695.4374,841.6515,1693.2994,834.7646,1686.12,834.0894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1693.9518" y="834.8913">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="1785.5811" y="1160.2006">0..1</text><!--link urt_hrtparams_t to urt_delay_t--><path d="M1364.61,1238.4784 C1348.51,1287.8194 1316.41,1369.9174 1266.95,1425.8594 C1198.59,1503.1794 1091.25,1561.0324 1026.64,1591.2574 " fill="none" id="urt_hrtparams_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1022.06,1593.3854,1031.9077,1593.2327,1026.597,1591.2841,1028.5456,1585.9735,1022.06,1593.3854" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_hrtparams_t to urt_osTimer_t--><path d="M1375.35,1139.3074 C1376.22,1050.7904 1392.92,887.3294 1503.45,874.8594 C1538.42,870.9094 4002.48,870.9094 4037.45,874.8594 C4202.06,893.4294 4335.54,1060.5534 4393.6,1145.8074 " fill="none" id="urt_hrtparams_t-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1375.34,1152.3164,1379.3479,1146.3217,1375.3558,1140.3164,1371.3479,1146.3111,1375.34,1152.3164" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1375.7209" y="1141.3056">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4380.6289" y="1134.8453">1</text><!--link urt_frtparams_t to urt_delay_t--><path d="M1591.45,1251.3934 C1573.34,1303.0404 1539.51,1379.1424 1485.95,1425.8594 C1348.73,1545.5534 1129.15,1591.9364 1027.24,1607.7084 " fill="none" id="urt_frtparams_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1022.18,1608.4814,1031.6819,1611.0725,1027.1224,1607.7243,1030.4706,1603.1648,1022.18,1608.4814" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_frtparams_t to urt_osTimer_t--><path d="M1609.13,1125.8614 C1614.93,1035.2724 1640.8,886.8894 1747.45,874.8594 C1779.06,871.2894 4005.85,871.2894 4037.45,874.8594 C4202.06,893.4294 4335.54,1060.5534 4393.6,1145.8074 " fill="none" id="urt_frtparams_t-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1608.4,1139.0564,1612.7254,1133.2865,1609.063,1127.0747,1604.7376,1132.8445,1608.4,1139.0564" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1608.9423" y="1128.3539">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4389.7539" y="1134.8453">1</text><!--link urt_frtparams_t to urt_osTimerCallback_t--><path d="M1624.61,1264.0784 C1641.61,1317.5994 1673.69,1389.1924 1729.95,1425.8594 C1934.92,1559.4454 3657.8,1602.4794 4170.55,1612.3914 " fill="none" id="urt_frtparams_t-urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1620.81,1251.5814,1618.7289,1258.4857,1624.3017,1263.0621,1626.3828,1256.1579,1620.81,1251.5814" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1613.8898" y="1271.4211">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4154.9497" y="1608.9012">1</text><!--link urt_srtparams_t to urt_delay_t--><path d="M1078.87,1232.4024 C1058.26,1306.1514 1011.16,1474.6044 986.943,1561.2324 " fill="none" id="urt_srtparams_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="985.595,1566.0564,991.8723,1558.4672,986.9424,1561.2413,984.1682,1556.3114,985.595,1566.0564" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_message_t to urt_message_t--><path d="M3539.51,754.6594 C3553.85,762.4394 3562.45,773.3394 3562.45,787.3594 C3562.45,804.9594 3548.9,817.6394 3527.48,825.3994 " fill="none" id="urt_message_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3527.48,749.3194,3531.3431,755.4084,3538.4495,754.1845,3534.5865,748.0954,3527.48,749.3194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3535.7287" y="744.7477">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3535.274" y="823.4666">0..1</text><!--link urt_message_t to urt_osTime_t--><path d="M3540.74,789.2794 C4528.99,793.4994 8252.13,813.7194 8354.95,878.8594 C8615.06,1043.6424 8695.37,1454.3234 8714.12,1578.6374 " fill="none" id="urt_message_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3527.46,789.2194,3533.4468,793.2391,3539.4599,789.2589,3533.4732,785.2392,3527.46,789.2194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3535.708" y="786.0816">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8704.5472" y="1567.7848">1</text><!--link urt_message_t to urt_osMutex_t--><path d="M3540.85,788.7694 C4515.51,790.9594 8143.83,804.0994 8235.95,878.8594 C8448.21,1051.1044 8426.82,1430.9924 8411.58,1566.0364 " fill="none" id="urt_message_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3527.75,788.7494,3533.7412,792.7626,3539.75,788.7757,3533.7588,784.7626,3527.75,788.7494" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3535.2903" y="801.1062">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8403.9334" y="1555.3947">1</text><!--link urt_message_t to urt_osCondvar_t--><path d="M3540.69,794.5194 C3935.36,805.9194 4691.83,833.3894 4805.95,878.8594 C4950.62,936.4944 5080.35,1072.6224 5142.75,1145.8054 " fill="none" id="urt_message_t-urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3527.67,794.1494,3533.5533,798.3191,3539.6651,794.4921,3533.7818,790.3224,3527.67,794.1494" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3535.2077" y="806.6834">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5128.675" y="1134.843">1</text><!--link urt_subscriber_t to urt_subscriber_t--><path d="M2200.86,214.1194 C2215.25,222.0994 2223.45,232.0094 2223.45,243.8594 C2223.45,258.7294 2210.54,270.5494 2188.69,279.3194 " fill="none" id="urt_subscriber_t-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2188.69,208.3994,2192.4204,214.5706,2199.5517,213.5007,2195.8213,207.3295,2188.69,208.3994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2196.0762" y="204.7284">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="2196.2137" y="276.8674">0..1</text><!--link urt_subscriber_t to urt_topic_t--><path d="M2201.49,364.9494 C2203.31,365.2594 2205.13,365.5594 2206.95,365.8594 C2586.77,428.3294 2700.2,322.3794 3070.95,425.8594 C3082.5,429.0794 3094.15,432.9794 3105.76,437.3494 " fill="none" id="urt_subscriber_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2188.48,362.7094,2193.7113,367.6726,2200.3048,364.7527,2195.0735,359.7894,2188.48,362.7094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2196.946" y="379.713">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3073.7838" y="445.8938">0..1</text><!--link urt_topic_t to urt_subscriber_t--><path d="M3093.02,422.3094 C2732.5,324.8394 2617.32,427.5994 2241.95,365.8594 C2224.4,362.9694 2206.54,359.7194 2188.54,356.1794 " fill="none" id="urt_topic_t-urt_subscriber_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3105.68,425.7794,3100.9528,420.3339,3094.108,422.603,3098.8352,428.0485,3105.68,425.7794" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3090.0132" y="418.286">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="2196.0525" y="355.0484">0..*</text><!--link urt_subscriber_t to urt_osEventListener_t--><path d="M2201.68,362.2794 C2209.15,363.5394 2216.57,364.7294 2223.95,365.8594 C2796.17,453.1494 2946.9,395.7694 3524.95,425.8594 C4590.41,481.3294 7315.37,339.0094 8317.95,703.8594 C8635.06,819.2594 8789.3,1184.9924 8552.95,1425.8594 C8535.48,1443.6674 7678.81,1435.5504 7654.95,1442.8594 C7570,1468.8904 7486.44,1530.8534 7436.54,1572.8484 " fill="none" id="urt_subscriber_t-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2188.64,360.0194,2193.865,364.9893,2200.4622,362.0777,2195.2372,357.1078,2188.64,360.0194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2196.0253" y="358.9544">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7435.3278" y="1561.8427">1</text><!--link urt_subscriber_t to urt_rtclass_t--><path d="M1691.6,377.8894 C1668.05,421.8094 1643.73,467.1494 1627.43,497.5394 " fill="none" id="urt_subscriber_t-urt_rtclass_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1697.89,366.1694,1691.5296,369.5672,1692.2197,376.7452,1698.5801,373.3474,1697.89,366.1694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1685.6817" y="386.1485">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1622.1874" y="486.6693">1</text><!--link urt_subscriber_t to urt_message_t--><path d="M1870.84,377.3694 C1880.42,393.1094 1889.07,409.4294 1895.95,425.8594 C1933.84,516.3794 1857.99,578.2394 1930.95,643.8594 C2024.11,727.6394 2933.89,680.3194 3056.95,703.8594 C3063.34,705.0794 3069.8,706.4294 3076.28,707.8894 " fill="none" id="urt_subscriber_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="1863.71,366.0194,1863.5123,373.2278,1870.0901,376.1827,1870.2878,368.9744,1863.71,366.0194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1861.6063" y="385.9893">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3044.4815" y="702.1008">0..1</text><!--link urt_subscriber_t to urt_osTime_t--><path d="M2201.63,362.5794 C2209.12,363.7494 2216.56,364.8394 2223.95,365.8594 C3019.47,475.2394 5035.36,378.3594 5836.95,425.8594 C7050.89,497.7994 7472.53,157.4994 8558.95,703.8594 C8876.9,863.7494 8764.25,1429.5714 8728.27,1578.6424 " fill="none" id="urt_subscriber_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2188.57,360.4794,2193.8618,365.378,2200.419,362.3773,2195.1271,357.4787,2188.57,360.4794" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2195.9541" y="374.6801">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8721.2176" y="1567.7907">1</text><!--link urt_subscriber_t to urt_delay_t--><path d="M1324.08,258.2894 C1046.91,277.0894 724.876,321.5094 635.951,425.8594 C347.673,764.1294 331.791,1101.7944 635.951,1425.8594 C676.79,1469.3714 855.69,1407.7584 903.951,1442.8594 C943.162,1471.3784 959.775,1526.0954 966.806,1566.1834 " fill="none" id="urt_subscriber_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1337.25,257.4194,1330.9954,253.8305,1325.277,258.2237,1331.5316,261.8126,1337.25,257.4194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1321.8645" y="254.591">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="957.52" y="1555.2039">2</text><!--link urt_subscriber_t to urt_status_t--><path d="M1337.17,265.9494 C1020.4,288.7894 620.171,334.9394 482.951,425.8594 C293.96,551.0794 123.902,1262.3564 280.951,1425.8594 C313.458,1459.7034 662.702,1418.7304 702.951,1442.8594 C748.758,1470.3204 776.03,1527.1224 790.474,1567.9444 " fill="none" id="urt_subscriber_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="792.172,1572.8404,793.0019,1563.0265,790.5336,1568.1164,785.4437,1565.6481,792.172,1572.8404" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_subscriber_t to urt_topicid_t--><path d="M1337.42,261.1594 C863.193,283.7894 151.524,332.8894 67.9508,425.8594 C-28.2397,532.8694 -34.1277,1210.5444 211.951,1425.8594 C241.002,1451.2784 527.348,1420.6934 558.951,1442.8594 C590.653,1465.0944 608.448,1504.1034 618.412,1539.3554 " fill="none" id="urt_subscriber_t-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="619.826,1544.5264,621.3109,1534.7901,618.5074,1539.7034,613.5941,1536.8999,619.826,1544.5264" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_topic_t--><path d="M3199.82,320.6294 C3214.59,352.7194 3232.07,390.6994 3248.16,425.6594 " fill="none" id="urt_publisher_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3194.3,308.6394,3193.1705,315.7615,3199.3103,319.5434,3200.4398,312.4213,3194.3,308.6394" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3188.9142" y="328.1759">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3236.546" y="414.8745">1</text><!--link urt_publisher_t to urt_message_t--><path d="M3384.37,308.4694 C3439.71,335.4794 3492.55,373.3094 3524.95,425.8594 C3575.8,508.3394 3571.49,558.8794 3524.95,643.8594 C3513.2,665.3094 3496.7,683.9994 3477.93,700.1494 " fill="none" id="urt_publisher_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3473.63,703.7694,3483.0898,701.0285,3477.4534,700.5474,3477.9346,694.911,3473.63,703.7694" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_osTime_t--><path d="M3544.7,249.2894 C4845.9,265.3694 9050.12,325.0294 9147.95,425.8594 C9302.69,585.3494 9269.35,1239.7244 9147.95,1425.8594 C9083.08,1525.3274 8952.79,1572.8074 8852.73,1595.2494 " fill="none" id="urt_publisher_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="8847.69,1596.3644,8857.3438,1598.315,8852.5707,1595.2788,8855.6069,1590.5058,8847.69,1596.3644" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_delay_t--><path d="M2991.92,308.4294 C2923.17,330.8194 2842.77,353.4694 2767.95,365.8594 C2666.17,382.7094 983.711,351.7394 911.951,425.8594 C602.8,745.1694 843.909,986.6544 911.951,1425.8594 C919.214,1472.7434 936.045,1523.9214 950.038,1561.1834 " fill="none" id="urt_publisher_t-urt_delay_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="951.904,1566.1164,952.4596,1556.2832,950.1343,1561.44,944.9775,1559.1147,951.904,1566.1164" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_publisher_t to urt_status_t--><path d="M2992.42,308.3594 C2923.57,330.8094 2842.96,353.5294 2767.95,365.8594 C2658.32,383.8794 848.864,348.6694 768.951,425.8594 C443.206,740.5094 701.253,1388.6324 781.922,1567.9694 " fill="none" id="urt_publisher_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="784.025,1572.6294,783.9679,1562.7807,781.9678,1568.0722,776.6763,1566.0722,784.025,1572.6294" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_topic_t to urt_topic_t--><path d="M3501.99,500.4194 C3516.26,508.2794 3524.95,519.7594 3524.95,534.8594 C3524.95,553.8094 3511.26,567.0594 3490.05,574.6094 " fill="none" id="urt_topic_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3490.05,495.1094,3493.9131,501.1984,3501.0195,499.9745,3497.1565,493.8854,3490.05,495.1094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3497.7102" y="490.3242">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3498.0227" y="572.9296">0..1</text><!--link urt_topic_t to urt_osMutex_t--><path d="M3503.41,535.5094 C4389.39,534.9594 7859.04,543.1894 8317.95,703.8594 C8440.86,746.8894 8494.51,762.4794 8552.95,878.8594 C8662.04,1096.1184 8632.23,1196.0374 8552.95,1425.8594 C8534.2,1480.2284 8492.65,1530.9014 8458.34,1566.0654 " fill="none" id="urt_topic_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3490.24,535.5194,3496.24,539.5194,3502.24,535.5194,3496.24,531.5194,3490.24,535.5194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3497.9076" y="532.3127">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8456.9768" y="1555.4276">1</text><!--link urt_topic_t to urt_osEventSource_t--><path d="M3503.28,537.8594 C4365.39,546.9494 7668.82,589.0294 8119.95,703.8594 C8288.49,746.7594 8378.52,730.9194 8469.95,878.8594 C8533.86,982.2604 8552.9,1337.0044 8469.95,1425.8594 C8451.18,1445.9684 8249.13,1434.4104 8222.95,1442.8594 C8132.18,1472.1564 8040.89,1537.4024 7989.1,1578.5814 " fill="none" id="urt_topic_t-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3490.14,537.7194,3496.0957,541.7851,3502.1393,537.8512,3496.1836,533.7855,3490.14,537.7194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3497.8037" y="550.1845">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7988.0736" y="1567.7188">1</text><!--link urt_topic_t to urt_osTimer_t--><path d="M3502.36,610.3294 C3659.38,671.7594 3878.52,766.8294 4054.95,878.8594 C4181.09,958.9564 4309.68,1079.1164 4377.03,1145.6504 " fill="none" id="urt_topic_t-urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3490.22,605.5994,3494.3609,611.503,3501.4031,609.9513,3497.2622,604.0476,3490.22,605.5994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3497.8868" y="605.1302">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="4361.7287" y="1134.6662">1</text><!--link urt_topic_t to urt_message_t--><path d="M3287.14,657.0994 C3287.35,672.8394 3287.82,688.6794 3288.55,703.5894 " fill="none" id="urt_topic_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3287.03,643.9094,3283.0829,649.9443,3287.1355,655.9089,3291.0826,649.874,3287.03,643.9094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3277.9343" y="664.5234">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="3263.4102" y="692.8081">1..*</text><!--link urt_topic_t to urt_message_t--><path d="M3313.38,657.0994 C3313.68,672.8394 3313.7,688.6794 3313.41,703.5894 " fill="none" id="urt_topic_t-urt_message_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3313.06,643.9094,3309.2063,650.0044,3313.3503,655.9059,3317.204,649.8108,3313.06,643.9094" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3305.8759" y="664.5234">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3306.0511" y="692.8081">1</text><!--link urt_topic_t to urt_topicid_t--><path d="M3093.26,642.4494 C3091.49,642.9394 3089.72,643.4094 3087.95,643.8594 C2963.2,675.7694 871.68,623.6494 770.951,703.8594 C514.497,908.0794 578.854,1368.8954 614.787,1544.8064 " fill="none" id="urt_topic_t-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="3105.87,638.7394,3098.9846,636.5966,3094.3585,642.1282,3101.2438,644.271,3105.87,638.7394" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3090.2106" y="639.5647">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="604.7076" y="1533.7983">1</text><!--link urt_topic_t to urt_osTime_t--><path d="M3490.16,536.5594 C4401.05,540.5894 8248.16,565.7394 8459.95,703.8594 C8760.08,899.5994 8736.92,1422.2074 8723.39,1573.3694 " fill="none" id="urt_topic_t-urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="8722.91,1578.5884,8727.7102,1569.9885,8723.3637,1573.609,8719.7432,1569.2625,8722.91,1578.5884" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_topic_t to urt_status_t--><path d="M3105.87,638.7294 C3099.89,640.6094 3093.91,642.3294 3087.95,643.8594 C2853.68,703.9994 1128.1,595.3294 911.951,703.8594 C823.431,748.2994 806.41,785.2794 773.951,878.8594 C694.284,1108.5464 754.836,1183.5014 773.951,1425.8594 C777.788,1474.5144 787.1,1529.5664 794.34,1567.6504 " fill="none" id="urt_topic_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="795.302,1572.6754,797.5389,1563.0839,794.3621,1567.7645,789.6815,1564.5877,795.302,1572.6754" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_core_t to urt_topic_t--><path d="M2672.8,330.6194 C2704.03,343.7094 2736.59,356.0894 2767.95,365.8594 C2906.1,408.8894 2951.07,378.9494 3087.95,425.8594 C3093.87,427.8894 3099.82,430.0594 3105.79,432.3394 " fill="none" id="urt_core_t-urt_topic_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2660.44,325.3794,2664.3983,331.4069,2671.4847,330.0714,2667.5263,324.0438,2660.44,325.3794" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2675.9727" y="345.6478">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="3074.8345" y="425.1022">0..*</text><!--link urt_core_t to urt_node_t--><path d="M2497.57,338.4494 C2498.17,373.2294 2498.85,412.5194 2499.44,446.6994 " fill="none" id="urt_core_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2497.34,325.3594,2493.4461,331.4288,2497.551,337.3575,2501.4449,331.2881,2497.34,325.3594" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2489.0994" y="345.6259">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="2475.3626" y="435.848">0..*</text><!--link urt_core_t to urt_osEventSource_t--><path d="M2660.12,330.6694 C2694.85,345.1494 2731.92,358.0194 2767.95,365.8594 C2849.72,383.6494 8734.07,366.3894 8792.95,425.8594 C9105.65,741.6894 9102.5,1106.9394 8792.95,1425.8594 C8770.89,1448.5924 8253.28,1433.7174 8222.95,1442.8594 C8131.08,1470.5484 8039.44,1536.9744 7987.99,1578.7024 " fill="none" id="urt_core_t-urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2647.94,325.4894,2651.8957,331.5186,2658.9827,330.1861,2655.0269,324.1569,2647.94,325.4894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2653.5828" y="345.7679">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7996.1909" y="1567.8614">1</text><!--link urt_core_t to urt_osMutex_t--><path d="M2660.5,330.5394 C2695.14,344.9894 2732.07,357.8694 2767.95,365.8594 C3100.87,439.9794 5496.55,404.5494 5836.95,425.8594 C7007.85,499.1694 7403.25,198.3694 8461.95,703.8594 C8759.91,846.1194 8838.24,1164.1284 8636.95,1425.8594 C8619.01,1449.1894 8598.37,1428.0214 8572.95,1442.8594 C8519.24,1474.2154 8471.14,1527.3374 8440.31,1566.2664 " fill="none" id="urt_core_t-urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2648.35,325.3694,2652.3057,331.3986,2659.3927,330.0661,2655.4369,324.0369,2648.35,325.3694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2662.7681" y="345.6368">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="8436.72" y="1555.2985">1</text><!--link urt_core_t to urt_status_t--><path d="M2342.37,325.3994 C2304.61,341.7494 2263.61,356.7194 2223.95,365.8594 C2130.24,387.4694 560.764,356.6894 493.951,425.8594 C339.563,585.6894 343.32,1262.4794 493.951,1425.8594 C525.537,1460.1184 663.483,1418.0874 702.951,1442.8594 C747.905,1471.0744 775.234,1527.1584 789.929,1567.6264 " fill="none" id="urt_core_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="791.658,1572.4814,792.4045,1562.6609,789.9795,1567.7715,784.8688,1565.3465,791.658,1572.4814" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_core_t to urt_nodesync_t--><path d="M2342.39,325.4894 C2304.63,341.8294 2263.63,356.7794 2223.95,365.8594 C2121.06,389.4194 407.095,359.5694 324.951,425.8594 C13.0693,677.5294 99.3411,1225.7594 160.632,1480.1734 " fill="none" id="urt_core_t-urt_nodesync_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="161.894,1485.3844,163.665,1475.6961,160.718,1480.5246,155.8894,1477.5776,161.894,1485.3844" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_core_t to urt_topicid_t--><path d="M2342.38,325.4494 C2304.62,341.7994 2263.62,356.7494 2223.95,365.8594 C2125.03,388.5694 471.732,356.1594 397.951,425.8594 C280.236,537.0694 305.83,1353.4544 371.951,1425.8594 C400.089,1456.6714 525.296,1418.1914 558.951,1442.8594 C590.058,1465.6594 607.805,1504.4914 617.891,1539.4944 " fill="none" id="urt_core_t-urt_topicid_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="619.324,1544.6284,620.7569,1534.8843,617.9797,1539.8125,613.0515,1537.0352,619.324,1544.6284" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_nodeSetupCallback_t to urt_node_t--><path d="M2195.12,756.8094 C2234.54,724.7594 2304.23,672.0394 2367.21,626.1294 " fill="none" id="urt_nodeSetupCallback_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2371.34,623.1194,2361.7096,625.182,2367.2976,626.0619,2366.4176,631.6499,2371.34,623.1194" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_node_t to urt_nodeSetupCallback_t--><path d="M2385.96,631.1094 C2326.9,675.7994 2258.13,725.9194 2212.8,756.8094 " fill="none" id="urt_node_t-urt_nodeSetupCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2396.49,623.1194,2389.2923,623.5589,2386.9297,630.372,2394.1274,629.9325,2396.49,623.1194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2379.5082" y="643.12">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2214.6109" y="745.5887">1</text><!--link urt_nodeSetupCallback_t to urt_status_t--><path d="M2088.8,817.9394 C2035.83,837.1894 1962.71,860.5594 1895.95,870.8594 C1881.58,873.0794 859.505,868.8594 848.951,878.8594 C750.017,972.6444 784.551,1419.7774 798.953,1567.4264 " fill="none" id="urt_nodeSetupCallback_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="799.457,1572.5504,802.5557,1563.2017,798.967,1567.5744,794.5942,1563.9857,799.457,1572.5504" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_nodeLoopCallback_t to urt_node_t--><path d="M2697.88,756.8094 C2664.58,724.9594 2614.71,672.6694 2573.37,626.9594 " fill="none" id="urt_nodeLoopCallback_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2569.9,623.1194,2572.9674,632.4784,2573.2527,626.8287,2578.9024,627.1141,2569.9,623.1194" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_node_t to urt_nodeLoopCallback_t--><path d="M2604.28,632.7794 C2646.45,677.0494 2690.9,726.2994 2715.55,756.8094 " fill="none" id="urt_node_t-urt_nodeLoopCallback_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2595.05,623.1194,2596.31,630.2196,2603.3486,631.7874,2602.0886,624.6872,2595.05,623.1194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2594.5114" y="643.12">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2702.65" y="745.5887">1</text><!--link urt_nodeLoopCallback_t to urt_osEventMask_t--><path d="M2820.88,817.8694 C2882.59,837.2094 2967.83,860.7294 3044.95,870.8594 C3059.8,872.8094 7346.37,868.2594 7356.95,878.8594 C7399.89,921.8754 7399.09,1382.0614 7356.95,1425.8594 C7323.03,1461.1164 6961.58,1422.8024 6916.95,1442.8594 C6852.13,1471.9924 6800.02,1539.4474 6772.74,1580.6954 " fill="none" id="urt_nodeLoopCallback_t-urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6769.86,1585.0964,6778.136,1579.7571,6772.5985,1580.913,6771.4425,1575.3755,6769.86,1585.0964" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_nodeLoopCallback_t to urt_status_t--><path d="M2642.64,817.8894 C2578.13,837.1694 2489.22,860.6094 2408.95,870.8594 C2398.64,872.1794 919.736,871.9694 911.951,878.8594 C820.178,960.0724 861.819,1304.9334 841.951,1425.8594 C833.979,1474.3764 822.643,1529.4484 814.429,1567.5754 " fill="none" id="urt_nodeLoopCallback_t-urt_status_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="813.342,1572.6064,819.1522,1564.6539,814.3977,1567.7191,811.3325,1562.9647,813.342,1572.6064" style="stroke: #A80036; stroke-width: 1.0;"/><!--link urt_node_t to urt_node_t--><path d="M3065.37,511.5694 C3079.84,518.0294 3087.95,525.7894 3087.95,534.8594 C3087.95,546.2394 3075.18,555.5694 3053.09,562.8394 " fill="none" id="urt_node_t-urt_node_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="3053.09,506.8794,3057.2718,512.7541,3064.303,511.1535,3060.1212,505.2788,3053.09,506.8794" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="3060.9107" y="503.4479">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="3061.0232" y="560.1949">0..1</text><!--link urt_node_t to urt_osThread_t--><path d="M2964.7,624.9994 C3006.3,631.8394 3047.84,638.2494 3087.95,643.8594 C4169.55,795.0294 4503.86,516.0594 5533.95,878.8594 C5594.62,900.2294 5655.19,930.8554 5711.85,964.7214 " fill="none" id="urt_node_t-urt_osThread_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="2951.79,622.8694,2957.0597,627.7918,2963.6303,624.8208,2958.3606,619.8983,2951.79,622.8694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2980.7939" y="642.8492">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="5693.8061" y="953.9774">1</text><!--link urt_node_t to urt_nodesync_t--><path d="M2034.05,624.9294 C1987.5,632.0894 1940.87,638.5794 1895.95,643.8594 C1664.49,671.0494 1056.39,597.6494 848.951,703.8594 C526.678,868.8594 328.754,1275.9744 244.826,1485.5724 " fill="none" id="urt_node_t-urt_nodesync_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2047.17,622.8994,2040.6293,619.8632,2035.3109,624.733,2041.8517,627.7692,2047.17,622.8994" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2001.2601" y="642.8817">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="239.3047" y="1474.6753">1</text><!--link urt_node_t to urt_osEventMask_t--><path d="M2940.32,624.9294 C2989.95,632.5394 3039.93,639.1294 3087.95,643.8594 C3996.53,733.4394 6286.19,627.1494 7195.95,703.8594 C7702.36,746.5594 7995.23,492.9794 8325.95,878.8594 C8484.16,1063.4514 8496.82,1252.9204 8325.95,1425.8594 C8298.44,1453.7034 6952.86,1427.2884 6916.95,1442.8594 C6849.18,1472.2414 6795.7,1544.2724 6769.53,1585.1914 " fill="none" id="urt_node_t-urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2927.37,622.9194,2932.6883,627.7892,2939.2291,624.753,2933.9107,619.8832,2927.37,622.9194" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2954.3517" y="642.9034">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="6764.3309" y="1574.42">1</text><!--link urt_node_t to urt_osEventWaitType_t--><path d="M2939.57,624.9094 C2989.45,632.5494 3039.69,639.1494 3087.95,643.8594 C4125.76,745.2294 6747.55,557.2594 7779.95,703.8594 C8069.36,744.9594 8236.87,646.2794 8413.95,878.8594 C8487.59,975.5734 8499.33,1339.3414 8413.95,1425.8594 C8388.8,1451.3464 7156.02,1425.0644 7124.95,1442.8594 C7076.35,1470.6924 7047.81,1531.2334 7033.28,1572.5294 " fill="none" id="urt_node_t-urt_osEventWaitType_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2926.56,622.8894,2931.8792,627.7583,2938.4194,624.721,2933.1002,619.8521,2926.56,622.8894" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2962.1371" y="642.8709">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7026.5555" y="1561.7914">1</text><!--link urt_node_t to urt_osEventListener_t--><path d="M2939.2,624.8894 C2989.2,632.5494 3039.56,639.1494 3087.95,643.8594 C3366.21,670.9194 7848.24,638.0094 8119.95,703.8594 C8288.97,744.8294 8378.52,730.9194 8469.95,878.8594 C8597.76,1085.6624 8640.05,1252.1704 8469.95,1425.8594 C8438.26,1458.2144 7698.24,1429.5504 7654.95,1442.8594 C7570.28,1468.8914 7486.98,1530.5314 7437.01,1572.4924 " fill="none" id="urt_node_t-urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2926.16,622.8694,2931.4792,627.7383,2938.0194,624.701,2932.7002,619.8321,2926.16,622.8694" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2953.0415" y="642.8492">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="7444.8286" y="1561.7487">1</text><!--link urt_node_t to urt_osThreadTerminateSignal_t--><path d="M2931.83,622.9094 C2984.25,631.1994 3037.2,638.4994 3087.95,643.8594 C3372.66,673.9394 8039.39,670.6994 8235.95,878.8594 C8402.86,1055.6204 8406.97,1253.0694 8235.95,1425.8594 C8203.77,1458.3774 6630.83,1424.4384 6588.95,1442.8594 C6527.6,1469.8454 6478.82,1532.7614 6451.66,1574.5504 " fill="none" id="urt_node_t-urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="6448.94,1578.7784,6457.1767,1573.3787,6451.6478,1574.5751,6450.4515,1569.0462,6448.94,1578.7784" style="stroke: #A80036; stroke-width: 1.0;"/><!--
 @startuml
 
 title **µRtWare**\nOverview\n
@@ -30,12 +30,38 @@ package "primitives" {
     uint64_t
   }
 
+  class urt_debug <<(F,white)>> {
+    + urtDebugAssert(condition : bool) : void
+  }
+
+  class urt_nodesync_t <<T,lightblue>> {
+    uin8_t
+    .. or ..
+    int8_t
+    .. or ..
+    uint16_t
+    .. or ..
+    int16_t
+    .. or ..
+    uint32_t
+    .. or ..
+    int32_t
+    .. or ..
+    uint64_t
+    .. or ..
+    int64_t
+  }
+
 } 
 
 
 
 package "interfaces" {
 
+  class urt_config <<(C,grey)>> {
+    + URT_CONFIG_DEBUG : bool
+  }
+
   class urt_osTime_t <<(T,lightblue)>> {
     + urtTime2Us (t : urt_osTime_t*) : uint64_t
     + urtTimeNow (void) : urt_osTime_t
@@ -99,6 +125,15 @@ package "interfaces" {
       URT_THREAD_TERMINATE_KILL = 9
     }
 
+    enum urt_osThreadState_t {
+      URT_THREAD_STATE_RUNNING = 0
+      URT_THREAD_STATE_READY = 1
+      URT_THREAD_STATE_SLEEPING = 2
+      URT_THREAD_STATE_SUSPENDED = 3
+      URT_THREAD_STATE_WAITING = 4
+      URT_THREAD_STATE_TERMINATED = 5
+    }
+
     class urt_osThread_t <<(T,lightblue)>> {
       + URT_THREAD_PRIO_LOW_MIN : urt_osThreadPrio_t
       + URT_THREAD_PRIO_LOW_MAX : urt_osThreadPrio_t
@@ -114,17 +149,14 @@ package "interfaces" {
       + URT_THREAD_MAX_MSLEEP : unsigned int
       + URT_THREAD_MAX_USLEEP : unsigned int
       __
-      + URT_THREAD_WORKING_AREA (var : varname, stacksize : size_t)
+      + URT_THREAD_WORKING_AREA (varname, stacksize)
       ..
       + urtThreadInit (wa : void*, wasize : size_t, func : urt_osThreadFunction_t*, arg : void*) : urt_osThread_t*
       + urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void
       + urtThreadYield (void) : void
       + urtThreadGetPriority (thread : urt_osThread_t*) : urt_osThreadPrio_t
       + urtThreadSetPriority (thread : urt_osThread_t*, prio : urt_osThreadPrio_t) : void
-      + urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*
-      + urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*
       + urtThreadSuspend (void) : void
-      + urtThreadIsSuspended (thread : urt_osThread_t*) : bool
       + urtThreadResume (thread : urt_osThread_t*) : urt_status_t
       + urtThreadSleep (seconds : float) : void
       + urtThreadSSleep (seconds : usnigned int) : void
@@ -134,17 +166,23 @@ package "interfaces" {
       + urtThreadExit (void) : void
       + urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void
       + urtThreadJoin (thread : urt_osThread_t*) : void
+      + urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t
+      + urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*
+      + urtThreadGetSibling (thread : urt_osThread_t*) : urt_psThread_t*
     }
     urt_osThread_t ..> urt_osThreadPrio_t
     urt_osThread_t ..> urt_osThreadFunction_t
     urt_osThread_t ..> urt_osTime_t
     urt_osThread_t ..> urt_osThreadTerminateSignal_t
+    urt_osThread_t ..> urt_osThreadState_t
 
   } 
 
   package "events" {
 
-    class urt_osEventMask_t <<(T,lightblue)>>
+    class urt_osEventMask_t <<(T,lightblue)>> {
+      + URT_EVENTMASK_MAXPRIO : urt_osEventMask_t
+    }
 
     class urt_osEventFlags_t <<(T,lightblue)>>
 
@@ -181,6 +219,11 @@ package "interfaces" {
 
   } 
 
+    class urt_streams <<(F,white)>> {
+      + urtPrintf(fmt : char*, ... ) : int
+      + urtErrPrintf(fmt : char*, ... ) : int
+    }
+
 } 
 
 package "middleware" {
@@ -306,7 +349,7 @@ package "middleware" {
 
   class urt_topic_t <<(S,lightgrey)>> {
     + next : urt_topic_t*
-    + mutex : urt_osMutex_t
+    + lock : urt_osMutex_t
     + evtSource : urt_osEventSource_t
     + numHrtSubscribers : unsigned int
     + hrtSubscribers : urt_subscriber_t*
@@ -319,7 +362,6 @@ package "middleware" {
     + numSubscribers : unsigned int
     __
     + urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t
-    + urtTopicContributeMessages (topic : urt_topic_t*, messages : urt_message_t*) : void
   }
   urt_topic_t "1" o- - "0..1" urt_topic_t
   urt_topic_t "1" *- - "1" urt_osMutex_t
@@ -335,27 +377,33 @@ package "middleware" {
   class urt_core_t <<(S,lightgrey)>> {
     - {static} _nodes : urt_node_t*
     - {static} _topics : urt_topic_t*
+    - {static} _evtSource : urt_osEventSource_t
+    - {static} _lock : urt_osMutex_t
     __
     + urtCoreInit (void) : urt_status_t
-    + urtCoreStartAll (void) : urt_status_t
-    + urtCoreStopAll (void) : urt_status_t
+    + urtCoreStartNodes (void) : urt_status_t
+    + urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodesync_t) : urt_status_t
+    + urtCoreStopNodes (void) : urt_status_t
     + urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
   }
   urt_core_t "1" o- - "0..*" urt_topic_t
   urt_core_t "1" o- - "0..*" urt_node_t
+  urt_core_t "1" *- - "1" urt_osEventSource_t
+  urt_core_t "1" *- - "1" urt_osMutex_t
   urt_core_t ..> urt_status_t
+  urt_core_t - -> urt_nodesync_t
   urt_core_t ..> urt_topicid_t
 
   package "node" {
 
     class urt_nodeSetupCallback_t <<(T,lightblue)>> {
-      urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_status_t
+      urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t
     }
     urt_nodeSetupCallback_t ..> urt_node_t
     urt_nodeSetupCallback_t ..> urt_status_t
 
     class urt_nodeLoopCallback_t <<(T,lightblue)>> {
-      urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_status_t
+      urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t
     }
     urt_nodeLoopCallback_t ..> urt_node_t
     urt_nodeLoopCallback_t ..> urt_osEventMask_t
@@ -368,20 +416,20 @@ package "middleware" {
       + setupparams : void*
       + loopcallback : urt_nodeLoopCallback_t*
       + loopparams : void*
-      + waitmask : urt_osEventMask_t
-      + waittype : urt_osEventWaitType_t
+      + stage : urt_nodesync_t
+      + listener : urt_osEventListener_t
       __
       - {static} _main : urt_osThreadFunction_t
       + urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
-      + urtNodeTerminateRecusively (node : urt_node_t*, sig : urt_osThreadTerminateSignal_t) : void
-      + urtNodeJoinRecursively (node : urt_node_t*) : void
     }
     urt_node_t "1" o- - "0..1" urt_node_t
     urt_node_t "1" o- - "1" urt_osThread_t
     urt_node_t "1" o- - "1" urt_nodeSetupCallback_t
     urt_node_t "1" o- - "1" urt_nodeLoopCallback_t
+    urt_node_t "1" *- - "1" urt_nodesync_t
     urt_node_t "1" *- - "1" urt_osEventMask_t
     urt_node_t "1" *- - "1" urt_osEventWaitType_t
+    urt_node_t "1" *- - "1" urt_osEventListener_t
     urt_node_t ..> urt_osThreadTerminateSignal_t
 
   } 
diff --git a/doc/classdiagrams/overview.uml b/doc/classdiagrams/overview.uml
index 460fa41..9237392 100644
--- a/doc/classdiagrams/overview.uml
+++ b/doc/classdiagrams/overview.uml
@@ -54,12 +54,44 @@ package "primitives" {
     uint64_t
   }
 
+  /' Just a function for debugging. '/
+  class urt_debug <<(F,white)>> {
+      'Checks the condition in debug mode.
+    + urtDebugAssert(condition : bool) : void
+  }
+
+  /' Node synchronization type. '/
+  class urt_nodesync_t <<T,lightblue>> {
+    'configurable
+    uin8_t
+    .. or ..
+    int8_t
+    .. or ..
+    uint16_t
+    .. or ..
+    int16_t
+    .. or ..
+    uint32_t
+    .. or ..
+    int32_t
+    .. or ..
+    uint64_t
+    .. or ..
+    int64_t
+  }
+
 } /' package "primitives" '/
 
 
 
 package "interfaces" {
 
+  /' Not a type but a set of configuration macros. '/
+  class urt_config <<(C,grey)>> {
+      'Selection to en-/disable debug checks.
+    + URT_CONFIG_DEBUG : bool
+  }
+
   /' OS time type with arbitrary resolution. '/
   class urt_osTime_t <<(T,lightblue)>> {
       'Converts an OS time to 64 bit microsecond precise value.
@@ -151,6 +183,22 @@ package "interfaces" {
       URT_THREAD_TERMINATE_KILL = 9
     }
 
+    /' Thread execution states. '/
+    enum urt_osThreadState_t {
+      'Thread is currently being executed.
+      URT_THREAD_STATE_RUNNING = 0
+      'Thread is ready but waiting to be scheduled.
+      URT_THREAD_STATE_READY = 1
+      'Thread is actively sleeping.
+      URT_THREAD_STATE_SLEEPING = 2
+      'Thread has ben suspended explicitely.
+      URT_THREAD_STATE_SUSPENDED = 3
+      'Thread is waiting for something (e.g. Mutex, event, etc.).
+      URT_THREAD_STATE_WAITING = 4
+      'Thread has terminated.
+      URT_THREAD_STATE_TERMINATED = 5
+    }
+
     /' OS thread interface. '/
     class urt_osThread_t <<(T,lightblue)>> {
         'Minimum priority for low priority threads.
@@ -180,7 +228,7 @@ package "interfaces" {
       + URT_THREAD_MAX_USLEEP : unsigned int
       __
         'Macro to setup working area as static variable (handles alignment if required).
-      + URT_THREAD_WORKING_AREA (var : varname, stacksize : size_t)
+      + URT_THREAD_WORKING_AREA (varname, stacksize)
       ..
         'Initializes an urt_osThread_t object.
       + urtThreadInit (wa : void*, wasize : size_t, func : urt_osThreadFunction_t*, arg : void*) : urt_osThread_t*
@@ -193,13 +241,7 @@ package "interfaces" {
         'Sets the priority of a thread.
       + urtThreadSetPriority (thread : urt_osThread_t*, prio : urt_osThreadPrio_t) : void
         'Retrieves the first thread in the list of children.
-      + urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*
-        'Retrieves the parent thread.
-      + urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*
-        'The calling threads suspends execution until it is woken up by calling urtTheadResume().
       + urtThreadSuspend (void) : void
-        'Retrieves whether a  thread is currently suspended.
-      + urtThreadIsSuspended (thread : urt_osThread_t*) : bool
         'Wakes a suspended thread.
       + urtThreadResume (thread : urt_osThread_t*) : urt_status_t
         'Suspends the calling thread for the specified time.
@@ -218,18 +260,28 @@ package "interfaces" {
       + urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void
         'Waits until the specified thread terminates.
       + urtThreadJoin (thread : urt_osThread_t*) : void
+        'Retrieves the execution state of the specified thread.
+      + urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t
+        'Retrieves the first child of a thread (or ""NULL"").
+      + urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*
+        'Retrieves a sibling (next child in a list) of the thread or ""NULL"".
+      + urtThreadGetSibling (thread : urt_osThread_t*) : urt_psThread_t*
     }
     urt_osThread_t ..> urt_osThreadPrio_t
     urt_osThread_t ..> urt_osThreadFunction_t
     urt_osThread_t ..> urt_osTime_t
     urt_osThread_t ..> urt_osThreadTerminateSignal_t
+    urt_osThread_t ..> urt_osThreadState_t
 
   } /' package "thread" '/
 
   package "events" {
 
     /' OS event mask type. '/
-    class urt_osEventMask_t <<(T,lightblue)>>
+    class urt_osEventMask_t <<(T,lightblue)>> {
+        'The event mask, which will be handled with maximum priority by the event system.
+      + URT_EVENTMASK_MAXPRIO : urt_osEventMask_t
+    }
 
     /' OS event flag type. '/
     class urt_osEventFlags_t <<(T,lightblue)>>
@@ -278,6 +330,14 @@ package "interfaces" {
 
   } /' package "events" '/
 
+  /' Not a class/type but a set of output-related functions. '/
+    class urt_streams <<(F,white)>> {
+        'Prints a formatted string to the standard output stream (stdout).
+      + urtPrintf(fmt : char*, ... ) : int
+        'Prints a formatted string to the standard error stream (stderr).
+      + urtErrPrintf(fmt : char*, ... ) : int
+    }
+
 } /' package "interfaces" '/
 
 package "middleware" {
@@ -464,7 +524,7 @@ package "middleware" {
       'Pointer to the next topic in a list.
     + next : urt_topic_t*
       'Mutex lock for exclusive access.
-    + mutex : urt_osMutex_t
+    + lock : urt_osMutex_t
       'Event source to inform all subscribers when a new message is published.
     + evtSource : urt_osEventSource_t
       'Number of HRT subscribers.
@@ -487,8 +547,6 @@ package "middleware" {
     __
       'Initializes an urt_topic_t object.
     + urtTopicInit (topic : urt_topic_t*, id : urt_topicid_t) : urt_status_t
-      'Appends the given list of messages to the topic's buffer.
-    + urtTopicContributeMessages (topic : urt_topic_t*, messages : urt_message_t*) : void
   }
   urt_topic_t "1" o-- "0..1" urt_topic_t
   urt_topic_t "1" *-- "1" urt_osMutex_t
@@ -507,35 +565,44 @@ package "middleware" {
     - {static} _nodes : urt_node_t*
       'List of topics ordered by their identifiers.
     - {static} _topics : urt_topic_t*
+      'Event source for control events.
+    - {static} _evtSource : urt_osEventSource_t
+      'Mutex used for synchronization.
+    - {static} _lock : urt_osMutex_t
     __
       'Initializes the urt_core_t object.
     + urtCoreInit (void) : urt_status_t
-      'Starts all nodes.
-    + urtCoreStartAll (void) : urt_status_t
+      'Starts all node threads (nodes will block before the loop).
+    + urtCoreStartNodes (void) : urt_status_t
+      'Nodes can use this function to synchronize globally.
+    + urtCoreSynchronizeNodes (node : urt_node_t*, stage : urt_nodesync_t) : urt_status_t
       'Stops all nodes.
-    + urtCoreStopAll (void) : urt_status_t
+    + urtCoreStopNodes (void) : urt_status_t
       'Retrieves a topic given an identifier.
     + urtCoreRetrieveTopic (id : urt_topicid_t) : urt_topic_t*
   }
   urt_core_t "1" o-- "0..*" urt_topic_t
   urt_core_t "1" o-- "0..*" urt_node_t
+  urt_core_t "1" *-- "1" urt_osEventSource_t
+  urt_core_t "1" *-- "1" urt_osMutex_t
   urt_core_t ..> urt_status_t
+  urt_core_t --> urt_nodesync_t
   urt_core_t ..> urt_topicid_t
 
   package "node" {
 
     /' Function type to be called during setup phase of node threads. '/
     class urt_nodeSetupCallback_t <<(T,lightblue)>> {
-      'Takes the node and optional parameters as arguments.
-      urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_status_t
+      'Takes the node and optional parameters as arguments and returns a event mask for the next iteration.
+      urt_nodeSetupCallback_t (node : urt_node_t*, arg : void*) : urt_osEventMask_t
     }
     urt_nodeSetupCallback_t ..> urt_node_t
     urt_nodeSetupCallback_t ..> urt_status_t
 
     /' Function type to be called during loop phase of node threads. '/
     class urt_nodeLoopCallback_t <<(T,lightblue)>> {
-      'Takes the node, a mask of occurred events and optional parameters as arguments.
-      urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_status_t
+      'Takes the node, a mask of occurred events and optional parameters as arguments and returns a event mask for the next iteration.
+      urt_nodeLoopCallback_t (node : urt_node_t*, events : urt_osEventMask_t, arg : void*) : urt_osEventMask_t
     }
     urt_nodeLoopCallback_t ..> urt_node_t
     urt_nodeLoopCallback_t ..> urt_osEventMask_t
@@ -555,26 +622,24 @@ package "middleware" {
       + loopcallback : urt_nodeLoopCallback_t*
         'Optional parameters for the loop callback function.
       + loopparams : void*
-        'A mask for which events to wait.
-      + waitmask : urt_osEventMask_t
-        'How the node will wait for events.
-      + waittype : urt_osEventWaitType_t
+        'Execution stage of the node.
+      + stage : urt_nodesync_t
+        'Event listener for middleware-wide control events.
+      + listener : urt_osEventListener_t
       __
       'The main() function of the node thread.
       - {static} _main : urt_osThreadFunction_t
         'Initializes an urt_node_t object.
       + urtNodeInit (node : urt_node_t*, stacksize : size_t, setupcallback : urt_nodeSetupCallback_t*, setupparams : void*, loopcallback : urt_nodeLoopCallback_t*, loopparams : void*) : urt_status_t
-        'Terminate a node thread and all its child threads (if any).
-      + urtNodeTerminateRecusively (node : urt_node_t*, sig : urt_osThreadTerminateSignal_t) : void
-        'Wait for a node thread an all its child threads (if any) to terminate.
-      + urtNodeJoinRecursively (node : urt_node_t*) : void
     }
     urt_node_t "1" o-- "0..1" urt_node_t
     urt_node_t "1" o-- "1" urt_osThread_t
     urt_node_t "1" o-- "1" urt_nodeSetupCallback_t
     urt_node_t "1" o-- "1" urt_nodeLoopCallback_t
+    urt_node_t "1" *-- "1" urt_nodesync_t
     urt_node_t "1" *-- "1" urt_osEventMask_t
     urt_node_t "1" *-- "1" urt_osEventWaitType_t
+    urt_node_t "1" *-- "1" urt_osEventListener_t
     urt_node_t ..> urt_osThreadTerminateSignal_t
 
   } /' package "node" '/
diff --git a/doc/statediagrams/core/urtCoreInit.svg b/doc/statediagrams/core/urtCoreInit.svg
new file mode 100644
index 0000000..13256c4
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreInit.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="249px" preserveAspectRatio="none" style="width:887px;height:249px;" version="1.1" viewBox="0 0 887 249" width="887px" zoomAndPan="magnify"><defs><filter height="300%" id="fyy2dxbj9oizz" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="398" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="112" x="386.5" y="47.6611">urtCoreInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="445.5" y="68.6143"/><ellipse cx="443" cy="82.8594" fill="#000000" filter="url(#fyy2dxbj9oizz)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fyy2dxbj9oizz)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="866" x="10" y="112.8594"/><rect fill="#FEFECE" filter="url(#fyy2dxbj9oizz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="24" y="138.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="34" y="159.998">set node list pointer to</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="182" y="159.998">NULL</text><rect fill="#FEFECE" filter="url(#fyy2dxbj9oizz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="248" y="138.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="143" x="258" y="159.998">set topic list pointer to</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="405" y="159.998">NULL</text><rect fill="#FEFECE" filter="url(#fyy2dxbj9oizz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="223" x="471" y="138.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="203" x="481" y="159.998">initialize the event source object</text><rect fill="#FEFECE" filter="url(#fyy2dxbj9oizz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="722" y="138.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="732" y="159.998">initialize mutex lock</text><rect fill="#000000" filter="url(#fyy2dxbj9oizz)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="866" x="10" y="192.8281"/><ellipse cx="443" cy="228.8281" fill="none" filter="url(#fyy2dxbj9oizz)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="443.5" cy="229.3281" fill="#000000" filter="url(#fyy2dxbj9oizz)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="122" x2="122" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="118,128.8594,122,138.8594,126,128.8594,122,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="345.5" x2="345.5" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="341.5,128.8594,345.5,138.8594,349.5,128.8594,345.5,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.5" x2="582.5" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="578.5,128.8594,582.5,138.8594,586.5,128.8594,582.5,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="788,128.8594,792,138.8594,796,128.8594,792,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="122" x2="122" y1="172.8281" y2="192.8281"/><polygon fill="#A80036" points="118,182.8281,122,192.8281,126,182.8281,122,186.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="345.5" x2="345.5" y1="172.8281" y2="192.8281"/><polygon fill="#A80036" points="341.5,182.8281,345.5,192.8281,349.5,182.8281,345.5,186.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.5" x2="582.5" y1="172.8281" y2="192.8281"/><polygon fill="#A80036" points="578.5,182.8281,582.5,192.8281,586.5,182.8281,582.5,186.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="792" y1="172.8281" y2="192.8281"/><polygon fill="#A80036" points="788,182.8281,792,192.8281,796,182.8281,792,186.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="443" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="439,102.8594,443,112.8594,447,102.8594,443,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="443" y1="198.8281" y2="218.8281"/><polygon fill="#A80036" points="439,208.8281,443,218.8281,447,208.8281,443,212.8281" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtCoreInit()\n
+
+
+
+start
+fork
+  :set node list pointer to ""NULL"";
+fork again
+  :set topic list pointer to ""NULL"";
+fork again
+  :initialize the event source object;
+fork again
+  :initialize mutex lock;
+endfork
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/core/urtCoreInit.uml b/doc/statediagrams/core/urtCoreInit.uml
new file mode 100644
index 0000000..22b2df5
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreInit.uml
@@ -0,0 +1,40 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtCoreInit()\n
+
+
+
+start
+fork
+  :set node list pointer to ""NULL"";
+fork again
+  :set topic list pointer to ""NULL"";
+fork again
+  :initialize the event source object;
+fork again
+  :initialize mutex lock;
+endfork
+stop
+
+@enduml
diff --git a/doc/statediagrams/core/urtCoreRetrieveTopic.svg b/doc/statediagrams/core/urtCoreRetrieveTopic.svg
new file mode 100644
index 0000000..5e37017
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreRetrieveTopic.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="403px" preserveAspectRatio="none" style="width:510px;height:403px;" version="1.1" viewBox="0 0 510 403" width="510px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ejq1yq9yd0kp" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="209.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="208" x="150.25" y="47.6611">urtCoreRetrieveTopic()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="257.25" y="68.6143"/><ellipse cx="241.5" cy="82.8594" fill="#000000" filter="url(#f1ejq1yq9yd0kp)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1ejq1yq9yd0kp)" points="119.5,168.5698,363.5,168.5698,375.5,180.5698,363.5,192.5698,119.5,192.5698,107.5,180.5698,119.5,168.5698" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="244" x="119.5" y="184.3779">Do the topic's ID and the argument match?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="87.5" y="177.9756">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="375.5" y="177.9756">no</text><rect fill="#FEFECE" filter="url(#f1ejq1yq9yd0kp)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="38" y="202.5698"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="99" x="48" y="223.7085">return the topic</text><ellipse cx="97.5" cy="266.5386" fill="none" filter="url(#f1ejq1yq9yd0kp)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="98" cy="267.0386" fill="#000000" filter="url(#f1ejq1yq9yd0kp)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ejq1yq9yd0kp)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="170" x="300.5" y="202.5698"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="150" x="310.5" y="223.7085">iterate to the next topic</text><polygon fill="#FEFECE" filter="url(#f1ejq1yq9yd0kp)" points="183.5,112.8594,299.5,112.8594,311.5,124.8594,299.5,136.8594,183.5,136.8594,171.5,124.8594,183.5,112.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="245.5" y="147.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="183.5" y="128.6675">Topics left to check?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="157.5" y="122.2651">no</text><rect fill="#FEFECE" filter="url(#f1ejq1yq9yd0kp)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="91" x="196" y="318.5386"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="206" y="339.6772">return</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="249" y="339.6772">NULL</text><ellipse cx="241.5" cy="382.5073" fill="none" filter="url(#f1ejq1yq9yd0kp)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="242" cy="383.0073" fill="#000000" filter="url(#f1ejq1yq9yd0kp)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="236.5386" y2="256.5386"/><polygon fill="#A80036" points="93.5,246.5386,97.5,256.5386,101.5,246.5386,97.5,250.5386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="107.5" x2="97.5" y1="180.5698" y2="180.5698"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="97.5" y1="180.5698" y2="202.5698"/><polygon fill="#A80036" points="93.5,192.5698,97.5,202.5698,101.5,192.5698,97.5,196.5698" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="375.5" x2="385.5" y1="180.5698" y2="180.5698"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385.5" x2="385.5" y1="180.5698" y2="202.5698"/><polygon fill="#A80036" points="381.5,192.5698,385.5,202.5698,389.5,192.5698,385.5,196.5698" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385.5" x2="385.5" y1="236.5386" y2="286.5386"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="385.5" x2="484.5" y1="286.5386" y2="286.5386"/><polygon fill="#A80036" points="480.5,224.6519,484.5,214.6519,488.5,224.6519,484.5,220.6519" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="484.5" x2="484.5" y1="124.8594" y2="286.5386"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="484.5" x2="311.5" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="321.5,120.8594,311.5,124.8594,321.5,128.8594,317.5,124.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241.5" x2="241.5" y1="136.8594" y2="168.5698"/><polygon fill="#A80036" points="237.5,158.5698,241.5,168.5698,245.5,158.5698,241.5,162.5698" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="171.5" x2="24" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="20,210.6519,24,220.6519,28,210.6519,24,214.6519" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="24" x2="24" y1="124.8594" y2="298.5386"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="24" x2="241.5" y1="298.5386" y2="298.5386"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241.5" x2="241.5" y1="298.5386" y2="318.5386"/><polygon fill="#A80036" points="237.5,308.5386,241.5,318.5386,245.5,308.5386,241.5,312.5386" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241.5" x2="241.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="237.5,102.8594,241.5,112.8594,245.5,102.8594,241.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241.5" x2="241.5" y1="352.5073" y2="372.5073"/><polygon fill="#A80036" points="237.5,362.5073,241.5,372.5073,245.5,362.5073,241.5,366.5073" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtCoreRetrieveTopic()\n
+
+
+
+start
+while (Topics left to check?) is (yes)
+  if (Do the topic's ID and the argument match?) then (yes)
+    :return the topic;
+    stop
+  else (no)
+    :iterate to the next topic;
+  endif
+endwhile (no)
+:return ""NULL"";
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/core/urtCoreRetrieveTopic.uml b/doc/statediagrams/core/urtCoreRetrieveTopic.uml
new file mode 100644
index 0000000..901cc8c
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreRetrieveTopic.uml
@@ -0,0 +1,40 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtCoreRetrieveTopic()\n
+
+
+
+start
+while (Topics left to check?) is (yes)
+  if (Do the topic's ID and the argument match?) then (yes)
+    :return the topic;
+    stop
+  else (no)
+    :iterate to the next topic;
+  endif
+endwhile (no)
+:return ""NULL"";
+stop
+
+@enduml
diff --git a/doc/statediagrams/core/urtCoreStartNodes.svg b/doc/statediagrams/core/urtCoreStartNodes.svg
new file mode 100644
index 0000000..403d90f
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreStartNodes.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="304px" preserveAspectRatio="none" style="width:230px;height:304px;" version="1.1" viewBox="0 0 230 304" width="230px" zoomAndPan="magnify"><defs><filter height="300%" id="f1oes4tdg31mgq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="69.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="181" x="23.5" y="47.6611">urtCoreStartNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="117" y="68.6143"/><ellipse cx="119" cy="82.8594" fill="#000000" filter="url(#f1oes4tdg31mgq)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1oes4tdg31mgq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="53" y="173.6641"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="63" y="194.8027">start node thread</text><rect fill="#FEFECE" filter="url(#f1oes4tdg31mgq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="46" y="236.7305"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="56" y="257.8691">iterate to next node</text><polygon fill="#FEFECE" filter="url(#f1oes4tdg31mgq)" points="64,112.8594,174,112.8594,186,124.8594,174,136.8594,64,136.8594,52,124.8594,64,112.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="123" y="147.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="64" y="128.6675">Nodes left to start?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="38" y="122.2651">no</text><ellipse cx="24" cy="170.8594" fill="none" filter="url(#f1oes4tdg31mgq)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="24.5" cy="171.3594" fill="#000000" filter="url(#f1oes4tdg31mgq)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="119" x2="119" y1="207.6328" y2="236.7305"/><polygon fill="#A80036" points="115,226.7305,119,236.7305,123,226.7305,119,230.7305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="119" x2="119" y1="136.8594" y2="173.6641"/><polygon fill="#A80036" points="115,163.6641,119,173.6641,123,163.6641,119,167.6641" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="119" x2="119" y1="270.6992" y2="280.6992"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="119" x2="204" y1="280.6992" y2="280.6992"/><polygon fill="#A80036" points="200,216.7305,204,206.7305,208,216.7305,204,212.7305" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="204" x2="204" y1="124.8594" y2="280.6992"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="204" x2="186" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="196,120.8594,186,124.8594,196,128.8594,192,124.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="52" x2="24" y1="124.8594" y2="124.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="24" x2="24" y1="124.8594" y2="160.8594"/><polygon fill="#A80036" points="20,150.8594,24,160.8594,28,150.8594,24,154.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="119" x2="119" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="115,102.8594,119,112.8594,123,102.8594,119,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtCoreStartNodes()\n
+
+
+
+start
+while (Nodes left to start?) is (yes)
+  :start node thread;
+  :iterate to next node;
+endwhile (no)
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/core/urtCoreStartNodes.uml b/doc/statediagrams/core/urtCoreStartNodes.uml
new file mode 100644
index 0000000..f214de4
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreStartNodes.uml
@@ -0,0 +1,35 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtCoreStartNodes()\n
+
+
+
+start
+while (Nodes left to start?) is (yes)
+  :start node thread;
+  :iterate to next node;
+endwhile (no)
+stop
+
+@enduml
diff --git a/doc/statediagrams/core/urtCoreStopNodes.svg b/doc/statediagrams/core/urtCoreStopNodes.svg
new file mode 100644
index 0000000..aaef15d
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreStopNodes.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="553px" preserveAspectRatio="none" style="width:269px;height:553px;" version="1.1" viewBox="0 0 269 553" width="269px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ew74r5cjc25p" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="89.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="178" x="44.75" y="47.6611">urtCoreStopNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="136.75" y="68.6143"/><ellipse cx="138" cy="82.8594" fill="#000000" filter="url(#f1ew74r5cjc25p)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="44.5" y="168.5698"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="54.5" y="189.7085">request node to terminate</text><rect fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="65" y="231.6362"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="75" y="252.7749">iterate to next node</text><polygon fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" points="84,112.8594,192,112.8594,204,124.8594,192,136.8594,84,136.8594,72,124.8594,84,112.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="142" y="147.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="84" y="128.6675">Nodes left to stop?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="58" y="122.2651">no</text><rect fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="52.5" y="307.605"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="151" x="62.5" y="328.7437">broadcast control event</text><rect fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="184" x="46" y="422.3784"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="164" x="56" y="443.5171">wait for node to terminate</text><rect fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="65" y="485.4448"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="75" y="506.5835">iterate to next node</text><polygon fill="#FEFECE" filter="url(#f1ew74r5cjc25p)" points="75,361.5737,201,361.5737,213,373.5737,201,385.5737,75,385.5737,63,373.5737,75,361.5737" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="142" y="395.7842">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="75" y="377.3818">Nodes left to wait for?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="49" y="370.9795">no</text><ellipse cx="24" cy="419.5737" fill="none" filter="url(#f1ew74r5cjc25p)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="24.5" cy="420.0737" fill="#000000" filter="url(#f1ew74r5cjc25p)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="202.5386" y2="231.6362"/><polygon fill="#A80036" points="134,221.6362,138,231.6362,142,221.6362,138,225.6362" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="136.8594" y2="168.5698"/><polygon fill="#A80036" points="134,158.5698,138,168.5698,142,158.5698,138,162.5698" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="265.605" y2="275.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="243.5" y1="275.605" y2="275.605"/><polygon fill="#A80036" points="239.5,211.6362,243.5,201.6362,247.5,211.6362,243.5,207.6362" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="243.5" x2="243.5" y1="124.8594" y2="275.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="243.5" x2="204" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="214,120.8594,204,124.8594,214,128.8594,210,124.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="72" x2="32.5" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="28.5,197.6362,32.5,207.6362,36.5,197.6362,32.5,201.6362" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32.5" x2="32.5" y1="124.8594" y2="287.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32.5" x2="138" y1="287.605" y2="287.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="287.605" y2="307.605"/><polygon fill="#A80036" points="134,297.605,138,307.605,142,297.605,138,301.605" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="134,102.8594,138,112.8594,142,102.8594,138,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="456.3472" y2="485.4448"/><polygon fill="#A80036" points="134,475.4448,138,485.4448,142,475.4448,138,479.4448" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="385.5737" y2="422.3784"/><polygon fill="#A80036" points="134,412.3784,138,422.3784,142,412.3784,138,416.3784" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="519.4136" y2="529.4136"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="242" y1="529.4136" y2="529.4136"/><polygon fill="#A80036" points="238,465.4448,242,455.4448,246,465.4448,242,461.4448" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="242" x2="242" y1="373.5737" y2="529.4136"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="242" x2="213" y1="373.5737" y2="373.5737"/><polygon fill="#A80036" points="223,369.5737,213,373.5737,223,377.5737,219,373.5737" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="63" x2="24" y1="373.5737" y2="373.5737"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="24" x2="24" y1="373.5737" y2="409.5737"/><polygon fill="#A80036" points="20,399.5737,24,409.5737,28,399.5737,24,403.5737" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="138" x2="138" y1="341.5737" y2="361.5737"/><polygon fill="#A80036" points="134,351.5737,138,361.5737,142,351.5737,138,355.5737" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtCoreStopNodes()\n
+
+
+
+start
+while (Nodes left to stop?) is (yes)
+  :request node to terminate;
+  :iterate to next node;
+endwhile (no)
+:broadcast control event;
+while (Nodes left to wait for?) is (yes)
+  :wait for node to terminate;
+  :iterate to next node;
+endwhile (no)
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/core/urtCoreStopNodes.uml b/doc/statediagrams/core/urtCoreStopNodes.uml
new file mode 100644
index 0000000..b359dc8
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreStopNodes.uml
@@ -0,0 +1,40 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtCoreStopNodes()\n
+
+
+
+start
+while (Nodes left to stop?) is (yes)
+  :request node to terminate;
+  :iterate to next node;
+endwhile (no)
+:broadcast control event;
+while (Nodes left to wait for?) is (yes)
+  :wait for node to terminate;
+  :iterate to next node;
+endwhile (no)
+stop
+
+@enduml
diff --git a/doc/statediagrams/core/urtCoreSynchronizeNodes.svg b/doc/statediagrams/core/urtCoreSynchronizeNodes.svg
new file mode 100644
index 0000000..fcb0153
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreSynchronizeNodes.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="618px" preserveAspectRatio="none" style="width:416px;height:618px;" version="1.1" viewBox="0 0 416 618" width="416px" zoomAndPan="magnify"><defs><filter height="300%" id="f1r9x1l3440zyt" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="162.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="84" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="210" y="68.6143"/><ellipse cx="212" cy="82.8594" fill="#000000" filter="url(#f1r9x1l3440zyt)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="143" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="153" y="133.998">acquire mutex lock</text><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="82" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="92" y="187.9668">set node's</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="35" x="162" y="187.9668">stage</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="131" x="201" y="187.9668">variable to argument</text><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="316" x="54" y="276.5073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="220" x="64" y="297.646">compare argument with the node's</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="35" x="288" y="297.646">stage</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="327" y="297.646">value</text><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="139" y="339.5737"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="149" y="360.7124">iterate to next node</text><polygon fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" points="154.5,220.7969,269.5,220.7969,281.5,232.7969,269.5,244.7969,154.5,244.7969,142.5,232.7969,154.5,220.7969" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="216" y="255.0073">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="154.5" y="236.605">Nodes left to check?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="128.5" y="230.2026">no</text><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="157.5" y="415.5425"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="89" x="167.5" y="436.6812">release mutex</text><polygon fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" points="117.5,469.5112,306.5,469.5112,318.5,481.5112,306.5,493.5112,117.5,493.5112,105.5,481.5112,117.5,469.5112" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="117.5" y="485.3193">Are all nodes in the same stage?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="85.5" y="478.917">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="318.5" y="478.917">no</text><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="10" y="503.5112"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="151" x="20" y="524.6499">broadcast control event</text><rect fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="252" y="503.5112"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="262" y="524.6499">wait for control event</text><polygon fill="#FEFECE" filter="url(#f1r9x1l3440zyt)" points="212,543.48,224,555.48,212,567.48,200,555.48,212,543.48" style="stroke: #A80036; stroke-width: 1.5;"/><ellipse cx="212" cy="597.48" fill="none" filter="url(#f1r9x1l3440zyt)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="212.5" cy="597.98" fill="#000000" filter="url(#f1r9x1l3440zyt)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="208,102.8594,212,112.8594,216,102.8594,212,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="208,156.8281,212,166.8281,216,156.8281,212,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="310.4761" y2="339.5737"/><polygon fill="#A80036" points="208,329.5737,212,339.5737,216,329.5737,212,333.5737" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="244.7969" y2="276.5073"/><polygon fill="#A80036" points="208,266.5073,212,276.5073,216,266.5073,212,270.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="373.5425" y2="383.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="382" y1="383.5425" y2="383.5425"/><polygon fill="#A80036" points="378,319.5737,382,309.5737,386,319.5737,382,315.5737" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382" x2="382" y1="232.7969" y2="383.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382" x2="281.5" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="291.5,228.7969,281.5,232.7969,291.5,236.7969,287.5,232.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="142.5" x2="42" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="38,305.5737,42,315.5737,46,305.5737,42,309.5737" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="42" x2="42" y1="232.7969" y2="395.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="42" x2="212" y1="395.5425" y2="395.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="395.5425" y2="415.5425"/><polygon fill="#A80036" points="208,405.5425,212,415.5425,216,405.5425,212,409.5425" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="208,210.7969,212,220.7969,216,210.7969,212,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="105.5" x2="95.5" y1="481.5112" y2="481.5112"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="95.5" x2="95.5" y1="481.5112" y2="503.5112"/><polygon fill="#A80036" points="91.5,493.5112,95.5,503.5112,99.5,493.5112,95.5,497.5112" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="318.5" x2="328.5" y1="481.5112" y2="481.5112"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="328.5" y1="481.5112" y2="503.5112"/><polygon fill="#A80036" points="324.5,493.5112,328.5,503.5112,332.5,493.5112,328.5,497.5112" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="95.5" x2="95.5" y1="537.48" y2="555.48"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="95.5" x2="200" y1="555.48" y2="555.48"/><polygon fill="#A80036" points="190,551.48,200,555.48,190,559.48,194,555.48" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="328.5" y1="537.48" y2="555.48"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="328.5" x2="224" y1="555.48" y2="555.48"/><polygon fill="#A80036" points="234,551.48,224,555.48,234,559.48,230,555.48" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="449.5112" y2="469.5112"/><polygon fill="#A80036" points="208,459.5112,212,469.5112,216,459.5112,212,463.5112" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="212" y1="567.48" y2="587.48"/><polygon fill="#A80036" points="208,577.48,212,587.48,216,577.48,212,581.48" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtCoreSynchronizeNodes()\n
+
+
+
+start
+:acquire mutex lock;
+:set node's ""stage"" variable to argument;
+while (Nodes left to check?) is (yes)
+  :compare argument with the node's ""stage"" value;
+  :iterate to next node;
+endwhile (no)
+:release mutex;
+if (Are all nodes in the same stage?) then (yes)
+  :broadcast control event;
+else (no)
+  :wait for control event;
+endif
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/core/urtCoreSynchronizeNodes.uml b/doc/statediagrams/core/urtCoreSynchronizeNodes.uml
new file mode 100644
index 0000000..e5a2629
--- /dev/null
+++ b/doc/statediagrams/core/urtCoreSynchronizeNodes.uml
@@ -0,0 +1,43 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtCoreSynchronizeNodes()\n
+
+
+
+start
+:acquire mutex lock;
+:set node's ""stage"" variable to argument;
+while (Nodes left to check?) is (yes)
+  :compare argument with the node's ""stage"" value;
+  :iterate to next node;
+endwhile (no)
+:release mutex;
+if (Are all nodes in the same stage?) then (yes)
+  :broadcast control event;
+else (no)
+  :wait for control event;
+endif
+stop
+
+@enduml
diff --git a/doc/statediagrams/general/deinitialization.svg b/doc/statediagrams/general/deinitialization.svg
deleted file mode 100644
index 8cd05b8..0000000
--- a/doc/statediagrams/general/deinitialization.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="528px" preserveAspectRatio="none" style="width:574px;height:528px;" version="1.1" viewBox="0 0 574 528" width="574px" zoomAndPan="magnify"><defs><filter height="300%" id="fxpz2tqgpdftz" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="241.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="131" x="220.5" y="47.6611">Deinitialization</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="289" y="68.6143"/><ellipse cx="339.5" cy="82.8594" fill="#000000" filter="url(#fxpz2tqgpdftz)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M38,172.9878 L38,198.1206 A0,0 0 0 0 38,198.1206 L127,198.1206 A0,0 0 0 0 127,198.1206 L127,190.9878 L147,185.5542 L127,182.9878 L127,182.9878 L117,172.9878 L38,172.9878 A0,0 0 0 0 38,172.9878 " fill="#FBFB77" filter="url(#fxpz2tqgpdftz)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M117,172.9878 L117,182.9878 L127,182.9878 L117,172.9878 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="44" y="190.0547">recursively</text><rect fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="385" x="147" y="168.5698"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="365" x="157" y="189.7085">request current node and al its child threads to terminate</text><rect fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="266.5" y="231.6362"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="126" x="276.5" y="252.7749">iterate to next node</text><polygon fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" points="266,112.8594,413,112.8594,425,124.8594,413,136.8594,266,136.8594,254,124.8594,266,112.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="343.5" y="147.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="266" y="128.6675">Nodes left to be stopped?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="240" y="122.2651">no</text><path d="M56,421.23 L56,446.3628 A0,0 0 0 0 56,446.3628 L145,446.3628 A0,0 0 0 0 145,446.3628 L145,439.23 L165,433.7964 L145,431.23 L145,431.23 L135,421.23 L56,421.23 A0,0 0 0 0 56,421.23 " fill="#FBFB77" filter="url(#fxpz2tqgpdftz)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M135,421.23 L135,431.23 L145,431.23 L135,421.23 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="68" x="62" y="438.2969">recursively</text><rect fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="349" x="165" y="416.812"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="329" x="175" y="437.9507">wait for current node and al its child threads to stop</text><polygon fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" points="263.5,368.4097,415.5,368.4097,427.5,380.4097,415.5,392.4097,263.5,392.4097,251.5,380.4097,263.5,368.4097" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="343.5" y="402.6201">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="152" x="263.5" y="384.2178">Current node still running?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="427.5" y="377.8154">no</text><polygon fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" points="339.5,470.7808,351.5,482.7808,339.5,494.7808,327.5,482.7808,339.5,470.7808" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fxpz2tqgpdftz)" points="285.5,307.605,393.5,307.605,405.5,319.605,393.5,331.605,285.5,331.605,273.5,319.605,285.5,307.605" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="343.5" y="341.8154">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="285.5" y="323.4131">Nodes left to stop?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="259.5" y="317.0107">no</text><ellipse cx="24" cy="365.605" fill="none" filter="url(#fxpz2tqgpdftz)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="24.5" cy="366.105" fill="#000000" filter="url(#fxpz2tqgpdftz)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="202.5386" y2="231.6362"/><polygon fill="#A80036" points="335.5,221.6362,339.5,231.6362,343.5,221.6362,339.5,225.6362" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="136.8594" y2="168.5698"/><polygon fill="#A80036" points="335.5,158.5698,339.5,168.5698,343.5,158.5698,339.5,162.5698" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="265.605" y2="275.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="544" y1="275.605" y2="275.605"/><polygon fill="#A80036" points="540,211.6362,544,201.6362,548,211.6362,544,207.6362" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544" x2="544" y1="124.8594" y2="275.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544" x2="425" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="435,120.8594,425,124.8594,435,128.8594,431,124.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="254" x2="26" y1="124.8594" y2="124.8594"/><polygon fill="#A80036" points="22,197.6362,26,207.6362,30,197.6362,26,201.6362" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="26" x2="26" y1="124.8594" y2="287.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="26" x2="339.5" y1="287.605" y2="287.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="287.605" y2="307.605"/><polygon fill="#A80036" points="335.5,297.605,339.5,307.605,343.5,297.605,339.5,301.605" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="335.5,102.8594,339.5,112.8594,343.5,102.8594,339.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="392.4097" y2="416.812"/><polygon fill="#A80036" points="335.5,406.812,339.5,416.812,343.5,406.812,339.5,410.812" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="427.5" x2="524" y1="380.4097" y2="380.4097"/><polygon fill="#A80036" points="520,423.7964,524,433.7964,528,423.7964,524,427.7964" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524" x2="524" y1="380.4097" y2="482.7808"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="524" x2="351.5" y1="482.7808" y2="482.7808"/><polygon fill="#A80036" points="361.5,478.7808,351.5,482.7808,361.5,486.7808,357.5,482.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="450.7808" y2="470.7808"/><polygon fill="#A80036" points="335.5,460.7808,339.5,470.7808,343.5,460.7808,339.5,464.7808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="331.605" y2="368.4097"/><polygon fill="#A80036" points="335.5,358.4097,339.5,368.4097,343.5,358.4097,339.5,362.4097" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="339.5" y1="494.7808" y2="504.7808"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.5" x2="548" y1="504.7808" y2="504.7808"/><polygon fill="#A80036" points="544,425.394,548,415.394,552,425.394,548,421.394" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="548" x2="548" y1="319.605" y2="504.7808"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="548" x2="405.5" y1="319.605" y2="319.605"/><polygon fill="#A80036" points="415.5,315.605,405.5,319.605,415.5,323.605,411.5,319.605" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="273.5" x2="24" y1="319.605" y2="319.605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="24" x2="24" y1="319.605" y2="355.605"/><polygon fill="#A80036" points="20,345.605,24,355.605,28,345.605,24,349.605" style="stroke: #A80036; stroke-width: 1.0;"/><!--
-@startuml
-
-title **µRtWare**\nDeinitialization\n
-
-
-
-start
-while (Nodes left to be stopped?) is (yes)
-  :request current node and al its child threads to terminate;
-  note
-    recursively
-  endnote
-  :iterate to next node;
-endwhile (no)
-while (Nodes left to stop?) is (yes)
-  if (Current node still running?) then (yes)
-    :wait for current node and al its child threads to stop;
-    note
-      recursively
-    endnote
-  else (no)
-  endif
-endwhile (no)
-stop
-
-@enduml
-
-PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
-Operating System: Linux
-OS Version: 4.15.0-36-generic
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/general/deinitialization.uml b/doc/statediagrams/general/deinitialization.uml
deleted file mode 100644
index 2cc956e..0000000
--- a/doc/statediagrams/general/deinitialization.uml
+++ /dev/null
@@ -1,47 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2018  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-@startuml
-
-title **µRtWare**\nDeinitialization\n
-
-
-
-start
-while (Nodes left to be stopped?) is (yes)
-  :request current node and al its child threads to terminate;
-  note
-    recursively
-  endnote
-  :iterate to next node;
-endwhile (no)
-while (Nodes left to stop?) is (yes)
-  if (Current node still running?) then (yes)
-    :wait for current node and al its child threads to stop;
-    note
-      recursively
-    endnote
-  else (no)
-  endif
-endwhile (no)
-stop
-
-@enduml
diff --git a/doc/statediagrams/general/initialization.svg b/doc/statediagrams/general/initialization.svg
index 744c4f4..f9beb43 100644
--- a/doc/statediagrams/general/initialization.svg
+++ b/doc/statediagrams/general/initialization.svg
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1070px" preserveAspectRatio="none" style="width:1283px;height:1070px;" version="1.1" viewBox="0 0 1283 1070" width="1283px" zoomAndPan="magnify"><defs><filter height="300%" id="f9p8gcqa4s02k" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="596" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="107" x="587" y="47.6611">Initialization</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="643.5" y="68.6143"/><ellipse cx="641" cy="82.8594" fill="#000000" filter="url(#f9p8gcqa4s02k)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f9p8gcqa4s02k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1262" x="10" y="112.8594"/><rect fill="#000000" filter="url(#f9p8gcqa4s02k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="876" x="24" y="138.8594"/><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="116.5625" style="stroke: #000000; stroke-width: 2.0;" width="368" x="38" y="180.1455"/><path d="M117,181.1455 L117,189.4424 L107,199.4424 L38,199.4424 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="69" x="41" y="194.1406">urt_core_t</text><path d="M58,226.4424 L58,266.708 L255,266.708 L255,236.4424 L245,226.4424 L58,226.4424 " fill="#FBFB77" filter="url(#f9p8gcqa4s02k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M245,226.4424 L245,236.4424 L255,236.4424 L245,226.4424 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="64" y="243.5093">must be initialized statically</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="64" y="258.6421">(in startup thread)</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="265" y="229.5908"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="275" y="250.7295">initialize members</text><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="157.5313" style="stroke: #000000; stroke-width: 2.0;" width="452" x="434" y="155.6611"/><path d="M548,156.6611 L548,164.958 L538,174.958 L434,174.958 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="437" y="169.6563">urt_osThread_t</text><path d="M444,191.958 L444,232.2236 A0,0 0 0 0 444,232.2236 L721,232.2236 A0,0 0 0 0 721,232.2236 L721,216.0908 L741,212.0908 L721,208.0908 L721,201.958 L711,191.958 L444,191.958 A0,0 0 0 0 444,191.958 " fill="#FBFB77" filter="url(#f9p8gcqa4s02k)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M711,191.958 L711,201.958 L721,201.958 L711,191.958 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="450" y="209.0249">must be initialized statically</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="256" x="450" y="224.1577">(in preamble / static memory allocation)</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="741" y="195.1064"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="751" y="216.2451">initialize work area</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="743" y="267.2236"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="753" y="288.3623">initialize members</text><rect fill="#000000" filter="url(#f9p8gcqa4s02k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="876" x="24" y="333.1924"/><rect fill="#000000" filter="url(#f9p8gcqa4s02k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="464" x="230" y="359.1924"/><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="137.0791" style="stroke: #000000; stroke-width: 2.0;" width="176" x="261" y="375.9941"/><path d="M343,376.9941 L343,385.291 L333,395.291 L261,395.291 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="72" x="264" y="389.9893">urt_topic_t</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="283.5" y="412.291"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="293.5" y="433.4297">initialize members</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="271" y="466.2598"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="281" y="487.3984">insert self to topic list</text><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="419.7734" style="stroke: #000000; stroke-width: 2.0;" width="231" x="244" y="548.0732"/><path d="M356,549.0732 L356,557.3701 L346,567.3701 L244,567.3701 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="102" x="247" y="562.0684">urt_publisher_t</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="283.5" y="584.3701"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="293.5" y="605.5088">initialize members</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="274" y="653.3389"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="130" x="284" y="674.4775">find topic in topic list</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="309" y="769.9404"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="319" y="791.0791">lock topic</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="272.5" y="823.9092"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="282.5" y="845.0479">contribute messages</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="301" y="877.8779"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="311" y="899.0166">unlock topic</text><polygon fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" points="266,721.5381,432,721.5381,444,733.5381,432,745.5381,266,745.5381,254,733.5381,266,721.5381" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="353" y="755.7485">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="266" y="737.3462">Any messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="444" y="730.9438">no</text><polygon fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" points="349,931.8467,361,943.8467,349,955.8467,337,943.8467,349,931.8467" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="158.4648" style="stroke: #000000; stroke-width: 2.0;" width="177" x="503" y="602.8115"/><path d="M587,603.8115 L587,612.1084 L577,622.1084 L503,622.1084 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="74" x="506" y="616.8066">urt_node_t</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="526" y="639.1084"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="536" y="660.2471">initialize members</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="513" y="707.3076"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="523" y="728.4463">insert self to node list</text><rect fill="#000000" filter="url(#f9p8gcqa4s02k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="464" x="230" y="987.8467"/><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="90.2656" style="stroke: #000000; stroke-width: 2.0;" width="151" x="928" y="511.0303"/><path d="M1049,512.0303 L1049,520.3271 L1039,530.3271 L928,530.3271 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="111" x="931" y="525.0254">urt_subscriber_t</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="938" y="547.3271"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="948" y="568.4658">initialize members</text><rect fill="#FFFFFF" filter="url(#f9p8gcqa4s02k)" height="90.2656" style="stroke: #000000; stroke-width: 2.0;" width="151" x="1107" y="511.0303"/><path d="M1219,512.0303 L1219,520.3271 L1209,530.3271 L1107,530.3271 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="102" x="1110" y="525.0254">urt_message_t</text><rect fill="#FEFECE" filter="url(#f9p8gcqa4s02k)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="1117" y="547.3271"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="1127" y="568.4658">initialize members</text><rect fill="#000000" filter="url(#f9p8gcqa4s02k)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1262" x="10" y="1013.8467"/><ellipse cx="641" cy="1049.8467" fill="none" filter="url(#f9p8gcqa4s02k)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="641.5" cy="1050.3467" fill="#000000" filter="url(#f9p8gcqa4s02k)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="808.5" x2="808.5" y1="229.0752" y2="267.2236"/><polygon fill="#A80036" points="804.5,257.2236,808.5,267.2236,812.5,257.2236,808.5,261.2236" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="330.5" x2="330.5" y1="144.8594" y2="229.5908"/><polygon fill="#A80036" points="326.5,219.5908,330.5,229.5908,334.5,219.5908,330.5,223.5908" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="808.5" x2="808.5" y1="144.8594" y2="195.1064"/><polygon fill="#A80036" points="804.5,185.1064,808.5,195.1064,812.5,185.1064,808.5,189.1064" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="330.5" x2="330.5" y1="263.5596" y2="333.1924"/><polygon fill="#A80036" points="326.5,323.1924,330.5,333.1924,334.5,323.1924,330.5,327.1924" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="808.5" x2="808.5" y1="301.1924" y2="333.1924"/><polygon fill="#A80036" points="804.5,323.1924,808.5,333.1924,812.5,323.1924,808.5,327.1924" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="446.2598" y2="466.2598"/><polygon fill="#A80036" points="345,456.2598,349,466.2598,353,456.2598,349,460.2598" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="618.3389" y2="653.3389"/><polygon fill="#A80036" points="345,643.3389,349,653.3389,353,643.3389,349,647.3389" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="803.9092" y2="823.9092"/><polygon fill="#A80036" points="345,813.9092,349,823.9092,353,813.9092,349,817.9092" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="857.8779" y2="877.8779"/><polygon fill="#A80036" points="345,867.8779,349,877.8779,353,867.8779,349,871.8779" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="745.5381" y2="769.9404"/><polygon fill="#A80036" points="345,759.9404,349,769.9404,353,759.9404,349,763.9404" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="444" x2="456" y1="733.5381" y2="733.5381"/><polygon fill="#A80036" points="452,830.8936,456,840.8936,460,830.8936,456,834.8936" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="456" y1="733.5381" y2="943.8467"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="456" x2="361" y1="943.8467" y2="943.8467"/><polygon fill="#A80036" points="371,939.8467,361,943.8467,371,947.8467,367,943.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="911.8467" y2="931.8467"/><polygon fill="#A80036" points="345,921.8467,349,931.8467,353,921.8467,349,925.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="687.3076" y2="721.5381"/><polygon fill="#A80036" points="345,711.5381,349,721.5381,353,711.5381,349,715.5381" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="500.2285" y2="584.3701"/><polygon fill="#A80036" points="345,574.3701,349,584.3701,353,574.3701,349,578.3701" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591.5" x2="591.5" y1="673.0771" y2="707.3076"/><polygon fill="#A80036" points="587.5,697.3076,591.5,707.3076,595.5,697.3076,591.5,701.3076" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="365.1924" y2="412.291"/><polygon fill="#A80036" points="345,402.291,349,412.291,353,402.291,349,406.291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591.5" x2="591.5" y1="365.1924" y2="639.1084"/><polygon fill="#A80036" points="587.5,629.1084,591.5,639.1084,595.5,629.1084,591.5,633.1084" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="349" x2="349" y1="955.8467" y2="987.8467"/><polygon fill="#A80036" points="345,977.8467,349,987.8467,353,977.8467,349,981.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591.5" x2="591.5" y1="741.2764" y2="987.8467"/><polygon fill="#A80036" points="587.5,977.8467,591.5,987.8467,595.5,977.8467,591.5,981.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="462" x2="462" y1="339.1924" y2="359.1924"/><polygon fill="#A80036" points="458,349.1924,462,359.1924,466,349.1924,462,353.1924" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="462" x2="462" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="458,128.8594,462,138.8594,466,128.8594,462,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1003.5" x2="1003.5" y1="118.8594" y2="547.3271"/><polygon fill="#A80036" points="999.5,537.3271,1003.5,547.3271,1007.5,537.3271,1003.5,541.3271" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1182.5" x2="1182.5" y1="118.8594" y2="547.3271"/><polygon fill="#A80036" points="1178.5,537.3271,1182.5,547.3271,1186.5,537.3271,1182.5,541.3271" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="462" x2="462" y1="993.8467" y2="1013.8467"/><polygon fill="#A80036" points="458,1003.8467,462,1013.8467,466,1003.8467,462,1007.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1003.5" x2="1003.5" y1="581.2959" y2="1013.8467"/><polygon fill="#A80036" points="999.5,1003.8467,1003.5,1013.8467,1007.5,1003.8467,1003.5,1007.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1182.5" x2="1182.5" y1="581.2959" y2="1013.8467"/><polygon fill="#A80036" points="1178.5,1003.8467,1182.5,1013.8467,1186.5,1003.8467,1182.5,1007.8467" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641" x2="641" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="637,102.8594,641,112.8594,645,102.8594,641,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="641" x2="641" y1="1019.8467" y2="1039.8467"/><polygon fill="#A80036" points="637,1029.8467,641,1039.8467,645,1029.8467,641,1033.8467" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="470px" preserveAspectRatio="none" style="width:483px;height:470px;" version="1.1" viewBox="0 0 483 470" width="483px" zoomAndPan="magnify"><defs><filter height="300%" id="f197atgdjewduw" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="196" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="107" x="187" y="47.6611">Initialization</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="243.5" y="68.6143"/><ellipse cx="241" cy="82.8594" fill="#000000" filter="url(#f197atgdjewduw)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f197atgdjewduw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="462" x="10" y="112.8594"/><rect fill="#FEFECE" filter="url(#f197atgdjewduw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="48" x="156.5" y="138.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="166.5" y="159.998">core</text><rect fill="#000000" filter="url(#f197atgdjewduw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="313" x="24" y="192.8281"/><rect fill="#000000" filter="url(#f197atgdjewduw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="198" x="38" y="218.8281"/><rect fill="#FEFECE" filter="url(#f197atgdjewduw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="52" y="244.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="38" x="62" y="265.9668">topics</text><rect fill="#FEFECE" filter="url(#f197atgdjewduw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="138" y="244.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="148" y="265.9668">messages</text><rect fill="#000000" filter="url(#f197atgdjewduw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="198" x="38" y="298.7969"/><rect fill="#FEFECE" filter="url(#f197atgdjewduw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="85" x="94.5" y="333.2813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="104.5" y="354.4199">publishers</text><rect fill="#FEFECE" filter="url(#f197atgdjewduw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="264" y="279.3125"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="274" y="300.4512">nodes</text><rect fill="#000000" filter="url(#f197atgdjewduw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="313" x="24" y="387.25"/><rect fill="#FEFECE" filter="url(#f197atgdjewduw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="365" y="244.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="375" y="265.9668">subscribers</text><rect fill="#000000" filter="url(#f197atgdjewduw)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="462" x="10" y="413.25"/><ellipse cx="241" cy="449.25" fill="none" filter="url(#f197atgdjewduw)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="241.5" cy="449.75" fill="#000000" filter="url(#f197atgdjewduw)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="81" x2="81" y1="224.8281" y2="244.8281"/><polygon fill="#A80036" points="77,234.8281,81,244.8281,85,234.8281,81,238.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="180" x2="180" y1="224.8281" y2="244.8281"/><polygon fill="#A80036" points="176,234.8281,180,244.8281,184,234.8281,180,238.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="81" x2="81" y1="278.7969" y2="298.7969"/><polygon fill="#A80036" points="77,288.7969,81,298.7969,85,288.7969,81,292.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="180" x2="180" y1="278.7969" y2="298.7969"/><polygon fill="#A80036" points="176,288.7969,180,298.7969,184,288.7969,180,292.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="137" y1="304.7969" y2="333.2813"/><polygon fill="#A80036" points="133,323.2813,137,333.2813,141,323.2813,137,327.2813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="137" y1="198.8281" y2="218.8281"/><polygon fill="#A80036" points="133,208.8281,137,218.8281,141,208.8281,137,212.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="293.5" x2="293.5" y1="198.8281" y2="279.3125"/><polygon fill="#A80036" points="289.5,269.3125,293.5,279.3125,297.5,269.3125,293.5,273.3125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="137" x2="137" y1="367.25" y2="387.25"/><polygon fill="#A80036" points="133,377.25,137,387.25,141,377.25,137,381.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="293.5" x2="293.5" y1="313.2813" y2="387.25"/><polygon fill="#A80036" points="289.5,377.25,293.5,387.25,297.5,377.25,293.5,381.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="180.5" x2="180.5" y1="172.8281" y2="192.8281"/><polygon fill="#A80036" points="176.5,182.8281,180.5,192.8281,184.5,182.8281,180.5,186.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="180.5" x2="180.5" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="176.5,128.8594,180.5,138.8594,184.5,128.8594,180.5,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="411.5" y1="118.8594" y2="244.8281"/><polygon fill="#A80036" points="407.5,234.8281,411.5,244.8281,415.5,234.8281,411.5,238.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="180.5" x2="180.5" y1="393.25" y2="413.25"/><polygon fill="#A80036" points="176.5,403.25,180.5,413.25,184.5,403.25,180.5,407.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="411.5" y1="278.7969" y2="413.25"/><polygon fill="#A80036" points="407.5,403.25,411.5,413.25,415.5,403.25,411.5,407.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241" x2="241" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="237,102.8594,241,112.8594,245,102.8594,241,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="241" x2="241" y1="419.25" y2="439.25"/><polygon fill="#A80036" points="237,429.25,241,439.25,245,429.25,241,433.25" style="stroke: #A80036; stroke-width: 1.0;"/><!--
 @startuml
 
 title **µRtWare**\nInitialization\n
@@ -7,53 +7,19 @@ title **µRtWare**\nInitialization\n
 
 start
 fork
+  :core;
   fork
-    partition "urt_core_t" {
-      note
-        must be initialized statically
-        (in startup thread)
-      endnote
-      :initialize members;
-    }
+    fork
+      :topics;
+    fork again
+      :messages;
+    endfork
+    :publishers;
   fork again
-    partition "urt_osThread_t" {
-      :initialize work area;
-      note
-        must be initialized statically
-        (in preamble / static memory allocation)
-      endnote
-      :initialize members;
-    }
+    :nodes;
   endfork
-  fork
-    partition "urt_topic_t" {
-      :initialize members;
-      :insert self to topic list;
-    }
-    partition "urt_publisher_t" {
-      :initialize members;
-      :find topic in topic list;
-      if (Any messages to contribute?) then (yes)
-        :lock topic;
-        :contribute messages;
-        :unlock topic;
-      else (no)
-      endif
-    }
-  fork again
-    partition "urt_node_t" {
-      :initialize members;
-      :insert self to node list;
-    }
-  endfork
-fork again
-  partition "urt_subscriber_t" {
-    :initialize members;
-  }
 fork again
-  partition "urt_message_t" {
-    :initialize members;
-  }
+  :subscribers;
 endfork
 stop
 
diff --git a/doc/statediagrams/general/initialization.uml b/doc/statediagrams/general/initialization.uml
index 81f9b20..8bd6261 100644
--- a/doc/statediagrams/general/initialization.uml
+++ b/doc/statediagrams/general/initialization.uml
@@ -27,53 +27,19 @@ title **µRtWare**\nInitialization\n
 
 start
 fork
+  :core;
   fork
-    partition "urt_core_t" {
-      note
-        must be initialized statically
-        (in startup thread)
-      endnote
-      :initialize members;
-    }
+    fork
+      :topics;
+    fork again
+      :messages;
+    endfork
+    :publishers;
   fork again
-    partition "urt_osThread_t" {
-      :initialize work area;
-      note
-        must be initialized statically
-        (in preamble / static memory allocation)
-      endnote
-      :initialize members;
-    }
+    :nodes;
   endfork
-  fork
-    partition "urt_topic_t" {
-      :initialize members;
-      :insert self to topic list;
-    }
-    partition "urt_publisher_t" {
-      :initialize members;
-      :find topic in topic list;
-      if (Any messages to contribute?) then (yes)
-        :lock topic;
-        :contribute messages;
-        :unlock topic;
-      else (no)
-      endif
-    }
-  fork again
-    partition "urt_node_t" {
-      :initialize members;
-      :insert self to node list;
-    }
-  endfork
-fork again
-  partition "urt_subscriber_t" {
-    :initialize members;
-  }
 fork again
-  partition "urt_message_t" {
-    :initialize members;
-  }
+  :subscribers;
 endfork
 stop
 
diff --git a/doc/statediagrams/message/urtMessageInit.svg b/doc/statediagrams/message/urtMessageInit.svg
new file mode 100644
index 0000000..76b85ad
--- /dev/null
+++ b/doc/statediagrams/message/urtMessageInit.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="197px" preserveAspectRatio="none" style="width:168px;height:197px;" version="1.1" viewBox="0 0 168 197" width="168px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ivv1i11bxbzw" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="39.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="144" x="12" y="47.6611">urtMessageInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="87" y="68.6143"/><ellipse cx="84.5" cy="82.8594" fill="#000000" filter="url(#f1ivv1i11bxbzw)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ivv1i11bxbzw)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="19" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="29" y="133.998">initialize members</text><ellipse cx="84.5" cy="176.8281" fill="none" filter="url(#f1ivv1i11bxbzw)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="85" cy="177.3281" fill="#000000" filter="url(#f1ivv1i11bxbzw)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="84.5" x2="84.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="80.5,102.8594,84.5,112.8594,88.5,102.8594,84.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="84.5" x2="84.5" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="80.5,156.8281,84.5,166.8281,88.5,156.8281,84.5,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtMessageInit()\n
+
+
+
+start
+:initialize members;
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/message/urtMessageInit.uml b/doc/statediagrams/message/urtMessageInit.uml
new file mode 100644
index 0000000..ed9ed30
--- /dev/null
+++ b/doc/statediagrams/message/urtMessageInit.uml
@@ -0,0 +1,32 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtMessageInit()\n
+
+
+
+start
+:initialize members;
+stop
+
+@enduml
diff --git a/doc/statediagrams/node/_main.svg b/doc/statediagrams/node/_main.svg
new file mode 100644
index 0000000..0ed1cac
--- /dev/null
+++ b/doc/statediagrams/node/_main.svg
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1039px" preserveAspectRatio="none" style="width:508px;height:1039px;" version="1.1" viewBox="0 0 508 1039" width="508px" zoomAndPan="magnify"><defs><filter height="300%" id="fi9az5e5ckvfv" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="208.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="66" x="220.25" y="47.6611">_main()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="256.25" y="68.6143"/><ellipse cx="267" cy="82.8594" fill="#000000" filter="url(#fi9az5e5ckvfv)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FFFFFF" filter="url(#fi9az5e5ckvfv)" height="352.1094" style="stroke: #000000; stroke-width: 2.0;" width="424" x="39.5" y="103.6611"/><path d="M89.5,104.6611 L89.5,112.958 L79.5,122.958 L39.5,122.958 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="40" x="42.5" y="117.6563">setup</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="188.5" y="139.958"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="198.5" y="161.0967">register to core event</text><path d="M49.5,198.3447 L49.5,223.4775 A0,0 0 0 0 49.5,223.4775 L164.5,223.4775 A0,0 0 0 0 164.5,223.4775 L164.5,216.3447 L184.5,210.9111 L164.5,208.3447 L164.5,208.3447 L154.5,198.3447 L49.5,198.3447 A0,0 0 0 0 49.5,198.3447 " fill="#FBFB77" filter="url(#fi9az5e5ckvfv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M154.5,198.3447 L154.5,208.3447 L164.5,208.3447 L154.5,198.3447 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="55.5" y="215.4116">must not loop!</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="184.5" y="193.9268"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="145" x="194.5" y="215.0654">execute setup callback</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="373" x="80.5" y="247.8955"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="353" x="90.5" y="269.0342">check returned event mask not to define the core event</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="299" x="117.5" y="301.8643"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="279" x="127.5" y="323.0029">suspend all child threads (if any, recursively)</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="327" x="103.5" y="355.833"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="113.5" y="376.9717">synchronize by calling</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="252.5" y="376.9717">urtCoreSynchronizeNdes()</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="123.5" y="409.8018"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="133.5" y="430.9404">resume all child threads (if any, recusively)</text><rect fill="#FFFFFF" filter="url(#fi9az5e5ckvfv)" height="375.3159" style="stroke: #000000; stroke-width: 2.0;" width="487.5" x="10" y="466.5723"/><path d="M50,467.5723 L50,475.8691 L40,485.8691 L10,485.8691 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="13" y="480.5674">loop</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="201.5" y="558.5796"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="211.5" y="579.7183">wait for any event</text><path d="M54,665.3687 L54,690.5015 A0,0 0 0 0 54,690.5015 L169,690.5015 A0,0 0 0 0 169,690.5015 L169,683.3687 L189,677.9351 L169,675.3687 L169,675.3687 L159,665.3687 L54,665.3687 A0,0 0 0 0 54,665.3687 " fill="#FBFB77" filter="url(#fi9az5e5ckvfv)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M159,665.3687 L159,675.3687 L169,675.3687 L159,665.3687 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="60" y="682.4355">must not loop!</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="189" y="660.9507"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="199" y="682.0894">execute loop callback</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="373" x="80.5" y="729.9194"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="353" x="90.5" y="751.0581">check returned event mask not to define the core event</text><polygon fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" points="204,612.5483,330,612.5483,342,624.5483,330,636.5483,204,636.5483,192,624.5483,204,612.5483" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="271" y="646.7588">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="204" y="628.3564">Was not a core event?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="342" y="621.9541">no</text><polygon fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" points="267,783.8882,279,795.8882,267,807.8882,255,795.8882,267,783.8882" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" points="199,502.8691,335,502.8691,347,514.8691,335,526.8691,199,526.8691,187,514.8691,199,502.8691" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="271" y="537.0796">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="199" y="518.6772">Termination requested?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="167" y="512.2749">yes</text><rect fill="#FFFFFF" filter="url(#fi9az5e5ckvfv)" height="136.2344" style="stroke: #000000; stroke-width: 2.0;" width="208" x="163" y="852.6899"/><path d="M210,853.6899 L210,861.9868 L200,871.9868 L163,871.9868 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="166" y="866.6851">outro</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="173" y="888.9868"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="183" y="910.1255">unregister from core event</text><rect fill="#FEFECE" filter="url(#fi9az5e5ckvfv)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="203.5" y="942.9556"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="213.5" y="964.0942">terminate thread</text><ellipse cx="267" cy="1018.9243" fill="none" filter="url(#fi9az5e5ckvfv)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="267.5" cy="1019.4243" fill="#000000" filter="url(#fi9az5e5ckvfv)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="173.9268" y2="193.9268"/><polygon fill="#A80036" points="263,183.9268,267,193.9268,271,183.9268,267,187.9268" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="227.8955" y2="247.8955"/><polygon fill="#A80036" points="263,237.8955,267,247.8955,271,237.8955,267,241.8955" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="281.8643" y2="301.8643"/><polygon fill="#A80036" points="263,291.8643,267,301.8643,271,291.8643,267,295.8643" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="335.833" y2="355.833"/><polygon fill="#A80036" points="263,345.833,267,355.833,271,345.833,267,349.833" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="389.8018" y2="409.8018"/><polygon fill="#A80036" points="263,399.8018,267,409.8018,271,399.8018,267,403.8018" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="92.8594" y2="139.958"/><polygon fill="#A80036" points="263,129.958,267,139.958,271,129.958,267,133.958" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="694.9194" y2="729.9194"/><polygon fill="#A80036" points="263,719.9194,267,729.9194,271,719.9194,267,723.9194" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="636.5483" y2="660.9507"/><polygon fill="#A80036" points="263,650.9507,267,660.9507,271,650.9507,267,654.9507" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342" x2="463.5" y1="624.5483" y2="624.5483"/><polygon fill="#A80036" points="459.5,702.4194,463.5,712.4194,467.5,702.4194,463.5,706.4194" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="463.5" x2="463.5" y1="624.5483" y2="795.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="463.5" x2="279" y1="795.8882" y2="795.8882"/><polygon fill="#A80036" points="289,791.8882,279,795.8882,289,799.8882,285,795.8882" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="763.8882" y2="783.8882"/><polygon fill="#A80036" points="263,773.8882,267,783.8882,271,773.8882,267,777.8882" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="592.5483" y2="612.5483"/><polygon fill="#A80036" points="263,602.5483,267,612.5483,271,602.5483,267,606.5483" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="526.8691" y2="558.5796"/><polygon fill="#A80036" points="263,548.5796,267,558.5796,271,548.5796,267,552.5796" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="807.8882" y2="817.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="481.5" y1="817.8882" y2="817.8882"/><polygon fill="#A80036" points="477.5,669.5327,481.5,659.5327,485.5,669.5327,481.5,665.5327" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="481.5" x2="481.5" y1="514.8691" y2="817.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="481.5" x2="347" y1="514.8691" y2="514.8691"/><polygon fill="#A80036" points="357,510.8691,347,514.8691,357,518.8691,353,514.8691" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="187" x2="32" y1="514.8691" y2="514.8691"/><polygon fill="#A80036" points="28,655.5327,32,665.5327,36,655.5327,32,659.5327" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="32" y1="514.8691" y2="829.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="267" y1="829.8882" y2="829.8882"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="829.8882" y2="888.9868"/><polygon fill="#A80036" points="263,878.9868,267,888.9868,271,878.9868,267,882.9868" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="443.7705" y2="502.8691"/><polygon fill="#A80036" points="263,492.8691,267,502.8691,271,492.8691,267,496.8691" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="922.9556" y2="942.9556"/><polygon fill="#A80036" points="263,932.9556,267,942.9556,271,932.9556,267,936.9556" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="267" x2="267" y1="976.9243" y2="1008.9243"/><polygon fill="#A80036" points="263,998.9243,267,1008.9243,271,998.9243,267,1002.9243" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\n_main()\n
+
+
+
+start
+partition "setup" {
+  :register to core event;
+  :execute setup callback;
+  note
+    must not loop!
+  endnote
+  :check returned event mask not to define the core event;
+  :suspend all child threads (if any, recursively);
+  :synchronize by calling ""urtCoreSynchronizeNdes()"";
+  :resume all child threads (if any, recusively);
+}
+partition "loop" {
+  while (Termination requested?) is (no)
+    :wait for any event;
+    if (Was not a core event?) then (yes)
+      :execute loop callback;
+      note
+        must not loop!
+      endnote
+      :check returned event mask not to define the core event;
+    else (no)
+    endif
+  endwhile (yes)
+}
+partition "outro" {
+  :unregister from core event;
+  :terminate thread;
+}
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/node/_main.uml b/doc/statediagrams/node/_main.uml
new file mode 100644
index 0000000..fcd61c3
--- /dev/null
+++ b/doc/statediagrams/node/_main.uml
@@ -0,0 +1,59 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\n_main()\n
+
+
+
+start
+partition "setup" {
+  :register to core event;
+  :execute setup callback;
+  note
+    must not loop!
+  endnote
+  :check returned event mask not to define the core event;
+  :suspend all child threads (if any, recursively);
+  :synchronize by calling ""urtCoreSynchronizeNdes()"";
+  :resume all child threads (if any, recusively);
+}
+partition "loop" {
+  while (Termination requested?) is (no)
+    :wait for any event;
+    if (Was not a core event?) then (yes)
+      :execute loop callback;
+      note
+        must not loop!
+      endnote
+      :check returned event mask not to define the core event;
+    else (no)
+    endif
+  endwhile (yes)
+}
+partition "outro" {
+  :unregister from core event;
+  :terminate thread;
+}
+stop
+
+@enduml
diff --git a/doc/statediagrams/node/nodethread.svg b/doc/statediagrams/node/nodethread.svg
deleted file mode 100644
index dd60271..0000000
--- a/doc/statediagrams/node/nodethread.svg
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="500px" preserveAspectRatio="none" style="width:598px;height:500px;" version="1.1" viewBox="0 0 598 500" width="598px" zoomAndPan="magnify"><defs><filter height="300%" id="f2m2ok2ab1v62" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="253.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="116" x="240" y="47.6611">Node Thread</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="301" y="68.6143"/><ellipse cx="453.5" cy="82.8594" fill="#000000" filter="url(#f2m2ok2ab1v62)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M236,117.2773 L236,142.4102 A0,0 0 0 0 236,142.4102 L351,142.4102 A0,0 0 0 0 351,142.4102 L351,135.2773 L371,129.8438 L351,127.2773 L351,127.2773 L341,117.2773 L236,117.2773 A0,0 0 0 0 236,117.2773 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M341,117.2773 L341,127.2773 L351,127.2773 L341,117.2773 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="242" y="134.3442">must not loop!</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="371" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="145" x="381" y="133.998">execute setup callback</text><path d="M10,171.2461 L10,196.3789 A0,0 0 0 0 10,196.3789 L300,196.3789 A0,0 0 0 0 300,196.3789 L300,189.2461 L320,183.8125 L300,181.2461 L300,181.2461 L290,171.2461 L10,171.2461 A0,0 0 0 0 10,171.2461 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M290,171.2461 L290,181.2461 L300,181.2461 L290,171.2461 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="16" y="188.313">threads are woken simultaneously by core</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="267" x="320" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="247" x="330" y="187.9668">suspend thread and all children (if any)</text><path d="M184,280.9253 L184,306.0581 A0,0 0 0 0 184,306.0581 L381,306.0581 A0,0 0 0 0 381,306.0581 L381,298.9253 L401,293.4917 L381,290.9253 L381,290.9253 L371,280.9253 L184,280.9253 A0,0 0 0 0 184,280.9253 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M371,280.9253 L371,290.9253 L381,290.9253 L371,280.9253 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="190" y="297.9922">maks specified by callbacks</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="401" y="276.5073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="85" x="411" y="297.646">wait for event</text><path d="M240.5,343.9917 L240.5,369.1245 A0,0 0 0 0 240.5,369.1245 L355.5,369.1245 A0,0 0 0 0 355.5,369.1245 L355.5,361.9917 L375.5,356.5581 L355.5,353.9917 L355.5,353.9917 L345.5,343.9917 L240.5,343.9917 A0,0 0 0 0 240.5,343.9917 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M345.5,343.9917 L345.5,353.9917 L355.5,353.9917 L345.5,343.9917 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="246.5" y="361.0586">must not loop!</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="375.5" y="339.5737"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="385.5" y="360.7124">execute loop callback</text><polygon fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" points="385.5,220.7969,521.5,220.7969,533.5,232.7969,521.5,244.7969,385.5,244.7969,373.5,232.7969,385.5,220.7969" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="457.5" y="255.0073">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="385.5" y="236.605">Termination requested?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="353.5" y="230.2026">yes</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="390" y="415.5425"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="400" y="436.6812">terminate thread</text><ellipse cx="453.5" cy="479.5112" fill="none" filter="url(#f2m2ok2ab1v62)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="454" cy="480.0112" fill="#000000" filter="url(#f2m2ok2ab1v62)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="449.5,102.8594,453.5,112.8594,457.5,102.8594,453.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="449.5,156.8281,453.5,166.8281,457.5,156.8281,453.5,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="310.4761" y2="339.5737"/><polygon fill="#A80036" points="449.5,329.5737,453.5,339.5737,457.5,329.5737,453.5,333.5737" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="244.7969" y2="276.5073"/><polygon fill="#A80036" points="449.5,266.5073,453.5,276.5073,457.5,266.5073,453.5,270.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="373.5425" y2="383.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="545.5" y1="383.5425" y2="383.5425"/><polygon fill="#A80036" points="541.5,319.5737,545.5,309.5737,549.5,319.5737,545.5,315.5737" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="545.5" x2="545.5" y1="232.7969" y2="383.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="545.5" x2="533.5" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="543.5,228.7969,533.5,232.7969,543.5,236.7969,539.5,232.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="172" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="168,305.5737,172,315.5737,176,305.5737,172,309.5737" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="172" y1="232.7969" y2="395.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="453.5" y1="395.5425" y2="395.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="395.5425" y2="415.5425"/><polygon fill="#A80036" points="449.5,405.5425,453.5,415.5425,457.5,405.5425,453.5,409.5425" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="449.5,210.7969,453.5,220.7969,457.5,210.7969,453.5,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="449.5112" y2="469.5112"/><polygon fill="#A80036" points="449.5,459.5112,453.5,469.5112,457.5,459.5112,453.5,463.5112" style="stroke: #A80036; stroke-width: 1.0;"/><!--
-@startuml
-
-title **µRtWare**\nNode Thread\n
-
-
-
-start
-:execute setup callback;
-note
-  must not loop!
-endnote
-:suspend thread and all children (if any);
-note
-  threads are woken simultaneously by core
-endnote
-while (Termination requested?) is (no)
-  :wait for event;
-  note
-    maks specified by callbacks
-  endnote
-  :execute loop callback;
-  note
-    must not loop!
-  endnote
-endwhile (yes)
-:terminate thread;
-stop
-
-@enduml
-
-PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
-Operating System: Linux
-OS Version: 4.15.0-36-generic
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/node/nodethread.uml b/doc/statediagrams/node/nodethread.uml
deleted file mode 100644
index 10a5e39..0000000
--- a/doc/statediagrams/node/nodethread.uml
+++ /dev/null
@@ -1,50 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2018  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-@startuml
-
-title **µRtWare**\nNode Thread\n
-
-
-
-start
-:execute setup callback;
-note
-  must not loop!
-endnote
-:suspend thread and all children (if any);
-note
-  threads are woken simultaneously by core
-endnote
-while (Termination requested?) is (no)
-  :wait for event;
-  note
-    maks specified by callbacks
-  endnote
-  :execute loop callback;
-  note
-    must not loop!
-  endnote
-endwhile (yes)
-:terminate thread;
-stop
-
-@enduml
diff --git a/doc/statediagrams/node/urtNodeInit.svg b/doc/statediagrams/node/urtNodeInit.svg
new file mode 100644
index 0000000..d711178
--- /dev/null
+++ b/doc/statediagrams/node/urtNodeInit.svg
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="251px" preserveAspectRatio="none" style="width:413px;height:251px;" version="1.1" viewBox="0 0 413 251" width="413px" zoomAndPan="magnify"><defs><filter height="300%" id="f1fe41zbnav97i" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="161.25" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="116" x="147.75" y="47.6611">urtNodeInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="208.75" y="68.6143"/><ellipse cx="291.5" cy="82.8594" fill="#000000" filter="url(#f1fe41zbnav97i)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M10,117.2773 L10,142.4102 A0,0 0 0 0 10,142.4102 L206,142.4102 A0,0 0 0 0 206,142.4102 L206,135.2773 L226,129.8438 L206,127.2773 L206,127.2773 L196,117.2773 L10,117.2773 A0,0 0 0 0 10,117.2773 " fill="#FBFB77" filter="url(#f1fe41zbnav97i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M196,117.2773 L196,127.2773 L206,127.2773 L196,117.2773 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="175" x="16" y="134.3442">including the thread object!</text><rect fill="#FEFECE" filter="url(#f1fe41zbnav97i)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="226" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="236" y="133.998">initialize members</text><rect fill="#FEFECE" filter="url(#f1fe41zbnav97i)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="222" x="180.5" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="202" x="190.5" y="187.9668">insert self to core's list of nodes</text><ellipse cx="291.5" cy="230.7969" fill="none" filter="url(#f1fe41zbnav97i)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="292" cy="231.2969" fill="#000000" filter="url(#f1fe41zbnav97i)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="291.5" x2="291.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="287.5,102.8594,291.5,112.8594,295.5,102.8594,291.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="291.5" x2="291.5" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="287.5,156.8281,291.5,166.8281,295.5,156.8281,291.5,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="291.5" x2="291.5" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="287.5,210.7969,291.5,220.7969,295.5,210.7969,291.5,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtNodeInit()\n
+
+
+
+start
+:initialize members;
+note
+  including the thread object!
+endnote
+:insert self to core's list of nodes;
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/node/urtNodeInit.uml b/doc/statediagrams/node/urtNodeInit.uml
new file mode 100644
index 0000000..20466ca
--- /dev/null
+++ b/doc/statediagrams/node/urtNodeInit.uml
@@ -0,0 +1,36 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtNodeInit()\n
+
+
+
+start
+:initialize members;
+note
+  including the thread object!
+endnote
+:insert self to core's list of nodes;
+stop
+
+@enduml
diff --git a/doc/statediagrams/publisher/publish.svg b/doc/statediagrams/publisher/publish.svg
deleted file mode 100644
index 14d12d0..0000000
--- a/doc/statediagrams/publisher/publish.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="866px" preserveAspectRatio="none" style="width:2377px;height:866px;" version="1.1" viewBox="0 0 2377 866" width="2377px" zoomAndPan="magnify"><defs><filter height="300%" id="fee41veaagnt2" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1143" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1096" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1190.5" y="68.6143"/><ellipse cx="657.25" cy="82.8594" fill="#000000" filter="url(#fee41veaagnt2)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="617.25" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="627.25" y="133.998">lock topic</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="588.75" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="598.75" y="187.9668">lock next message</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="344" x="485.25" y="276.5073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="324" x="495.25" y="297.646">wait for condition variable to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#fee41veaagnt2)" points="509.25,220.7969,805.25,220.7969,817.25,232.7969,805.25,244.7969,509.25,244.7969,497.25,232.7969,509.25,220.7969" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="661.25" y="255.0073">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="296" x="509.25" y="236.605">HRT consumers left for the message &amp; no timeout?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="483.25" y="230.2026">no</text><polygon fill="#FEFECE" filter="url(#fee41veaagnt2)" points="604.25,352.4761,710.25,352.4761,722.25,364.4761,710.25,376.4761,604.25,376.4761,592.25,364.4761,604.25,352.4761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="604.25" y="368.2842">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="572.25" y="361.8818">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="722.25" y="361.8818">no</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="10" y="386.4761"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="20" y="407.6147">unlock message</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="23" y="455.4448"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="33" y="476.5835">unlock topic</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="24" y="524.4136"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="34" y="545.5522">return error</text><ellipse cx="71" cy="603.3823" fill="none" filter="url(#fee41veaagnt2)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="71.5" cy="603.8823" fill="#000000" filter="url(#fee41veaagnt2)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fee41veaagnt2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2223" x="142" y="386.4761"/><rect fill="#000000" filter="url(#fee41veaagnt2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="861" x="156" y="442.7964"/><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="170" y="468.7964"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="180" y="489.9351">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="449" y="468.7964"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="459" y="489.9351">copy payload</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="579" y="468.7964"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="589" y="489.9351">set origin time</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="717" y="468.7964"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="727" y="489.9351">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#fee41veaagnt2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="861" x="156" y="522.7651"/><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="525.5" y="563.7651"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="535.5" y="584.9038">unlock message</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="350" x="1045" y="503.2808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="330" x="1055" y="524.4194">set QoS timer (rate) wrt. most critical HRT subscriber</text><path d="M1457,526.1011 L1457,551.2339 A0,0 0 0 0 1457,551.2339 L1946,551.2339 A0,0 0 0 0 1946,551.2339 L1946,544.1011 L1966,538.6675 L1946,536.1011 L1946,536.1011 L1936,526.1011 L1457,526.1011 A0,0 0 0 0 1457,526.1011 " fill="#FBFB77" filter="url(#fee41veaagnt2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1936,526.1011 L1936,536.1011 L1946,536.1011 L1936,526.1011 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="468" x="1463" y="543.168">no lock required since this timer is only accessed when the topic is locked</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="351" x="1966" y="521.6831"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="331" x="1976" y="542.8218">set QoS timer (delay) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#fee41veaagnt2)" points="2050,473.2808,2233,473.2808,2245,485.2808,2233,497.2808,2050,497.2808,2038,485.2808,2050,473.2808" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2145.5" y="507.4912">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="2050" y="489.0889">QoS timer (delay) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2245" y="482.6865">no</text><polygon fill="#FEFECE" filter="url(#fee41veaagnt2)" points="2141.5,580.0542,2153.5,592.0542,2141.5,604.0542,2129.5,592.0542,2141.5,580.0542" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fee41veaagnt2)" points="2080.5,412.4761,2202.5,412.4761,2214.5,424.4761,2202.5,436.4761,2080.5,436.4761,2068.5,424.4761,2080.5,412.4761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2145.5" y="446.6865">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2080.5" y="428.2842">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2054.5" y="421.8818">no</text><rect fill="#000000" filter="url(#fee41veaagnt2)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2223" x="142" y="648.0542"/><path d="M895,678.4722 L895,703.605 A0,0 0 0 0 895,703.605 L1194,703.605 A0,0 0 0 0 1194,703.605 L1194,696.4722 L1214,691.0386 L1194,688.4722 L1194,688.4722 L1184,678.4722 L895,678.4722 A0,0 0 0 0 895,678.4722 " fill="#FBFB77" filter="url(#fee41veaagnt2)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1184,678.4722 L1184,688.4722 L1194,688.4722 L1184,678.4722 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="278" x="901" y="695.5391">must be within lock because of HRT counter</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1214" y="674.0542"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1224" y="695.1929">fire event</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1205.5" y="728.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1215.5" y="749.1616">unlock topic</text><rect fill="#FEFECE" filter="url(#fee41veaagnt2)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1196.5" y="781.9917"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="1206.5" y="803.1304">return success</text><ellipse cx="1253.5" cy="845.9604" fill="none" filter="url(#fee41veaagnt2)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1254" cy="846.4604" fill="#000000" filter="url(#fee41veaagnt2)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="657.25" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="653.25,102.8594,657.25,112.8594,661.25,102.8594,657.25,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="657.25" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="653.25,156.8281,657.25,166.8281,661.25,156.8281,657.25,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="657.25" y1="244.7969" y2="276.5073"/><polygon fill="#A80036" points="653.25,266.5073,657.25,276.5073,661.25,266.5073,657.25,270.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="657.25" y1="310.4761" y2="320.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="841.25" y1="320.4761" y2="320.4761"/><polygon fill="#A80036" points="837.25,285.0894,841.25,275.0894,845.25,285.0894,841.25,281.0894" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="841.25" x2="841.25" y1="232.7969" y2="320.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="841.25" x2="817.25" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="827.25,228.7969,817.25,232.7969,827.25,236.7969,823.25,232.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="497.25" x2="473.25" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="469.25,271.0894,473.25,281.0894,477.25,271.0894,473.25,275.0894" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="473.25" x2="473.25" y1="232.7969" y2="332.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="473.25" x2="657.25" y1="332.4761" y2="332.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="657.25" y1="332.4761" y2="352.4761"/><polygon fill="#A80036" points="653.25,342.4761,657.25,352.4761,661.25,342.4761,657.25,346.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="657.25" x2="657.25" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="653.25,210.7969,657.25,220.7969,661.25,210.7969,657.25,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="420.4448" y2="455.4448"/><polygon fill="#A80036" points="67,445.4448,71,455.4448,75,445.4448,71,449.4448" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="489.4136" y2="524.4136"/><polygon fill="#A80036" points="67,514.4136,71,524.4136,75,514.4136,71,518.4136" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="558.3823" y2="593.3823"/><polygon fill="#A80036" points="67,583.3823,71,593.3823,75,583.3823,71,587.3823" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="295.5" y1="448.7964" y2="468.7964"/><polygon fill="#A80036" points="291.5,458.7964,295.5,468.7964,299.5,458.7964,295.5,462.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500" x2="500" y1="448.7964" y2="468.7964"/><polygon fill="#A80036" points="496,458.7964,500,468.7964,504,458.7964,500,462.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="634" x2="634" y1="448.7964" y2="468.7964"/><polygon fill="#A80036" points="630,458.7964,634,468.7964,638,458.7964,634,462.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="860" y1="448.7964" y2="468.7964"/><polygon fill="#A80036" points="856,458.7964,860,468.7964,864,458.7964,860,462.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="295.5" y1="502.7651" y2="522.7651"/><polygon fill="#A80036" points="291.5,512.7651,295.5,522.7651,299.5,512.7651,295.5,516.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500" x2="500" y1="502.7651" y2="522.7651"/><polygon fill="#A80036" points="496,512.7651,500,522.7651,504,512.7651,500,516.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="634" x2="634" y1="502.7651" y2="522.7651"/><polygon fill="#A80036" points="630,512.7651,634,522.7651,638,512.7651,634,516.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="860" y1="502.7651" y2="522.7651"/><polygon fill="#A80036" points="856,512.7651,860,522.7651,864,512.7651,860,516.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.5" x2="586.5" y1="528.7651" y2="563.7651"/><polygon fill="#A80036" points="582.5,553.7651,586.5,563.7651,590.5,553.7651,586.5,557.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2141.5" y1="497.2808" y2="521.6831"/><polygon fill="#A80036" points="2137.5,511.6831,2141.5,521.6831,2145.5,511.6831,2141.5,515.6831" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2245" x2="2327" y1="485.2808" y2="485.2808"/><polygon fill="#A80036" points="2323,528.6675,2327,538.6675,2331,528.6675,2327,532.6675" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2327" x2="2327" y1="485.2808" y2="592.0542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2327" x2="2153.5" y1="592.0542" y2="592.0542"/><polygon fill="#A80036" points="2163.5,588.0542,2153.5,592.0542,2163.5,596.0542,2159.5,592.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2141.5" y1="555.6519" y2="580.0542"/><polygon fill="#A80036" points="2137.5,570.0542,2141.5,580.0542,2145.5,570.0542,2141.5,574.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2141.5" y1="436.4761" y2="473.2808"/><polygon fill="#A80036" points="2137.5,463.2808,2141.5,473.2808,2145.5,463.2808,2141.5,467.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2141.5" y1="604.0542" y2="616.0542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2351" y1="616.0542" y2="616.0542"/><polygon fill="#A80036" points="2347,530.2651,2351,520.2651,2355,530.2651,2351,526.2651" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2351" x2="2351" y1="424.4761" y2="616.0542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2351" x2="2214.5" y1="424.4761" y2="424.4761"/><polygon fill="#A80036" points="2224.5,420.4761,2214.5,424.4761,2224.5,428.4761,2220.5,424.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2068.5" x2="1435" y1="424.4761" y2="424.4761"/><polygon fill="#A80036" points="1431,516.2651,1435,526.2651,1439,516.2651,1435,520.2651" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1435" x2="1435" y1="424.4761" y2="628.0542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1435" x2="2141.5" y1="628.0542" y2="628.0542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2141.5" y1="628.0542" y2="648.0542"/><polygon fill="#A80036" points="2137.5,638.0542,2141.5,648.0542,2145.5,638.0542,2141.5,642.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.5" x2="586.5" y1="392.4761" y2="442.7964"/><polygon fill="#A80036" points="582.5,432.7964,586.5,442.7964,590.5,432.7964,586.5,436.7964" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1220" x2="1220" y1="392.4761" y2="503.2808"/><polygon fill="#A80036" points="1216,493.2808,1220,503.2808,1224,493.2808,1220,497.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2141.5" x2="2141.5" y1="392.4761" y2="412.4761"/><polygon fill="#A80036" points="2137.5,402.4761,2141.5,412.4761,2145.5,402.4761,2141.5,406.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.5" x2="586.5" y1="597.7339" y2="648.0542"/><polygon fill="#A80036" points="582.5,638.0542,586.5,648.0542,590.5,638.0542,586.5,642.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1220" x2="1220" y1="537.2495" y2="648.0542"/><polygon fill="#A80036" points="1216,638.0542,1220,648.0542,1224,638.0542,1220,642.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="654.0542" y2="674.0542"/><polygon fill="#A80036" points="1249.5,664.0542,1253.5,674.0542,1257.5,664.0542,1253.5,668.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="708.0229" y2="728.0229"/><polygon fill="#A80036" points="1249.5,718.0229,1253.5,728.0229,1257.5,718.0229,1253.5,722.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="761.9917" y2="781.9917"/><polygon fill="#A80036" points="1249.5,771.9917,1253.5,781.9917,1257.5,771.9917,1253.5,775.9917" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="815.9604" y2="835.9604"/><polygon fill="#A80036" points="1249.5,825.9604,1253.5,835.9604,1257.5,825.9604,1253.5,829.9604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592.25" x2="71" y1="364.4761" y2="364.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="364.4761" y2="386.4761"/><polygon fill="#A80036" points="67,376.4761,71,386.4761,75,376.4761,71,380.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="722.25" x2="1253.5" y1="364.4761" y2="364.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1253.5" x2="1253.5" y1="364.4761" y2="386.4761"/><polygon fill="#A80036" points="1249.5,376.4761,1253.5,386.4761,1257.5,376.4761,1253.5,380.4761" style="stroke: #A80036; stroke-width: 1.0;"/><!--
-@startuml
-
-title **µRtWare**\nurtPublisherPublish()\n
-
-
-
-start
-:lock topic;
-:lock next message;
-while (HRT consumers left for the message & no timeout?) is (yes)
-  :wait for condition variable to be signaled or timeout;
-endwhile (no)
-if (Timeout occurred?) then (yes)
-  :unlock message;
-  :unlock topic;
-  :return error;
-  stop
-else (no)
-  fork
-    fork
-      :iterate topic pointer to this message;
-    fork again
-      :copy payload;
-    fork again
-      :set origin time;
-    fork again
-      :set number of HRT consumers (from topic);
-    endfork
-    :unlock message;
-  fork again
-    :set QoS timer (rate) wrt. most critical HRT subscriber;
-  fork again
-    while (HRT subscribers left?) is (yes)
-      if (QoS timer (delay) is not armed?) then (yes)
-        :set QoS timer (delay) wrt. origin time of the message;
-        note
-          no lock required since this timer is only accessed when the topic is locked
-        endnote
-      else (no)
-      endif
-    endwhile (no)
-  endfork
-  :fire event;
-  note
-    must be within lock because of HRT counter
-  endnote
-  :unlock topic;
-  :return success;
-  stop
-endif
-
-@enduml
-
-PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
-Operating System: Linux
-OS Version: 4.15.0-36-generic
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/publisher/publish.uml b/doc/statediagrams/publisher/publish.uml
deleted file mode 100644
index 0b60c50..0000000
--- a/doc/statediagrams/publisher/publish.uml
+++ /dev/null
@@ -1,73 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2018  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-@startuml
-
-title **µRtWare**\nurtPublisherPublish()\n
-
-
-
-start
-:lock topic;
-:lock next message;
-while (HRT consumers left for the message & no timeout?) is (yes)
-  :wait for condition variable to be signaled or timeout;
-endwhile (no)
-if (Timeout occurred?) then (yes)
-  :unlock message;
-  :unlock topic;
-  :return error;
-  stop
-else (no)
-  fork
-    fork
-      :iterate topic pointer to this message;
-    fork again
-      :copy payload;
-    fork again
-      :set origin time;
-    fork again
-      :set number of HRT consumers (from topic);
-    endfork
-    :unlock message;
-  fork again
-    :set QoS timer (rate) wrt. most critical HRT subscriber;
-  fork again
-    while (HRT subscribers left?) is (yes)
-      if (QoS timer (delay) is not armed?) then (yes)
-        :set QoS timer (delay) wrt. origin time of the message;
-        note
-          no lock required since this timer is only accessed when the topic is locked
-        endnote
-      else (no)
-      endif
-    endwhile (no)
-  endfork
-  :fire event;
-  note
-    must be within lock because of HRT counter
-  endnote
-  :unlock topic;
-  :return success;
-  stop
-endif
-
-@enduml
diff --git a/doc/statediagrams/publisher/urtPublisherInit.svg b/doc/statediagrams/publisher/urtPublisherInit.svg
new file mode 100644
index 0000000..add33a0
--- /dev/null
+++ b/doc/statediagrams/publisher/urtPublisherInit.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="554px" preserveAspectRatio="none" style="width:714px;height:554px;" version="1.1" viewBox="0 0 714 554" width="714px" zoomAndPan="magnify"><defs><filter height="300%" id="fghs0yzur5onb" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="311.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="150" x="281" y="47.6611">urtPublisherInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="359" y="68.6143"/><ellipse cx="344" cy="82.8594" fill="#000000" filter="url(#fghs0yzur5onb)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fghs0yzur5onb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="278.5" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="288.5" y="133.998">initialize members</text><rect fill="#FEFECE" filter="url(#fghs0yzur5onb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="304" y="215.2305"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="314" y="236.3691">lock topic</text><rect fill="#FFFFFF" filter="url(#fghs0yzur5onb)" height="145.5859" style="stroke: #000000; stroke-width: 2.0;" width="668" x="10" y="260.001"/><path d="M167,261.001 L167,269.2979 L157,279.2979 L10,279.2979 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="13" y="273.9961">contribute messages</text><rect fill="#FEFECE" filter="url(#fghs0yzur5onb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="106.5" y="296.2979"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="116.5" y="317.4365">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="140.5" y="317.4365">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="172.5" y="317.4365">pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fghs0yzur5onb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="648" x="20" y="359.6182"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="30" y="380.7568">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="54" y="380.7568">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="572" x="86" y="380.7568">pointer of last message to contribute to message formerly after the topic's latest message</text><rect fill="#FEFECE" filter="url(#fghs0yzur5onb)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="296" y="425.5869"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="306" y="446.7256">unlock topic</text><polygon fill="#FEFECE" filter="url(#fghs0yzur5onb)" points="274,166.8281,414,166.8281,426,178.8281,414,190.8281,274,190.8281,262,178.8281,274,166.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="348" y="201.0386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="274" y="182.6362">Messages to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="426" y="176.2339">no</text><polygon fill="#FEFECE" filter="url(#fghs0yzur5onb)" points="344,479.5557,356,491.5557,344,503.5557,332,491.5557,344,479.5557" style="stroke: #A80036; stroke-width: 1.5;"/><ellipse cx="344" cy="533.5557" fill="none" filter="url(#fghs0yzur5onb)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="344.5" cy="534.0557" fill="#000000" filter="url(#fghs0yzur5onb)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="340,102.8594,344,112.8594,348,102.8594,344,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="330.2666" y2="359.6182"/><polygon fill="#A80036" points="340,349.6182,344,359.6182,348,349.6182,344,353.6182" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="249.1992" y2="296.2979"/><polygon fill="#A80036" points="340,286.2979,344,296.2979,348,286.2979,344,290.2979" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="393.5869" y2="425.5869"/><polygon fill="#A80036" points="340,415.5869,344,425.5869,348,415.5869,344,419.5869" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="190.8281" y2="215.2305"/><polygon fill="#A80036" points="340,205.2305,344,215.2305,348,205.2305,344,209.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="426" x2="688" y1="178.8281" y2="178.8281"/><polygon fill="#A80036" points="684,329.6182,688,339.6182,692,329.6182,688,333.6182" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="688" y1="178.8281" y2="491.5557"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688" x2="356" y1="491.5557" y2="491.5557"/><polygon fill="#A80036" points="366,487.5557,356,491.5557,366,495.5557,362,491.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="459.5557" y2="479.5557"/><polygon fill="#A80036" points="340,469.5557,344,479.5557,348,469.5557,344,473.5557" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="340,156.8281,344,166.8281,348,156.8281,344,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="344" x2="344" y1="503.5557" y2="523.5557"/><polygon fill="#A80036" points="340,513.5557,344,523.5557,348,513.5557,344,517.5557" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtPublisherInit()\n
+
+
+
+start
+:initialize members;
+if (Messages to contribute?) then (yes)
+  :lock topic;
+  partition "contribute messages" {
+    :set ""next"" pointer of topic's latest message to first message to contribute;
+    :set ""next"" pointer of last message to contribute to message formerly after the topic's latest message;
+  }
+  :unlock topic;
+else (no)
+endif
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/publisher/urtPublisherInit.uml b/doc/statediagrams/publisher/urtPublisherInit.uml
new file mode 100644
index 0000000..105f48b
--- /dev/null
+++ b/doc/statediagrams/publisher/urtPublisherInit.uml
@@ -0,0 +1,41 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtPublisherInit()\n
+
+
+
+start
+:initialize members;
+if (Messages to contribute?) then (yes)
+  :lock topic;
+  partition "contribute messages" {
+    :set ""next"" pointer of topic's latest message to first message to contribute;
+    :set ""next"" pointer of last message to contribute to message formerly after the topic's latest message;
+  }
+  :unlock topic;
+else (no)
+endif
+stop
+
+@enduml
diff --git a/doc/statediagrams/publisher/urtPublisherPublish.svg b/doc/statediagrams/publisher/urtPublisherPublish.svg
new file mode 100644
index 0000000..90ffb37
--- /dev/null
+++ b/doc/statediagrams/publisher/urtPublisherPublish.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="933px" preserveAspectRatio="none" style="width:2508px;height:933px;" version="1.1" viewBox="0 0 2508 933" width="2508px" zoomAndPan="magnify"><defs><filter height="300%" id="f1ns8p1bc9moh9" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="1208.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="183" x="1161.5" y="47.6611">urtPublisherPublish()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1256" y="68.6143"/><ellipse cx="690" cy="82.8594" fill="#000000" filter="url(#f1ns8p1bc9moh9)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="650" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="660" y="133.998">lock topic</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="621.5" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="631.5" y="187.9668">lock next message</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="344" x="518" y="276.5073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="324" x="528" y="297.646">wait for condition variable to be signaled or timeout</text><polygon fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" points="542,220.7969,838,220.7969,850,232.7969,838,244.7969,542,244.7969,530,232.7969,542,220.7969" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="694" y="255.0073">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="296" x="542" y="236.605">HRT consumers left for the message &amp; no timeout?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="516" y="230.2026">no</text><polygon fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" points="637,352.4761,743,352.4761,755,364.4761,743,376.4761,637,376.4761,625,364.4761,637,352.4761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="637" y="368.2842">Timeout occurred?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="605" y="361.8818">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="755" y="361.8818">no</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="10" y="386.4761"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="20" y="407.6147">unlock message</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="23" y="455.4448"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="33" y="476.5835">unlock topic</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="24" y="524.4136"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="34" y="545.5522">return error</text><ellipse cx="71" cy="603.3823" fill="none" filter="url(#f1ns8p1bc9moh9)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="71.5" cy="603.8823" fill="#000000" filter="url(#f1ns8p1bc9moh9)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#f1ns8p1bc9moh9)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2354" x="142" y="386.4761"/><rect fill="#000000" filter="url(#f1ns8p1bc9moh9)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="861" x="156" y="477.2808"/><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="170" y="503.2808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="180" y="524.4194">iterate topic pointer to this message</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="449" y="503.2808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="459" y="524.4194">copy payload</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="579" y="503.2808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="589" y="524.4194">set origin time</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="717" y="503.2808"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="266" x="727" y="524.4194">set number of HRT consumers (from topic)</text><rect fill="#000000" filter="url(#f1ns8p1bc9moh9)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="861" x="156" y="557.2495"/><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="525.5" y="598.2495"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="535.5" y="619.3882">unlock message</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="398" x="1045" y="537.7651"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="378" x="1055" y="558.9038">set QoS rate timer (@topic) wrt. most critical HRT subscriber</text><path d="M1505,526.1011 L1505,551.2339 A0,0 0 0 0 1505,551.2339 L1994,551.2339 A0,0 0 0 0 1994,551.2339 L1994,544.1011 L2014,538.6675 L1994,536.1011 L1994,536.1011 L1984,526.1011 L1505,526.1011 A0,0 0 0 0 1505,526.1011 " fill="#FBFB77" filter="url(#f1ns8p1bc9moh9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1984,526.1011 L1984,536.1011 L1994,536.1011 L1984,526.1011 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="468" x="1511" y="543.168">no lock required since this timer is only accessed when the topic is locked</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="434" x="2014" y="521.6831"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="414" x="2024" y="542.8218">set QoS delay timer (@subscriber) wrt. origin time of the message</text><polygon fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" points="2101,473.2808,2361,473.2808,2373,485.2808,2361,497.2808,2101,497.2808,2089,485.2808,2101,473.2808" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2235" y="507.4912">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="260" x="2101" y="489.0889">QoS delay timer (@subscriber) is not armed?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2373" y="482.6865">no</text><polygon fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" points="2231,580.0542,2243,592.0542,2231,604.0542,2219,592.0542,2231,580.0542" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="2127" y="639.0542"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="188" x="2137" y="660.1929">iterate to next HRT subscriber</text><polygon fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" points="2170,412.4761,2292,412.4761,2304,424.4761,2292,436.4761,2170,436.4761,2158,424.4761,2170,412.4761" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="2235" y="446.6865">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2170" y="428.2842">HRT subscribers left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="2144" y="421.8818">no</text><rect fill="#000000" filter="url(#f1ns8p1bc9moh9)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="2354" x="142" y="715.0229"/><path d="M960.5,745.4409 L960.5,770.5737 A0,0 0 0 0 960.5,770.5737 L1259.5,770.5737 A0,0 0 0 0 1259.5,770.5737 L1259.5,763.4409 L1279.5,758.0073 L1259.5,755.4409 L1259.5,755.4409 L1249.5,745.4409 L960.5,745.4409 A0,0 0 0 0 960.5,745.4409 " fill="#FBFB77" filter="url(#f1ns8p1bc9moh9)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1249.5,745.4409 L1249.5,755.4409 L1259.5,755.4409 L1249.5,745.4409 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="278" x="966.5" y="762.5078">must be within lock because of HRT counter</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="1279.5" y="741.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1289.5" y="762.1616">fire event</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1271" y="794.9917"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1281" y="816.1304">unlock topic</text><rect fill="#FEFECE" filter="url(#f1ns8p1bc9moh9)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1262" y="848.9604"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="1272" y="870.0991">return success</text><ellipse cx="1319" cy="912.9292" fill="none" filter="url(#f1ns8p1bc9moh9)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1319.5" cy="913.4292" fill="#000000" filter="url(#f1ns8p1bc9moh9)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="690" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="686,102.8594,690,112.8594,694,102.8594,690,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="690" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="686,156.8281,690,166.8281,694,156.8281,690,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="690" y1="244.7969" y2="276.5073"/><polygon fill="#A80036" points="686,266.5073,690,276.5073,694,266.5073,690,270.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="690" y1="310.4761" y2="320.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="874" y1="320.4761" y2="320.4761"/><polygon fill="#A80036" points="870,285.0894,874,275.0894,878,285.0894,874,281.0894" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874" x2="874" y1="232.7969" y2="320.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874" x2="850" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="860,228.7969,850,232.7969,860,236.7969,856,232.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="530" x2="506" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="502,271.0894,506,281.0894,510,271.0894,506,275.0894" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="506" x2="506" y1="232.7969" y2="332.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="506" x2="690" y1="332.4761" y2="332.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="690" y1="332.4761" y2="352.4761"/><polygon fill="#A80036" points="686,342.4761,690,352.4761,694,342.4761,690,346.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="690" x2="690" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="686,210.7969,690,220.7969,694,210.7969,690,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="420.4448" y2="455.4448"/><polygon fill="#A80036" points="67,445.4448,71,455.4448,75,445.4448,71,449.4448" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="489.4136" y2="524.4136"/><polygon fill="#A80036" points="67,514.4136,71,524.4136,75,514.4136,71,518.4136" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="558.3823" y2="593.3823"/><polygon fill="#A80036" points="67,583.3823,71,593.3823,75,583.3823,71,587.3823" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="295.5" y1="483.2808" y2="503.2808"/><polygon fill="#A80036" points="291.5,493.2808,295.5,503.2808,299.5,493.2808,295.5,497.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500" x2="500" y1="483.2808" y2="503.2808"/><polygon fill="#A80036" points="496,493.2808,500,503.2808,504,493.2808,500,497.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="634" x2="634" y1="483.2808" y2="503.2808"/><polygon fill="#A80036" points="630,493.2808,634,503.2808,638,493.2808,634,497.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="860" y1="483.2808" y2="503.2808"/><polygon fill="#A80036" points="856,493.2808,860,503.2808,864,493.2808,860,497.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="295.5" y1="537.2495" y2="557.2495"/><polygon fill="#A80036" points="291.5,547.2495,295.5,557.2495,299.5,547.2495,295.5,551.2495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500" x2="500" y1="537.2495" y2="557.2495"/><polygon fill="#A80036" points="496,547.2495,500,557.2495,504,547.2495,500,551.2495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="634" x2="634" y1="537.2495" y2="557.2495"/><polygon fill="#A80036" points="630,547.2495,634,557.2495,638,547.2495,634,551.2495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860" x2="860" y1="537.2495" y2="557.2495"/><polygon fill="#A80036" points="856,547.2495,860,557.2495,864,547.2495,860,551.2495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.5" x2="586.5" y1="563.2495" y2="598.2495"/><polygon fill="#A80036" points="582.5,588.2495,586.5,598.2495,590.5,588.2495,586.5,592.2495" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="497.2808" y2="521.6831"/><polygon fill="#A80036" points="2227,511.6831,2231,521.6831,2235,511.6831,2231,515.6831" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2373" x2="2458" y1="485.2808" y2="485.2808"/><polygon fill="#A80036" points="2454,528.6675,2458,538.6675,2462,528.6675,2458,532.6675" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2458" x2="2458" y1="485.2808" y2="592.0542"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2458" x2="2243" y1="592.0542" y2="592.0542"/><polygon fill="#A80036" points="2253,588.0542,2243,592.0542,2253,596.0542,2249,592.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="555.6519" y2="580.0542"/><polygon fill="#A80036" points="2227,570.0542,2231,580.0542,2235,570.0542,2231,574.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="604.0542" y2="639.0542"/><polygon fill="#A80036" points="2227,629.0542,2231,639.0542,2235,629.0542,2231,633.0542" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="436.4761" y2="473.2808"/><polygon fill="#A80036" points="2227,463.2808,2231,473.2808,2235,463.2808,2231,467.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="673.0229" y2="683.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2482" y1="683.0229" y2="683.0229"/><polygon fill="#A80036" points="2478,564.7495,2482,554.7495,2486,564.7495,2482,560.7495" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2482" x2="2482" y1="424.4761" y2="683.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2482" x2="2304" y1="424.4761" y2="424.4761"/><polygon fill="#A80036" points="2314,420.4761,2304,424.4761,2314,428.4761,2310,424.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2158" x2="1483" y1="424.4761" y2="424.4761"/><polygon fill="#A80036" points="1479,550.7495,1483,560.7495,1487,550.7495,1483,554.7495" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1483" x2="1483" y1="424.4761" y2="695.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1483" x2="2231" y1="695.0229" y2="695.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="695.0229" y2="715.0229"/><polygon fill="#A80036" points="2227,705.0229,2231,715.0229,2235,705.0229,2231,709.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.5" x2="586.5" y1="392.4761" y2="477.2808"/><polygon fill="#A80036" points="582.5,467.2808,586.5,477.2808,590.5,467.2808,586.5,471.2808" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1244" x2="1244" y1="392.4761" y2="537.7651"/><polygon fill="#A80036" points="1240,527.7651,1244,537.7651,1248,527.7651,1244,531.7651" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2231" x2="2231" y1="392.4761" y2="412.4761"/><polygon fill="#A80036" points="2227,402.4761,2231,412.4761,2235,402.4761,2231,406.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.5" x2="586.5" y1="632.2183" y2="715.0229"/><polygon fill="#A80036" points="582.5,705.0229,586.5,715.0229,590.5,705.0229,586.5,709.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1244" x2="1244" y1="571.7339" y2="715.0229"/><polygon fill="#A80036" points="1240,705.0229,1244,715.0229,1248,705.0229,1244,709.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319" x2="1319" y1="721.0229" y2="741.0229"/><polygon fill="#A80036" points="1315,731.0229,1319,741.0229,1323,731.0229,1319,735.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319" x2="1319" y1="774.9917" y2="794.9917"/><polygon fill="#A80036" points="1315,784.9917,1319,794.9917,1323,784.9917,1319,788.9917" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319" x2="1319" y1="828.9604" y2="848.9604"/><polygon fill="#A80036" points="1315,838.9604,1319,848.9604,1323,838.9604,1319,842.9604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319" x2="1319" y1="882.9292" y2="902.9292"/><polygon fill="#A80036" points="1315,892.9292,1319,902.9292,1323,892.9292,1319,896.9292" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="625" x2="71" y1="364.4761" y2="364.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="71" y1="364.4761" y2="386.4761"/><polygon fill="#A80036" points="67,376.4761,71,386.4761,75,376.4761,71,380.4761" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="755" x2="1319" y1="364.4761" y2="364.4761"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319" x2="1319" y1="364.4761" y2="386.4761"/><polygon fill="#A80036" points="1315,376.4761,1319,386.4761,1323,376.4761,1319,380.4761" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtPublisherPublish()\n
+
+
+
+start
+:lock topic;
+:lock next message;
+while (HRT consumers left for the message & no timeout?) is (yes)
+  :wait for condition variable to be signaled or timeout;
+endwhile (no)
+if (Timeout occurred?) then (yes)
+  :unlock message;
+  :unlock topic;
+  :return error;
+  stop
+else (no)
+  fork
+    fork
+      :iterate topic pointer to this message;
+    fork again
+      :copy payload;
+    fork again
+      :set origin time;
+    fork again
+      :set number of HRT consumers (from topic);
+    endfork
+    :unlock message;
+  fork again
+    :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
+  fork again
+    while (HRT subscribers left?) is (yes)
+      if (QoS delay timer (@subscriber) is not armed?) then (yes)
+        :set QoS delay timer (@subscriber) wrt. origin time of the message;
+        note
+          no lock required since this timer is only accessed when the topic is locked
+        endnote
+      else (no)
+      endif
+      :iterate to next HRT subscriber;
+    endwhile (no)
+  endfork
+  :fire event;
+  note
+    must be within lock because of HRT counter
+  endnote
+  :unlock topic;
+  :return success;
+  stop
+endif
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/publisher/urtPublisherPublish.uml b/doc/statediagrams/publisher/urtPublisherPublish.uml
new file mode 100644
index 0000000..d41ceae
--- /dev/null
+++ b/doc/statediagrams/publisher/urtPublisherPublish.uml
@@ -0,0 +1,74 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtPublisherPublish()\n
+
+
+
+start
+:lock topic;
+:lock next message;
+while (HRT consumers left for the message & no timeout?) is (yes)
+  :wait for condition variable to be signaled or timeout;
+endwhile (no)
+if (Timeout occurred?) then (yes)
+  :unlock message;
+  :unlock topic;
+  :return error;
+  stop
+else (no)
+  fork
+    fork
+      :iterate topic pointer to this message;
+    fork again
+      :copy payload;
+    fork again
+      :set origin time;
+    fork again
+      :set number of HRT consumers (from topic);
+    endfork
+    :unlock message;
+  fork again
+    :set QoS rate timer (@topic) wrt. most critical HRT subscriber;
+  fork again
+    while (HRT subscribers left?) is (yes)
+      if (QoS delay timer (@subscriber) is not armed?) then (yes)
+        :set QoS delay timer (@subscriber) wrt. origin time of the message;
+        note
+          no lock required since this timer is only accessed when the topic is locked
+        endnote
+      else (no)
+      endif
+      :iterate to next HRT subscriber;
+    endwhile (no)
+  endfork
+  :fire event;
+  note
+    must be within lock because of HRT counter
+  endnote
+  :unlock topic;
+  :return success;
+  stop
+endif
+
+@enduml
diff --git a/doc/statediagrams/subscriber/receive.svg b/doc/statediagrams/subscriber/receive.svg
deleted file mode 100644
index c662bd6..0000000
--- a/doc/statediagrams/subscriber/receive.svg
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1377px" preserveAspectRatio="none" style="width:1968px;height:1377px;" version="1.1" viewBox="0 0 1968 1377" width="1968px" zoomAndPan="magnify"><defs><filter height="300%" id="f13ufdpbbhx79" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="938.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="256" x="855" y="47.6611">urtSubscriberFetchMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="986" y="68.6143"/><path d="M1046,72.8594 L1046,97.9922 A0,0 0 0 0 1046,97.9922 L1161,97.9922 A0,0 0 0 0 1161,97.9922 L1161,90.8594 L1181,85.4258 L1161,82.8594 L1161,82.8594 L1151,72.8594 L1046,72.8594 A0,0 0 0 0 1046,72.8594 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1151,72.8594 L1151,82.8594 L1161,82.8594 L1151,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="1052" y="89.9263">event received</text><ellipse cx="1191" cy="85.4258" fill="#000000" filter="url(#f13ufdpbbhx79)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M748,122.4102 L748,147.543 A0,0 0 0 0 748,147.543 L1131,147.543 A0,0 0 0 0 1131,147.543 L1131,140.4102 L1151,134.9766 L1131,132.4102 L1131,132.4102 L1121,122.4102 L748,122.4102 A0,0 0 0 0 748,122.4102 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1121,122.4102 L1121,132.4102 L1131,132.4102 L1121,122.4102 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="362" x="754" y="139.4771">The message list is part of the topic and must be locked.</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1151" y="117.9922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1161" y="139.1309">lock topic</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1137.5,171.9609,1244.5,171.9609,1256.5,183.9609,1244.5,195.9609,1137.5,195.9609,1125.5,183.9609,1137.5,171.9609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1137.5" y="187.769">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1105.5" y="181.3667">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1256.5" y="181.3667">no</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="595" y="205.9609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="605" y="227.0996">lock next message</text><rect fill="#FFFFFF" filter="url(#f13ufdpbbhx79)" height="471.2388" style="stroke: #000000; stroke-width: 2.0;" width="1304" x="10" y="306.4419"/><path d="M124,307.4419 L124,315.7388 L114,325.7388 L10,325.7388 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="13" y="320.437">iterate to latest</text><path d="M372,347.1567 L372,372.2896 A0,0 0 0 0 372,372.2896 L575,372.2896 A0,0 0 0 0 575,372.2896 L575,365.1567 L595,359.7231 L575,357.1567 L575,357.1567 L565,347.1567 L372,347.1567 A0,0 0 0 0 372,347.1567 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M565,347.1567 L565,357.1567 L575,357.1567 L565,347.1567 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="378" y="364.2236">locked two messaged ahead</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="595" y="342.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="605" y="363.8774">lock next message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1239" x="44" y="457.5122"/><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1046" x="58" y="483.5122"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="72" y="509.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="82" y="530.6509">decremenet HRT counter of current message</text><path d="M404,513.9302 L404,539.063 A0,0 0 0 0 404,539.063 L893,539.063 A0,0 0 0 0 893,539.063 L893,531.9302 L913,526.4966 L893,523.9302 L893,523.9302 L883,513.9302 L404,513.9302 A0,0 0 0 0 404,513.9302 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M883,513.9302 L883,523.9302 L893,523.9302 L883,513.9302 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="468" x="410" y="530.9971">no lock required since this timer is only accessed when the topic is locked</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="913" y="509.5122"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="157" x="923" y="530.6509">update QoS timer (delay)</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1046" x="58" y="563.481"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="495" y="600.3364"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="505" y="621.4751">unlock current message</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1132" y="543.9966"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1142" y="565.1353">lock next message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1239" x="44" y="654.3052"/><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="509.5,396.7075,817.5,396.7075,829.5,408.7075,817.5,420.7075,509.5,420.7075,497.5,408.7075,509.5,396.7075" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="667.5" y="430.918">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="308" x="509.5" y="412.5156">Timestamp of next message is younger than current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="483.5" y="406.1133">no</text><path d="M304,717.415 L304,757.6807 A0,0 0 0 0 304,757.6807 L567,757.6807 A0,0 0 0 0 567,757.6807 L567,741.5479 L587,737.5479 L567,733.5479 L567,727.415 L557,717.415 L304,717.415 A0,0 0 0 0 304,717.415 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M557,717.415 L557,727.415 L567,727.415 L557,717.415 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="201" x="310" y="734.4819">one message ahead still locked</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="242" x="310" y="749.6147">but HRT counter not yet decremented</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="587" y="720.5635"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="597" y="741.7021">unlock next message</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="577,259.9297,750,259.9297,762,271.9297,750,283.9297,577,283.9297,565,271.9297,577,259.9297" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="667.5" y="294.1401">latest</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="577" y="275.7378">Fetch next or latest message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="762" y="269.3354">next</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="663.5,797.6807,675.5,809.6807,663.5,821.6807,651.5,809.6807,663.5,797.6807" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1038" x="144.5" y="856.6807"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="158.5" y="882.6807"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="168.5" y="903.8193">decrement HRT counter of current message</text><path d="M482.5,887.0986 L482.5,912.2314 A0,0 0 0 0 482.5,912.2314 L971.5,912.2314 A0,0 0 0 0 971.5,912.2314 L971.5,905.0986 L991.5,899.665 L971.5,897.0986 L971.5,897.0986 L961.5,887.0986 L482.5,887.0986 A0,0 0 0 0 482.5,887.0986 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M961.5,887.0986 L961.5,897.0986 L971.5,897.0986 L961.5,887.0986 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="468" x="488.5" y="904.1655">no lock required since this timer is only accessed when the topic is locked</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="991.5" y="882.6807"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="157" x="1001.5" y="903.8193">update QoS timer (delay)</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1038" x="144.5" y="936.6494"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="1635.5" y="205.9609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="146" x="1645.5" y="227.0996">lock last read message</text><rect fill="#FFFFFF" filter="url(#f13ufdpbbhx79)" height="271.2656" style="stroke: #000000; stroke-width: 2.0;" width="406" x="1526" y="306.4419"/><path d="M1710,307.4419 L1710,315.7388 L1700,325.7388 L1526,325.7388 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="1529" y="320.437">find oldest valid message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="365" x="1536" y="399.7388"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="1550" y="425.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="1560" y="446.8774">unlock current message</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1750" y="425.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1760" y="446.8774">lock next message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="365" x="1536" y="479.7075"/><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1718.5,342.7388,1730.5,354.7388,1718.5,366.7388,1706.5,354.7388,1718.5,342.7388" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1573.5,533.7075,1863.5,533.7075,1875.5,545.7075,1863.5,557.7075,1573.5,557.7075,1561.5,545.7075,1573.5,533.7075" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="290" x="1573.5" y="549.5156">while timestamp of next is younger than of current</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1632.5,259.9297,1804.5,259.9297,1816.5,271.9297,1804.5,283.9297,1632.5,283.9297,1620.5,271.9297,1632.5,259.9297" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1722.5" y="294.1401">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="1632.5" y="275.7378">Timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1816.5" y="269.3354">yes</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1718.5,597.9653,1730.5,609.9653,1718.5,621.9653,1706.5,609.9653,1718.5,597.9653" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f13ufdpbbhx79)" height="335.6055" style="stroke: #000000; stroke-width: 2.0;" width="563" x="1366" y="703.4775"/><path d="M1480,704.4775 L1480,712.7744 L1470,722.7744 L1366,722.7744 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="1369" y="717.4727">iterate to latest</text><path d="M1428,744.1924 L1428,769.3252 A0,0 0 0 0 1428,769.3252 L1630,769.3252 A0,0 0 0 0 1630,769.3252 L1630,762.1924 L1650,756.7588 L1630,754.1924 L1630,754.1924 L1620,744.1924 L1428,744.1924 A0,0 0 0 0 1428,744.1924 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1620,744.1924 L1620,754.1924 L1630,754.1924 L1620,744.1924 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="181" x="1434" y="761.2593">locked two messages ahead</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1650" y="739.7744"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1660" y="760.9131">lock next message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="365" x="1536" y="865.1455"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="1550" y="891.1455"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="1560" y="912.2842">unlock current message</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1750" y="891.1455"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1760" y="912.2842">lock next message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="365" x="1536" y="945.1143"/><path d="M1400,975.5322 L1400,1000.665 A0,0 0 0 0 1400,1000.665 L1622,1000.665 A0,0 0 0 0 1622,1000.665 L1622,993.5322 L1642,988.0986 L1622,985.5322 L1622,985.5322 L1612,975.5322 L1400,975.5322 A0,0 0 0 0 1400,975.5322 " fill="#FBFB77" filter="url(#f13ufdpbbhx79)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1612,975.5322 L1612,985.5322 L1622,985.5322 L1612,975.5322 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="201" x="1406" y="992.5991">one message ahead still locked</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1642" y="971.1143"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="1652" y="992.2529">unlock next message</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1564.5,804.3408,1872.5,804.3408,1884.5,816.3408,1872.5,828.3408,1564.5,828.3408,1552.5,816.3408,1564.5,804.3408" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1722.5" y="838.5513">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="308" x="1564.5" y="820.1489">Timestamp of next message is younger then current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1538.5" y="813.7466">no</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1632,656.9653,1805,656.9653,1817,668.9653,1805,680.9653,1632,680.9653,1620,668.9653,1632,656.9653" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="1722.5" y="691.1758">latest</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="1632" y="672.7734">Fetch next or latest message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="1817" y="666.3711">next</text><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1718.5,1059.083,1730.5,1071.083,1718.5,1083.083,1706.5,1071.083,1718.5,1059.083" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f13ufdpbbhx79)" points="1191,1089.083,1203,1101.083,1191,1113.083,1179,1101.083,1191,1089.083" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="890" y="1133.083"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="350" x="904" y="1159.083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="330" x="914" y="1180.2217">set pointer to last message read to locked message</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="1282" y="1159.083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="1292" y="1180.2217">copy timestamp of message</text><rect fill="#000000" filter="url(#f13ufdpbbhx79)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="602" x="890" y="1213.0518"/><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="1130" y="1239.0518"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1140" y="1260.1904">unlock message</text><rect fill="#FEFECE" filter="url(#f13ufdpbbhx79)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1143" y="1293.0205"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1153" y="1314.1592">unlock topic</text><ellipse cx="1191" cy="1356.9893" fill="none" filter="url(#f13ufdpbbhx79)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1191.5" cy="1357.4893" fill="#000000" filter="url(#f13ufdpbbhx79)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191" x2="1191" y1="95.4258" y2="117.9922"/><polygon fill="#A80036" points="1187,107.9922,1191,117.9922,1195,107.9922,1191,111.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="224" x2="224" y1="489.5122" y2="509.5122"/><polygon fill="#A80036" points="220,499.5122,224,509.5122,228,499.5122,224,503.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1001.5" x2="1001.5" y1="489.5122" y2="509.5122"/><polygon fill="#A80036" points="997.5,499.5122,1001.5,509.5122,1005.5,499.5122,1001.5,503.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="224" x2="224" y1="543.481" y2="563.481"/><polygon fill="#A80036" points="220,553.481,224,563.481,228,553.481,224,557.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1001.5" x2="1001.5" y1="543.481" y2="563.481"/><polygon fill="#A80036" points="997.5,553.481,1001.5,563.481,1005.5,553.481,1001.5,557.481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="581" x2="581" y1="569.481" y2="600.3364"/><polygon fill="#A80036" points="577,590.3364,581,600.3364,585,590.3364,581,594.3364" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="581" x2="581" y1="463.5122" y2="483.5122"/><polygon fill="#A80036" points="577,473.5122,581,483.5122,585,473.5122,581,477.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1200.5" x2="1200.5" y1="463.5122" y2="543.9966"/><polygon fill="#A80036" points="1196.5,533.9966,1200.5,543.9966,1204.5,533.9966,1200.5,537.9966" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="581" x2="581" y1="634.3052" y2="654.3052"/><polygon fill="#A80036" points="577,644.3052,581,654.3052,585,644.3052,581,648.3052" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1200.5" x2="1200.5" y1="577.9653" y2="654.3052"/><polygon fill="#A80036" points="1196.5,644.3052,1200.5,654.3052,1204.5,644.3052,1200.5,648.3052" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="420.7075" y2="457.5122"/><polygon fill="#A80036" points="659.5,447.5122,663.5,457.5122,667.5,447.5122,663.5,451.5122" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="660.3052" y2="672.3052"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="1295" y1="672.3052" y2="672.3052"/><polygon fill="#A80036" points="1291,552.5786,1295,542.5786,1299,552.5786,1295,548.5786" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1295" x2="1295" y1="408.7075" y2="672.3052"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1295" x2="829.5" y1="408.7075" y2="408.7075"/><polygon fill="#A80036" points="839.5,404.7075,829.5,408.7075,839.5,412.7075,835.5,408.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="497.5" x2="32" y1="408.7075" y2="408.7075"/><polygon fill="#A80036" points="28,538.5786,32,548.5786,36,538.5786,32,542.5786" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="32" y1="408.7075" y2="684.3052"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="663.5" y1="684.3052" y2="684.3052"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="684.3052" y2="720.5635"/><polygon fill="#A80036" points="659.5,710.5635,663.5,720.5635,667.5,710.5635,663.5,714.5635" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="376.7075" y2="396.7075"/><polygon fill="#A80036" points="659.5,386.7075,663.5,396.7075,667.5,386.7075,663.5,390.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="283.9297" y2="342.7388"/><polygon fill="#A80036" points="659.5,332.7388,663.5,342.7388,667.5,332.7388,663.5,336.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="762" x2="1324" y1="271.9297" y2="271.9297"/><polygon fill="#A80036" points="1320,527.5786,1324,537.5786,1328,527.5786,1324,531.5786" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1324" x2="1324" y1="271.9297" y2="809.6807"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1324" x2="675.5" y1="809.6807" y2="809.6807"/><polygon fill="#A80036" points="685.5,805.6807,675.5,809.6807,685.5,813.6807,681.5,809.6807" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="754.5322" y2="797.6807"/><polygon fill="#A80036" points="659.5,787.6807,663.5,797.6807,667.5,787.6807,663.5,791.6807" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="239.9297" y2="259.9297"/><polygon fill="#A80036" points="659.5,249.9297,663.5,259.9297,667.5,249.9297,663.5,253.9297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="306.5" y1="862.6807" y2="882.6807"/><polygon fill="#A80036" points="302.5,872.6807,306.5,882.6807,310.5,872.6807,306.5,876.6807" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1080" x2="1080" y1="862.6807" y2="882.6807"/><polygon fill="#A80036" points="1076,872.6807,1080,882.6807,1084,872.6807,1080,876.6807" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="306.5" y1="916.6494" y2="936.6494"/><polygon fill="#A80036" points="302.5,926.6494,306.5,936.6494,310.5,926.6494,306.5,930.6494" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1080" x2="1080" y1="916.6494" y2="936.6494"/><polygon fill="#A80036" points="1076,926.6494,1080,936.6494,1084,926.6494,1080,930.6494" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="821.6807" y2="856.6807"/><polygon fill="#A80036" points="659.5,846.6807,663.5,856.6807,667.5,846.6807,663.5,850.6807" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1636" x2="1636" y1="405.7388" y2="425.7388"/><polygon fill="#A80036" points="1632,415.7388,1636,425.7388,1640,415.7388,1636,419.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1818.5" x2="1818.5" y1="405.7388" y2="425.7388"/><polygon fill="#A80036" points="1814.5,415.7388,1818.5,425.7388,1822.5,415.7388,1818.5,419.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1636" x2="1636" y1="459.7075" y2="479.7075"/><polygon fill="#A80036" points="1632,469.7075,1636,479.7075,1640,469.7075,1636,473.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1818.5" x2="1818.5" y1="459.7075" y2="479.7075"/><polygon fill="#A80036" points="1814.5,469.7075,1818.5,479.7075,1822.5,469.7075,1818.5,473.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="366.7388" y2="399.7388"/><polygon fill="#A80036" points="1714.5,389.7388,1718.5,399.7388,1722.5,389.7388,1718.5,393.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1875.5" x2="1913" y1="545.7075" y2="545.7075"/><polygon fill="#A80036" points="1909,452.7231,1913,442.7231,1917,452.7231,1913,448.7231" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1913" x2="1913" y1="354.7388" y2="545.7075"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1913" x2="1730.5" y1="354.7388" y2="354.7388"/><polygon fill="#A80036" points="1740.5,350.7388,1730.5,354.7388,1740.5,358.7388,1736.5,354.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="485.7075" y2="533.7075"/><polygon fill="#A80036" points="1714.5,523.7075,1718.5,533.7075,1722.5,523.7075,1718.5,527.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="283.9297" y2="342.7388"/><polygon fill="#A80036" points="1714.5,332.7388,1718.5,342.7388,1722.5,332.7388,1718.5,336.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1816.5" x2="1942" y1="271.9297" y2="271.9297"/><polygon fill="#A80036" points="1938,424.5747,1942,434.5747,1946,424.5747,1942,428.5747" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1942" x2="1942" y1="271.9297" y2="609.9653"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1942" x2="1730.5" y1="609.9653" y2="609.9653"/><polygon fill="#A80036" points="1740.5,605.9653,1730.5,609.9653,1740.5,613.9653,1736.5,609.9653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="557.7075" y2="597.9653"/><polygon fill="#A80036" points="1714.5,587.9653,1718.5,597.9653,1722.5,587.9653,1718.5,591.9653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="239.9297" y2="259.9297"/><polygon fill="#A80036" points="1714.5,249.9297,1718.5,259.9297,1722.5,249.9297,1718.5,253.9297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1636" x2="1636" y1="871.1455" y2="891.1455"/><polygon fill="#A80036" points="1632,881.1455,1636,891.1455,1640,881.1455,1636,885.1455" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1818.5" x2="1818.5" y1="871.1455" y2="891.1455"/><polygon fill="#A80036" points="1814.5,881.1455,1818.5,891.1455,1822.5,881.1455,1818.5,885.1455" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1636" x2="1636" y1="925.1143" y2="945.1143"/><polygon fill="#A80036" points="1632,935.1143,1636,945.1143,1640,935.1143,1636,939.1143" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1818.5" x2="1818.5" y1="925.1143" y2="945.1143"/><polygon fill="#A80036" points="1814.5,935.1143,1818.5,945.1143,1822.5,935.1143,1818.5,939.1143" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="951.1143" y2="971.1143"/><polygon fill="#A80036" points="1714.5,961.1143,1718.5,971.1143,1722.5,961.1143,1718.5,965.1143" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="828.3408" y2="865.1455"/><polygon fill="#A80036" points="1714.5,855.1455,1718.5,865.1455,1722.5,855.1455,1718.5,859.1455" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="1005.083" y2="1015.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1913" y1="1015.083" y2="1015.083"/><polygon fill="#A80036" points="1909,934.2119,1913,924.2119,1917,934.2119,1913,930.2119" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1913" x2="1913" y1="816.3408" y2="1015.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1913" x2="1884.5" y1="816.3408" y2="816.3408"/><polygon fill="#A80036" points="1894.5,812.3408,1884.5,816.3408,1894.5,820.3408,1890.5,816.3408" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1552.5" x2="1388" y1="816.3408" y2="816.3408"/><polygon fill="#A80036" points="1384,920.2119,1388,930.2119,1392,920.2119,1388,924.2119" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1388" x2="1388" y1="816.3408" y2="1027.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1388" x2="1718.5" y1="1027.083" y2="1027.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="1027.083" y2="1059.083"/><polygon fill="#A80036" points="1714.5,1049.083,1718.5,1059.083,1722.5,1049.083,1718.5,1053.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="773.7432" y2="804.3408"/><polygon fill="#A80036" points="1714.5,794.3408,1718.5,804.3408,1722.5,794.3408,1718.5,798.3408" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="680.9653" y2="739.7744"/><polygon fill="#A80036" points="1714.5,729.7744,1718.5,739.7744,1722.5,729.7744,1718.5,733.7744" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1817" x2="1939" y1="668.9653" y2="668.9653"/><polygon fill="#A80036" points="1935,871.5791,1939,881.5791,1943,871.5791,1939,875.5791" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1939" x2="1939" y1="668.9653" y2="1071.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1939" x2="1730.5" y1="1071.083" y2="1071.083"/><polygon fill="#A80036" points="1740.5,1067.083,1730.5,1071.083,1740.5,1075.083,1736.5,1071.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="621.9653" y2="656.9653"/><polygon fill="#A80036" points="1714.5,646.9653,1718.5,656.9653,1722.5,646.9653,1718.5,650.9653" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1125.5" x2="663.5" y1="183.9609" y2="183.9609"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="183.9609" y2="205.9609"/><polygon fill="#A80036" points="659.5,195.9609,663.5,205.9609,667.5,195.9609,663.5,199.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1256.5" x2="1718.5" y1="183.9609" y2="183.9609"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="183.9609" y2="205.9609"/><polygon fill="#A80036" points="1714.5,195.9609,1718.5,205.9609,1722.5,195.9609,1718.5,199.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="663.5" y1="942.6494" y2="1101.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="663.5" x2="1179" y1="1101.083" y2="1101.083"/><polygon fill="#A80036" points="1169,1097.083,1179,1101.083,1169,1105.083,1173,1101.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1718.5" y1="1083.083" y2="1101.083"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1718.5" x2="1203" y1="1101.083" y2="1101.083"/><polygon fill="#A80036" points="1213,1097.083,1203,1101.083,1213,1105.083,1209,1101.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191" x2="1191" y1="151.9609" y2="171.9609"/><polygon fill="#A80036" points="1187,161.9609,1191,171.9609,1195,161.9609,1191,165.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079" x2="1079" y1="1139.083" y2="1159.083"/><polygon fill="#A80036" points="1075,1149.083,1079,1159.083,1083,1149.083,1079,1153.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1380" x2="1380" y1="1139.083" y2="1159.083"/><polygon fill="#A80036" points="1376,1149.083,1380,1159.083,1384,1149.083,1380,1153.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1079" x2="1079" y1="1193.0518" y2="1213.0518"/><polygon fill="#A80036" points="1075,1203.0518,1079,1213.0518,1083,1203.0518,1079,1207.0518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1380" x2="1380" y1="1193.0518" y2="1213.0518"/><polygon fill="#A80036" points="1376,1203.0518,1380,1213.0518,1384,1203.0518,1380,1207.0518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191" x2="1191" y1="1113.083" y2="1133.083"/><polygon fill="#A80036" points="1187,1123.083,1191,1133.083,1195,1123.083,1191,1127.083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191" x2="1191" y1="1219.0518" y2="1239.0518"/><polygon fill="#A80036" points="1187,1229.0518,1191,1239.0518,1195,1229.0518,1191,1233.0518" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191" x2="1191" y1="1273.0205" y2="1293.0205"/><polygon fill="#A80036" points="1187,1283.0205,1191,1293.0205,1195,1283.0205,1191,1287.0205" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1191" x2="1191" y1="1326.9893" y2="1346.9893"/><polygon fill="#A80036" points="1187,1336.9893,1191,1346.9893,1195,1336.9893,1191,1340.9893" style="stroke: #A80036; stroke-width: 1.0;"/><!--
-@startuml
-
-title **µRtWare**\nurtSubscriberFetchMessage()\n
-
-
-
-start
-note
-  event received
-endnote
-:lock topic;
-note
-  The message list is part of the topic and must be locked.
-endnote
-if (Is HRT subscriber?) then (yes)
-  :lock next message;
-  if (Fetch next or latest message?) then (next)
-  else (latest)
-    partition "iterate to latest" {
-      :lock next message;
-      note
-        locked two messaged ahead
-      endnote
-      while (Timestamp of next message is younger than current?) is (yes)
-        fork
-          fork
-            :decremenet HRT counter of current message;
-          fork again
-            :update QoS timer (delay);
-            note
-              no lock required since this timer is only accessed when the topic is locked
-            endnote
-          endfork
-          :unlock current message;
-        fork again
-          :lock next message;
-        endfork
-      endwhile (no)
-      :unlock next message;
-      note
-        one message ahead still locked
-        but HRT counter not yet decremented
-      endnote
-    }
-  endif
-  fork
-    :decrement HRT counter of current message;
-  fork again
-    :update QoS timer (delay);
-    note
-      no lock required since this timer is only accessed when the topic is locked
-    endnote
-  endfork
-else (no)
-  :lock last read message;
-  if (Timestamp equals local copy?) then (yes)
-  else (no)
-    partition "find oldest valid message" {
-      repeat
-        fork
-          :unlock current message;
-        fork again
-          :lock next message;
-        forkend
-      repeat while (while timestamp of next is younger than of current)
-    }
-  endif
-  if (Fetch next or latest message?) then (next)
-  else (latest)
-    partition "iterate to latest" {
-      :lock next message;
-      note
-        locked two messages ahead
-      endnote
-      while (Timestamp of next message is younger then current?) is (yes)
-        fork
-          :unlock current message;
-        fork again
-          :lock next message;
-        endfork
-        :unlock next message;
-        note
-          one message ahead still locked
-        endnote
-      endwhile (no)
-    }
-  endif
-endif
-fork
-  :set pointer to last message read to locked message;
-fork again
-  :copy timestamp of message;
-endfork
-:unlock message;
-:unlock topic;
-stop
-
-@enduml
-
-PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
-Operating System: Linux
-OS Version: 4.15.0-36-generic
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/receive.uml b/doc/statediagrams/subscriber/receive.uml
deleted file mode 100644
index 200fde5..0000000
--- a/doc/statediagrams/subscriber/receive.uml
+++ /dev/null
@@ -1,119 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2018  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberFetchMessage()\n
-
-
-
-start
-note
-  event received
-endnote
-:lock topic;
-note
-  The message list is part of the topic and must be locked.
-endnote
-if (Is HRT subscriber?) then (yes)
-  :lock next message;
-  if (Fetch next or latest message?) then (next)
-  else (latest)
-    partition "iterate to latest" {
-      :lock next message;
-      note
-        locked two messaged ahead
-      endnote
-      while (Timestamp of next message is younger than current?) is (yes)
-        fork
-          fork
-            :decremenet HRT counter of current message;
-          fork again
-            :update QoS timer (delay);
-            note
-              no lock required since this timer is only accessed when the topic is locked
-            endnote
-          endfork
-          :unlock current message;
-        fork again
-          :lock next message;
-        endfork
-      endwhile (no)
-      :unlock next message;
-      note
-        one message ahead still locked
-        but HRT counter not yet decremented
-      endnote
-    }
-  endif
-  fork
-    :decrement HRT counter of current message;
-  fork again
-    :update QoS timer (delay);
-    note
-      no lock required since this timer is only accessed when the topic is locked
-    endnote
-  endfork
-else (no)
-  :lock last read message;
-  if (Timestamp equals local copy?) then (yes)
-  else (no)
-    partition "find oldest valid message" {
-      repeat
-        fork
-          :unlock current message;
-        fork again
-          :lock next message;
-        forkend
-      repeat while (while timestamp of next is younger than of current)
-    }
-  endif
-  if (Fetch next or latest message?) then (next)
-  else (latest)
-    partition "iterate to latest" {
-      :lock next message;
-      note
-        locked two messages ahead
-      endnote
-      while (Timestamp of next message is younger then current?) is (yes)
-        fork
-          :unlock current message;
-        fork again
-          :lock next message;
-        endfork
-        :unlock next message;
-        note
-          one message ahead still locked
-        endnote
-      endwhile (no)
-    }
-  endif
-endif
-fork
-  :set pointer to last message read to locked message;
-fork again
-  :copy timestamp of message;
-endfork
-:unlock message;
-:unlock topic;
-stop
-
-@enduml
diff --git a/doc/statediagrams/subscriber/subscribe.svg b/doc/statediagrams/subscriber/subscribe.svg
deleted file mode 100644
index 756b3af..0000000
--- a/doc/statediagrams/subscriber/subscribe.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1016px" preserveAspectRatio="none" style="width:1090px;height:1016px;" version="1.1" viewBox="0 0 1090 1016" width="1090px" zoomAndPan="magnify"><defs><filter height="300%" id="fl5cr8ju8kvuh" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="499.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="218" x="435" y="47.6611">urtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="547" y="68.6143"/><ellipse cx="544.5" cy="82.8594" fill="#000000" filter="url(#fl5cr8ju8kvuh)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fl5cr8ju8kvuh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="304" x="392.5" y="112.8594"/><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="416.5" y="187.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="121" x="426.5" y="208.4004">set rtclass member</text><polygon fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" points="423.5,138.8594,550.5,138.8594,562.5,150.8594,550.5,162.8594,423.5,162.8594,411.5,150.8594,423.5,138.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="491" y="173.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="423.5" y="154.6675">Was rtclass specified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="562.5" y="148.2651">no</text><polygon fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" points="487,241.2305,499,253.2305,487,265.2305,475,253.2305,487,241.2305" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="607.5" y="187.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="617.5" y="208.4004">set topic</text><rect fill="#000000" filter="url(#fl5cr8ju8kvuh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="304" x="392.5" y="285.2305"/><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="504.5" y="311.2305"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="514.5" y="332.3691">lock topic</text><rect fill="#000000" filter="url(#fl5cr8ju8kvuh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1069" x="10" y="365.1992"/><rect fill="#FFFFFF" filter="url(#fl5cr8ju8kvuh)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="668" x="34" y="437.7114"/><path d="M191,438.7114 L191,447.0083 L181,457.0083 L34,457.0083 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="37" y="451.7065">contribute messages</text><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="130.5" y="474.0083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="140.5" y="495.147">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="164.5" y="495.147">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="196.5" y="495.147">pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="648" x="44" y="542.9771"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="54" y="564.1157">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="78" y="564.1157">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="572" x="110" y="564.1157">pointer of last message to contribute to message formerly after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" points="308.5,391.1992,427.5,391.1992,439.5,403.1992,427.5,415.1992,308.5,415.1992,296.5,403.1992,308.5,391.1992" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="372" y="425.4097">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="308.5" y="407.0073">Messages specified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="439.5" y="400.605">no</text><polygon fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" points="368,608.9458,380,620.9458,368,632.9458,356,620.9458,368,608.9458" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="752" y="500.3442"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="762" y="521.4829">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#fl5cr8ju8kvuh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1069" x="10" y="652.9458"/><rect fill="#000000" filter="url(#fl5cr8ju8kvuh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="567" x="261" y="727.3481"/><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="190" x="275" y="753.3481"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="170" x="285" y="774.4868">increase topic HRT counter</text><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="321" x="493" y="753.3481"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="301" x="503" y="774.4868">insert subscriber to topic list of HRT subscribers</text><rect fill="#000000" filter="url(#fl5cr8ju8kvuh)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="567" x="261" y="807.3169"/><polygon fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" points="491,678.9458,598,678.9458,610,690.9458,598,702.9458,491,702.9458,479,690.9458,491,678.9458" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="548.5" y="713.1563">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="491" y="694.7539">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="610" y="688.3516">no</text><polygon fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" points="544.5,833.3169,556.5,845.3169,544.5,857.3169,532.5,845.3169,544.5,833.3169" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M120,881.7349 L120,906.8677 A0,0 0 0 0 120,906.8677 L421,906.8677 A0,0 0 0 0 421,906.8677 L421,899.7349 L441,894.3013 L421,891.7349 L421,891.7349 L411,881.7349 L120,881.7349 A0,0 0 0 0 120,881.7349 " fill="#FBFB77" filter="url(#fl5cr8ju8kvuh)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M411,881.7349 L411,891.7349 L421,891.7349 L411,881.7349 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="126" y="898.8018">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="441" y="877.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="187" x="451" y="898.4556">register to topic event source</text><rect fill="#FEFECE" filter="url(#fl5cr8ju8kvuh)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="496.5" y="931.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="506.5" y="952.4243">unlock topic</text><ellipse cx="544.5" cy="995.2544" fill="none" filter="url(#fl5cr8ju8kvuh)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="545" cy="995.7544" fill="#000000" filter="url(#fl5cr8ju8kvuh)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="162.8594" y2="187.2617"/><polygon fill="#A80036" points="483,177.2617,487,187.2617,491,177.2617,487,181.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562.5" x2="574.5" y1="150.8594" y2="150.8594"/><polygon fill="#A80036" points="570.5,194.2461,574.5,204.2461,578.5,194.2461,574.5,198.2461" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="574.5" x2="574.5" y1="150.8594" y2="253.2305"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="574.5" x2="499" y1="253.2305" y2="253.2305"/><polygon fill="#A80036" points="509,249.2305,499,253.2305,509,257.2305,505,253.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="221.2305" y2="241.2305"/><polygon fill="#A80036" points="483,231.2305,487,241.2305,491,231.2305,487,235.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="483,128.8594,487,138.8594,491,128.8594,487,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="645" x2="645" y1="118.8594" y2="187.2617"/><polygon fill="#A80036" points="641,177.2617,645,187.2617,649,177.2617,645,181.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="265.2305" y2="285.2305"/><polygon fill="#A80036" points="483,275.2305,487,285.2305,491,275.2305,487,279.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="645" x2="645" y1="221.2305" y2="285.2305"/><polygon fill="#A80036" points="641,275.2305,645,285.2305,649,275.2305,645,279.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="540.5,102.8594,544.5,112.8594,548.5,102.8594,544.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="291.2305" y2="311.2305"/><polygon fill="#A80036" points="540.5,301.2305,544.5,311.2305,548.5,301.2305,544.5,305.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="507.9771" y2="542.9771"/><polygon fill="#A80036" points="364,532.9771,368,542.9771,372,532.9771,368,536.9771" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="415.1992" y2="474.0083"/><polygon fill="#A80036" points="364,464.0083,368,474.0083,372,464.0083,368,468.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="439.5" x2="712" y1="403.1992" y2="403.1992"/><polygon fill="#A80036" points="708,507.3286,712,517.3286,716,507.3286,712,511.3286" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712" x2="712" y1="403.1992" y2="620.9458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712" x2="380" y1="620.9458" y2="620.9458"/><polygon fill="#A80036" points="390,616.9458,380,620.9458,390,624.9458,386,620.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="576.9458" y2="608.9458"/><polygon fill="#A80036" points="364,598.9458,368,608.9458,372,598.9458,368,602.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="371.1992" y2="391.1992"/><polygon fill="#A80036" points="364,381.1992,368,391.1992,372,381.1992,368,385.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.5" x2="908.5" y1="371.1992" y2="500.3442"/><polygon fill="#A80036" points="904.5,490.3442,908.5,500.3442,912.5,490.3442,908.5,494.3442" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="632.9458" y2="652.9458"/><polygon fill="#A80036" points="364,642.9458,368,652.9458,372,642.9458,368,646.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.5" x2="908.5" y1="534.313" y2="652.9458"/><polygon fill="#A80036" points="904.5,642.9458,908.5,652.9458,912.5,642.9458,908.5,646.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="345.1992" y2="365.1992"/><polygon fill="#A80036" points="540.5,355.1992,544.5,365.1992,548.5,355.1992,544.5,359.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="370" y1="733.3481" y2="753.3481"/><polygon fill="#A80036" points="366,743.3481,370,753.3481,374,743.3481,370,747.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.5" x2="653.5" y1="733.3481" y2="753.3481"/><polygon fill="#A80036" points="649.5,743.3481,653.5,753.3481,657.5,743.3481,653.5,747.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="370" y1="787.3169" y2="807.3169"/><polygon fill="#A80036" points="366,797.3169,370,807.3169,374,797.3169,370,801.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.5" x2="653.5" y1="787.3169" y2="807.3169"/><polygon fill="#A80036" points="649.5,797.3169,653.5,807.3169,657.5,797.3169,653.5,801.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="702.9458" y2="727.3481"/><polygon fill="#A80036" points="540.5,717.3481,544.5,727.3481,548.5,717.3481,544.5,721.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="610" x2="838" y1="690.9458" y2="690.9458"/><polygon fill="#A80036" points="834,760.3325,838,770.3325,842,760.3325,838,764.3325" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="838" x2="838" y1="690.9458" y2="845.3169"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="838" x2="556.5" y1="845.3169" y2="845.3169"/><polygon fill="#A80036" points="566.5,841.3169,556.5,845.3169,566.5,849.3169,562.5,845.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="813.3169" y2="833.3169"/><polygon fill="#A80036" points="540.5,823.3169,544.5,833.3169,548.5,823.3169,544.5,827.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="658.9458" y2="678.9458"/><polygon fill="#A80036" points="540.5,668.9458,544.5,678.9458,548.5,668.9458,544.5,672.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="857.3169" y2="877.3169"/><polygon fill="#A80036" points="540.5,867.3169,544.5,877.3169,548.5,867.3169,544.5,871.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="911.2856" y2="931.2856"/><polygon fill="#A80036" points="540.5,921.2856,544.5,931.2856,548.5,921.2856,544.5,925.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="965.2544" y2="985.2544"/><polygon fill="#A80036" points="540.5,975.2544,544.5,985.2544,548.5,975.2544,544.5,979.2544" style="stroke: #A80036; stroke-width: 1.0;"/><!--
-@startuml
-
-title **µRtWare**\nurtSubscriberSubscribe()\n
-
-
-
-start
-fork
-  if (Was rtclass specified?) then (yes)
-    :set rtclass member;
-  else (no)
-  endif
-fork again
-  :set topic;
-endfork
-:lock topic;
-fork
-  if (Messages specified?) then (yes)
-    partition "contribute messages" {
-      :set ""next"" pointer of topic's latest message to first message to contribute;
-      :set ""next"" pointer of last message to contribute to message formerly after the topic's latest message;
-    }
-  else (no)
-  endif
-fork again
-  :set message pointer to topic's latest message;
-endfork
-if (Is HRT subscriber?) then (yes)
-  fork
-    :increase topic HRT counter;
-  fork again
-    :insert subscriber to topic list of HRT subscribers;
-  endfork
-else (no)
-endif
-:register to topic event source;
-note
-  Must be within lock because of HRT counter.
-endnote
-:unlock topic;
-stop
-
-@enduml
-
-PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
-Operating System: Linux
-OS Version: 4.15.0-36-generic
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/subscribe.uml b/doc/statediagrams/subscriber/subscribe.uml
deleted file mode 100644
index 7c37f89..0000000
--- a/doc/statediagrams/subscriber/subscribe.uml
+++ /dev/null
@@ -1,64 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2018  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberSubscribe()\n
-
-
-
-start
-fork
-  if (Was rtclass specified?) then (yes)
-    :set rtclass member;
-  else (no)
-  endif
-fork again
-  :set topic;
-endfork
-:lock topic;
-fork
-  if (Messages specified?) then (yes)
-    partition "contribute messages" {
-      :set ""next"" pointer of topic's latest message to first message to contribute;
-      :set ""next"" pointer of last message to contribute to message formerly after the topic's latest message;
-    }
-  else (no)
-  endif
-fork again
-  :set message pointer to topic's latest message;
-endfork
-if (Is HRT subscriber?) then (yes)
-  fork
-    :increase topic HRT counter;
-  fork again
-    :insert subscriber to topic list of HRT subscribers;
-  endfork
-else (no)
-endif
-:register to topic event source;
-note
-  Must be within lock because of HRT counter.
-endnote
-:unlock topic;
-stop
-
-@enduml
diff --git a/doc/statediagrams/subscriber/unsubscribe.svg b/doc/statediagrams/subscriber/unsubscribe.svg
deleted file mode 100644
index afef614..0000000
--- a/doc/statediagrams/subscriber/unsubscribe.svg
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="750px" preserveAspectRatio="none" style="width:945px;height:750px;" version="1.1" viewBox="0 0 945 750" width="945px" zoomAndPan="magnify"><defs><filter height="300%" id="fykcvhyo0zvei" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="427" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="240" x="351.5" y="47.6611">urtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="474.5" y="68.6143"/><ellipse cx="643.5" cy="82.8594" fill="#000000" filter="url(#fykcvhyo0zvei)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fykcvhyo0zvei)" points="590,112.8594,697,112.8594,709,124.8594,697,136.8594,590,136.8594,578,124.8594,590,112.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="590" y="128.6675">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="558" y="122.2651">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="709" y="122.2651">no</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="365" y="146.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="375" y="167.998">lock topic</text><path d="M24,205.2461 L24,230.3789 A0,0 0 0 0 24,230.3789 L323,230.3789 A0,0 0 0 0 323,230.3789 L323,223.2461 L343,217.8125 L323,215.2461 L323,215.2461 L313,205.2461 L24,205.2461 A0,0 0 0 0 24,205.2461 " fill="#FBFB77" filter="url(#fykcvhyo0zvei)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,205.2461 L313,215.2461 L323,215.2461 L313,205.2461 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="278" x="30" y="222.313">must be within lock because of HRT counter</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="200.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="221.9668">unregister event</text><rect fill="#000000" filter="url(#fykcvhyo0zvei)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="790" x="10" y="254.7969"/><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="24" y="392.168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="175" x="34" y="413.3066">decrease topic HRT counter</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="247" y="309.2813"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="282" x="257" y="330.4199">remove self from topic list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="312" y="426.6523"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="322" y="447.791">update QoS Timer (rate)</text><polygon fill="#FEFECE" filter="url(#fykcvhyo0zvei)" points="314,378.25,482,378.25,494,390.25,482,402.25,314,402.25,302,390.25,314,378.25" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="402" y="412.4604">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="314" y="394.0581">Was most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="494" y="387.6558">no</text><polygon fill="#FEFECE" filter="url(#fykcvhyo0zvei)" points="398,485.0234,410,497.0234,398,509.0234,386,497.0234,398,485.0234" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="634.5" y="341.6016"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="644.5" y="362.7402">lock message</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="160" x="607.5" y="410.5703"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="140" x="617.5" y="431.709">decrease HRT counter</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="626.5" y="479.5391"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="636.5" y="500.6777">unlock message</text><polygon fill="#FEFECE" filter="url(#fykcvhyo0zvei)" points="613,280.7969,762,280.7969,774,292.7969,762,304.7969,613,304.7969,601,292.7969,613,280.7969" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="691.5" y="315.0073">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="613" y="296.605">Unfetched messages left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="587" y="290.2026">no</text><rect fill="#000000" filter="url(#fykcvhyo0zvei)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="790" x="10" y="555.5078"/><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="357" y="581.5078"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="367" y="602.6465">unlock topic</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="810" y="146.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="820" y="167.998">unregister event</text><polygon fill="#FEFECE" filter="url(#fykcvhyo0zvei)" points="643.5,621.4766,655.5,633.4766,643.5,645.4766,631.5,633.4766,643.5,621.4766" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M494,669.8945 L494,695.0273 A0,0 0 0 0 494,695.0273 L566,695.0273 A0,0 0 0 0 566,695.0273 L566,687.8945 L586,682.4609 L566,679.8945 L566,679.8945 L556,669.8945 L494,669.8945 A0,0 0 0 0 494,669.8945 " fill="#FBFB77" filter="url(#fykcvhyo0zvei)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M556,669.8945 L556,679.8945 L566,679.8945 L556,669.8945 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="500" y="686.9614">optional</text><rect fill="#FEFECE" filter="url(#fykcvhyo0zvei)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="586" y="665.4766"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="596" y="686.6152">reset members</text><ellipse cx="643.5" cy="729.4453" fill="none" filter="url(#fykcvhyo0zvei)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="644" cy="729.9453" fill="#000000" filter="url(#fykcvhyo0zvei)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="180.8281" y2="200.8281"/><polygon fill="#A80036" points="401,190.8281,405,200.8281,409,190.8281,405,194.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="398" x2="398" y1="402.25" y2="426.6523"/><polygon fill="#A80036" points="394,416.6523,398,426.6523,402,416.6523,398,420.6523" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="494" x2="506" y1="390.25" y2="390.25"/><polygon fill="#A80036" points="502,433.6367,506,443.6367,510,433.6367,506,437.6367" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="506" x2="506" y1="390.25" y2="497.0234"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="506" x2="410" y1="497.0234" y2="497.0234"/><polygon fill="#A80036" points="420,493.0234,410,497.0234,420,501.0234,416,497.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="398" x2="398" y1="460.6211" y2="485.0234"/><polygon fill="#A80036" points="394,475.0234,398,485.0234,402,475.0234,398,479.0234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="398" x2="398" y1="343.25" y2="378.25"/><polygon fill="#A80036" points="394,368.25,398,378.25,402,368.25,398,372.25" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="687.5" y1="375.5703" y2="410.5703"/><polygon fill="#A80036" points="683.5,400.5703,687.5,410.5703,691.5,400.5703,687.5,404.5703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="687.5" y1="444.5391" y2="479.5391"/><polygon fill="#A80036" points="683.5,469.5391,687.5,479.5391,691.5,469.5391,687.5,473.5391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="687.5" y1="304.7969" y2="341.6016"/><polygon fill="#A80036" points="683.5,331.6016,687.5,341.6016,691.5,331.6016,687.5,335.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="687.5" y1="513.5078" y2="523.5078"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="786" y1="523.5078" y2="523.5078"/><polygon fill="#A80036" points="782,419.1523,786,409.1523,790,419.1523,786,415.1523" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="786" x2="786" y1="292.7969" y2="523.5078"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="786" x2="774" y1="292.7969" y2="292.7969"/><polygon fill="#A80036" points="784,288.7969,774,292.7969,784,296.7969,780,292.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="601" x2="589" y1="292.7969" y2="292.7969"/><polygon fill="#A80036" points="585,405.1523,589,415.1523,593,405.1523,589,409.1523" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589" x2="589" y1="292.7969" y2="535.5078"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="589" x2="687.5" y1="535.5078" y2="535.5078"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="687.5" y1="535.5078" y2="555.5078"/><polygon fill="#A80036" points="683.5,545.5078,687.5,555.5078,691.5,545.5078,687.5,549.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="260.7969" y2="392.168"/><polygon fill="#A80036" points="117.5,382.168,121.5,392.168,125.5,382.168,121.5,386.168" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="398" x2="398" y1="260.7969" y2="309.2813"/><polygon fill="#A80036" points="394,299.2813,398,309.2813,402,299.2813,398,303.2813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.5" x2="687.5" y1="260.7969" y2="280.7969"/><polygon fill="#A80036" points="683.5,270.7969,687.5,280.7969,691.5,270.7969,687.5,274.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="121.5" x2="121.5" y1="426.1367" y2="555.5078"/><polygon fill="#A80036" points="117.5,545.5078,121.5,555.5078,125.5,545.5078,121.5,549.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="398" x2="398" y1="509.0234" y2="555.5078"/><polygon fill="#A80036" points="394,545.5078,398,555.5078,402,545.5078,398,549.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="234.7969" y2="254.7969"/><polygon fill="#A80036" points="401,244.7969,405,254.7969,409,244.7969,405,248.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="561.5078" y2="581.5078"/><polygon fill="#A80036" points="401,571.5078,405,581.5078,409,571.5078,405,575.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="578" x2="405" y1="124.8594" y2="124.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="124.8594" y2="146.8594"/><polygon fill="#A80036" points="401,136.8594,405,146.8594,409,136.8594,405,140.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="709" x2="872" y1="124.8594" y2="124.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872" x2="872" y1="124.8594" y2="146.8594"/><polygon fill="#A80036" points="868,136.8594,872,146.8594,876,136.8594,872,140.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="615.4766" y2="633.4766"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="631.5" y1="633.4766" y2="633.4766"/><polygon fill="#A80036" points="621.5,629.4766,631.5,633.4766,621.5,637.4766,625.5,633.4766" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872" x2="872" y1="180.8281" y2="633.4766"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872" x2="655.5" y1="633.4766" y2="633.4766"/><polygon fill="#A80036" points="665.5,629.4766,655.5,633.4766,665.5,637.4766,661.5,633.4766" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="643.5" x2="643.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="639.5,102.8594,643.5,112.8594,647.5,102.8594,643.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="643.5" x2="643.5" y1="645.4766" y2="665.4766"/><polygon fill="#A80036" points="639.5,655.4766,643.5,665.4766,647.5,655.4766,643.5,659.4766" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="643.5" x2="643.5" y1="699.4453" y2="719.4453"/><polygon fill="#A80036" points="639.5,709.4453,643.5,719.4453,647.5,709.4453,643.5,713.4453" style="stroke: #A80036; stroke-width: 1.0;"/><!--
-@startuml
-
-title **µRtWare**\nurtSubscriberUnsubscribe()\n
-
-
-
-start
-if (Is HRT subscriber?) then (yes)
-  :lock topic;
-  :unregister event;
-  note left
-    must be within lock because of HRT counter
-  endnote
-  fork
-    :decrease topic HRT counter;
-  fork again
-    :remove self from topic list of HRT subscribers;
-    if (Was most critical subscriber?) then (yes)
-      :update QoS Timer (rate);
-    else (no)
-    endif
-  fork again
-    while (Unfetched messages left?) is (yes)
-      :lock message;
-      :decrease HRT counter;
-      :unlock message;
-    endwhile (no)
-  endfork
-  :unlock topic;
-else (no)
-  :unregister event;
-endif
-:reset members;
-note left
-  optional
-end note
-stop
-
-@enduml
-
-PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
-(GPL source distribution)
-Java Runtime: OpenJDK Runtime Environment
-JVM: OpenJDK 64-Bit Server VM
-Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
-Operating System: Linux
-OS Version: 4.15.0-36-generic
-Default Encoding: UTF-8
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/unsubscribe.uml b/doc/statediagrams/subscriber/unsubscribe.uml
deleted file mode 100644
index 4765095..0000000
--- a/doc/statediagrams/subscriber/unsubscribe.uml
+++ /dev/null
@@ -1,60 +0,0 @@
-/'
-µRtWare is a lightweight publish/subscribe middleware for real-time
-applications. It was developed as part of the software habitat for the
-Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
-
-Copyright (C) 2018..2018  Thomas Schöpping et al.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-'/
-
-@startuml
-
-title **µRtWare**\nurtSubscriberUnsubscribe()\n
-
-
-
-start
-if (Is HRT subscriber?) then (yes)
-  :lock topic;
-  :unregister event;
-  note left
-    must be within lock because of HRT counter
-  endnote
-  fork
-    :decrease topic HRT counter;
-  fork again
-    :remove self from topic list of HRT subscribers;
-    if (Was most critical subscriber?) then (yes)
-      :update QoS Timer (rate);
-    else (no)
-    endif
-  fork again
-    while (Unfetched messages left?) is (yes)
-      :lock message;
-      :decrease HRT counter;
-      :unlock message;
-    endwhile (no)
-  endfork
-  :unlock topic;
-else (no)
-  :unregister event;
-endif
-:reset members;
-note left
-  optional
-end note
-stop
-
-@enduml
diff --git a/doc/statediagrams/subscriber/urtSubscriberFetchMessage.svg b/doc/statediagrams/subscriber/urtSubscriberFetchMessage.svg
new file mode 100644
index 0000000..ace4149
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberFetchMessage.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1455px" preserveAspectRatio="none" style="width:2068px;height:1455px;" version="1.1" viewBox="0 0 2068 1455" width="2068px" zoomAndPan="magnify"><defs><filter height="300%" id="f1f9rycf3tt47j" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="988.75" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="256" x="905.25" y="47.6611">urtSubscriberFetchMessage()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="1036.25" y="68.6143"/><path d="M1096.25,72.8594 L1096.25,97.9922 A0,0 0 0 0 1096.25,97.9922 L1211.25,97.9922 A0,0 0 0 0 1211.25,97.9922 L1211.25,90.8594 L1231.25,85.4258 L1211.25,82.8594 L1211.25,82.8594 L1201.25,72.8594 L1096.25,72.8594 A0,0 0 0 0 1096.25,72.8594 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1201.25,72.8594 L1201.25,82.8594 L1211.25,82.8594 L1201.25,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="1102.25" y="89.9263">event received</text><ellipse cx="1241.25" cy="85.4258" fill="#000000" filter="url(#f1f9rycf3tt47j)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M798.25,122.4102 L798.25,147.543 A0,0 0 0 0 798.25,147.543 L1181.25,147.543 A0,0 0 0 0 1181.25,147.543 L1181.25,140.4102 L1201.25,134.9766 L1181.25,132.4102 L1181.25,132.4102 L1171.25,122.4102 L798.25,122.4102 A0,0 0 0 0 798.25,122.4102 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1171.25,122.4102 L1171.25,132.4102 L1181.25,132.4102 L1171.25,122.4102 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="362" x="804.25" y="139.4771">The message list is part of the topic and must be locked.</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="1201.25" y="117.9922"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1211.25" y="139.1309">lock topic</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1187.75,171.9609,1294.75,171.9609,1306.75,183.9609,1294.75,195.9609,1187.75,195.9609,1175.75,183.9609,1187.75,171.9609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="1187.75" y="187.769">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1155.75" y="181.3667">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1306.75" y="181.3667">no</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="636.5" y="205.9609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="646.5" y="227.0996">lock next message</text><rect fill="#FFFFFF" filter="url(#f1f9rycf3tt47j)" height="465.9175" style="stroke: #000000; stroke-width: 2.0;" width="1387" x="10" y="306.4419"/><path d="M124,307.4419 L124,315.7388 L114,325.7388 L10,325.7388 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="13" y="320.437">iterate to latest</text><path d="M413.5,347.1567 L413.5,372.2896 A0,0 0 0 0 413.5,372.2896 L616.5,372.2896 A0,0 0 0 0 616.5,372.2896 L616.5,365.1567 L636.5,359.7231 L616.5,357.1567 L616.5,357.1567 L606.5,347.1567 L413.5,347.1567 A0,0 0 0 0 413.5,347.1567 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M606.5,347.1567 L606.5,357.1567 L616.5,357.1567 L606.5,347.1567 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="419.5" y="364.2236">locked two messaged ahead</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="636.5" y="342.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="646.5" y="363.8774">lock next message</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1322" x="44" y="452.418"/><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1129" x="58" y="478.418"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="304" x="72" y="504.418"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="284" x="82" y="525.5566">decremenet HRT counter of current message</text><path d="M404,508.8359 L404,533.9688 A0,0 0 0 0 404,533.9688 L893,533.9688 A0,0 0 0 0 893,533.9688 L893,526.8359 L913,521.4023 L893,518.8359 L893,518.8359 L883,508.8359 L404,508.8359 A0,0 0 0 0 404,508.8359 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M883,508.8359 L883,518.8359 L893,518.8359 L883,508.8359 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="468" x="410" y="525.9028">no lock required since this timer is only accessed when the topic is locked</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="913" y="504.418"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="923" y="525.5566">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1129" x="58" y="558.3867"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="536.5" y="594.8711"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="546.5" y="616.0098">unlock current message</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1215" y="538.9023"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1225" y="560.041">lock next message</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1322" x="44" y="648.8398"/><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="551,396.7075,859,396.7075,871,408.7075,859,420.7075,551,420.7075,539,408.7075,551,396.7075" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="709" y="430.918">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="308" x="551" y="412.5156">Timestamp of next message is younger than current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="525" y="406.1133">no</text><path d="M345.5,712.0938 L345.5,752.3594 A0,0 0 0 0 345.5,752.3594 L608.5,752.3594 A0,0 0 0 0 608.5,752.3594 L608.5,736.2266 L628.5,732.2266 L608.5,728.2266 L608.5,722.0938 L598.5,712.0938 L345.5,712.0938 A0,0 0 0 0 345.5,712.0938 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M598.5,712.0938 L598.5,722.0938 L608.5,722.0938 L598.5,712.0938 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="201" x="351.5" y="729.1606">one message ahead still locked</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="242" x="351.5" y="744.2935">but HRT counter not yet decremented</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="628.5" y="715.2422"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="638.5" y="736.3809">unlock next message</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="618.5,259.9297,791.5,259.9297,803.5,271.9297,791.5,283.9297,618.5,283.9297,606.5,271.9297,618.5,259.9297" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="709" y="294.1401">latest</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="618.5" y="275.7378">Fetch next or latest message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="803.5" y="269.3354">next</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="705,796.7617,717,808.7617,705,820.7617,693,808.7617,705,796.7617" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1121" x="144.5" y="855.7617"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="296" x="158.5" y="881.7617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="276" x="168.5" y="902.9004">decrement HRT counter of current message</text><path d="M482.5,886.1797 L482.5,911.3125 A0,0 0 0 0 482.5,911.3125 L971.5,911.3125 A0,0 0 0 0 971.5,911.3125 L971.5,904.1797 L991.5,898.7461 L971.5,896.1797 L971.5,896.1797 L961.5,886.1797 L482.5,886.1797 A0,0 0 0 0 482.5,886.1797 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M961.5,886.1797 L961.5,896.1797 L971.5,896.1797 L961.5,886.1797 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="468" x="488.5" y="903.2466">no lock required since this timer is only accessed when the topic is locked</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="260" x="991.5" y="881.7617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="240" x="1001.5" y="902.9004">update QoS delay timer (@subscriber)</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1121" x="144.5" y="935.7305"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="166" x="1694.5" y="205.9609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="146" x="1704.5" y="227.0996">lock last read message</text><rect fill="#FFFFFF" filter="url(#f1f9rycf3tt47j)" height="340.3979" style="stroke: #000000; stroke-width: 2.0;" width="516" x="1516.5" y="306.4419"/><path d="M1700.5,307.4419 L1700.5,315.7388 L1690.5,325.7388 L1516.5,325.7388 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="1519.5" y="320.437">find oldest valid message</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1709" y="342.7388"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1719" y="363.8774">lock next message</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="454" x="1550.5" y="452.418"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="1564.5" y="478.418"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="145" x="1574.5" y="499.5566">unlock current mesage</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="233" x="1757.5" y="478.418"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="213" x="1767.5" y="499.5566">lock one message further ahaead</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="454" x="1550.5" y="532.3867"/><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1644.5,396.7075,1910.5,396.7075,1922.5,408.7075,1910.5,420.7075,1644.5,420.7075,1632.5,408.7075,1644.5,396.7075" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1781.5" y="430.918">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="266" x="1644.5" y="412.5156">Timestamp of next is younger then of current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1618.5" y="406.1133">no</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1701" y="592.8711"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="1711" y="614.0098">unlock next message</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1691.5,259.9297,1863.5,259.9297,1875.5,271.9297,1863.5,283.9297,1691.5,283.9297,1679.5,271.9297,1691.5,259.9297" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1781.5" y="294.1401">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="1691.5" y="275.7378">Timestamp equals local copy?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1875.5" y="269.3354">yes</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1777.5,671.2422,1789.5,683.2422,1777.5,695.2422,1765.5,683.2422,1777.5,671.2422" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FFFFFF" filter="url(#f1f9rycf3tt47j)" height="340.0078" style="stroke: #000000; stroke-width: 2.0;" width="542" x="1449" y="776.8984"/><path d="M1563,777.8984 L1563,786.1953 L1553,796.1953 L1449,796.1953 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="1452" y="790.8936">iterate to latest</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1709" y="813.1953"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1719" y="834.334">lock next message</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="365" x="1595" y="942.9688"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="1609" y="968.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="152" x="1619" y="990.1074">unlock current message</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="1809" y="968.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="1819" y="990.1074">lock next message</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="365" x="1595" y="1022.9375"/><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1623.5,882.1641,1931.5,882.1641,1943.5,894.1641,1931.5,906.1641,1623.5,906.1641,1611.5,894.1641,1623.5,882.1641" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1781.5" y="916.3745">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="308" x="1623.5" y="897.9722">Timestamp of next message is younger then current?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1597.5" y="891.5698">no</text><path d="M1459,1075.3555 L1459,1100.4883 A0,0 0 0 0 1459,1100.4883 L1681,1100.4883 A0,0 0 0 0 1681,1100.4883 L1681,1093.3555 L1701,1087.9219 L1681,1085.3555 L1681,1085.3555 L1671,1075.3555 L1459,1075.3555 A0,0 0 0 0 1459,1075.3555 " fill="#FBFB77" filter="url(#f1f9rycf3tt47j)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1671,1075.3555 L1671,1085.3555 L1681,1085.3555 L1671,1075.3555 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="201" x="1465" y="1092.4224">one message ahead still locked</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="1701" y="1070.9375"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="133" x="1711" y="1092.0762">unlock next message</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1691,728.4961,1864,728.4961,1876,740.4961,1864,752.4961,1691,752.4961,1679,740.4961,1691,728.4961" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="1781.5" y="762.7065">latest</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="1691" y="744.3042">Fetch next or latest message?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="1876" y="737.9019">next</text><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1777.5,1136.9063,1789.5,1148.9063,1777.5,1160.9063,1765.5,1148.9063,1777.5,1136.9063" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" points="1241.25,1166.9063,1253.25,1178.9063,1241.25,1190.9063,1229.25,1178.9063,1241.25,1166.9063" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="604" x="939.25" y="1210.9063"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="352" x="953.25" y="1236.9063"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="332" x="963.25" y="1258.0449">set last fetched message pointer to locked message</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="1333.25" y="1236.9063"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="1343.25" y="1258.0449">copy timestamp of message</text><rect fill="#000000" filter="url(#f1f9rycf3tt47j)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="604" x="939.25" y="1290.875"/><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="1180.25" y="1316.875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1190.25" y="1338.0137">unlock message</text><rect fill="#FEFECE" filter="url(#f1f9rycf3tt47j)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="1193.25" y="1370.8438"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="1203.25" y="1391.9824">unlock topic</text><ellipse cx="1241.25" cy="1434.8125" fill="none" filter="url(#f1f9rycf3tt47j)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1241.75" cy="1435.3125" fill="#000000" filter="url(#f1f9rycf3tt47j)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.25" x2="1241.25" y1="95.4258" y2="117.9922"/><polygon fill="#A80036" points="1237.25,107.9922,1241.25,117.9922,1245.25,107.9922,1241.25,111.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="224" x2="224" y1="484.418" y2="504.418"/><polygon fill="#A80036" points="220,494.418,224,504.418,228,494.418,224,498.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1043" x2="1043" y1="484.418" y2="504.418"/><polygon fill="#A80036" points="1039,494.418,1043,504.418,1047,494.418,1043,498.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="224" x2="224" y1="538.3867" y2="558.3867"/><polygon fill="#A80036" points="220,548.3867,224,558.3867,228,548.3867,224,552.3867" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1043" x2="1043" y1="538.3867" y2="558.3867"/><polygon fill="#A80036" points="1039,548.3867,1043,558.3867,1047,548.3867,1043,552.3867" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="622.5" x2="622.5" y1="564.3867" y2="594.8711"/><polygon fill="#A80036" points="618.5,584.8711,622.5,594.8711,626.5,584.8711,622.5,588.8711" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="622.5" x2="622.5" y1="458.418" y2="478.418"/><polygon fill="#A80036" points="618.5,468.418,622.5,478.418,626.5,468.418,622.5,472.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1283.5" x2="1283.5" y1="458.418" y2="538.9023"/><polygon fill="#A80036" points="1279.5,528.9023,1283.5,538.9023,1287.5,528.9023,1283.5,532.9023" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="622.5" x2="622.5" y1="628.8398" y2="648.8398"/><polygon fill="#A80036" points="618.5,638.8398,622.5,648.8398,626.5,638.8398,622.5,642.8398" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1283.5" x2="1283.5" y1="572.8711" y2="648.8398"/><polygon fill="#A80036" points="1279.5,638.8398,1283.5,648.8398,1287.5,638.8398,1283.5,642.8398" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="420.7075" y2="452.418"/><polygon fill="#A80036" points="701,442.418,705,452.418,709,442.418,705,446.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="654.8398" y2="666.8398"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="1378" y1="666.8398" y2="666.8398"/><polygon fill="#A80036" points="1374,547.4844,1378,537.4844,1382,547.4844,1378,543.4844" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1378" x2="1378" y1="408.7075" y2="666.8398"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1378" x2="871" y1="408.7075" y2="408.7075"/><polygon fill="#A80036" points="881,404.7075,871,408.7075,881,412.7075,877,408.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="539" x2="32" y1="408.7075" y2="408.7075"/><polygon fill="#A80036" points="28,533.4844,32,543.4844,36,533.4844,32,537.4844" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="32" y1="408.7075" y2="678.8398"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="32" x2="705" y1="678.8398" y2="678.8398"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="678.8398" y2="715.2422"/><polygon fill="#A80036" points="701,705.2422,705,715.2422,709,705.2422,705,709.2422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="376.7075" y2="396.7075"/><polygon fill="#A80036" points="701,386.7075,705,396.7075,709,386.7075,705,390.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="283.9297" y2="342.7388"/><polygon fill="#A80036" points="701,332.7388,705,342.7388,709,332.7388,705,336.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="803.5" x2="1407" y1="271.9297" y2="271.9297"/><polygon fill="#A80036" points="1403,522.4844,1407,532.4844,1411,522.4844,1407,526.4844" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1407" x2="1407" y1="271.9297" y2="808.7617"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1407" x2="717" y1="808.7617" y2="808.7617"/><polygon fill="#A80036" points="727,804.7617,717,808.7617,727,812.7617,723,808.7617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="749.2109" y2="796.7617"/><polygon fill="#A80036" points="701,786.7617,705,796.7617,709,786.7617,705,790.7617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="239.9297" y2="259.9297"/><polygon fill="#A80036" points="701,249.9297,705,259.9297,709,249.9297,705,253.9297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="306.5" y1="861.7617" y2="881.7617"/><polygon fill="#A80036" points="302.5,871.7617,306.5,881.7617,310.5,871.7617,306.5,875.7617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.5" x2="1121.5" y1="861.7617" y2="881.7617"/><polygon fill="#A80036" points="1117.5,871.7617,1121.5,881.7617,1125.5,871.7617,1121.5,875.7617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="306.5" y1="915.7305" y2="935.7305"/><polygon fill="#A80036" points="302.5,925.7305,306.5,935.7305,310.5,925.7305,306.5,929.7305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1121.5" x2="1121.5" y1="915.7305" y2="935.7305"/><polygon fill="#A80036" points="1117.5,925.7305,1121.5,935.7305,1125.5,925.7305,1121.5,929.7305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="820.7617" y2="855.7617"/><polygon fill="#A80036" points="701,845.7617,705,855.7617,709,845.7617,705,849.7617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1647" x2="1647" y1="458.418" y2="478.418"/><polygon fill="#A80036" points="1643,468.418,1647,478.418,1651,468.418,1647,472.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1874" x2="1874" y1="458.418" y2="478.418"/><polygon fill="#A80036" points="1870,468.418,1874,478.418,1878,468.418,1874,472.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1647" x2="1647" y1="512.3867" y2="532.3867"/><polygon fill="#A80036" points="1643,522.3867,1647,532.3867,1651,522.3867,1647,526.3867" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1874" x2="1874" y1="512.3867" y2="532.3867"/><polygon fill="#A80036" points="1870,522.3867,1874,532.3867,1878,522.3867,1874,526.3867" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="420.7075" y2="452.418"/><polygon fill="#A80036" points="1773.5,442.418,1777.5,452.418,1781.5,442.418,1777.5,446.418" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="538.3867" y2="550.3867"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="2016.5" y1="550.3867" y2="550.3867"/><polygon fill="#A80036" points="2012.5,487,2016.5,477,2020.5,487,2016.5,483" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2016.5" x2="2016.5" y1="408.7075" y2="550.3867"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2016.5" x2="1922.5" y1="408.7075" y2="408.7075"/><polygon fill="#A80036" points="1932.5,404.7075,1922.5,408.7075,1932.5,412.7075,1928.5,408.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1632.5" x2="1538.5" y1="408.7075" y2="408.7075"/><polygon fill="#A80036" points="1534.5,473,1538.5,483,1542.5,473,1538.5,477" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1538.5" x2="1538.5" y1="408.7075" y2="562.3867"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1538.5" x2="1777.5" y1="562.3867" y2="562.3867"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="562.3867" y2="592.8711"/><polygon fill="#A80036" points="1773.5,582.8711,1777.5,592.8711,1781.5,582.8711,1777.5,586.8711" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="376.7075" y2="396.7075"/><polygon fill="#A80036" points="1773.5,386.7075,1777.5,396.7075,1781.5,386.7075,1777.5,390.7075" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="283.9297" y2="342.7388"/><polygon fill="#A80036" points="1773.5,332.7388,1777.5,342.7388,1781.5,332.7388,1777.5,336.7388" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1875.5" x2="2042.5" y1="271.9297" y2="271.9297"/><polygon fill="#A80036" points="2038.5,458.8516,2042.5,468.8516,2046.5,458.8516,2042.5,462.8516" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2042.5" x2="2042.5" y1="271.9297" y2="683.2422"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2042.5" x2="1789.5" y1="683.2422" y2="683.2422"/><polygon fill="#A80036" points="1799.5,679.2422,1789.5,683.2422,1799.5,687.2422,1795.5,683.2422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="626.8398" y2="671.2422"/><polygon fill="#A80036" points="1773.5,661.2422,1777.5,671.2422,1781.5,661.2422,1777.5,665.2422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="239.9297" y2="259.9297"/><polygon fill="#A80036" points="1773.5,249.9297,1777.5,259.9297,1781.5,249.9297,1777.5,253.9297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1695" x2="1695" y1="948.9688" y2="968.9688"/><polygon fill="#A80036" points="1691,958.9688,1695,968.9688,1699,958.9688,1695,962.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1877.5" x2="1877.5" y1="948.9688" y2="968.9688"/><polygon fill="#A80036" points="1873.5,958.9688,1877.5,968.9688,1881.5,958.9688,1877.5,962.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1695" x2="1695" y1="1002.9375" y2="1022.9375"/><polygon fill="#A80036" points="1691,1012.9375,1695,1022.9375,1699,1012.9375,1695,1016.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1877.5" x2="1877.5" y1="1002.9375" y2="1022.9375"/><polygon fill="#A80036" points="1873.5,1012.9375,1877.5,1022.9375,1881.5,1012.9375,1877.5,1016.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="906.1641" y2="942.9688"/><polygon fill="#A80036" points="1773.5,932.9688,1777.5,942.9688,1781.5,932.9688,1777.5,936.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="1028.9375" y2="1038.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1972" y1="1038.9375" y2="1038.9375"/><polygon fill="#A80036" points="1968,977.5508,1972,967.5508,1976,977.5508,1972,973.5508" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1972" x2="1972" y1="894.1641" y2="1038.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1972" x2="1943.5" y1="894.1641" y2="894.1641"/><polygon fill="#A80036" points="1953.5,890.1641,1943.5,894.1641,1953.5,898.1641,1949.5,894.1641" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1611.5" x2="1583" y1="894.1641" y2="894.1641"/><polygon fill="#A80036" points="1579,963.5508,1583,973.5508,1587,963.5508,1583,967.5508" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1583" x2="1583" y1="894.1641" y2="1050.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1583" x2="1777.5" y1="1050.9375" y2="1050.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="1050.9375" y2="1070.9375"/><polygon fill="#A80036" points="1773.5,1060.9375,1777.5,1070.9375,1781.5,1060.9375,1777.5,1064.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="847.1641" y2="882.1641"/><polygon fill="#A80036" points="1773.5,872.1641,1777.5,882.1641,1781.5,872.1641,1777.5,876.1641" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="752.4961" y2="813.1953"/><polygon fill="#A80036" points="1773.5,803.1953,1777.5,813.1953,1781.5,803.1953,1777.5,807.1953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1876" x2="2001" y1="740.4961" y2="740.4961"/><polygon fill="#A80036" points="1997,949.4023,2001,959.4023,2005,949.4023,2001,953.4023" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001" x2="2001" y1="740.4961" y2="1148.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2001" x2="1789.5" y1="1148.9063" y2="1148.9063"/><polygon fill="#A80036" points="1799.5,1144.9063,1789.5,1148.9063,1799.5,1152.9063,1795.5,1148.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="1104.9063" y2="1136.9063"/><polygon fill="#A80036" points="1773.5,1126.9063,1777.5,1136.9063,1781.5,1126.9063,1777.5,1130.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="695.2422" y2="728.4961"/><polygon fill="#A80036" points="1773.5,718.4961,1777.5,728.4961,1781.5,718.4961,1777.5,722.4961" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1175.75" x2="705" y1="183.9609" y2="183.9609"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="183.9609" y2="205.9609"/><polygon fill="#A80036" points="701,195.9609,705,205.9609,709,195.9609,705,199.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1306.75" x2="1777.5" y1="183.9609" y2="183.9609"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="183.9609" y2="205.9609"/><polygon fill="#A80036" points="1773.5,195.9609,1777.5,205.9609,1781.5,195.9609,1777.5,199.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="705" y1="941.7305" y2="1178.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="705" x2="1229.25" y1="1178.9063" y2="1178.9063"/><polygon fill="#A80036" points="1219.25,1174.9063,1229.25,1178.9063,1219.25,1182.9063,1223.25,1178.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1777.5" y1="1160.9063" y2="1178.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1777.5" x2="1253.25" y1="1178.9063" y2="1178.9063"/><polygon fill="#A80036" points="1263.25,1174.9063,1253.25,1178.9063,1263.25,1182.9063,1259.25,1178.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.25" x2="1241.25" y1="151.9609" y2="171.9609"/><polygon fill="#A80036" points="1237.25,161.9609,1241.25,171.9609,1245.25,161.9609,1241.25,165.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1129.25" x2="1129.25" y1="1216.9063" y2="1236.9063"/><polygon fill="#A80036" points="1125.25,1226.9063,1129.25,1236.9063,1133.25,1226.9063,1129.25,1230.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.25" x2="1431.25" y1="1216.9063" y2="1236.9063"/><polygon fill="#A80036" points="1427.25,1226.9063,1431.25,1236.9063,1435.25,1226.9063,1431.25,1230.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1129.25" x2="1129.25" y1="1270.875" y2="1290.875"/><polygon fill="#A80036" points="1125.25,1280.875,1129.25,1290.875,1133.25,1280.875,1129.25,1284.875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1431.25" x2="1431.25" y1="1270.875" y2="1290.875"/><polygon fill="#A80036" points="1427.25,1280.875,1431.25,1290.875,1435.25,1280.875,1431.25,1284.875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.25" x2="1241.25" y1="1190.9063" y2="1210.9063"/><polygon fill="#A80036" points="1237.25,1200.9063,1241.25,1210.9063,1245.25,1200.9063,1241.25,1204.9063" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.25" x2="1241.25" y1="1296.875" y2="1316.875"/><polygon fill="#A80036" points="1237.25,1306.875,1241.25,1316.875,1245.25,1306.875,1241.25,1310.875" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.25" x2="1241.25" y1="1350.8438" y2="1370.8438"/><polygon fill="#A80036" points="1237.25,1360.8438,1241.25,1370.8438,1245.25,1360.8438,1241.25,1364.8438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1241.25" x2="1241.25" y1="1404.8125" y2="1424.8125"/><polygon fill="#A80036" points="1237.25,1414.8125,1241.25,1424.8125,1245.25,1414.8125,1241.25,1418.8125" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtSubscriberFetchMessage()\n
+
+
+
+start
+note
+  event received
+endnote
+:lock topic;
+note
+  The message list is part of the topic and must be locked.
+endnote
+if (Is HRT subscriber?) then (yes)
+  :lock next message;
+  if (Fetch next or latest message?) then (next)
+  else (latest)
+    partition "iterate to latest" {
+      :lock next message;
+      note
+        locked two messaged ahead
+      endnote
+      while (Timestamp of next message is younger than current?) is (yes)
+        fork
+          fork
+            :decremenet HRT counter of current message;
+          fork again
+            :update QoS delay timer (@subscriber);
+            note
+              no lock required since this timer is only accessed when the topic is locked
+            endnote
+          endfork
+          :unlock current message;
+        fork again
+          :lock next message;
+        endfork
+      endwhile (no)
+      :unlock next message;
+      note
+        one message ahead still locked
+        but HRT counter not yet decremented
+      endnote
+    }
+  endif
+  fork
+    :decrement HRT counter of current message;
+  fork again
+    :update QoS delay timer (@subscriber);
+    note
+      no lock required since this timer is only accessed when the topic is locked
+    endnote
+  endfork
+else (no)
+  :lock last read message;
+  if (Timestamp equals local copy?) then (yes)
+  else (no)
+    partition "find oldest valid message" {
+      :lock next message;
+      while (Timestamp of next is younger then of current?) is (yes)
+        fork
+          :unlock current mesage;
+        fork again
+          :lock one message further ahaead;
+        endfork
+      endwhile (no)
+      :unlock next message;
+    }
+  endif
+  if (Fetch next or latest message?) then (next)
+  else (latest)
+    partition "iterate to latest" {
+      :lock next message;
+      while (Timestamp of next message is younger then current?) is (yes)
+        fork
+          :unlock current message;
+        fork again
+          :lock next message;
+        endfork
+      endwhile (no)
+      :unlock next message;
+      note
+        one message ahead still locked
+      endnote
+    }
+  endif
+endif
+fork
+  :set last fetched message pointer to locked message;
+fork again
+  :copy timestamp of message;
+endfork
+:unlock message;
+:unlock topic;
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/urtSubscriberFetchMessage.uml b/doc/statediagrams/subscriber/urtSubscriberFetchMessage.uml
new file mode 100644
index 0000000..9627083
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberFetchMessage.uml
@@ -0,0 +1,118 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtSubscriberFetchMessage()\n
+
+
+
+start
+note
+  event received
+endnote
+:lock topic;
+note
+  The message list is part of the topic and must be locked.
+endnote
+if (Is HRT subscriber?) then (yes)
+  :lock next message;
+  if (Fetch next or latest message?) then (next)
+  else (latest)
+    partition "iterate to latest" {
+      :lock next message;
+      note
+        locked two messaged ahead
+      endnote
+      while (Timestamp of next message is younger than current?) is (yes)
+        fork
+          fork
+            :decremenet HRT counter of current message;
+          fork again
+            :update QoS delay timer (@subscriber);
+            note
+              no lock required since this timer is only accessed when the topic is locked
+            endnote
+          endfork
+          :unlock current message;
+        fork again
+          :lock next message;
+        endfork
+      endwhile (no)
+      :unlock next message;
+      note
+        one message ahead still locked
+        but HRT counter not yet decremented
+      endnote
+    }
+  endif
+  fork
+    :decrement HRT counter of current message;
+  fork again
+    :update QoS delay timer (@subscriber);
+    note
+      no lock required since this timer is only accessed when the topic is locked
+    endnote
+  endfork
+else (no)
+  :lock last read message;
+  if (Timestamp equals local copy?) then (yes)
+  else (no)
+    partition "find oldest valid message" {
+      :lock next message;
+      while (Timestamp of next is younger then of current?) is (yes)
+        fork
+          :unlock current mesage;
+        fork again
+          :lock one message further ahaead;
+        endfork
+      endwhile (no)
+      :unlock next message;
+    }
+  endif
+  if (Fetch next or latest message?) then (next)
+  else (latest)
+    partition "iterate to latest" {
+      :lock next message;
+      while (Timestamp of next message is younger then current?) is (yes)
+        fork
+          :unlock current message;
+        fork again
+          :lock next message;
+        endfork
+      endwhile (no)
+      :unlock next message;
+      note
+        one message ahead still locked
+      endnote
+    }
+  endif
+endif
+fork
+  :set last fetched message pointer to locked message;
+fork again
+  :copy timestamp of message;
+endfork
+:unlock message;
+:unlock topic;
+stop
+
+@enduml
diff --git a/doc/statediagrams/subscriber/urtSubscriberInit.svg b/doc/statediagrams/subscriber/urtSubscriberInit.svg
new file mode 100644
index 0000000..c63fb40
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberInit.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="197px" preserveAspectRatio="none" style="width:186px;height:197px;" version="1.1" viewBox="0 0 186 197" width="186px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jn46g9u33vl1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="48.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="162" x="12" y="47.6611">urtSubscriberInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="96" y="68.6143"/><ellipse cx="93.5" cy="82.8594" fill="#000000" filter="url(#f1jn46g9u33vl1)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1jn46g9u33vl1)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="28" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="38" y="133.998">initialize members</text><ellipse cx="93.5" cy="176.8281" fill="none" filter="url(#f1jn46g9u33vl1)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="94" cy="177.3281" fill="#000000" filter="url(#f1jn46g9u33vl1)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="93.5" x2="93.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="89.5,102.8594,93.5,112.8594,97.5,102.8594,93.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="93.5" x2="93.5" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="89.5,156.8281,93.5,166.8281,97.5,156.8281,93.5,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtSubscriberInit()\n
+
+
+
+start
+:initialize members;
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/urtSubscriberInit.uml b/doc/statediagrams/subscriber/urtSubscriberInit.uml
new file mode 100644
index 0000000..bec72e0
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberInit.uml
@@ -0,0 +1,32 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtSubscriberInit()\n
+
+
+
+start
+:initialize members;
+stop
+
+@enduml
diff --git a/doc/statediagrams/subscriber/urtSubscriberSubscribe.svg b/doc/statediagrams/subscriber/urtSubscriberSubscribe.svg
new file mode 100644
index 0000000..d0ff546
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberSubscribe.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1016px" preserveAspectRatio="none" style="width:1090px;height:1016px;" version="1.1" viewBox="0 0 1090 1016" width="1090px" zoomAndPan="magnify"><defs><filter height="300%" id="fdenaefteqn3b" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="499.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="218" x="435" y="47.6611">urtSubscriberSubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="547" y="68.6143"/><ellipse cx="544.5" cy="82.8594" fill="#000000" filter="url(#fdenaefteqn3b)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#000000" filter="url(#fdenaefteqn3b)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="304" x="392.5" y="112.8594"/><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="416.5" y="187.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="121" x="426.5" y="208.4004">set rtclass member</text><polygon fill="#FEFECE" filter="url(#fdenaefteqn3b)" points="423.5,138.8594,550.5,138.8594,562.5,150.8594,550.5,162.8594,423.5,162.8594,411.5,150.8594,423.5,138.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="491" y="173.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="423.5" y="154.6675">Was rtclass specified?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="562.5" y="148.2651">no</text><polygon fill="#FEFECE" filter="url(#fdenaefteqn3b)" points="487,241.2305,499,253.2305,487,265.2305,475,253.2305,487,241.2305" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="607.5" y="187.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="617.5" y="208.4004">set topic</text><rect fill="#000000" filter="url(#fdenaefteqn3b)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="304" x="392.5" y="285.2305"/><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="504.5" y="311.2305"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="514.5" y="332.3691">lock topic</text><rect fill="#000000" filter="url(#fdenaefteqn3b)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1069" x="10" y="365.1992"/><rect fill="#FFFFFF" filter="url(#fdenaefteqn3b)" height="151.2344" style="stroke: #000000; stroke-width: 2.0;" width="668" x="34" y="437.7114"/><path d="M191,438.7114 L191,447.0083 L181,457.0083 L34,457.0083 " fill="none" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="147" x="37" y="451.7065">contribute messages</text><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="475" x="130.5" y="474.0083"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="140.5" y="495.147">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="164.5" y="495.147">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="399" x="196.5" y="495.147">pointer of topic's latest message to first message to contribute</text><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="648" x="44" y="542.9771"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="20" x="54" y="564.1157">set</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="28" x="78" y="564.1157">next</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="572" x="110" y="564.1157">pointer of last message to contribute to message formerly after the topic's latest message</text><polygon fill="#FEFECE" filter="url(#fdenaefteqn3b)" points="270.5,391.1992,465.5,391.1992,477.5,403.1992,465.5,415.1992,270.5,415.1992,258.5,403.1992,270.5,391.1992" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="372" y="425.4097">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="270.5" y="407.0073">Messages specified to contribute?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="477.5" y="400.605">no</text><polygon fill="#FEFECE" filter="url(#fdenaefteqn3b)" points="368,608.9458,380,620.9458,368,632.9458,356,620.9458,368,608.9458" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="313" x="752" y="500.3442"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="293" x="762" y="521.4829">set message pointer to topic's latest message</text><rect fill="#000000" filter="url(#fdenaefteqn3b)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1069" x="10" y="652.9458"/><rect fill="#000000" filter="url(#fdenaefteqn3b)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="567" x="261" y="727.3481"/><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="190" x="275" y="753.3481"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="170" x="285" y="774.4868">increase topic HRT counter</text><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="321" x="493" y="753.3481"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="301" x="503" y="774.4868">insert subscriber to topic list of HRT subscribers</text><rect fill="#000000" filter="url(#fdenaefteqn3b)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="567" x="261" y="807.3169"/><polygon fill="#FEFECE" filter="url(#fdenaefteqn3b)" points="491,678.9458,598,678.9458,610,690.9458,598,702.9458,491,702.9458,479,690.9458,491,678.9458" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="548.5" y="713.1563">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="491" y="694.7539">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="610" y="688.3516">no</text><polygon fill="#FEFECE" filter="url(#fdenaefteqn3b)" points="544.5,833.3169,556.5,845.3169,544.5,857.3169,532.5,845.3169,544.5,833.3169" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M120,881.7349 L120,906.8677 A0,0 0 0 0 120,906.8677 L421,906.8677 A0,0 0 0 0 421,906.8677 L421,899.7349 L441,894.3013 L421,891.7349 L421,891.7349 L411,881.7349 L120,881.7349 A0,0 0 0 0 120,881.7349 " fill="#FBFB77" filter="url(#fdenaefteqn3b)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M411,881.7349 L411,891.7349 L421,891.7349 L411,881.7349 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="126" y="898.8018">Must be within lock because of HRT counter.</text><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="441" y="877.3169"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="187" x="451" y="898.4556">register to topic event source</text><rect fill="#FEFECE" filter="url(#fdenaefteqn3b)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="496.5" y="931.2856"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="506.5" y="952.4243">unlock topic</text><ellipse cx="544.5" cy="995.2544" fill="none" filter="url(#fdenaefteqn3b)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="545" cy="995.7544" fill="#000000" filter="url(#fdenaefteqn3b)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="162.8594" y2="187.2617"/><polygon fill="#A80036" points="483,177.2617,487,187.2617,491,177.2617,487,181.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="562.5" x2="574.5" y1="150.8594" y2="150.8594"/><polygon fill="#A80036" points="570.5,194.2461,574.5,204.2461,578.5,194.2461,574.5,198.2461" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="574.5" x2="574.5" y1="150.8594" y2="253.2305"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="574.5" x2="499" y1="253.2305" y2="253.2305"/><polygon fill="#A80036" points="509,249.2305,499,253.2305,509,257.2305,505,253.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="221.2305" y2="241.2305"/><polygon fill="#A80036" points="483,231.2305,487,241.2305,491,231.2305,487,235.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="118.8594" y2="138.8594"/><polygon fill="#A80036" points="483,128.8594,487,138.8594,491,128.8594,487,132.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="645" x2="645" y1="118.8594" y2="187.2617"/><polygon fill="#A80036" points="641,177.2617,645,187.2617,649,177.2617,645,181.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="487" y1="265.2305" y2="285.2305"/><polygon fill="#A80036" points="483,275.2305,487,285.2305,491,275.2305,487,279.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="645" x2="645" y1="221.2305" y2="285.2305"/><polygon fill="#A80036" points="641,275.2305,645,285.2305,649,275.2305,645,279.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="540.5,102.8594,544.5,112.8594,548.5,102.8594,544.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="291.2305" y2="311.2305"/><polygon fill="#A80036" points="540.5,301.2305,544.5,311.2305,548.5,301.2305,544.5,305.2305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="507.9771" y2="542.9771"/><polygon fill="#A80036" points="364,532.9771,368,542.9771,372,532.9771,368,536.9771" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="415.1992" y2="474.0083"/><polygon fill="#A80036" points="364,464.0083,368,474.0083,372,464.0083,368,468.0083" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="477.5" x2="712" y1="403.1992" y2="403.1992"/><polygon fill="#A80036" points="708,507.3286,712,517.3286,716,507.3286,712,511.3286" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712" x2="712" y1="403.1992" y2="620.9458"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="712" x2="380" y1="620.9458" y2="620.9458"/><polygon fill="#A80036" points="390,616.9458,380,620.9458,390,624.9458,386,620.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="576.9458" y2="608.9458"/><polygon fill="#A80036" points="364,598.9458,368,608.9458,372,598.9458,368,602.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="371.1992" y2="391.1992"/><polygon fill="#A80036" points="364,381.1992,368,391.1992,372,381.1992,368,385.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.5" x2="908.5" y1="371.1992" y2="500.3442"/><polygon fill="#A80036" points="904.5,490.3442,908.5,500.3442,912.5,490.3442,908.5,494.3442" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="368" y1="632.9458" y2="652.9458"/><polygon fill="#A80036" points="364,642.9458,368,652.9458,372,642.9458,368,646.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="908.5" x2="908.5" y1="534.313" y2="652.9458"/><polygon fill="#A80036" points="904.5,642.9458,908.5,652.9458,912.5,642.9458,908.5,646.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="345.1992" y2="365.1992"/><polygon fill="#A80036" points="540.5,355.1992,544.5,365.1992,548.5,355.1992,544.5,359.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="370" y1="733.3481" y2="753.3481"/><polygon fill="#A80036" points="366,743.3481,370,753.3481,374,743.3481,370,747.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.5" x2="653.5" y1="733.3481" y2="753.3481"/><polygon fill="#A80036" points="649.5,743.3481,653.5,753.3481,657.5,743.3481,653.5,747.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="370" y1="787.3169" y2="807.3169"/><polygon fill="#A80036" points="366,797.3169,370,807.3169,374,797.3169,370,801.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="653.5" x2="653.5" y1="787.3169" y2="807.3169"/><polygon fill="#A80036" points="649.5,797.3169,653.5,807.3169,657.5,797.3169,653.5,801.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="702.9458" y2="727.3481"/><polygon fill="#A80036" points="540.5,717.3481,544.5,727.3481,548.5,717.3481,544.5,721.3481" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="610" x2="838" y1="690.9458" y2="690.9458"/><polygon fill="#A80036" points="834,760.3325,838,770.3325,842,760.3325,838,764.3325" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="838" x2="838" y1="690.9458" y2="845.3169"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="838" x2="556.5" y1="845.3169" y2="845.3169"/><polygon fill="#A80036" points="566.5,841.3169,556.5,845.3169,566.5,849.3169,562.5,845.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="813.3169" y2="833.3169"/><polygon fill="#A80036" points="540.5,823.3169,544.5,833.3169,548.5,823.3169,544.5,827.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="658.9458" y2="678.9458"/><polygon fill="#A80036" points="540.5,668.9458,544.5,678.9458,548.5,668.9458,544.5,672.9458" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="857.3169" y2="877.3169"/><polygon fill="#A80036" points="540.5,867.3169,544.5,877.3169,548.5,867.3169,544.5,871.3169" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="911.2856" y2="931.2856"/><polygon fill="#A80036" points="540.5,921.2856,544.5,931.2856,548.5,921.2856,544.5,925.2856" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="544.5" x2="544.5" y1="965.2544" y2="985.2544"/><polygon fill="#A80036" points="540.5,975.2544,544.5,985.2544,548.5,975.2544,544.5,979.2544" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtSubscriberSubscribe()\n
+
+
+
+start
+fork
+  if (Was rtclass specified?) then (yes)
+    :set rtclass member;
+  else (no)
+  endif
+fork again
+  :set topic;
+endfork
+:lock topic;
+fork
+  if (Messages specified to contribute?) then (yes)
+    partition "contribute messages" {
+      :set ""next"" pointer of topic's latest message to first message to contribute;
+      :set ""next"" pointer of last message to contribute to message formerly after the topic's latest message;
+    }
+  else (no)
+  endif
+fork again
+  :set message pointer to topic's latest message;
+endfork
+if (Is HRT subscriber?) then (yes)
+  fork
+    :increase topic HRT counter;
+  fork again
+    :insert subscriber to topic list of HRT subscribers;
+  endfork
+else (no)
+endif
+:register to topic event source;
+note
+  Must be within lock because of HRT counter.
+endnote
+:unlock topic;
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/urtSubscriberSubscribe.uml b/doc/statediagrams/subscriber/urtSubscriberSubscribe.uml
new file mode 100644
index 0000000..264f659
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberSubscribe.uml
@@ -0,0 +1,64 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtSubscriberSubscribe()\n
+
+
+
+start
+fork
+  if (Was rtclass specified?) then (yes)
+    :set rtclass member;
+  else (no)
+  endif
+fork again
+  :set topic;
+endfork
+:lock topic;
+fork
+  if (Messages specified to contribute?) then (yes)
+    partition "contribute messages" {
+      :set ""next"" pointer of topic's latest message to first message to contribute;
+      :set ""next"" pointer of last message to contribute to message formerly after the topic's latest message;
+    }
+  else (no)
+  endif
+fork again
+  :set message pointer to topic's latest message;
+endfork
+if (Is HRT subscriber?) then (yes)
+  fork
+    :increase topic HRT counter;
+  fork again
+    :insert subscriber to topic list of HRT subscribers;
+  endfork
+else (no)
+endif
+:register to topic event source;
+note
+  Must be within lock because of HRT counter.
+endnote
+:unlock topic;
+stop
+
+@enduml
diff --git a/doc/statediagrams/subscriber/urtSubscriberUnsubscribe.svg b/doc/statediagrams/subscriber/urtSubscriberUnsubscribe.svg
new file mode 100644
index 0000000..dc402f6
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberUnsubscribe.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="696px" preserveAspectRatio="none" style="width:1416px;height:696px;" version="1.1" viewBox="0 0 1416 696" width="1416px" zoomAndPan="magnify"><defs><filter height="300%" id="f1rz7zm3yl9o1y" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="662.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="240" x="587" y="47.6611">urtSubscriberUnsubscribe()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="710" y="68.6143"/><ellipse cx="996.75" cy="82.8594" fill="#000000" filter="url(#f1rz7zm3yl9o1y)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" points="943.25,112.8594,1050.25,112.8594,1062.25,124.8594,1050.25,136.8594,943.25,136.8594,931.25,124.8594,943.25,112.8594" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="943.25" y="128.6675">Is HRT subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="911.25" y="122.2651">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1062.25" y="122.2651">no</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="80" x="600.5" y="146.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="610.5" y="167.998">lock topic</text><rect fill="#000000" filter="url(#f1rz7zm3yl9o1y)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1261" x="10" y="200.8281"/><path d="M24,342.6172 L24,367.75 A0,0 0 0 0 24,367.75 L323,367.75 A0,0 0 0 0 323,367.75 L323,360.6172 L343,355.1836 L323,352.6172 L323,352.6172 L313,342.6172 L24,342.6172 A0,0 0 0 0 24,342.6172 " fill="#FBFB77" filter="url(#f1rz7zm3yl9o1y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M313,342.6172 L313,352.6172 L323,352.6172 L313,342.6172 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="278" x="30" y="359.6841">must be within lock because of HRT counter</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="343" y="338.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="353" y="359.3379">unregister event</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="495" y="338.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="175" x="505" y="359.3379">decrease topic HRT counter</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="718" y="255.3125"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="282" x="728" y="276.4512">remove self from topic list of HRT subscribers</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="218" x="760" y="372.6836"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="198" x="770" y="393.8223">update QoS rate timer (@topic)</text><polygon fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" points="785,324.2813,953,324.2813,965,336.2813,953,348.2813,785,348.2813,773,336.2813,785,324.2813" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="873" y="358.4917">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="785" y="340.0894">Was most critical subscriber?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="965" y="333.687">no</text><polygon fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" points="869,431.0547,881,443.0547,869,455.0547,857,443.0547,869,431.0547" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="1105.5" y="287.6328"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1115.5" y="308.7715">lock message</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="160" x="1078.5" y="356.6016"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="140" x="1088.5" y="377.7402">decrease HRT counter</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="1097.5" y="425.5703"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1107.5" y="446.709">unlock message</text><polygon fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" points="1084,226.8281,1233,226.8281,1245,238.8281,1233,250.8281,1084,250.8281,1072,238.8281,1084,226.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1162.5" y="261.0386">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="1084" y="242.6362">Unfetched messages left?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1058" y="236.2339">no</text><rect fill="#000000" filter="url(#f1rz7zm3yl9o1y)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="1261" x="10" y="501.5391"/><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="592.5" y="527.5391"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="602.5" y="548.6777">unlock topic</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1281" y="146.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="104" x="1291" y="167.998">unregister event</text><polygon fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" points="996.75,567.5078,1008.75,579.5078,996.75,591.5078,984.75,579.5078,996.75,567.5078" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M847.25,615.9258 L847.25,641.0586 A0,0 0 0 0 847.25,641.0586 L919.25,641.0586 A0,0 0 0 0 919.25,641.0586 L919.25,633.9258 L939.25,628.4922 L919.25,625.9258 L919.25,625.9258 L909.25,615.9258 L847.25,615.9258 A0,0 0 0 0 847.25,615.9258 " fill="#FBFB77" filter="url(#f1rz7zm3yl9o1y)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M909.25,615.9258 L909.25,625.9258 L919.25,625.9258 L909.25,615.9258 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="51" x="853.25" y="632.9927">optional</text><rect fill="#FEFECE" filter="url(#f1rz7zm3yl9o1y)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="939.25" y="611.5078"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="949.25" y="632.6465">reset members</text><ellipse cx="996.75" cy="675.4766" fill="none" filter="url(#f1rz7zm3yl9o1y)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="997.25" cy="675.9766" fill="#000000" filter="url(#f1rz7zm3yl9o1y)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="869" x2="869" y1="348.2813" y2="372.6836"/><polygon fill="#A80036" points="865,362.6836,869,372.6836,873,362.6836,869,366.6836" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="965" x2="988" y1="336.2813" y2="336.2813"/><polygon fill="#A80036" points="984,379.668,988,389.668,992,379.668,988,383.668" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="988" x2="988" y1="336.2813" y2="443.0547"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="988" x2="881" y1="443.0547" y2="443.0547"/><polygon fill="#A80036" points="891,439.0547,881,443.0547,891,447.0547,887,443.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="869" x2="869" y1="406.6523" y2="431.0547"/><polygon fill="#A80036" points="865,421.0547,869,431.0547,873,421.0547,869,425.0547" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="869" x2="869" y1="289.2813" y2="324.2813"/><polygon fill="#A80036" points="865,314.2813,869,324.2813,873,314.2813,869,318.2813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1158.5" y1="321.6016" y2="356.6016"/><polygon fill="#A80036" points="1154.5,346.6016,1158.5,356.6016,1162.5,346.6016,1158.5,350.6016" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1158.5" y1="390.5703" y2="425.5703"/><polygon fill="#A80036" points="1154.5,415.5703,1158.5,425.5703,1162.5,415.5703,1158.5,419.5703" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1158.5" y1="250.8281" y2="287.6328"/><polygon fill="#A80036" points="1154.5,277.6328,1158.5,287.6328,1162.5,277.6328,1158.5,281.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1158.5" y1="459.5391" y2="469.5391"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1257" y1="469.5391" y2="469.5391"/><polygon fill="#A80036" points="1253,365.1836,1257,355.1836,1261,365.1836,1257,361.1836" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257" x2="1257" y1="238.8281" y2="469.5391"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1257" x2="1245" y1="238.8281" y2="238.8281"/><polygon fill="#A80036" points="1255,234.8281,1245,238.8281,1255,242.8281,1251,238.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1072" x2="1060" y1="238.8281" y2="238.8281"/><polygon fill="#A80036" points="1056,351.1836,1060,361.1836,1064,351.1836,1060,355.1836" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1060" x2="1060" y1="238.8281" y2="481.5391"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1060" x2="1158.5" y1="481.5391" y2="481.5391"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1158.5" y1="481.5391" y2="501.5391"/><polygon fill="#A80036" points="1154.5,491.5391,1158.5,501.5391,1162.5,491.5391,1158.5,495.5391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="206.8281" y2="338.1992"/><polygon fill="#A80036" points="401,328.1992,405,338.1992,409,328.1992,405,332.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592.5" x2="592.5" y1="206.8281" y2="338.1992"/><polygon fill="#A80036" points="588.5,328.1992,592.5,338.1992,596.5,328.1992,592.5,332.1992" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="869" x2="869" y1="206.8281" y2="255.3125"/><polygon fill="#A80036" points="865,245.3125,869,255.3125,873,245.3125,869,249.3125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1158.5" x2="1158.5" y1="206.8281" y2="226.8281"/><polygon fill="#A80036" points="1154.5,216.8281,1158.5,226.8281,1162.5,216.8281,1158.5,220.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405" x2="405" y1="372.168" y2="501.5391"/><polygon fill="#A80036" points="401,491.5391,405,501.5391,409,491.5391,405,495.5391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="592.5" x2="592.5" y1="372.168" y2="501.5391"/><polygon fill="#A80036" points="588.5,491.5391,592.5,501.5391,596.5,491.5391,592.5,495.5391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="869" x2="869" y1="455.0547" y2="501.5391"/><polygon fill="#A80036" points="865,491.5391,869,501.5391,873,491.5391,869,495.5391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="640.5" y1="180.8281" y2="200.8281"/><polygon fill="#A80036" points="636.5,190.8281,640.5,200.8281,644.5,190.8281,640.5,194.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="640.5" y1="507.5391" y2="527.5391"/><polygon fill="#A80036" points="636.5,517.5391,640.5,527.5391,644.5,517.5391,640.5,521.5391" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="931.25" x2="640.5" y1="124.8594" y2="124.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="640.5" y1="124.8594" y2="146.8594"/><polygon fill="#A80036" points="636.5,136.8594,640.5,146.8594,644.5,136.8594,640.5,140.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1062.25" x2="1343" y1="124.8594" y2="124.8594"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343" x2="1343" y1="124.8594" y2="146.8594"/><polygon fill="#A80036" points="1339,136.8594,1343,146.8594,1347,136.8594,1343,140.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="640.5" y1="561.5078" y2="579.5078"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="640.5" x2="984.75" y1="579.5078" y2="579.5078"/><polygon fill="#A80036" points="974.75,575.5078,984.75,579.5078,974.75,583.5078,978.75,579.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343" x2="1343" y1="180.8281" y2="579.5078"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343" x2="1008.75" y1="579.5078" y2="579.5078"/><polygon fill="#A80036" points="1018.75,575.5078,1008.75,579.5078,1018.75,583.5078,1014.75,579.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="996.75" x2="996.75" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="992.75,102.8594,996.75,112.8594,1000.75,102.8594,996.75,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="996.75" x2="996.75" y1="591.5078" y2="611.5078"/><polygon fill="#A80036" points="992.75,601.5078,996.75,611.5078,1000.75,601.5078,996.75,605.5078" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="996.75" x2="996.75" y1="645.4766" y2="665.4766"/><polygon fill="#A80036" points="992.75,655.4766,996.75,665.4766,1000.75,655.4766,996.75,659.4766" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtSubscriberUnsubscribe()\n
+
+
+
+start
+if (Is HRT subscriber?) then (yes)
+  :lock topic;
+  fork
+    :unregister event;
+    note left
+      must be within lock because of HRT counter
+    endnote
+  fork again
+    :decrease topic HRT counter;
+  fork again
+    :remove self from topic list of HRT subscribers;
+    if (Was most critical subscriber?) then (yes)
+      :update QoS rate timer (@topic);
+    else (no)
+    endif
+  fork again
+    while (Unfetched messages left?) is (yes)
+      :lock message;
+      :decrease HRT counter;
+      :unlock message;
+    endwhile (no)
+  endfork
+  :unlock topic;
+else (no)
+  :unregister event;
+endif
+:reset members;
+note left
+  optional
+end note
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/subscriber/urtSubscriberUnsubscribe.uml b/doc/statediagrams/subscriber/urtSubscriberUnsubscribe.uml
new file mode 100644
index 0000000..584e0c9
--- /dev/null
+++ b/doc/statediagrams/subscriber/urtSubscriberUnsubscribe.uml
@@ -0,0 +1,61 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtSubscriberUnsubscribe()\n
+
+
+
+start
+if (Is HRT subscriber?) then (yes)
+  :lock topic;
+  fork
+    :unregister event;
+    note left
+      must be within lock because of HRT counter
+    endnote
+  fork again
+    :decrease topic HRT counter;
+  fork again
+    :remove self from topic list of HRT subscribers;
+    if (Was most critical subscriber?) then (yes)
+      :update QoS rate timer (@topic);
+    else (no)
+    endif
+  fork again
+    while (Unfetched messages left?) is (yes)
+      :lock message;
+      :decrease HRT counter;
+      :unlock message;
+    endwhile (no)
+  endfork
+  :unlock topic;
+else (no)
+  :unregister event;
+endif
+:reset members;
+note left
+  optional
+end note
+stop
+
+@enduml
diff --git a/doc/statediagrams/topic/urtTopicInit.svg b/doc/statediagrams/topic/urtTopicInit.svg
new file mode 100644
index 0000000..62e3b12
--- /dev/null
+++ b/doc/statediagrams/topic/urtTopicInit.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="251px" preserveAspectRatio="none" style="width:209px;height:251px;" version="1.1" viewBox="0 0 209 251" width="209px" zoomAndPan="magnify"><defs><filter height="300%" id="fsusf2qcbamoq" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="59" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="117" x="45" y="47.6611">urtTopicInit()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="106.5" y="68.6143"/><ellipse cx="104" cy="82.8594" fill="#000000" filter="url(#fsusf2qcbamoq)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fsusf2qcbamoq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="38.5" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="48.5" y="133.998">initialize members</text><rect fill="#FEFECE" filter="url(#fsusf2qcbamoq)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="10" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="20" y="187.9668">insert self to core topic list</text><ellipse cx="104" cy="230.7969" fill="none" filter="url(#fsusf2qcbamoq)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="104.5" cy="231.2969" fill="#000000" filter="url(#fsusf2qcbamoq)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="104" x2="104" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="100,102.8594,104,112.8594,108,102.8594,104,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="104" x2="104" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="100,156.8281,104,166.8281,108,156.8281,104,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="104" x2="104" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="100,210.7969,104,220.7969,108,210.7969,104,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><!--
+@startuml
+
+title **µRtWare**\nurtTopicInit()\n
+
+
+
+start
+:initialize members;
+:insert self to core topic list;
+stop
+
+@enduml
+
+PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
+Operating System: Linux
+OS Version: 4.15.0-36-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/doc/statediagrams/topic/urtTopicInit.uml b/doc/statediagrams/topic/urtTopicInit.uml
new file mode 100644
index 0000000..df3be6c
--- /dev/null
+++ b/doc/statediagrams/topic/urtTopicInit.uml
@@ -0,0 +1,34 @@
+/'
+µRtWare is a lightweight publish/subscribe middleware for real-time
+applications. It was developed as part of the software habitat for the
+Autonomous Mini Robot [1] (AMiRo) but can be used for other purposes as well.
+
+Copyright (C) 2018..2018  Thomas Schöpping et al.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+'/
+
+@startuml
+
+title **µRtWare**\nurtTopicInit()\n
+
+
+
+start
+:initialize members;
+:insert self to core topic list;
+stop
+
+@enduml
+
