-<?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="957px" preserveAspectRatio="none" style="width:674px;height:957px;" version="1.1" viewBox="0 0 674 957" width="674px" zoomAndPan="magnify"><defs><filter height="300%" id="f17jyru5kcc8mi" 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" lengthAdjust="spacingAndGlyphs" textLength="199" x="228.5" y="17.4023">DHCP server main loop</text><!--MD5=[f7a7ee0c51b4e04c55c1f405505b5a33]
-cluster Main Loop--><rect fill="#FFFFFF" filter="url(#f17jyru5kcc8mi)" height="911.86" style="stroke: #000000; stroke-width: 1.5;" width="650" x="7" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="294.5" y="43.7344">Main Loop</text><!--MD5=[5612987a0f9796801dd6d08eccf6974b]
-cluster run_one--><rect fill="#FFFFFF" filter="url(#f17jyru5kcc8mi)" height="467.86" style="stroke: #000000; stroke-width: 1.5;" width="572" x="49" y="170.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="79" x="295.5" y="185.7344">Event Loop</text><!--MD5=[983d0794f401e349a629364dfc448d7d]
-entity run--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="145.5" y="63.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="155.5" y="86.7344">Wait for next event</text><!--MD5=[463fa6ce3d00da797e8ff80a4d9c8378]
-entity shutdown--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="28.5" y="888.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="38.5" y="911.5944">Check Shutdown</text><!--MD5=[f73c77a11c1a01c10ee045ae76f5a064]
-entity timeout--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="306.5" y="578.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="316.5" y="601.5944">Timeout</text><!--MD5=[53133b9ef51e4e7f3d2c6bacee8894bf]
-entity signal--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="62" x="311" y="277.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="42" x="321" y="300.5944">Signal</text><!--MD5=[7492a645d94b1ba942c71cddc305dc30]
-entity handleSignal--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="97" y="277.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="107" y="300.5944">Handle Signal</text><!--MD5=[82e30069e7a5a9e7454e349f4f7c28bc]
-entity external_socket--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="97" y="378.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="106" x="107" y="401.5944">External Socket</text><!--MD5=[ba069a43eac8d7db5b41bef0d2c2bb79]
-entity handleExternalSocket--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="178" x="395" y="378.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="158" x="405" y="401.5944">Handle External Socket</text><!--MD5=[a096c1983bcf686c95ea726f28f7a0ed]
-entity query--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="371.5" y="479.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="83" x="381.5" y="502.5944">DHCP Query</text><!--MD5=[15a052d0312126cb226db0f9a615136d]
-entity processQuery--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="97.5" y="479.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="97" x="107.5" y="502.5944">Process Query</text><!--MD5=[3ec86a5ecee919912764a4f49fada726]
-entity poll--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="60" y="711.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="74" x="70" y="734.5944">I/O Service</text><!--MD5=[55a3d76f9f066a914db2e6a0219879c4]
-entity ready--><rect fill="#FEFECE" filter="url(#f17jyru5kcc8mi)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="275.5" y="711.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="153" x="285.5" y="734.5944">Execute ready handler</text><!--MD5=[5e1c1922f34751d45a9d92a38b9ac144]
+<?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="974px" preserveAspectRatio="none" style="width:674px;height:974px;" version="1.1" viewBox="0 0 674 974" width="674px" zoomAndPan="magnify"><defs><filter height="300%" id="f1hcpoa7p26drv" 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" lengthAdjust="spacingAndGlyphs" textLength="199" x="228.5" y="17.4023">DHCP server main loop</text><!--MD5=[f7a7ee0c51b4e04c55c1f405505b5a33]
+cluster Main Loop--><rect fill="#FFFFFF" filter="url(#f1hcpoa7p26drv)" height="911.86" style="stroke: #000000; stroke-width: 1.5;" width="650" x="7" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="75" x="294.5" y="43.7344">Main Loop</text><!--MD5=[5612987a0f9796801dd6d08eccf6974b]
+cluster run_one--><rect fill="#FFFFFF" filter="url(#f1hcpoa7p26drv)" height="467.86" style="stroke: #000000; stroke-width: 1.5;" width="572" x="49" y="170.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="79" x="295.5" y="185.7344">Event Loop</text><!--MD5=[983d0794f401e349a629364dfc448d7d]
+entity run--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="145.5" y="63.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="155.5" y="86.7344">Wait for next event</text><!--MD5=[463fa6ce3d00da797e8ff80a4d9c8378]
+entity shutdown--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="28.5" y="888.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="38.5" y="911.5944">Check Shutdown</text><!--MD5=[f73c77a11c1a01c10ee045ae76f5a064]
+entity timeout--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="306.5" y="578.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="316.5" y="601.5944">Timeout</text><!--MD5=[53133b9ef51e4e7f3d2c6bacee8894bf]
+entity signal--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="62" x="311" y="277.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="42" x="321" y="300.5944">Signal</text><!--MD5=[7492a645d94b1ba942c71cddc305dc30]
+entity handleSignal--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="97" y="277.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="107" y="300.5944">Handle Signal</text><!--MD5=[82e30069e7a5a9e7454e349f4f7c28bc]
+entity external_socket--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="97" y="378.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="106" x="107" y="401.5944">External Socket</text><!--MD5=[ba069a43eac8d7db5b41bef0d2c2bb79]
+entity handleExternalSocket--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="178" x="395" y="378.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="158" x="405" y="401.5944">Handle External Socket</text><!--MD5=[a096c1983bcf686c95ea726f28f7a0ed]
+entity query--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="371.5" y="479.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="83" x="381.5" y="502.5944">DHCP Query</text><!--MD5=[15a052d0312126cb226db0f9a615136d]
+entity processQuery--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="97.5" y="479.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="97" x="107.5" y="502.5944">Process Query</text><!--MD5=[3ec86a5ecee919912764a4f49fada726]
+entity poll--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="60" y="711.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="74" x="70" y="734.5944">I/O Service</text><!--MD5=[55a3d76f9f066a914db2e6a0219879c4]
+entity ready--><rect fill="#FEFECE" filter="url(#f1hcpoa7p26drv)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="275.5" y="711.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="153" x="285.5" y="734.5944">Execute ready handler</text><!--MD5=[5e1c1922f34751d45a9d92a38b9ac144]
link run to run_one--><path d="M265,99.3792 C265,114.9742 265,138.0042 265,157.8405 C265,160.32 265,162.7496 265,165.1086 C265,166.2881 265,167.4499 265,168.5915 C265,168.8768 265,169.161 265,169.4438 C265,169.5852 265,169.7263 265,169.867 " fill="none" id="run->run_one" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="265,169.867,269,160.867,265,164.867,261,160.867,265,169.867" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="236" y="142.7676">get next event</text><!--MD5=[0596cb5bc7e39429b5a70ee803d7702a]
link run_one to signal--><path d="M265,198.1292 C265,205.6592 265,286.0592 265,286.0592 C265,286.0592 305.68,286.0592 305.68,286.0592 " fill="none" id="run_one->signal" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="310.68,286.0592,301.68,282.0592,305.68,286.0592,301.68,290.0592,310.68,286.0592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[71bca8b2b5579f3e01e5a5e6d05e252f]
link signal to handleSignal--><path d="M310.96,295.0592 C310.96,295.0592 216.31,295.0592 216.31,295.0592 " fill="none" id="signal->handleSignal" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="211.31,295.0592,220.31,299.0592,216.31,295.0592,220.31,291.0592,211.31,295.0592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[59b958d73309821d887c593216a24bf9]
link poll to ready--><path d="M154.07,735.0592 C154.07,735.0592 270.48,735.0592 270.48,735.0592 " fill="none" id="poll->ready" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="275.48,735.0592,266.48,731.0592,270.48,735.0592,266.48,739.0592,275.48,735.0592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[82806226eee1d65d24007de8ef94d3ba]
link poll to shutdown--><path d="M107,747.3392 C107,747.3392 107,882.8792 107,882.8792 " fill="none" id="poll->shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="107,887.8792,111,878.8792,107,882.8792,103,878.8792,107,887.8792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="102" y="823.6276">no ready handler</text><!--MD5=[9e95aa1826d8662af772234e20e4c11a]
link ready to ready--><path d="M285,711.0292 C285,691.4792 285,663.0592 285,663.0592 C285,663.0592 272.33,663.0592 272.33,663.0592 C272.33,663.0592 272.33,818.0592 272.33,818.0592 C272.33,818.0592 362,818.0592 362,818.0592 C362,818.0592 362,752.0692 362,752.0692 " fill="none" id="ready->ready" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="362,747.0692,358,756.0692,362,752.0692,366,756.0692,362,747.0692" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e3e9af49381d3719c9282a3c352c133e]
-reverse link run to shutdown--><path d="M243.5,104.5792 C243.5,104.5792 243.5,906.0592 243.5,906.0592 C243.5,906.0592 202.48,906.0592 163.71,906.0592 " fill="none" id="run<-shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="243.5,99.5792,239.5,108.5792,243.5,104.5792,247.5,108.5792,243.5,99.5792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d0a2a4ab2e4dbed2a237a8cda437bfff]
+reverse link run to shutdown--><path d="M243.5,104.5792 C243.5,104.5792 243.5,906.0592 243.5,906.0592 C243.5,906.0592 202.48,906.0592 163.71,906.0592 " fill="none" id="run<-shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="243.5,99.5792,239.5,108.5792,243.5,104.5792,247.5,108.5792,243.5,99.5792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacingAndGlyphs" textLength="139" x="258.5" y="960.7272">dashed arrow means priority</text><!--MD5=[2f02801e2f9e20363e1b047d53fd3ace]
@startuml\r
\r
title DHCP server main loop\r
ready -> ready : execute ready handler\r
shutdown -u-> run\r
\r
+footer dashed arrow means priority\r
+\r
@enduml\r
PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020)
ready -> ready : execute ready handler
shutdown -u-> run
+footer dashed arrow means priority
+
@enduml
\ No newline at end of file
-<?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="1622px" preserveAspectRatio="none" style="width:1541px;height:1622px;" version="1.1" viewBox="0 0 1541 1622" width="1541px" zoomAndPan="magnify"><defs><filter height="300%" id="f10gx5l1vihluf" 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" lengthAdjust="spacingAndGlyphs" textLength="231" x="646" y="17.4023">DHCPv4 packet processing</text><!--MD5=[91c043391605f0bbc36c648123f05f04]
-cluster process--><rect fill="#FFFFFF" filter="url(#f10gx5l1vihluf)" height="103" style="stroke: #000000; stroke-width: 1.5;" width="849" x="205" y="749.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="257" x="501" y="764.7344">Process Query on its Message Type</text><!--MD5=[a6437f938727ef6368484703a6d5a51f]
-entity processDiscover--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="134" x="396" y="792.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="114" x="406" y="815.7344">Process Discover</text><!--MD5=[776f46e8e787ed3ff8f7399fa81d4ef1]
-entity processRequest--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="229.5" y="792.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="111" x="239.5" y="815.7344">Process Request</text><!--MD5=[fc7d6e37f840cd9a10a681e81df6f28b]
-entity processRelease--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="128" x="726" y="792.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="736" y="815.7344">Process Release</text><!--MD5=[8d825f552c438f1d41e38a94f08e3f47]
-entity processDecline--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="565" y="792.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="106" x="575" y="815.7344">Process Decline</text><!--MD5=[3b341f45531d1fcf2cf88cb83e9fdef4]
-entity processInform--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="889" y="792.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="102" x="899" y="815.7344">Process Inform</text><!--MD5=[aa62c1eea3f70b4dbb2d8a2ad04d8b75]
-entity receivePacket--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1239" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="1249" y="51.7344">Receive query</text><path d="M1150,33.6992 L1150,59.0098 A0,0 0 0 0 1150,59.0098 L1204,59.0098 A0,0 0 0 0 1204,59.0098 L1204,51.6992 L1238.77,46.1992 L1204,43.6992 L1204,43.6992 L1194,33.6992 L1150,33.6992 A0,0 0 0 0 1150,33.6992 " fill="#FBFB77" filter="url(#f10gx5l1vihluf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1194,33.6992 L1194,43.6992 L1204,43.6992 L1194,33.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="1156" y="51.2676">input</text><!--MD5=[37dd4220ca2f2608029cfa1ef00c2d62]
-entity isServiceEnabled--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="1232.5" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="1242.5" y="148.7344">Service Enabled</text><!--MD5=[f1e4a9c8bda8d25100748cfdff400bf1]
-entity buffer4_receive--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="1087.5" y="238.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="159" x="1097.5" y="261.7344">Callout buffer4_receive</text><path d="M1301.5,243.6992 L1301.5,252.1992 L1266.66,256.1992 L1301.5,260.1992 L1301.5,269.0098 A0,0 0 0 0 1301.5,269.0098 L1354.5,269.0098 A0,0 0 0 0 1354.5,269.0098 L1354.5,253.6992 L1344.5,243.6992 L1301.5,243.6992 A0,0 0 0 0 1301.5,243.6992 " fill="#FBFB77" filter="url(#f10gx5l1vihluf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1344.5,243.6992 L1344.5,253.6992 L1354.5,253.6992 L1344.5,243.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1307.5" y="261.2676">hook</text><!--MD5=[ce6c3f645c8aec4915456c978c48f6f1]
-entity unpack--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="990" y="351.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="1000" y="374.7344">Unpack query</text><!--MD5=[f8582116def27e35cdbbbf5463e43073]
-entity classify--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="989.5" y="448.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="95" x="999.5" y="471.7344">Classify query</text><!--MD5=[92aee3b8b080bbd52e01e7cb395370c4]
-entity pkt4_receive--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="966.5" y="545.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="139" x="976.5" y="568.7344">Callout pkt4_receive</text><path d="M1160.5,550.6992 L1160.5,559.1992 L1125.59,563.1992 L1160.5,567.1992 L1160.5,576.0098 A0,0 0 0 0 1160.5,576.0098 L1213.5,576.0098 A0,0 0 0 0 1213.5,576.0098 L1213.5,560.6992 L1203.5,550.6992 L1160.5,550.6992 A0,0 0 0 0 1160.5,550.6992 " fill="#FBFB77" filter="url(#f10gx5l1vihluf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1203.5,550.6992 L1203.5,560.6992 L1213.5,560.6992 L1203.5,550.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1166.5" y="568.2676">hook</text><!--MD5=[7aeeef4718a003ce2e7ad9bcbdf71ad9]
-entity drop_class--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="975.5" y="658.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="985.5" y="681.7344">Check DROP class</text><!--MD5=[a8af8e48f2cc558a0fee70431885f908]
-entity lease4_committed--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="530.5" y="923.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="177" x="540.5" y="946.7344">Callout lease4_committed</text><path d="M762.5,928.6992 L762.5,937.1992 L727.75,941.1992 L762.5,945.1992 L762.5,954.0098 A0,0 0 0 0 762.5,954.0098 L815.5,954.0098 A0,0 0 0 0 815.5,954.0098 L815.5,938.6992 L805.5,928.6992 L762.5,928.6992 A0,0 0 0 0 762.5,928.6992 " fill="#FBFB77" filter="url(#f10gx5l1vihluf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M805.5,928.6992 L805.5,938.6992 L815.5,938.6992 L805.5,928.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="768.5" y="946.2676">hook</text><!--MD5=[8e18f13991ca58e5a79e0b81ed56b9db]
-entity park--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="50" x="612" y="1036.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="622" y="1059.7344">Park</text><!--MD5=[145fde1089ff11319f35031b66a8b2bf]
-entity pkt4_send--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="443" y="1149.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="453" y="1172.7344">Callout pkt4_send</text><!--MD5=[62d5b04920c444814fafa1dbf06b35cd]
-entity send--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="121" x="537.5" y="1472.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="101" x="547.5" y="1495.7344">Send response</text><!--MD5=[5f600c2348a98514851ba709bbd3f597]
-entity pack--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="456" y="1262.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="98" x="466" y="1285.7344">Pack response</text><!--MD5=[d6829aa81ee0cd45a2e878b8b13197d5]
-entity buffer4_send--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="549" y="1359.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="144" x="559" y="1382.7344">Callout buffer4_send</text><path d="M439.5,1477.6992 L439.5,1503.0098 A0,0 0 0 0 439.5,1503.0098 L502.5,1503.0098 A0,0 0 0 0 502.5,1503.0098 L502.5,1495.6992 L537.35,1490.1992 L502.5,1487.6992 L502.5,1487.6992 L492.5,1477.6992 L439.5,1477.6992 A0,0 0 0 0 439.5,1477.6992 " fill="#FBFB77" filter="url(#f10gx5l1vihluf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M492.5,1477.6992 L492.5,1487.6992 L502.5,1487.6992 L492.5,1477.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="42" x="445.5" y="1495.2676">output</text><!--MD5=[c92710f32fe9c293a125fb7e80204a05]
-entity drop--><rect fill="#FEFECE" filter="url(#f10gx5l1vihluf)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="677.5" y="1569.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="83" x="687.5" y="1592.7344">Drop packet</text><path d="M591.5,1574.6992 L591.5,1600.0098 A0,0 0 0 0 591.5,1600.0098 L642.5,1600.0098 A0,0 0 0 0 642.5,1600.0098 L642.5,1592.6992 L677.49,1587.1992 L642.5,1584.6992 L642.5,1584.6992 L632.5,1574.6992 L591.5,1574.6992 A0,0 0 0 0 591.5,1574.6992 " fill="#FBFB77" filter="url(#f10gx5l1vihluf)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M632.5,1574.6992 L632.5,1584.6992 L642.5,1584.6992 L632.5,1574.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="30" x="597.5" y="1592.2676">error</text><!--MD5=[9670815d90e482d849702fdd57183fae]
-link receivePacket to isServiceEnabled--><path d="M1296,64.6192 C1296,80.1592 1296,102.9792 1296,119.8592 " fill="none" id="receivePacket->isServiceEnabled" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1296,124.8892,1300,115.8892,1296,119.8892,1292,115.8892,1296,124.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8b6c78e5054b687dbc9e19308d3a0129]
-link isServiceEnabled to buffer4_receive--><path d="M1277.67,161.2992 C1256.59,180.9592 1221.99,213.2292 1199.35,234.3492 " fill="none" id="isServiceEnabled->buffer4_receive" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1195.55,237.8992,1204.8583,234.6813,1199.2048,234.4871,1199.399,228.8336,1195.55,237.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="1244" y="204.7676">service is enabled</text><!--MD5=[228411fb88ef1bcdfe7f19b853e215d2]
-link isServiceEnabled to drop--><path d="M1334.3,161.3592 C1368.09,179.3992 1412,211.2992 1412,255.1992 C1412,255.1992 1412,255.1992 1412,1491.1992 C1412,1554.2292 949.82,1577.8492 785.85,1584.2392 " fill="none" id="isServiceEnabled->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="780.62,1584.4392,789.7727,1588.0763,785.616,1584.2394,789.4529,1580.0827,780.62,1584.4392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="1413" y="889.7676">service is disabled</text><!--MD5=[939988dada0403ed6d1a4e6924dd7701]
-link buffer4_receive to unpack--><path d="M1127.37,274.3592 C1111.2,281.6992 1094.07,291.5492 1081,304.1992 C1068.92,315.8892 1060.19,332.8092 1054.6,346.3092 " fill="none" id="buffer4_receive->unpack" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1052.68,351.1192,1059.7182,344.2298,1054.5246,346.4719,1052.2825,341.2784,1052.68,351.1192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="1082" y="317.7676">CONTINUE</text><!--MD5=[02f70f5bfef59fd4c02228f0fd276994]
-link buffer4_receive to classify--><path d="M1171.43,274.2292 C1167.05,287.2392 1160.59,305.5292 1154,321.1992 C1141.36,351.2492 1140.64,360.4492 1122,387.1992 C1107.15,408.5092 1086.46,429.5592 1070.57,444.4092 " fill="none" id="buffer4_receive->classify" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1066.64,448.0492,1075.955,444.8508,1070.3019,444.6448,1070.5079,438.9917,1066.64,448.0492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="1142" y="374.2676">SKIP</text><!--MD5=[41e6595d93b5d76e06ef1219c230b624]
-link buffer4_receive to drop--><path d="M1231.41,274.2392 C1272.55,290.9092 1322,320.7992 1322,368.1992 C1322,368.1992 1322,368.1992 1322,1491.1992 C1322,1544.9492 1263.04,1525.7592 1211,1539.1992 C1060.79,1577.9792 876.72,1585.2792 785.63,1586.3192 " fill="none" id="buffer4_receive->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="780.56,1586.3792,789.6051,1590.2761,785.5597,1586.3221,789.5137,1582.2766,780.56,1586.3792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1323" y="946.2676">DROP</text><!--MD5=[1ecae68ae42d9a73e40e9217f03f9ce7]
-link unpack to classify--><path d="M1047,387.6192 C1047,403.1592 1047,425.9792 1047,442.8592 " fill="none" id="unpack->classify" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1047,447.8892,1051,438.8892,1047,442.8892,1043,438.8892,1047,447.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[27fcba0ca5551c2a3eff6088113b3400]
-link unpack to drop--><path d="M989.92,372.3892 C772.19,381.1192 6,415.3792 6,465.1992 C6,465.1992 6,465.1992 6,1491.1992 C6,1550.8192 494.13,1542.7992 660,1569.1992 C663.94,1569.8292 667.99,1570.5692 672.05,1571.3792 " fill="none" id="unpack->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="677.2,1572.4492,669.1976,1566.708,672.3038,1571.4357,667.576,1574.5419,677.2,1572.4492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="7" y="1002.7676">on error</text><!--MD5=[6d44324a94e4b11142830ec71aa81556]
-link classify to pkt4_receive--><path d="M1046.82,484.6192 C1046.65,500.1592 1046.41,522.9792 1046.24,539.8592 " fill="none" id="classify->pkt4_receive" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1046.18,544.8892,1050.2572,535.9239,1046.223,539.8894,1042.2575,535.8552,1046.18,544.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0057d53684278b0199141f1c920049f3]
-link pkt4_receive to drop_class--><path d="M1046,581.5392 C1046,600.7692 1046,631.8292 1046,652.8592 " fill="none" id="pkt4_receive->drop_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1046,657.9792,1050,648.9792,1046,652.9792,1042,648.9792,1046,657.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="1047" y="624.7676">CONTINUE</text><!--MD5=[23d76d484a8ade2f68bc32d339275e55]
-link pkt4_receive to drop--><path d="M966.21,565.0492 C735.01,568.5592 81,586.3492 81,675.1992 C81,675.1992 81,675.1992 81,1491.1992 C81,1545.4592 591.2,1557.6492 660,1569.1992 C663.94,1569.8592 667.98,1570.6292 672.04,1571.4592 " fill="none" id="pkt4_receive->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="677.18,1572.5492,669.1971,1566.7809,672.2873,1571.5192,667.549,1574.6093,677.18,1572.5492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="82" y="1115.7676">DROP</text><!--MD5=[17d61ffc5c9189e7f93f951e2b5510f6]
-link drop_class to process--><path d="M1046,694.4592 C1046,703.2642 1046,714.6842 1046,726.8989 C1046,733.0063 1046,739.3123 1046,745.5894 C1046,746.3741 1046,747.1583 1046,747.9415 C1046,748.3332 1046,748.7246 1046,749.1158 " fill="none" id="drop_class->process" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1046,749.1158,1050,740.1158,1046,744.1158,1042,740.1158,1046,749.1158" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[4eef49efa4e6a39b9cad1f9dd4db75c9]
-link drop_class to drop--><path d="M1069.48,694.4292 C1097.62,717.2392 1141,760.3492 1141,809.1992 C1141,809.1992 1141,809.1992 1141,1111.6992 C1141,1146.4992 1147.95,1156.7592 1168,1185.1992 C1180,1202.2192 1192.18,1198.0492 1204,1215.1992 C1221.07,1239.9592 1226,1249.1192 1226,1279.1992 C1226,1279.1992 1226,1279.1992 1226,1491.1992 C1226,1579.8992 916.71,1587.7792 786.11,1587.1492 " fill="none" id="drop_class->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="780.78,1587.1192,789.757,1591.1706,785.7799,1587.1478,789.8027,1583.1707,780.78,1587.1192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="1169" y="1172.2676">query in DROP class</text><!--MD5=[3640933a3eded42de606c73d1c2efb26]
-link process to drop--><path d="M1049.382,852.4605 C1049.3955,852.6507 1049.4089,852.8414 1049.4224,853.0326 C1049.4761,853.7971 1049.53,854.5686 1049.5838,855.3467 C1051.305,880.2467 1053,911.9392 1053,940.1992 C1053,940.1992 1053,940.1992 1053,1491.1992 C1053,1546.2092 878.82,1571.6292 785.88,1581.2692 " fill="none" id="process->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="780.7,1581.7992,790.0638,1584.8519,785.6735,1581.2847,789.2406,1576.8944,780.7,1581.7992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="1054" y="1228.7676">unknown message type</text><!--MD5=[952846e6e065ca3396c39be4d5d60980]
-link processDiscover to lease4_committed--><path d="M485.04,828.3292 C515.43,851.9392 570.11,894.4292 602.62,919.6992 " fill="none" id="processDiscover->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="606.87,922.9992,602.2281,914.3129,602.9255,919.9265,597.3119,920.624,606.87,922.9992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7f61b5f2e024f0ea6329d761794804a2]
-link processDiscover to drop--><path d="M441.41,828.4592 C424.87,840.9692 401.05,857.4992 378,868.1992 C366.26,873.6492 361.87,871.0292 350,876.1992 C299.55,898.1692 244,885.1692 244,940.1992 C244,940.1992 244,940.1992 244,1491.1992 C244,1539.4892 609.77,1559.9192 660,1569.1992 C663.92,1569.9292 667.96,1570.7392 672.01,1571.6092 " fill="none" id="processDiscover->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="677.15,1572.7292,669.2157,1566.8942,672.2661,1571.6582,667.5021,1574.7085,677.15,1572.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="245" y="1228.7676">on error</text><!--MD5=[f46ab6743faf3720230dd3ca9adf25a5]
-link processRequest to lease4_committed--><path d="M316.31,828.4592 C332.64,840.9692 356.18,857.4992 379,868.1992 C430.4,892.2892 491.59,910.0792 540.57,921.9492 " fill="none" id="processRequest->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="545.57,923.1492,537.7547,917.1558,540.7086,921.9802,535.8842,924.9341,545.57,923.1492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[46780bcbdce00599e22cc2808afc4298]
-link processRequest to drop--><path d="M252.1,828.3292 C209.97,848.2992 152,885.6992 152,940.1992 C152,940.1992 152,940.1992 152,1491.1992 C152,1536.8592 598.86,1558.4592 660,1569.1992 C663.93,1569.8892 667.97,1570.6792 672.03,1571.5292 " fill="none" id="processRequest->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="677.17,1572.6292,669.2195,1566.8164,672.2831,1571.5718,667.5276,1574.6354,677.17,1572.6292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="153" y="1228.7676">on error</text><!--MD5=[dd5280f7a4fbe519a789693377d2c3dc]
-link processRelease to lease4_committed--><path d="M768.62,828.3292 C739.15,851.9392 686.12,894.4292 654.58,919.6992 " fill="none" id="processRelease->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="650.47,922.9992,659.9988,920.509,654.3771,919.8792,655.0069,914.2575,650.47,922.9992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9c1ccee308c843163ae9c7fab5373c87]
-link processRelease to drop--><path d="M809.12,828.3592 C832.5,851.3292 869,894.4992 869,940.1992 C869,940.1992 869,940.1992 869,1168.1992 C869,1245.6192 818.47,1435.0892 793,1508.1992 C787.96,1522.6492 787,1526.8192 778,1539.1992 C771.21,1548.5392 762.44,1557.6192 754.2,1565.2592 " fill="none" id="processRelease->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="750.21,1568.8892,759.5566,1565.7842,753.9058,1565.5216,754.1684,1559.8708,750.21,1568.8892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="866" y="1228.7676">on error</text><!--MD5=[762f153a4fd6a7efd08d553c7afbf530]
-link processDecline to lease4_committed--><path d="M628.13,828.3292 C628.31,851.3592 628.63,892.3592 628.83,917.8192 " fill="none" id="processDecline->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="628.87,922.9992,632.8185,913.9765,628.8414,917.9993,624.8186,914.0222,628.87,922.9992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d9fbe084438a9903d341665e19467c6]
-link processDecline to drop--><path d="M607.69,828.2192 C592.13,840.5992 569.71,857.0892 548,868.1992 C459.43,913.5492 336,840.6892 336,940.1992 C336,940.1992 336,940.1992 336,1168.1992 C336,1321.2792 285.12,1397.6492 391,1508.1992 C475.8,1596.7292 540.7,1540.9792 660,1569.1992 C664.06,1570.1592 668.24,1571.1592 672.46,1572.1792 " fill="none" id="processDecline->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="677.41,1573.3792,669.5987,1567.3806,672.5494,1572.2069,667.723,1575.1576,677.41,1573.3792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="335" y="1228.7676">on error</text><!--MD5=[403b2bcd25ba6f5a11641c975fae6de0]
-link processInform to lease4_committed--><path d="M930.7,828.2292 C915.62,840.7892 893.65,857.4892 872,868.1992 C823.01,892.4392 764.35,910.1092 716.93,921.8792 " fill="none" id="processInform->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="711.8,923.1392,721.4919,924.8907,716.6574,921.9535,719.5946,917.1189,711.8,923.1392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c5223c78dfc731d8a0b6dd3ad2587a32]
-link processInform to drop--><path d="M952.39,828.2692 C955.62,852.9292 961,899.9692 961,940.1992 C961,940.1992 961,940.1992 961,1491.1992 C961,1566.5992 854.76,1583.4592 786.07,1586.4692 " fill="none" id="processInform->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="780.78,1586.6792,789.9331,1590.3153,785.776,1586.4788,789.6124,1582.3217,780.78,1586.6792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="962" y="1228.7676">on error</text><!--MD5=[887612e1a41deb0055e6b261cad7b207]
-link lease4_committed to pkt4_send--><path d="M600.35,959.4692 C575.96,975.8892 542.37,1002.9692 526,1036.1992 C508.92,1070.8692 509.72,1117.0692 512.16,1144.0392 " fill="none" id="lease4_committed->pkt4_send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="512.66,1149.1592,515.7659,1139.8129,512.1738,1144.1829,507.8038,1140.5908,512.66,1149.1592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="527" y="1059.2676">CONTINUE</text><!--MD5=[03d4f1b76350f6f230f27d5a69f4e552]
-link lease4_committed to drop--><path d="M650.67,959.3192 C659.53,967.4492 669.08,977.8692 675,989.1992 C776.19,1182.8892 746.46,1254.6392 767,1472.1992 C768.5,1488.1292 770.57,1492.5992 767,1508.1992 C763.58,1523.1192 758.7,1525.4392 752,1539.1992 C748.05,1547.3192 743.7,1556.2192 739.86,1564.0592 " fill="none" id="lease4_committed->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="737.54,1568.7992,745.0944,1562.4801,739.7417,1564.3101,737.9117,1558.9574,737.54,1568.7992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="757" y="1285.2676">DROP</text><!--MD5=[e6b479318b22374427e5a12769813441]
-link lease4_committed to park--><path d="M630.25,959.5392 C631.64,978.7692 633.87,1009.8292 635.39,1030.8592 " fill="none" id="lease4_committed->park" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="635.76,1035.9792,639.1067,1026.7164,635.4027,1030.992,631.1272,1027.288,635.76,1035.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="634" y="1002.7676">PARK</text><!--MD5=[6b0b05ab5b5e01054aa0e3030e86c15b]
-link park to pkt4_send--><path d="M618.2,1072.2992 C596.6,1091.9592 561.13,1124.2292 537.92,1145.3492 " fill="none" id="park->pkt4_send" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="534.02,1148.8992,543.3731,1145.8139,537.7229,1145.5394,537.9974,1139.8892,534.02,1148.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="584" y="1115.7676">unpark</text><!--MD5=[e1e7c40ae99ae9db4be329f6b3cb143f]
-link pkt4_send to pack--><path d="M515,1185.5392 C515,1204.7692 515,1235.8292 515,1256.8592 " fill="none" id="pkt4_send->pack" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="515,1261.9792,519,1252.9792,515,1256.9792,511,1252.9792,515,1261.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="516" y="1228.7676">CONTINUE</text><!--MD5=[729fab78839d14d65a522c939ef9b552]
-link pkt4_send to buffer4_send--><path d="M556.05,1185.4192 C569.28,1192.8092 582.86,1202.6692 592,1215.1992 C622.73,1257.3292 629.49,1320.5292 630.82,1353.8392 " fill="none" id="pkt4_send->buffer4_send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="630.99,1358.9192,634.6793,1349.7874,630.8187,1353.9222,626.684,1350.0616,630.99,1358.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="625" y="1285.2676">SKIP</text><!--MD5=[7a343c005ca5222349b93a374f6aa4be]
-link pkt4_send to drop--><path d="M495.53,1185.4392 C477.37,1202.8192 451.31,1231.4092 439,1262.1992 C398.31,1363.9592 354.72,1421.6892 422,1508.1992 C422.98,1509.4592 584.15,1549.9492 672.54,1572.0792 " fill="none" id="pkt4_send->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="677.47,1573.3192,669.7131,1567.2504,672.6201,1572.1032,667.7674,1575.0102,677.47,1573.3192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="399" y="1382.2676">DROP</text><!--MD5=[e1b3754cee4214144faeedd0f77d1671]
-link pack to buffer4_send--><path d="M536.01,1298.3992 C555.72,1314.5392 585.21,1338.6992 606.09,1355.7992 " fill="none" id="pack->buffer4_send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="610.15,1359.1192,605.7226,1350.3216,606.2821,1355.9507,600.653,1356.5102,610.15,1359.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0fe92c55fb860475c26b6ea914a50894]
-link buffer4_send to send--><path d="M625.84,1395.5392 C620.1,1414.8492 610.82,1446.0892 604.56,1467.1292 " fill="none" id="buffer4_send->send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="603.12,1471.9792,609.5067,1464.4818,604.537,1467.1842,601.8347,1462.2146,603.12,1471.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="617" y="1438.7676">CONTINUE</text><!--MD5=[887aa11356841167329c21249679272f]
-link buffer4_send to drop--><path d="M661.94,1395.2892 C673.3,1403.0292 685.26,1413.1492 693,1425.1992 C720.92,1468.6592 727.37,1530.7892 728.74,1563.7192 " fill="none" id="buffer4_send->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="728.92,1568.7392,732.5832,1559.597,728.7344,1563.7427,724.5887,1559.8939,728.92,1568.7392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="723" y="1495.2676">DROP</text><!--MD5=[6b25e4fe160ab604f67b02c1ded86970]
-link send to drop--><!--MD5=[b13d16fe916d552630640f297118268c]
+<?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="1814px" preserveAspectRatio="none" style="width:1862px;height:1814px;" version="1.1" viewBox="0 0 1862 1814" width="1862px" zoomAndPan="magnify"><defs><filter height="300%" id="f1bfwc68kum18i" 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" lengthAdjust="spacingAndGlyphs" textLength="231" x="806.5" y="17.4023">DHCPv4 packet processing</text><!--MD5=[91c043391605f0bbc36c648123f05f04]
+cluster process--><rect fill="#FFFFFF" filter="url(#f1bfwc68kum18i)" height="103" style="stroke: #000000; stroke-width: 1.5;" width="849" x="715" y="924.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="257" x="1011" y="939.7344">Process Query on its Message Type</text><!--MD5=[a6437f938727ef6368484703a6d5a51f]
+entity processDiscover--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="134" x="1088" y="967.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="114" x="1098" y="990.7344">Process Discover</text><!--MD5=[776f46e8e787ed3ff8f7399fa81d4ef1]
+entity processRequest--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="131" x="758.5" y="967.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="111" x="768.5" y="990.7344">Process Request</text><!--MD5=[fc7d6e37f840cd9a10a681e81df6f28b]
+entity processRelease--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="128" x="925" y="967.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="935" y="990.7344">Process Release</text><!--MD5=[8d825f552c438f1d41e38a94f08e3f47]
+entity processDecline--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="1257" y="967.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="106" x="1267" y="990.7344">Process Decline</text><!--MD5=[3b341f45531d1fcf2cf88cb83e9fdef4]
+entity processInform--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="122" x="1418" y="967.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="102" x="1428" y="990.7344">Process Inform</text><!--MD5=[aa62c1eea3f70b4dbb2d8a2ad04d8b75]
+entity receivePacket--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="1560" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="1570" y="51.7344">Receive query</text><path d="M1471,33.6992 L1471,59.0098 A0,0 0 0 0 1471,59.0098 L1525,59.0098 A0,0 0 0 0 1525,59.0098 L1525,51.6992 L1559.77,46.1992 L1525,43.6992 L1525,43.6992 L1515,33.6992 L1471,33.6992 A0,0 0 0 0 1471,33.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1515,33.6992 L1515,43.6992 L1525,43.6992 L1515,33.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="1477" y="51.2676">input</text><!--MD5=[37dd4220ca2f2608029cfa1ef00c2d62]
+entity isServiceEnabled--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="1553.5" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="1563.5" y="148.7344">Service Enabled</text><!--MD5=[f1e4a9c8bda8d25100748cfdff400bf1]
+entity buffer4_receive--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="1000.5" y="238.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="159" x="1010.5" y="261.7344">Callout buffer4_receive</text><path d="M1214.5,243.6992 L1214.5,252.1992 L1179.66,256.1992 L1214.5,260.1992 L1214.5,269.0098 A0,0 0 0 0 1214.5,269.0098 L1267.5,269.0098 A0,0 0 0 0 1267.5,269.0098 L1267.5,253.6992 L1257.5,243.6992 L1214.5,243.6992 A0,0 0 0 0 1214.5,243.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1257.5,243.6992 L1257.5,253.6992 L1267.5,253.6992 L1257.5,243.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1220.5" y="261.2676">hook</text><!--MD5=[ce6c3f645c8aec4915456c978c48f6f1]
+entity unpack--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="640" y="351.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="94" x="650" y="374.7344">Unpack query</text><!--MD5=[f8582116def27e35cdbbbf5463e43073]
+entity classify--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="639.5" y="448.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="95" x="649.5" y="471.7344">Classify query</text><!--MD5=[92aee3b8b080bbd52e01e7cb395370c4]
+entity pkt4_receive--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="454.5" y="545.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="139" x="464.5" y="568.7344">Callout pkt4_receive</text><path d="M648.5,550.6992 L648.5,559.1992 L613.59,563.1992 L648.5,567.1992 L648.5,576.0098 A0,0 0 0 0 648.5,576.0098 L701.5,576.0098 A0,0 0 0 0 701.5,576.0098 L701.5,560.6992 L691.5,550.6992 L648.5,550.6992 A0,0 0 0 0 648.5,550.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M691.5,550.6992 L691.5,560.6992 L701.5,560.6992 L691.5,550.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="654.5" y="568.2676">hook</text><!--MD5=[7aeeef4718a003ce2e7ad9bcbdf71ad9]
+entity drop_class--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="243.5" y="658.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="253.5" y="681.7344">Check DROP class</text><!--MD5=[a52533196b9ad0f42d77bd2c5acf5304]
+entity same_client--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="333" x="147.5" y="755.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="313" x="157.5" y="778.7344">Avoid same client race in multi-threade mode</text><path d="M587.5,760.6992 L587.5,769.1992 L480.63,773.1992 L587.5,777.1992 L587.5,786.0098 A0,0 0 0 0 587.5,786.0098 L790.5,786.0098 A0,0 0 0 0 790.5,786.0098 L790.5,770.6992 L780.5,760.6992 L587.5,760.6992 A0,0 0 0 0 587.5,760.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M780.5,760.6992 L780.5,770.6992 L790.5,770.6992 L780.5,760.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="182" x="593.5" y="778.2676">postpone processing or drop</text><!--MD5=[a8af8e48f2cc558a0fee70431885f908]
+entity lease4_committed--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1045.5" y="1098.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="177" x="1055.5" y="1121.7344">Callout lease4_committed</text><path d="M1277.5,1103.6992 L1277.5,1112.1992 L1242.75,1116.1992 L1277.5,1120.1992 L1277.5,1129.0098 A0,0 0 0 0 1277.5,1129.0098 L1330.5,1129.0098 A0,0 0 0 0 1330.5,1129.0098 L1330.5,1113.6992 L1320.5,1103.6992 L1277.5,1103.6992 A0,0 0 0 0 1277.5,1103.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1320.5,1103.6992 L1320.5,1113.6992 L1330.5,1113.6992 L1320.5,1103.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1283.5" y="1121.2676">hook</text><!--MD5=[8e18f13991ca58e5a79e0b81ed56b9db]
+entity park--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="50" x="1119" y="1211.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="1129" y="1234.7344">Park</text><!--MD5=[145fde1089ff11319f35031b66a8b2bf]
+entity pkt4_send--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="943" y="1324.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="124" x="953" y="1347.7344">Callout pkt4_send</text><!--MD5=[62d5b04920c444814fafa1dbf06b35cd]
+entity send--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="121" x="1052.5" y="1647.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="101" x="1062.5" y="1670.7344">Send response</text><!--MD5=[5f600c2348a98514851ba709bbd3f597]
+entity pack--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="1077" y="1437.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="98" x="1087" y="1460.7344">Pack response</text><!--MD5=[d6829aa81ee0cd45a2e878b8b13197d5]
+entity buffer4_send--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="1037" y="1534.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="144" x="1047" y="1557.7344">Callout buffer4_send</text><path d="M954.5,1652.6992 L954.5,1678.0098 A0,0 0 0 0 954.5,1678.0098 L1017.5,1678.0098 A0,0 0 0 0 1017.5,1678.0098 L1017.5,1670.6992 L1052.35,1665.1992 L1017.5,1662.6992 L1017.5,1662.6992 L1007.5,1652.6992 L954.5,1652.6992 A0,0 0 0 0 954.5,1652.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1007.5,1652.6992 L1007.5,1662.6992 L1017.5,1662.6992 L1007.5,1652.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="42" x="960.5" y="1670.2676">output</text><!--MD5=[c92710f32fe9c293a125fb7e80204a05]
+entity drop--><rect fill="#FEFECE" filter="url(#f1bfwc68kum18i)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="912.5" y="1744.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="83" x="922.5" y="1767.7344">Drop packet</text><path d="M826.5,1749.6992 L826.5,1775.0098 A0,0 0 0 0 826.5,1775.0098 L877.5,1775.0098 A0,0 0 0 0 877.5,1775.0098 L877.5,1767.6992 L912.49,1762.1992 L877.5,1759.6992 L877.5,1759.6992 L867.5,1749.6992 L826.5,1749.6992 A0,0 0 0 0 826.5,1749.6992 " fill="#FBFB77" filter="url(#f1bfwc68kum18i)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M867.5,1749.6992 L867.5,1759.6992 L877.5,1759.6992 L867.5,1749.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="30" x="832.5" y="1767.2676">error</text><!--MD5=[9670815d90e482d849702fdd57183fae]
+link receivePacket to isServiceEnabled--><path d="M1617,64.6192 C1617,80.1592 1617,102.9792 1617,119.8592 " fill="none" id="receivePacket->isServiceEnabled" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1617,124.8892,1621,115.8892,1617,119.8892,1613,115.8892,1617,124.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8b6c78e5054b687dbc9e19308d3a0129]
+link isServiceEnabled to buffer4_receive--><path d="M1553.43,157.5892 C1459.11,177.4592 1281.88,214.7792 1176.04,237.0792 " fill="none" id="isServiceEnabled->buffer4_receive" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1171.05,238.1292,1180.681,240.1893,1175.9427,237.0992,1179.0329,232.3609,1171.05,238.1292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="1386" y="204.7676">service is enabled</text><!--MD5=[228411fb88ef1bcdfe7f19b853e215d2]
+link isServiceEnabled to drop--><path d="M1655.3,161.3592 C1689.09,179.3992 1733,211.2992 1733,255.1992 C1733,255.1992 1733,255.1992 1733,1666.1992 C1733,1737.9692 1198.66,1756.0992 1020.81,1760.1492 " fill="none" id="isServiceEnabled->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.65,1760.2592,1024.7391,1764.0525,1020.6487,1760.145,1024.5562,1756.0546,1015.65,1760.2592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="1734" y="896.7676">service is disabled</text><!--MD5=[939988dada0403ed6d1a4e6924dd7701]
+link buffer4_receive to unpack--><path d="M1029.46,274.2992 C956.18,294.9992 833.42,329.6692 759.35,350.5892 " fill="none" id="buffer4_receive->unpack" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="754.1,352.0692,763.8515,353.4505,758.9087,350.6994,761.6598,345.7566,754.1,352.0692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="918" y="317.7676">CONTINUE</text><!--MD5=[02f70f5bfef59fd4c02228f0fd276994]
+link buffer4_receive to classify--><path d="M1066.12,274.4492 C1047.04,287.8992 1019.38,306.6792 994,321.1992 C907.16,370.8892 800.63,419.7792 741.66,445.8492 " fill="none" id="buffer4_receive->classify" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="736.8,447.9892,746.6488,448.032,741.3778,445.9784,743.4314,440.7075,736.8,447.9892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="940" y="374.2676">SKIP</text><!--MD5=[41e6595d93b5d76e06ef1219c230b624]
+link buffer4_receive to drop--><path d="M1179.77,272.9392 C1336.38,300.6992 1643,356.5292 1643,368.1992 C1643,368.1992 1643,368.1992 1643,1666.1992 C1643,1728.8292 1184.07,1752.6892 1020.81,1759.1992 " fill="none" id="buffer4_receive->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.59,1759.3992,1024.7431,1763.0353,1020.586,1759.1988,1024.4224,1755.0417,1015.59,1759.3992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1644" y="990.2676">DROP</text><!--MD5=[1ecae68ae42d9a73e40e9217f03f9ce7]
+link unpack to classify--><path d="M697,387.6192 C697,403.1592 697,425.9792 697,442.8592 " fill="none" id="unpack->classify" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="697,447.8892,701,438.8892,697,442.8892,693,438.8892,697,447.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[27fcba0ca5551c2a3eff6088113b3400]
+link unpack to drop--><path d="M639.86,372.0692 C474.31,378.2592 6,401.3992 6,465.1992 C6,465.1992 6,465.1992 6,1666.1992 C6,1765.3592 797.05,1728.7492 895,1744.1992 C898.94,1744.8192 902.99,1745.5592 907.05,1746.3692 " fill="none" id="unpack->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="912.2,1747.4292,904.201,1741.6833,907.3044,1746.4129,902.5748,1749.5163,912.2,1747.4292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="7" y="1064.7676">on error</text><!--MD5=[6d44324a94e4b11142830ec71aa81556]
+link classify to pkt4_receive--><path d="M667.48,484.3992 C639.44,500.7492 597.31,525.2992 567.9,542.4392 " fill="none" id="classify->pkt4_receive" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="563.3,545.1192,573.0915,544.0576,567.6235,542.6079,569.0733,537.1399,563.3,545.1192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0057d53684278b0199141f1c920049f3]
+link pkt4_receive to drop_class--><path d="M499.2,581.2692 C481.2,590.1392 458.89,601.1892 439,611.1992 C409.58,626.0092 376.4,643.0092 351.62,655.7692 " fill="none" id="pkt4_receive->drop_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="347.1,658.0992,356.9329,657.5388,351.5461,655.8118,353.2731,650.425,347.1,658.0992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="440" y="624.7676">CONTINUE</text><!--MD5=[23d76d484a8ade2f68bc32d339275e55]
+link pkt4_receive to drop--><path d="M534,581.4992 C534,603.3392 534,642.0492 534,675.1992 C534,675.1992 534,675.1992 534,1666.1992 C534,1687.5792 558.43,1677.3692 579,1683.1992 C716.63,1722.1692 755.29,1713.5292 895,1744.1992 C899.07,1745.0892 903.27,1746.0492 907.49,1747.0292 " fill="none" id="pkt4_receive->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="912.45,1748.1992,904.6015,1742.2493,907.5822,1747.0572,902.7743,1750.0379,912.45,1748.1992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="535" y="1177.7676">DROP</text><!--MD5=[2ba86aae9fb469d61f9b8011ebc0bd96]
+link drop_class to same_client--><path d="M314,694.6192 C314,710.1592 314,732.9792 314,749.8592 " fill="none" id="drop_class->same_client" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="314,754.8892,318,745.8892,314,749.8892,310,745.8892,314,754.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[4eef49efa4e6a39b9cad1f9dd4db75c9]
+link drop_class to drop--><path d="M243.48,679.2592 C179.13,685.3592 94,705.9492 94,772.1992 C94,772.1992 94,772.1992 94,1666.1992 C94,1720.9492 161.68,1676.3392 216,1683.1992 C337.59,1698.5492 367.98,1702.7792 490,1714.1992 C669.71,1731.0192 716.75,1715.8392 895,1744.1992 C898.94,1744.8292 902.99,1745.5692 907.05,1746.3792 " fill="none" id="drop_class->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="912.2,1747.4492,904.1976,1741.708,907.3038,1746.4357,902.576,1749.5419,912.2,1747.4492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="95" y="1234.2676">query in DROP class</text><!--MD5=[bb9b361438ecdeec2ed5ec34799fad2e]
+link same_client to process--><path d="M347.12,791.2092 C395.425,816.0092 488.31,863.6992 569.655,905.4642 C610.3275,926.3467 648.115,945.748 676.0025,960.0661 C689.9463,967.2252 701.415,973.1134 709.5319,977.2807 C711.5611,978.3225 713.3808,979.2568 714.9774,980.0764 " fill="none" id="same_client->process" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="714.9774,980.0764,708.7978,972.4075,710.5293,977.7928,705.144,979.5244,714.9774,980.0764" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2de62570b816e5df0f82700c4b296cc3]
+link same_client to drop--><path d="M299.7,791.2592 C288.57,806.3092 275,829.3392 275,852.1992 C275,852.1992 275,852.1992 275,1173.6992 C275,1222.3992 247.11,1229.1792 239,1277.1992 C237.74,1284.6492 238.76,1286.6492 239,1294.1992 C239.67,1315.1192 242,1320.2692 242,1341.1992 C242,1341.1992 242,1341.1992 242,1666.1992 C242,1713.3692 777.64,1725.3292 895,1744.1992 C898.94,1744.8292 902.99,1745.5792 907.05,1746.3992 " fill="none" id="same_client->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="912.19,1747.4692,904.2071,1741.7009,907.2973,1746.4392,902.559,1749.5293,912.19,1747.4692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="267" x="240" y="1290.7676">queries from the same client possible race</text><!--MD5=[3640933a3eded42de606c73d1c2efb26]
+link process to drop--><path d="M714.7345,990.1215 C714.4884,990.2441 714.2376,990.3695 713.9823,990.4976 C712.9607,991.0103 711.8653,991.5676 710.703,992.1686 C708.3783,993.3708 705.7858,994.7482 702.9805,996.2952 C691.7591,1002.483 677.1319,1011.383 662.6163,1022.6242 C633.585,1045.1067 605,1076.9542 605,1115.1992 C605,1115.1992 605,1115.1992 605,1286.6992 C605,1382.9192 605,1406.9792 605,1503.1992 C605,1503.1992 605,1503.1992 605,1666.1992 C605,1670.0592 805.92,1721.3092 907.14,1746.8892 " fill="none" id="process->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="912.18,1748.1592,904.4231,1742.0904,907.3301,1746.9432,902.4774,1749.8502,912.18,1748.1592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="606" y="1403.7676">unknown message type</text><!--MD5=[952846e6e065ca3396c39be4d5d60980]
+link processDiscover to lease4_committed--><path d="M1153.54,1003.3292 C1151.58,1026.3592 1148.08,1067.3592 1145.91,1092.8192 " fill="none" id="processDiscover->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1145.47,1097.9992,1150.2261,1089.3749,1145.8982,1093.0176,1142.2555,1088.6897,1145.47,1097.9992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7f61b5f2e024f0ea6329d761794804a2]
+link processDiscover to drop--><path d="M1178.66,1003.2492 C1195.43,1015.0392 1218.66,1030.7692 1240,1043.1992 C1301.84,1079.1992 1384,1043.6492 1384,1115.1992 C1384,1115.1992 1384,1115.1992 1384,1343.1992 C1384,1405.5792 1346.5,1559.4192 1323,1617.1992 C1310.64,1647.5792 1313.41,1660.2292 1290,1683.1992 C1252.31,1720.1992 1104.17,1743.9392 1021.16,1754.6292 " fill="none" id="processDiscover->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.79,1755.3092,1025.2217,1758.1453,1020.7503,1754.6802,1024.2153,1750.2088,1015.79,1755.3092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="1380" y="1403.7676">on error</text><!--MD5=[f46ab6743faf3720230dd3ca9adf25a5]
+link processRequest to lease4_committed--><path d="M845.36,1003.3592 C861.72,1015.8092 885.26,1032.3292 908,1043.1992 C957.4,1066.8292 1016.32,1084.8192 1062.92,1096.8992 " fill="none" id="processRequest->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1067.97,1098.1992,1060.2468,1092.0875,1063.1269,1096.9563,1058.2582,1099.8364,1067.97,1098.1992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[46780bcbdce00599e22cc2808afc4298]
+link processRequest to drop--><path d="M814.47,1003.5592 C802.08,1027.7992 782,1073.5092 782,1115.1992 C782,1115.1992 782,1115.1992 782,1343.1992 C782,1504.6592 842.57,1536.4892 910,1683.1992 C916.56,1697.4792 918.33,1701.0892 927,1714.1992 C932.7,1722.8192 939.57,1731.8492 945.83,1739.6592 " fill="none" id="processRequest->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="949.23,1743.8592,946.6802,1734.3461,946.0857,1739.9717,940.4601,1739.3771,949.23,1743.8592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="786" y="1403.7676">on error</text><!--MD5=[dd5280f7a4fbe519a789693377d2c3dc]
+link processRelease to lease4_committed--><path d="M1009.58,1003.3292 C1037.95,1026.9392 1089.01,1069.4292 1119.37,1094.6992 " fill="none" id="processRelease->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1123.33,1097.9992,1118.9735,1089.1663,1119.4877,1094.7997,1113.8543,1095.3139,1123.33,1097.9992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9c1ccee308c843163ae9c7fab5373c87]
+link processRelease to drop--><path d="M958.18,1003.1992 C924.12,1024.5192 874,1064.4892 874,1115.1992 C874,1115.1992 874,1115.1992 874,1343.1992 C874,1496.1392 893.83,1533.8992 927,1683.1992 C930.11,1697.2092 930.28,1701.0392 936,1714.1992 C939.7,1722.7092 944.65,1731.5692 949.37,1739.2792 " fill="none" id="processRelease->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="952.26,1743.9092,950.8732,1734.1585,949.6062,1739.6716,944.093,1738.4046,952.26,1743.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="876" y="1403.7676">on error</text><!--MD5=[762f153a4fd6a7efd08d553c7afbf530]
+link processDecline to lease4_committed--><path d="M1296.63,1003.3292 C1264.28,1027.0392 1205.97,1069.7792 1171.54,1095.0092 " fill="none" id="processDecline->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1167.47,1097.9992,1177.0921,1095.8981,1171.5007,1095.0405,1172.3582,1089.4491,1167.47,1097.9992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6d9fbe084438a9903d341665e19467c6]
+link processDecline to drop--><path d="M1344.72,1003.4392 C1388.71,1034.5392 1476,1098.3692 1476,1115.1992 C1476,1115.1992 1476,1115.1992 1476,1666.1992 C1476,1712.0592 1154.4,1744.8992 1020.96,1756.5492 " fill="none" id="processDecline->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.91,1756.9892,1025.2195,1760.2037,1020.8916,1756.561,1024.5344,1752.2331,1015.91,1756.9892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="1477" y="1403.7676">on error</text><!--MD5=[403b2bcd25ba6f5a11641c975fae6de0]
+link processInform to lease4_committed--><path d="M1459.75,1003.3292 C1444.69,1015.9292 1422.73,1032.6492 1401,1043.1992 C1350.13,1067.9092 1289.34,1085.4192 1239.66,1096.9892 " fill="none" id="processInform->lease4_committed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1234.58,1098.1592,1244.2506,1100.0248,1239.451,1097.0307,1242.445,1092.2312,1234.58,1098.1592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[c5223c78dfc731d8a0b6dd3ad2587a32]
+link processInform to drop--><path d="M1501,1003.2392 C1527.36,1025.7692 1568,1068.1292 1568,1115.1992 C1568,1115.1992 1568,1115.1992 1568,1666.1992 C1568,1721.2392 1171.5,1749.4592 1021.01,1758.1792 " fill="none" id="processInform->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.76,1758.4792,1024.9741,1761.9578,1020.7518,1758.1932,1024.5164,1753.9709,1015.76,1758.4792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="1569" y="1403.7676">on error</text><!--MD5=[887612e1a41deb0055e6b261cad7b207]
+link lease4_committed to pkt4_send--><path d="M1113.34,1134.3192 C1087.4,1150.5592 1051.56,1177.4592 1033,1211.1992 C1014.26,1245.2592 1012.51,1291.6692 1013.42,1318.8292 " fill="none" id="lease4_committed->pkt4_send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1013.63,1323.9992,1017.2398,1314.8358,1013.4153,1319.0038,1009.2472,1315.1793,1013.63,1323.9992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="1034" y="1234.2676">CONTINUE</text><!--MD5=[03d4f1b76350f6f230f27d5a69f4e552]
+link lease4_committed to drop--><path d="M1215.67,1134.3092 C1261.73,1150.0592 1313,1178.6992 1313,1228.1992 C1313,1228.1992 1313,1228.1992 1313,1399.6992 C1313,1528.5792 1332.51,1582.5492 1252,1683.1992 C1223.32,1719.0492 1096.3,1742.6492 1020.86,1753.7692 " fill="none" id="lease4_committed->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.52,1754.5492,1025.0071,1757.1941,1020.4666,1753.8201,1023.8405,1749.2796,1015.52,1754.5492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1315" y="1460.2676">DROP</text><!--MD5=[e6b479318b22374427e5a12769813441]
+link lease4_committed to park--><path d="M1144,1134.5392 C1144,1153.7692 1144,1184.8292 1144,1205.8592 " fill="none" id="lease4_committed->park" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1144,1210.9792,1148,1201.9792,1144,1205.9792,1140,1201.9792,1144,1210.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="1145" y="1177.7676">PARK</text><!--MD5=[6b0b05ab5b5e01054aa0e3030e86c15b]
+link park to pkt4_send--><path d="M1124.13,1247.2992 C1101.18,1267.0392 1063.46,1299.4992 1038.93,1320.6092 " fill="none" id="park->pkt4_send" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1035.11,1323.8992,1044.5412,1321.0616,1038.9002,1320.6382,1039.3236,1314.9972,1035.11,1323.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="1088" y="1290.7676">unpark</text><!--MD5=[e1e7c40ae99ae9db4be329f6b3cb143f]
+link pkt4_send to pack--><path d="M1033.64,1360.2992 C1055.07,1379.9592 1090.25,1412.2292 1113.27,1433.3492 " fill="none" id="pkt4_send->pack" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1117.14,1436.8992,1113.218,1427.8649,1113.4578,1433.5167,1107.806,1433.7565,1117.14,1436.8992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="1083" y="1403.7676">CONTINUE</text><!--MD5=[729fab78839d14d65a522c939ef9b552]
+link pkt4_send to buffer4_send--><path d="M1013.6,1360.3192 C1012.24,1386.3092 1012.69,1436.5492 1032,1473.1992 C1044.57,1497.0592 1067.55,1517.1692 1086.73,1530.9992 " fill="none" id="pkt4_send->buffer4_send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1091.02,1534.0292,1085.9763,1525.5698,1086.936,1531.1447,1081.3611,1532.1043,1091.02,1534.0292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="1033" y="1460.2676">SKIP</text><!--MD5=[7a343c005ca5222349b93a374f6aa4be]
+link pkt4_send to drop--><path d="M1008.96,1360.3792 C993.2,1406.2292 951.09,1535.5692 937,1647.1992 C935,1663.0692 934.35,1667.4192 937,1683.1992 C940.27,1702.6292 947.81,1723.6792 954.1,1739.0092 " fill="none" id="pkt4_send->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="956.17,1743.9792,956.39,1734.1328,954.2419,1739.3659,949.0087,1737.2179,956.17,1743.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="959" y="1557.2676">DROP</text><!--MD5=[e1b3754cee4214144faeedd0f77d1671]
+link pack to buffer4_send--><path d="M1132.88,1473.6192 C1130.1,1489.1592 1126.02,1511.9792 1123,1528.8592 " fill="none" id="pack->buffer4_send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1122.1,1533.8892,1127.61,1525.7259,1122.973,1528.966,1119.7329,1524.3291,1122.1,1533.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0fe92c55fb860475c26b6ea914a50894]
+link buffer4_send to send--><path d="M1118.06,1570.5392 C1117.02,1589.7692 1115.34,1620.8292 1114.21,1641.8592 " fill="none" id="buffer4_send->send" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1113.93,1646.9792,1118.412,1638.2093,1114.201,1641.9866,1110.4237,1637.7756,1113.93,1646.9792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="1117" y="1613.7676">CONTINUE</text><!--MD5=[887aa11356841167329c21249679272f]
+link buffer4_send to drop--><path d="M1161.34,1570.3192 C1173.8,1577.5792 1185.96,1587.3992 1193,1600.1992 C1201.95,1616.4792 1222.86,1639.9692 1191,1683.1992 C1151.85,1736.3392 1074.24,1753.5792 1020.76,1758.9992 " fill="none" id="buffer4_send->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1015.66,1759.4892,1025.0054,1762.5977,1020.6364,1759.0044,1024.2297,1754.6354,1015.66,1759.4892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1208" y="1670.2676">DROP</text><!--MD5=[6b25e4fe160ab604f67b02c1ded86970]
+link send to drop--><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacingAndGlyphs" textLength="225" x="809.5" y="1801.3555">dashed arrow means asynchronous processing</text><!--MD5=[e4c90c2eebf71d829df928c77c7f3134]
@startuml\r
\r
title DHCPv4 packet processing\r
\r
agent "Check DROP class" as drop_class\r
\r
+agent "Avoid same client race in multi-threade mode" as same_client\r
+note right : postpone processing or drop\r
+\r
rectangle "Process Query on its Message Type" as process {\r
agent "Process Discover" as processDiscover\r
agent "Process Request" as processRequest\r
classify - -> pkt4_receive\r
pkt4_receive - -> drop_class : CONTINUE\r
pkt4_receive - - -> drop : DROP\r
-drop_class - -> process\r
+drop_class - -> same_client\r
drop_class - - -> drop : query in DROP class\r
+same_client - - -> process\r
+same_client - - -> drop : queries from the same client possible race\r
process - - -> drop : unknown message type\r
processDiscover - -> lease4_committed\r
processDiscover - - -> drop : on error\r
buffer4_send - -> send : CONTINUE\r
buffer4_send - - -> drop : DROP\r
send -[hidden]-> drop\r
+\r
+footer dashed arrow means asynchronous processing\r
+\r
@enduml\r
PlantUML version 1.2020.15(Sun Jun 28 13:39:45 CEST 2020)
agent "Check DROP class" as drop_class
+agent "Avoid same client race in multi-threade mode" as same_client
+note right : postpone processing or drop
+
rectangle "Process Query on its Message Type" as process {
agent "Process Discover" as processDiscover
agent "Process Request" as processRequest
classify --> pkt4_receive
pkt4_receive --> drop_class : CONTINUE
pkt4_receive ---> drop : DROP
-drop_class --> process
+drop_class --> same_client
drop_class ---> drop : query in DROP class
+same_client ---> process
+same_client ---> drop : queries from the same client possible race
process ---> drop : unknown message type
processDiscover --> lease4_committed
processDiscover ---> drop : on error
buffer4_send --> send : CONTINUE
buffer4_send ---> drop : DROP
send -[hidden]-> drop
+
+footer dashed arrow means asynchronous processing
+
@enduml
\ No newline at end of file
-<?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="2270px" preserveAspectRatio="none" style="width:2331px;height:2270px;" version="1.1" viewBox="0 0 2331 2270" width="2331px" zoomAndPan="magnify"><defs><filter height="300%" id="fjbup9r5tln9m" 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" lengthAdjust="spacingAndGlyphs" textLength="298" x="1007.5" y="17.4023">Allocate a lease for DHCPREQUEST</text><!--MD5=[eaee9025590d004dcfc2daa117adb8bb]
-cluster check_hint--><rect fill="#FFFFFF" filter="url(#fjbup9r5tln9m)" height="378.72" style="stroke: #000000; stroke-width: 1.5;" width="939" x="1017" y="248.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="180" x="1396.5" y="263.7344">Check requested address</text><!--MD5=[c6fdc214782d2c6b530af6f84e869950]
-cluster get_existing--><rect fill="#FFFFFF" filter="url(#fjbup9r5tln9m)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="245" x="1671" y="347.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="229" x="1679" y="362.5944">Get lease for requested address</text><!--MD5=[57e960cb4db100c9a2ccd6f4d6705f05]
-cluster check_done--><rect fill="#FFFFFF" filter="url(#fjbup9r5tln9m)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="161" x="522" y="691.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="130" x="537.5" y="707.4544">Check client lease</text><!--MD5=[a6e23b86b5ec2c7080f88f7cf966373c]
-cluster new_lease--><rect fill="#FFFFFF" filter="url(#fjbup9r5tln9m)" height="1256.08" style="stroke: #000000; stroke-width: 1.5;" width="1101" x="7" y="905.7792"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="147" x="484" y="921.3144">Allocate a new lease</text><!--MD5=[c0a0058b985d9500e1903c17b16df914]
-cluster allocateOrReuseLease4--><rect fill="#FFFFFF" filter="url(#fjbup9r5tln9m)" height="685.36" style="stroke: #000000; stroke-width: 1.5;" width="300" x="71" y="1337.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="139" y="1353.0344">Allocate or reuse lease</text><!--MD5=[23478a531f37cd80899cad04cd2b7f18]
-cluster allocateUnreservedLease4--><rect fill="#FFFFFF" filter="url(#fjbup9r5tln9m)" height="459.22" style="stroke: #000000; stroke-width: 1.5;" width="477" x="411" y="1044.6392"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="184" x="557.5" y="1060.1744">Allocate unreserved lease</text><!--MD5=[f07ece90dffecaa599052c39e01a94c5]
-entity getReservedLease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="1203" y="451.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="226" x="1213" y="475.4544">Check lease for reserved address</text><!--MD5=[8636dd2beae72b933abf12250cfd1025]
-entity out_of_pool--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="1087" y="566.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="188" x="1097" y="590.4544">Check out-of-pool address</text><!--MD5=[ec14e8cae259e632e03b8f7e5f2fa627]
-entity existing--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="1718" y="451.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="154" x="1728" y="475.4544">Check requested lease</text><!--MD5=[0edbe06a49914a247f1c11b045d92815]
-entity client_lease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="546" y="796.7792"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="88" x="556" y="820.3144">Check renew</text><!--MD5=[66e1e431ca0dbea91ea05cb758558585]
-entity create--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="936" y="1574.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="128" x="946" y="1598.3944">Create a new lease</text><!--MD5=[a85809bef6165a661ce702016b2b24bf]
-entity old_lease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="128" x="719" y="2101.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="729" y="2125.3944">Delete old lease</text><!--MD5=[3e4eb9e968ddf7eb79447dabaa827d00]
-entity candidate--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="188.5" y="1443.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="133" x="198.5" y="1467.3944">Get candidate lease</text><!--MD5=[3dd4b79f11e480f9e62df46d2d0a412b]
-entity reuseExpiredLease4--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="118.5" y="1574.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="137" x="128.5" y="1598.3944">Reuse expired lease</text><!--MD5=[7989e4485f5064553517c02d5ce8346d]
-entity reclaimExpiredLease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="111.5" y="1671.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="149" x="121.5" y="1695.3944">Reclaim expired lease</text><!--MD5=[8b161cca1eea0fa2f14429822e5193fc]
-entity updateLease4Information--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="96" y="1768.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="172" x="106" y="1792.3944">update lease information</text><!--MD5=[20b997f41be7d019adfd03f05289a85b]
-entity lease4_select--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="95.5" y="1865.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="143" x="105.5" y="1889.3944">Callout lease4_select</text><path d="M293.5,1871.3592 L293.5,1879.8592 L258.55,1883.8592 L293.5,1887.8592 L293.5,1896.6698 A0,0 0 0 0 293.5,1896.6698 L346.5,1896.6698 A0,0 0 0 0 346.5,1896.6698 L346.5,1881.3592 L336.5,1871.3592 L293.5,1871.3592 A0,0 0 0 0 293.5,1871.3592 " fill="#FBFB77" filter="url(#fjbup9r5tln9m)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M336.5,1871.3592 L336.5,1881.3592 L346.5,1881.3592 L336.5,1871.3592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="299.5" y="1888.9276">hook</text><!--MD5=[d0c6f6a5b1ca3e5ac503933fbe44aaa9]
-entity updateLease4--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="210" y="1962.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="88" x="220" y="1986.3944">Update lease</text><!--MD5=[8ae068fcc4f60e406016be9ba14134ac]
-entity iterate--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="194" x="513" y="1133.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="523" y="1157.0344">Iterate pools and subnets</text><!--MD5=[cb628e8ea2f367fa2f488bc44b336c46]
-entity pick--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="435.5" y="1230.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="445.5" y="1254.0344">Pick address</text><!--MD5=[3307242102673314e57f67fe596f1a7c]
-entity pick_reserved--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="200" x="511" y="1346.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="180" x="521" y="1370.3944">Check reserved addressed</text><!--MD5=[3fa202f6559a381d70247672876b819e]
-entity pick_lease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="649.5" y="1443.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="81" x="659.5" y="1467.3944">Check lease</text><!--MD5=[1213eaa42773f0ba0384c538d3efa224]
-entity findClientLease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="1561" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="110" x="1571" y="51.7344">Find client lease</text><path d="M1726,33.6992 L1726,42.1992 L1691.14,46.1992 L1726,50.1992 L1726,59.0098 A0,0 0 0 0 1726,59.0098 L1816,59.0098 A0,0 0 0 0 1816,59.0098 L1816,43.6992 L1806,33.6992 L1726,33.6992 A0,0 0 0 0 1726,33.6992 " fill="#FBFB77" filter="url(#fjbup9r5tln9m)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1806,33.6992 L1806,43.6992 L1816,43.6992 L1806,33.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="1732" y="51.2676">entry point</text><!--MD5=[0f69bb3143e68c3e4ebf8b928e2a1af4]
-entity addressReserved--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="1793" y="141.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="196" x="1803" y="164.7344">Check requested reservation</text><!--MD5=[f1bd864ca92b3a59ad91e15b6c278a16]
-entity hasAddressReservation--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1290" y="141.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="1300" y="164.7344">Get reservation</text><!--MD5=[29cbf9a69668994ea4ff4bb0b8dea6d6]
-entity update_hint--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="200" x="1558" y="141.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="180" x="1568" y="164.7344">Update requested address</text><!--MD5=[999fe650e2a9819ebed27de3d290658a]
-entity no_lease--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="1466.5" y="2101.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="1476.5" y="2125.3944">Return no lease</text><path d="M1629,2107.3592 L1629,2115.8592 L1593.71,2119.8592 L1629,2123.8592 L1629,2132.6698 A0,0 0 0 0 1629,2132.6698 L1711,2132.6698 A0,0 0 0 0 1711,2132.6698 L1711,2117.3592 L1701,2107.3592 L1629,2107.3592 A0,0 0 0 0 1629,2107.3592 " fill="#FBFB77" filter="url(#fjbup9r5tln9m)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1701,2107.3592 L1701,2117.3592 L1711,2117.3592 L1701,2107.3592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="1635" y="2124.9276">exit point</text><!--MD5=[45b45980895812fee5a3bd80c1953e7a]
-entity renew--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="1023" y="796.7792"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="148" x="1033" y="820.3144">Return renewed lease</text><path d="M1226,802.2792 L1226,810.7792 L1191.06,814.7792 L1226,818.7792 L1226,827.5898 A0,0 0 0 0 1226,827.5898 L1308,827.5898 A0,0 0 0 0 1308,827.5898 L1308,812.2792 L1298,802.2792 L1226,802.2792 A0,0 0 0 0 1226,802.2792 " fill="#FBFB77" filter="url(#fjbup9r5tln9m)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1298,802.2792 L1298,812.2792 L1308,812.2792 L1298,802.2792 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="1232" y="819.8476">exit point</text><!--MD5=[c13398c59c328d6fcc544c8c17f5b117]
-entity return--><rect fill="#FEFECE" filter="url(#fjbup9r5tln9m)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="730.5" y="2216.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="740.5" y="2240.3944">Return lease</text><path d="M871,2222.3592 L871,2230.8592 L835.66,2234.8592 L871,2238.8592 L871,2247.6698 A0,0 0 0 0 871,2247.6698 L953,2247.6698 A0,0 0 0 0 953,2247.6698 L953,2232.3592 L943,2222.3592 L871,2222.3592 A0,0 0 0 0 871,2222.3592 " fill="#FBFB77" filter="url(#fjbup9r5tln9m)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M943,2222.3592 L943,2232.3592 L953,2232.3592 L943,2222.3592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="877" y="2239.9276">exit point</text><!--MD5=[58c45ac03f61bca16a2604d1f9090edc]
-link findClientLease to addressReserved--><path d="M1668.37,64.2992 C1718.43,84.5092 1801.49,118.0392 1853.64,139.0792 " fill="none" id="findClientLease->addressReserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1858.59,141.0792,1851.7456,133.9973,1853.9546,139.205,1848.7468,141.414,1858.59,141.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="1780" y="107.7676">has requested address (hint)</text><!--MD5=[3ed98210a29f20764b03cb44cfd671eb]
-link findClientLease to hasAddressReservation--><path d="M1583.79,64.2992 C1533.91,84.5092 1451.15,118.0392 1399.19,139.0792 " fill="none" id="findClientLease->hasAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1394.26,141.0792,1404.1032,141.414,1398.8954,139.205,1401.1044,133.9973,1394.26,141.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="172" x="1506" y="107.7676">no requested address (hint)</text><!--MD5=[0f8169b991248aaf1e86d3e126ee7fc7]
-link addressReserved to check_hint--><path d="M1887.49,177.4192 C1875.4,191.7792 1856.46,211.8192 1836,224.1992 C1820.57,233.5342 1803.2263,241.3248 1785.8452,247.7658 C1785.5736,247.8664 1785.302,247.9667 1785.0304,248.0667 " fill="none" id="addressReserved->check_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1785.0304,248.0667,1794.8581,248.7112,1789.7226,246.3394,1792.0944,241.2038,1785.0304,248.0667" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="1858" y="220.7676">no conflicting reservation</text><!--MD5=[afeb447a9f6636bece5d73dd5d09cefa]
-link addressReserved to no_lease--><path d="M1988.01,177.2392 C2038.81,192.8192 2093,221.7892 2093,274.5592 C2093,274.5592 2093,274.5592 2093,1981.8592 C2093,2092.0292 1720.18,2081.0192 1612,2101.8592 C1607.6,2102.7092 1603.06,2103.5992 1598.5,2104.5092 " fill="none" id="addressReserved->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1593.53,2105.4992,1603.1421,2107.6457,1598.4318,2104.5131,1601.5644,2099.8028,1593.53,2105.4992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="2094" y="1156.5676">revervation owned by another client</text><!--MD5=[961d5a31619e7d456669487d013a1899]
-link hasAddressReservation to update_hint--><path d="M1414.29,159.1992 C1454.08,159.1992 1506.68,159.1992 1552.83,159.1992 " fill="none" id="hasAddressReservation->update_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1557.85,159.1992,1548.85,155.1992,1552.85,159.1992,1548.85,163.1992,1557.85,159.1992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="1432.5" y="152.7676">has a reservation</text><!--MD5=[05586e2e35799af932c772159165fde5]
-link update_hint to check_hint--><path d="M1661.19,177.5692 C1664.08,193.3142 1668.44,217.0567 1672.1225,237.1092 C1672.5828,239.6158 1673.0325,242.0647 1673.4675,244.4331 C1673.685,245.6173 1673.8987,246.7814 1674.1083,247.9225 " fill="none" id="update_hint->check_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1674.1083,247.9225,1676.4169,238.3481,1673.2052,243.0048,1668.5485,239.793,1674.1083,247.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="1670" y="220.7676">request reserved address</text><!--MD5=[f5740591afdec92972eb12364704fbda]
-link hasAddressReservation to check_done--><path d="M1289.89,164.2492 C1123.29,175.9492 679,212.9292 679,274.5592 C679,274.5592 679,274.5592 679,585.9192 C679,614.8842 678.03,647.4017 677.045,672.958 C676.7987,679.347 676.5516,685.301 676.3184,690.6556 C676.3038,690.9903 676.2893,691.3226 676.2748,691.6526 " fill="none" id="hasAddressReservation->check_done" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="676.2748,691.6526,680.6651,682.8364,676.4938,686.6574,672.6728,682.486,676.2748,691.6526" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="680" y="418.4876">no reservation</text><!--MD5=[05b1cca34cf1798b13fb9b06f5ca5f3a]
-link check_hint to get_existing--><path d="M1679,276.1292 C1679,277.5792 1679,301.1692 1679,324.7542 C1679,330.6505 1679,336.5464 1679,342.096 C1679,343.4834 1679,344.8492 1679,346.1879 C1679,346.3552 1679,346.5221 1679,346.6886 " fill="none" id="check_hint->get_existing" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1679,346.6886,1683,337.6886,1679,341.6886,1675,337.6886,1679,346.6886" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a6e7bc949cef76964a3dcada3d94e736]
-link get_existing to existing--><path d="M1679.09,374.9892 C1681.74,376.9592 1741.43,421.4892 1777.66,448.5192 " fill="none" id="get_existing->existing" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1781.95,451.7292,1777.1157,443.1485,1777.938,448.7452,1772.3413,449.5676,1781.95,451.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="1743" y="418.4876">has requested lease</text><!--MD5=[86bae6c5db5c6e2b2f64eec8702a172a]
-link existing to no_lease--><path d="M1805,488.1492 C1805,510.3092 1805,549.9792 1805,583.9192 C1805,583.9192 1805,583.9192 1805,1981.8592 C1805,2032.4592 1768.51,2037.0392 1725,2062.8592 C1703.52,2075.6092 1645.99,2091.4192 1598.94,2102.9892 " fill="none" id="existing->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1593.84,2104.2292,1603.5367,2105.9538,1598.6941,2103.03,1601.6179,2098.1874,1593.84,2104.2292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="263" x="1806" y="1310.0676">not expired lease owned by another client</text><!--MD5=[d1913c1ad5468c4f26e27e58c8f67311]
-link get_existing to out_of_pool--><path d="M1670.5702,375.107 C1670.282,375.1139 1669.9868,375.1209 1669.6847,375.1282 C1669.0805,375.1427 1668.4485,375.158 1667.7892,375.1741 C1666.4706,375.2063 1665.043,375.2417 1663.5101,375.2804 C1660.4444,375.3579 1656.9579,375.4487 1653.0818,375.5535 C1637.5772,375.973 1615.8378,376.6183 1589.855,377.543 C1537.8894,379.3923 1468.95,382.3592 1398.9675,386.8717 C1259.0025,395.8967 1114.865,411.1042 1094,435.9192 C1067.68,467.2192 1073.56,492.5092 1094,527.9192 C1103.33,544.0792 1119.3,555.9992 1135.62,564.5792 " fill="none" id="get_existing->out_of_pool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1140.22,566.9092,1133.998,559.2747,1135.7594,564.6503,1130.3837,566.4117,1140.22,566.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="1095" y="474.9876">no reservation</text><!--MD5=[d1913c1ad5468c4f26e27e58c8f67311]
-link get_existing to out_of_pool--><path d="M1670.8377,376.8955 C1670.4057,377.006 1669.9584,377.1212 1669.4962,377.2411 C1667.6472,377.7206 1665.5597,378.2751 1663.2617,378.9056 C1654.0697,381.4277 1641.5094,385.1648 1627.3738,390.173 C1599.1025,400.1892 1564.53,415.2892 1538,435.9192 C1497.23,467.6192 1510.85,500.6192 1467,527.9192 C1417.34,558.8392 1353.82,573.0892 1300.23,579.4992 " fill="none" id="get_existing->out_of_pool-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1295.08,580.0892,1304.4862,583.0087,1300.0457,579.5042,1303.5502,575.0636,1295.08,580.0892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="1539" y="474.9876">has requested reservation</text><!--MD5=[a80af0ff9802cb26b63fe0e5cdeeb896]
-link get_existing to getReservedLease--><path d="M1670.7999,374.8934 C1670.5697,374.893 1670.3349,374.8927 1670.0956,374.8923 C1669.6171,374.8916 1669.1205,374.891 1668.6064,374.8904 C1666.5497,374.8882 1664.2106,374.8875 1661.61,374.8892 C1651.2075,374.8962 1636.6199,374.9436 1619.1798,375.1011 C1584.2997,375.4161 1538.0094,376.1717 1490.9688,377.9267 C1396.8875,381.4367 1299.805,388.9442 1285,404.9192 C1272.95,417.9192 1284.84,434.9092 1298.87,448.1092 " fill="none" id="get_existing->getReservedLease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1302.86,451.7292,1298.8826,442.7192,1299.1571,448.3694,1293.5069,448.6439,1302.86,451.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="1286" y="418.4876">has reservation for another address</text><!--MD5=[460f9433d097e6134b488e2edc059749]
-link getReservedLease to no_lease--><path d="M1364.18,487.9592 C1390.63,499.5992 1426.76,515.1592 1459,527.9192 C1526.72,554.7192 1613,511.0892 1613,583.9192 C1613,583.9192 1613,583.9192 1613,1249.4992 C1613,1277.9792 1591.75,1291.6392 1610,1313.4992 C1622.74,1328.7592 1638.13,1309.5292 1654,1321.4992 C1690.13,1348.7692 1699,1367.5992 1699,1412.8592 C1699,1412.8592 1699,1412.8592 1699,1981.8592 C1699,2041.1392 1635.49,2079.2192 1586.33,2099.8192 " fill="none" id="getReservedLease->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1581.62,2101.7592,1591.4651,2102.0312,1586.2434,2099.8555,1588.4191,2094.6338,1581.62,2101.7592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="1611" y="1310.0676">no active reserved lease</text><!--MD5=[e9bc3bd5a379396c200e43b0baf79c85]
-link getReservedLease to out_of_pool--><path d="M1305.5,488.0792 C1281.41,508.2392 1241.48,541.6692 1215.71,563.2392 " fill="none" id="getReservedLease->out_of_pool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1211.7,566.5992,1221.1757,563.9139,1215.5423,563.3997,1216.0565,557.7663,1211.7,566.5992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e17e653abfe61c21e03d310137f9f5d3]
-link out_of_pool to check_done--><path d="M1155.24,602.9392 C1109.8,624.3292 1033.7,659.2992 1004,667.9192 C934.08,688.2192 853.2875,700.7367 789.2638,708.2142 C757.2519,711.953 729.4322,714.4317 709.2598,715.9933 C699.1737,716.7741 690.9993,717.3255 685.1687,717.6906 C684.4399,717.7362 683.7477,717.7789 683.093,717.8188 " fill="none" id="out_of_pool->check_done" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="683.093,717.8188,692.3195,721.2641,688.0837,717.5148,691.8331,713.279,683.093,717.8188" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="1045" y="664.4876">owned reservation for the requested address</text><!--MD5=[e17e653abfe61c21e03d310137f9f5d3]
-link out_of_pool to check_done--><path d="M1086.78,593.7092 C974.31,603.4192 803.46,622.2892 745,650.9192 C726.22,660.1192 709.21,676.2117 696.6613,690.3605 C693.5241,693.8977 690.6657,697.3134 688.1282,700.4695 C686.8595,702.0476 685.671,703.5608 684.5679,704.9918 C684.2922,705.3496 684.0217,705.7022 683.7567,706.0494 C683.6242,706.223 683.4931,706.3953 683.3633,706.5662 C683.2984,706.6516 683.2339,706.7367 683.1697,706.8214 " fill="none" id="out_of_pool->check_done-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="683.1697,706.8214,691.793,702.0634,686.1891,702.8361,685.4164,697.2323,683.1697,706.8214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="746" y="664.4876">requested address is in allowed an pool</text><!--MD5=[7bd3c3d867479d62123546af0a0eba34]
-link out_of_pool to no_lease--><path d="M1254.36,602.9792 C1281.82,613.0992 1312.52,628.4392 1334,650.9192 C1356.28,674.2392 1361,686.0292 1361,718.2792 C1361,718.2792 1361,718.2792 1361,1981.8592 C1361,2041.1392 1424.51,2079.2192 1473.67,2099.8192 " fill="none" id="out_of_pool->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1478.38,2101.7592,1471.5809,2094.6338,1473.7566,2099.8555,1468.5349,2102.0312,1478.38,2101.7592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="283" x="1362" y="1369.9276">address not reserved and not in allowed pool</text><!--MD5=[285a75cccafb8a8e1e8a8d054b6bd861]
-link check_done to client_lease--><path d="M674.95,719.8492 C673.39,721.7992 638.7,765.2692 617.07,792.3792 " fill="none" id="check_done->client_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="613.72,796.5892,622.4617,792.0524,616.84,792.6821,616.2103,787.0604,613.72,796.5892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="108" x="652" y="763.3476">has a client lease</text><!--MD5=[69a418bc3ca1e1b953129b8feacd7c7c]
-link client_lease to renew--><path d="M654.26,814.7792 C741.18,814.7792 912.52,814.7792 1017.69,814.7792 " fill="none" id="client_lease->renew" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1022.96,814.7792,1013.96,810.7792,1017.96,814.7792,1013.96,818.7792,1022.96,814.7792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="672.5" y="808.3476">requested address was already assigned to the client</text><!--MD5=[82bd19346130f27c4982b22ea05f0ccb]
-link client_lease to new_lease--><path d="M600,832.9492 C600,848.8792 600,873.1567 600,893.7055 C600,896.2741 600,898.7844 600,901.2129 C600,902.4271 600,903.6209 600,904.7913 C600,905.0839 600,905.375 600,905.6646 " fill="none" id="client_lease->new_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="600,905.6646,604,896.6646,600,900.6646,596,896.6646,600,905.6646" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f19fad7ef643a710f1fa744c146e27e1]
-link new_lease to allocateOrReuseLease4--><path d="M599.93,933.6492 C594.29,934.4292 233,984.5992 233,1070.9992 C233,1070.9992 233,1070.9992 233,1249.4992 C233,1274.8242 237.36,1302.9242 241.7888,1324.9317 C242.3423,1327.6827 242.897,1330.3384 243.4444,1332.8816 C243.7181,1334.1532 243.9899,1335.3967 244.2589,1336.6099 C244.2925,1336.7616 244.3261,1336.9127 244.3596,1337.0634 " fill="none" id="new_lease->allocateOrReuseLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="244.3596,1337.0634,246.3094,1327.4095,243.2737,1332.1828,238.5004,1329.147,244.3596,1337.0634" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="234" y="1156.5676">has a requested address</text><!--MD5=[1e19bcf55215d199025544543592d337]
-link new_lease to allocateUnreservedLease4--><path d="M600,933.7392 C600.09,935.7842 601.545,969.0667 603,1002.3417 C603.3638,1010.6605 603.7275,1018.9788 604.0699,1026.8084 C604.2411,1030.7232 604.407,1034.5158 604.5649,1038.1252 C604.6438,1039.93 604.7208,1041.6889 604.7954,1043.3944 C604.8047,1043.6076 604.814,1043.8199 604.8233,1044.0314 " fill="none" id="new_lease->allocateUnreservedLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="604.8233,1044.0314,608.4261,1034.8652,604.6047,1039.0362,600.4337,1035.2148,604.8233,1044.0314" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="603" y="977.2076">no requested address</text><!--MD5=[2c84e3b0a8d19577f3d2d8902e61dda6]
-link allocateOrReuseLease4 to candidate--><path d="M251.01,1365.9292 C251.3,1367.8792 257.62,1410.7592 261.66,1438.2092 " fill="none" id="allocateOrReuseLease4->candidate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="262.44,1443.4792,265.0848,1433.9921,261.7109,1438.5327,257.1703,1435.1587,262.44,1443.4792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a5e8e7e456414e548f2004cb6dbe84b6]
-link candidate to reuseExpiredLease4--><path d="M255.97,1479.9892 C243.73,1503.2192 221.85,1544.7092 208.46,1570.1092 " fill="none" id="candidate->reuseExpiredLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="206.07,1574.6592,213.799,1568.5549,208.397,1570.2337,206.7181,1564.8317,206.07,1574.6592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="230" y="1541.4276">expired candidate lease</text><!--MD5=[d2a65277aca220a8b88ff33e161a522b]
-link candidate to no_lease--><path d="M300.41,1479.9392 C331,1493.7192 376.81,1512.0492 419,1519.8592 C437.6,1523.2992 1083.67,1518.3092 1100,1527.8592 C1128.36,1544.4492 1137,1558.9992 1137,1591.8592 C1137,1591.8592 1137,1591.8592 1137,1981.8592 C1137,2049.7592 1348.85,2091.8092 1461.47,2109.3592 " fill="none" id="candidate->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1466.42,2110.1292,1458.1445,2104.7892,1461.4798,2109.3582,1456.9108,2112.6936,1466.42,2110.1292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="169" x="1138" y="1791.9276">conflicting candidate lease</text><!--MD5=[7d0ea550df801bc4f2e5d77c4007fd73]
-link candidate to create--><path d="M302.09,1479.9092 C332.75,1493.1892 377.78,1510.8292 419,1519.8592 C464.29,1529.7792 476.89,1523.0592 523,1527.8592 C667.15,1542.8692 834.55,1566.1592 930.79,1580.1192 " fill="none" id="candidate->create" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="935.89,1580.8592,927.5546,1575.6131,930.9414,1580.1441,926.4104,1583.5309,935.89,1580.8592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="659" y="1541.4276">no candidate lease</text><!--MD5=[41d477ba3ffb73c8ff7e1f8771a2bc5c]
-link reuseExpiredLease4 to reclaimExpiredLease--><path d="M196.82,1611.2792 C196.65,1626.8192 196.41,1649.6392 196.24,1666.5192 " fill="none" id="reuseExpiredLease4->reclaimExpiredLease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="196.18,1671.5492,200.2572,1662.5839,196.223,1666.5494,192.2575,1662.5152,196.18,1671.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6426546e78ac0ba7440fd3d40f44ede2]
-link reclaimExpiredLease to updateLease4Information--><path d="M195.27,1708.2792 C194.61,1723.8192 193.65,1746.6392 192.94,1763.5192 " fill="none" id="reclaimExpiredLease->updateLease4Information" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="192.73,1768.5492,197.0865,1759.7163,192.9298,1763.5532,189.0929,1759.3965,192.73,1768.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a62828ac2ba9e6deab1d38c41c6a28c7]
-link updateLease4Information to lease4_select--><path d="M189.25,1805.2792 C186.8,1820.8192 183.19,1843.6392 180.53,1860.5192 " fill="none" id="updateLease4Information->lease4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="179.73,1865.5492,185.097,1857.2912,180.5172,1860.6116,177.1968,1856.0317,179.73,1865.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8451cb76573000a7f0f17878defd5d68]
-link lease4_select to no_lease--><path d="M250.77,1901.8792 C408.09,1937.6692 788.49,2021.5792 1111,2071.8592 C1233.61,2090.9692 1377.58,2105.3792 1460.85,2112.9392 " fill="none" id="lease4_select->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1466.24,2113.4292,1457.6428,2108.6242,1461.2609,2112.9727,1456.9124,2116.5907,1466.24,2113.4292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="1055" y="1985.9276">SKIP</text><!--MD5=[6d30d4fb129fbbb4308e51704d598b83]
-link lease4_select to updateLease4--><path d="M187.75,1902.0092 C194.04,1911.4992 202.41,1923.2792 211,1932.8592 C219.4,1942.2392 229.56,1951.6292 238.73,1959.5292 " fill="none" id="lease4_select->updateLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="242.59,1962.8092,238.3406,1953.9243,238.7867,1959.5635,233.1474,1960.0096,242.59,1962.8092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f38e7914af006d3091e34eae716cf611]
-link updateLease4 to old_lease--><path d="M271.15,1999.0792 C280.04,2018.1492 297.15,2048.1292 322,2062.8592 C386.6,2101.1592 601.31,2113.3692 713.44,2117.1792 " fill="none" id="updateLease4->old_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="718.7,2117.3592,709.8301,2113.0785,713.7025,2117.2022,709.5788,2121.0745,718.7,2117.3592" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9b569e4e69bfc07b8f4591db492d7934]
-link allocateUnreservedLease4 to iterate--><path d="M606,1072.5592 C606.08,1074.0692 607.7,1105.5792 608.85,1128.0692 " fill="none" id="allocateUnreservedLease4->iterate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="609.12,1133.2792,612.6525,1124.0857,608.8632,1128.2858,604.663,1124.4965,609.12,1133.2792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[913c99c1aa5de4d885de0fade3210176]
-link iterate to pick--><path d="M587.91,1169.6992 C567.09,1185.9092 535.9,1210.1992 513.92,1227.3192 " fill="none" id="iterate->pick" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="509.93,1230.4192,519.4881,1228.044,513.8745,1227.3465,514.5719,1221.7329,509.93,1230.4192" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[98fd2d33f60f8d171595f3ad38490357]
-link pick to pick_reserved--><path d="M507.8,1266.7192 C517.84,1275.5292 530.16,1286.4892 541,1296.4992 C557.65,1311.8792 576.1,1329.6692 589.88,1343.1092 " fill="none" id="pick->pick_reserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="593.64,1346.7692,589.9931,1337.6204,590.0618,1343.2769,584.4054,1343.3456,593.64,1346.7692" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[40bbb0c51a3c4e170e8c88288f4abbc7]
-reverse link iterate to pick_reserved--><path d="M610.11,1174.9692 C610.31,1217.4192 610.74,1308.5692 610.92,1346.6192 " fill="none" id="iterate<-pick_reserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="610.08,1169.7992,606.1057,1178.8106,610.0943,1174.7992,614.1057,1178.7878,610.08,1169.7992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="612" y="1253.5676">address reserved to another client</text><!--MD5=[c070f87375b0b17682e33c95d0281c7f]
-link pick_reserved to pick_lease--><path d="M627.32,1383.2792 C642.25,1399.2192 664.37,1422.8292 680.28,1439.8092 " fill="none" id="pick_reserved->pick_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="683.78,1443.5492,680.5621,1434.2409,680.3679,1439.8944,674.7144,1439.7003,683.78,1443.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2a521ba838ca3ea39c3c98b97230fab1]
-reverse link iterate to pick_lease--><path d="M712.17,1161.6592 C757.55,1171.4192 806.95,1191.0892 835,1230.4992 C888.89,1306.2192 775.56,1404.6392 723.88,1443.7492 " fill="none" id="iterate<-pick_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="707.23,1160.6392,715.2324,1166.3805,712.1262,1161.6527,716.854,1158.5466,707.23,1160.6392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="846" y="1310.0676">active lease</text><!--MD5=[63357d070723cd23e47a694c7dc5adee]
-link pick_lease to reuseExpiredLease4--><path d="M649.41,1472.8192 C594.72,1484.0992 505.27,1504.0492 430,1527.8592 C410.41,1534.0592 406.57,1538.5992 387,1544.8592 C352.6,1555.8592 314.02,1565.8292 280.66,1573.7192 " fill="none" id="pick_lease->reuseExpiredLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="275.77,1574.8692,285.4457,1576.7079,280.6378,1573.7272,283.6185,1568.9193,275.77,1574.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="431" y="1541.4276">expired lease</text><!--MD5=[cf9da26e069a0df2c62fe2799950086c]
-link pick_lease to create--><path d="M741.17,1479.9892 C798.95,1504.0392 903.78,1547.6592 964.05,1572.7392 " fill="none" id="pick_lease->create" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="968.66,1574.6592,961.8798,1567.5158,964.0417,1572.7433,958.8142,1574.9051,968.66,1574.6592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="892" y="1541.4276">no lease</text><!--MD5=[64e111b9225aa9d21cd5edaf123c77e3]
-link create to old_lease--><path d="M990.36,1611.0192 C972.53,1628.5992 949,1657.6992 949,1688.8592 C949,1688.8592 949,1688.8592 949,1981.8592 C949,2040.6792 886.23,2078.9692 837.89,2099.7292 " fill="none" id="create->old_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="833.26,2101.6792,843.1072,2101.8623,837.866,2099.7338,839.9945,2094.4927,833.26,2101.6792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f504166a5b4bb527b5be2231a925b659]
-link old_lease to return--><path d="M783,2138.0192 C783,2157.5992 783,2189.6892 783,2211.2892 " fill="none" id="old_lease->return" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="783,2216.5392,787,2207.5392,783,2211.5392,779,2207.5392,783,2216.5392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8ff97301ae54650bbe6d52523d790cdf]
+<?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="2399px" preserveAspectRatio="none" style="width:2294px;height:2399px;" version="1.1" viewBox="0 0 2294 2399" width="2294px" zoomAndPan="magnify"><defs><filter height="300%" id="ff4r2l1rssslb" 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" lengthAdjust="spacingAndGlyphs" textLength="298" x="989" y="17.4023">Allocate a lease for DHCPREQUEST</text><!--MD5=[eaee9025590d004dcfc2daa117adb8bb]
+cluster check_hint--><rect fill="#FFFFFF" filter="url(#ff4r2l1rssslb)" height="378.72" style="stroke: #000000; stroke-width: 1.5;" width="939" x="950" y="248.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="180" x="1329.5" y="263.7344">Check requested address</text><!--MD5=[c6fdc214782d2c6b530af6f84e869950]
+cluster get_existing--><rect fill="#FFFFFF" filter="url(#ff4r2l1rssslb)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="245" x="1604" y="347.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="229" x="1612" y="362.5944">Get lease for requested address</text><!--MD5=[57e960cb4db100c9a2ccd6f4d6705f05]
+cluster check_done--><rect fill="#FFFFFF" filter="url(#ff4r2l1rssslb)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="161" x="470" y="691.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="130" x="485.5" y="707.4544">Check client lease</text><!--MD5=[a6e23b86b5ec2c7080f88f7cf966373c]
+cluster new_lease--><rect fill="#FFFFFF" filter="url(#ff4r2l1rssslb)" height="1385.08" style="stroke: #000000; stroke-width: 1.5;" width="1138" x="7" y="905.7792"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="147" x="502.5" y="921.3144">Allocate a new lease</text><!--MD5=[c0a0058b985d9500e1903c17b16df914]
+cluster allocateOrReuseLease4--><rect fill="#FFFFFF" filter="url(#ff4r2l1rssslb)" height="685.36" style="stroke: #000000; stroke-width: 1.5;" width="300" x="71" y="1466.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="139" y="1482.0344">Allocate or reuse lease</text><!--MD5=[23478a531f37cd80899cad04cd2b7f18]
+cluster allocateUnreservedLease4--><rect fill="#FFFFFF" filter="url(#ff4r2l1rssslb)" height="588.22" style="stroke: #000000; stroke-width: 1.5;" width="514" x="411" y="1044.6392"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="184" x="576" y="1060.1744">Allocate unreserved lease</text><!--MD5=[f07ece90dffecaa599052c39e01a94c5]
+entity getReservedLease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="246" x="1136" y="451.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="226" x="1146" y="475.4544">Check lease for reserved address</text><!--MD5=[8636dd2beae72b933abf12250cfd1025]
+entity out_of_pool--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="1020" y="566.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="188" x="1030" y="590.4544">Check out-of-pool address</text><!--MD5=[ec14e8cae259e632e03b8f7e5f2fa627]
+entity existing--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="1651" y="451.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="154" x="1661" y="475.4544">Check requested lease</text><!--MD5=[0edbe06a49914a247f1c11b045d92815]
+entity client_lease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="494" y="796.7792"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="88" x="504" y="820.3144">Check renew</text><!--MD5=[66e1e431ca0dbea91ea05cb758558585]
+entity create--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="973" y="1703.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="128" x="983" y="1727.3944">Create a new lease</text><!--MD5=[a85809bef6165a661ce702016b2b24bf]
+entity old_lease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="128" x="747" y="2230.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="108" x="757" y="2254.3944">Delete old lease</text><!--MD5=[3e4eb9e968ddf7eb79447dabaa827d00]
+entity candidate--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="153" x="188.5" y="1572.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="133" x="198.5" y="1596.3944">Get candidate lease</text><!--MD5=[3dd4b79f11e480f9e62df46d2d0a412b]
+entity reuseExpiredLease4--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="118.5" y="1703.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="137" x="128.5" y="1727.3944">Reuse expired lease</text><!--MD5=[7989e4485f5064553517c02d5ce8346d]
+entity reclaimExpiredLease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="111.5" y="1800.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="149" x="121.5" y="1824.3944">Reclaim expired lease</text><!--MD5=[8b161cca1eea0fa2f14429822e5193fc]
+entity updateLease4Information--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="96" y="1897.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="172" x="106" y="1921.3944">update lease information</text><!--MD5=[20b997f41be7d019adfd03f05289a85b]
+entity lease4_select--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="95.5" y="1994.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="143" x="105.5" y="2018.3944">Callout lease4_select</text><path d="M293.5,2000.3592 L293.5,2008.8592 L258.55,2012.8592 L293.5,2016.8592 L293.5,2025.6698 A0,0 0 0 0 293.5,2025.6698 L346.5,2025.6698 A0,0 0 0 0 346.5,2025.6698 L346.5,2010.3592 L336.5,2000.3592 L293.5,2000.3592 A0,0 0 0 0 293.5,2000.3592 " fill="#FBFB77" filter="url(#ff4r2l1rssslb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M336.5,2000.3592 L336.5,2010.3592 L346.5,2010.3592 L336.5,2000.3592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="299.5" y="2017.9276">hook</text><!--MD5=[d0c6f6a5b1ca3e5ac503933fbe44aaa9]
+entity updateLease4--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="210" y="2091.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="88" x="220" y="2115.3944">Update lease</text><!--MD5=[8ae068fcc4f60e406016be9ba14134ac]
+entity iterate--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="194" x="450" y="1133.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="174" x="460" y="1157.0344">Iterate pools and subnets</text><!--MD5=[cb628e8ea2f367fa2f488bc44b336c46]
+entity pick--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="509.5" y="1246.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="519.5" y="1270.0344">Pick address</text><!--MD5=[3307242102673314e57f67fe596f1a7c]
+entity pick_reserved--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="200" x="640" y="1359.4992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="180" x="650" y="1383.0344">Check reserved addressed</text><!--MD5=[ac311a8dd9b9ea9d39416a955479a4fe]
+entity mt_in_use--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="288" x="506" y="1475.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="268" x="516" y="1499.3944">Check already in use by another thread</text><!--MD5=[3fa202f6559a381d70247672876b819e]
+entity pick_lease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="476.5" y="1572.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="81" x="486.5" y="1596.3944">Check lease</text><!--MD5=[1213eaa42773f0ba0384c538d3efa224]
+entity findClientLease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="1383" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="110" x="1393" y="51.7344">Find client lease</text><path d="M1548,33.6992 L1548,42.1992 L1513.14,46.1992 L1548,50.1992 L1548,59.0098 A0,0 0 0 0 1548,59.0098 L1638,59.0098 A0,0 0 0 0 1638,59.0098 L1638,43.6992 L1628,33.6992 L1548,33.6992 A0,0 0 0 0 1548,33.6992 " fill="#FBFB77" filter="url(#ff4r2l1rssslb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1628,33.6992 L1628,43.6992 L1638,43.6992 L1628,33.6992 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="1554" y="51.2676">entry point</text><!--MD5=[0f69bb3143e68c3e4ebf8b928e2a1af4]
+entity addressReserved--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="1615" y="141.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="196" x="1625" y="164.7344">Check requested reservation</text><!--MD5=[f1bd864ca92b3a59ad91e15b6c278a16]
+entity hasAddressReservation--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1112" y="141.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="1122" y="164.7344">Get reservation</text><!--MD5=[29cbf9a69668994ea4ff4bb0b8dea6d6]
+entity update_hint--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="200" x="1380" y="141.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="180" x="1390" y="164.7344">Update requested address</text><!--MD5=[999fe650e2a9819ebed27de3d290658a]
+entity no_lease--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="1444.5" y="2230.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="1454.5" y="2254.3944">Return no lease</text><path d="M1607,2236.3592 L1607,2244.8592 L1571.71,2248.8592 L1607,2252.8592 L1607,2261.6698 A0,0 0 0 0 1607,2261.6698 L1689,2261.6698 A0,0 0 0 0 1689,2261.6698 L1689,2246.3592 L1679,2236.3592 L1607,2236.3592 A0,0 0 0 0 1607,2236.3592 " fill="#FBFB77" filter="url(#ff4r2l1rssslb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1679,2236.3592 L1679,2246.3592 L1689,2246.3592 L1679,2236.3592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="1613" y="2253.9276">exit point</text><!--MD5=[45b45980895812fee5a3bd80c1953e7a]
+entity renew--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="971" y="796.7792"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="148" x="981" y="820.3144">Return renewed lease</text><path d="M1174,802.2792 L1174,810.7792 L1139.06,814.7792 L1174,818.7792 L1174,827.5898 A0,0 0 0 0 1174,827.5898 L1256,827.5898 A0,0 0 0 0 1256,827.5898 L1256,812.2792 L1246,802.2792 L1174,802.2792 A0,0 0 0 0 1174,802.2792 " fill="#FBFB77" filter="url(#ff4r2l1rssslb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1246,802.2792 L1246,812.2792 L1256,812.2792 L1246,802.2792 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="1180" y="819.8476">exit point</text><!--MD5=[c13398c59c328d6fcc544c8c17f5b117]
+entity return--><rect fill="#FEFECE" filter="url(#ff4r2l1rssslb)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="758.5" y="2345.8592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="768.5" y="2369.3944">Return lease</text><path d="M899,2351.3592 L899,2359.8592 L863.66,2363.8592 L899,2367.8592 L899,2376.6698 A0,0 0 0 0 899,2376.6698 L981,2376.6698 A0,0 0 0 0 981,2376.6698 L981,2361.3592 L971,2351.3592 L899,2351.3592 A0,0 0 0 0 899,2351.3592 " fill="#FBFB77" filter="url(#ff4r2l1rssslb)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M971,2351.3592 L971,2361.3592 L981,2361.3592 L971,2351.3592 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="905" y="2368.9276">exit point</text><!--MD5=[58c45ac03f61bca16a2604d1f9090edc]
+link findClientLease to addressReserved--><path d="M1490.37,64.2992 C1540.43,84.5092 1623.49,118.0392 1675.64,139.0792 " fill="none" id="findClientLease->addressReserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1680.59,141.0792,1673.7456,133.9973,1675.9546,139.205,1670.7468,141.414,1680.59,141.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="1602" y="107.7676">has requested address (hint)</text><!--MD5=[3ed98210a29f20764b03cb44cfd671eb]
+link findClientLease to hasAddressReservation--><path d="M1405.79,64.2992 C1355.91,84.5092 1273.15,118.0392 1221.19,139.0792 " fill="none" id="findClientLease->hasAddressReservation" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1216.26,141.0792,1226.1032,141.414,1220.8954,139.205,1223.1044,133.9973,1216.26,141.0792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="172" x="1328" y="107.7676">no requested address (hint)</text><!--MD5=[0f8169b991248aaf1e86d3e126ee7fc7]
+link addressReserved to check_hint--><path d="M1706.14,177.5692 C1690.855,193.3142 1667.81,217.0567 1648.3475,237.1092 C1645.9147,239.6158 1643.5379,242.0647 1641.2391,244.4331 C1640.0898,245.6173 1638.96,246.7814 1637.8525,247.9225 " fill="none" id="addressReserved->check_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1637.8525,247.9225,1646.991,244.2501,1641.3348,244.3346,1641.2503,238.6783,1637.8525,247.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="1675" y="220.7676">no conflicting reservation</text><!--MD5=[afeb447a9f6636bece5d73dd5d09cefa]
+link addressReserved to no_lease--><path d="M1831.12,176.2492 C1928.35,193.8192 2056,226.1192 2056,274.5592 C2056,274.5592 2056,274.5592 2056,2110.8592 C2056,2245.5392 1894.72,2159.4592 1764,2191.8592 C1729.14,2200.4992 1639.9,2219.7792 1576.62,2233.2992 " fill="none" id="addressReserved->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1571.73,2234.3392,1581.3655,2236.3781,1576.6205,2233.2984,1579.7002,2228.5534,1571.73,2234.3392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="2057" y="1213.0676">revervation owned by another client</text><!--MD5=[961d5a31619e7d456669487d013a1899]
+link hasAddressReservation to update_hint--><path d="M1236.29,159.1992 C1276.08,159.1992 1328.68,159.1992 1374.83,159.1992 " fill="none" id="hasAddressReservation->update_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1379.85,159.1992,1370.85,155.1992,1374.85,159.1992,1370.85,163.1992,1379.85,159.1992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="1254.5" y="152.7676">has a reservation</text><!--MD5=[05586e2e35799af932c772159165fde5]
+link update_hint to check_hint--><path d="M1480.56,177.2992 C1481.87,191.3892 1485.77,211.1092 1497,224.1992 C1501.4688,229.4105 1506.5789,234.1017 1512.105,238.322 C1514.868,240.4322 1517.735,242.4246 1520.6778,244.3054 C1522.1492,245.2458 1523.6395,246.1583 1525.1453,247.0437 C1525.5217,247.2651 1525.8991,247.4847 1526.2774,247.7027 C1526.4666,247.8117 1526.656,247.9202 1526.8456,248.0284 " fill="none" id="update_hint->check_hint" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1526.8456,248.0284,1521.0095,240.0949,1522.5024,245.5512,1517.046,247.044,1526.8456,248.0284" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="1498" y="220.7676">request reserved address</text><!--MD5=[f5740591afdec92972eb12364704fbda]
+link hasAddressReservation to check_done--><path d="M1111.78,160.2292 C968.42,161.9792 627,176.4492 627,274.5592 C627,274.5592 627,274.5592 627,585.9192 C627,614.8842 626.03,647.4017 625.045,672.958 C624.7987,679.347 624.5516,685.301 624.3184,690.6556 C624.3038,690.9903 624.2893,691.3226 624.2748,691.6526 " fill="none" id="hasAddressReservation->check_done" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="624.2748,691.6526,628.6651,682.8364,624.4938,686.6574,620.6728,682.486,624.2748,691.6526" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="628" y="418.4876">no reservation</text><!--MD5=[05b1cca34cf1798b13fb9b06f5ca5f3a]
+link check_hint to get_existing--><path d="M1612,276.1292 C1612,277.5792 1612,301.1692 1612,324.7542 C1612,330.6505 1612,336.5464 1612,342.096 C1612,343.4834 1612,344.8492 1612,346.1879 C1612,346.3552 1612,346.5221 1612,346.6886 " fill="none" id="check_hint->get_existing" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1612,346.6886,1616,337.6886,1612,341.6886,1608,337.6886,1612,346.6886" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a6e7bc949cef76964a3dcada3d94e736]
+link get_existing to existing--><path d="M1612.09,374.9892 C1614.74,376.9592 1674.43,421.4892 1710.66,448.5192 " fill="none" id="get_existing->existing" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1714.95,451.7292,1710.1157,443.1485,1710.938,448.7452,1705.3413,449.5676,1714.95,451.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="124" x="1676" y="418.4876">has requested lease</text><!--MD5=[86bae6c5db5c6e2b2f64eec8702a172a]
+link existing to no_lease--><path d="M1738,488.1492 C1738,510.3092 1738,549.9792 1738,583.9192 C1738,583.9192 1738,583.9192 1738,2110.8592 C1738,2169.0192 1692.68,2170.6192 1643,2200.8592 C1622.7,2213.2092 1598.7,2222.8992 1576.6,2230.1892 " fill="none" id="existing->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1571.62,2231.7992,1581.415,2232.8276,1576.3761,2230.2567,1578.947,2225.2178,1571.62,2231.7992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="263" x="1739" y="1382.5676">not expired lease owned by another client</text><!--MD5=[d1913c1ad5468c4f26e27e58c8f67311]
+link get_existing to out_of_pool--><path d="M1603.5702,375.107 C1603.282,375.1139 1602.9868,375.1209 1602.6847,375.1282 C1602.0805,375.1427 1601.4485,375.158 1600.7892,375.1741 C1599.4706,375.2063 1598.043,375.2417 1596.5101,375.2804 C1593.4444,375.3579 1589.9579,375.4487 1586.0818,375.5535 C1570.5772,375.973 1548.8378,376.6183 1522.855,377.543 C1470.8894,379.3923 1401.95,382.3592 1331.9675,386.8717 C1192.0025,395.8967 1047.865,411.1042 1027,435.9192 C1000.68,467.2192 1006.56,492.5092 1027,527.9192 C1036.33,544.0792 1052.3,555.9992 1068.62,564.5792 " fill="none" id="get_existing->out_of_pool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1073.22,566.9092,1066.998,559.2747,1068.7594,564.6503,1063.3837,566.4117,1073.22,566.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="1028" y="474.9876">no reservation</text><!--MD5=[d1913c1ad5468c4f26e27e58c8f67311]
+link get_existing to out_of_pool--><path d="M1603.8377,376.8955 C1603.4057,377.006 1602.9584,377.1212 1602.4962,377.2411 C1600.6472,377.7206 1598.5597,378.2751 1596.2617,378.9056 C1587.0697,381.4277 1574.5094,385.1648 1560.3738,390.173 C1532.1025,400.1892 1497.53,415.2892 1471,435.9192 C1430.23,467.6192 1443.85,500.6192 1400,527.9192 C1350.34,558.8392 1286.82,573.0892 1233.23,579.4992 " fill="none" id="get_existing->out_of_pool-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1228.08,580.0892,1237.4862,583.0087,1233.0457,579.5042,1236.5502,575.0636,1228.08,580.0892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="162" x="1472" y="474.9876">has requested reservation</text><!--MD5=[a80af0ff9802cb26b63fe0e5cdeeb896]
+link get_existing to getReservedLease--><path d="M1603.7999,374.8934 C1603.5697,374.893 1603.3349,374.8927 1603.0956,374.8923 C1602.6171,374.8916 1602.1205,374.891 1601.6064,374.8904 C1599.5497,374.8882 1597.2106,374.8875 1594.61,374.8892 C1584.2075,374.8962 1569.6199,374.9436 1552.1798,375.1011 C1517.2997,375.4161 1471.0094,376.1717 1423.9688,377.9267 C1329.8875,381.4367 1232.805,388.9442 1218,404.9192 C1205.95,417.9192 1217.84,434.9092 1231.87,448.1092 " fill="none" id="get_existing->getReservedLease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1235.86,451.7292,1231.8826,442.7192,1232.1571,448.3694,1226.5069,448.6439,1235.86,451.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="1219" y="418.4876">has reservation for another address</text><!--MD5=[460f9433d097e6134b488e2edc059749]
+link getReservedLease to no_lease--><path d="M1298.31,487.9392 C1370.31,519.1292 1516,582.4492 1516,583.9192 C1516,583.9192 1516,583.9192 1516,1321.9992 C1516,1356.7992 1520.59,1368.8792 1543,1395.4992 C1560.18,1415.9092 1578.19,1404.7792 1595,1425.4992 C1614.84,1449.9592 1617,1461.3692 1617,1492.8592 C1617,1492.8592 1617,1492.8592 1617,2110.8592 C1617,2161.3292 1571.14,2203.9592 1538.92,2227.6992 " fill="none" id="getReservedLease->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1534.66,2230.7792,1544.2952,2228.7389,1538.7092,2227.846,1539.6021,2222.2601,1534.66,2230.7792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="150" x="1544" y="1382.5676">no active reserved lease</text><!--MD5=[e9bc3bd5a379396c200e43b0baf79c85]
+link getReservedLease to out_of_pool--><path d="M1238.5,488.0792 C1214.41,508.2392 1174.48,541.6692 1148.71,563.2392 " fill="none" id="getReservedLease->out_of_pool" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1144.7,566.5992,1154.1757,563.9139,1148.5423,563.3997,1149.0565,557.7663,1144.7,566.5992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e17e653abfe61c21e03d310137f9f5d3]
+link out_of_pool to check_done--><path d="M1094.93,603.0392 C1061.57,621.9092 1004.65,651.7292 952,667.9192 C882.41,689.3242 801.6225,701.8592 737.5188,709.0692 C705.4669,712.6742 677.5859,714.948 657.3611,716.3336 C647.2487,717.0264 639.0503,717.4972 633.2015,717.8013 C632.4705,717.8393 631.7761,717.8748 631.1193,717.9077 " fill="none" id="out_of_pool->check_done" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="631.1193,717.9077,640.3082,721.4522,636.113,717.6574,639.9078,713.4622,631.1193,717.9077" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="997" y="664.4876">owned reservation for the requested address</text><!--MD5=[e17e653abfe61c21e03d310137f9f5d3]
+link out_of_pool to check_done--><path d="M1019.57,594.3492 C910.87,604.4092 748.83,623.3992 693,650.9192 C674.24,660.1642 657.23,676.2567 644.6763,690.3942 C641.5378,693.9286 638.6779,697.3408 636.1388,700.4932 C634.8692,702.0695 633.6798,703.5808 632.576,705.0099 C632.3,705.3672 632.0294,705.7194 631.7642,706.0662 C631.6316,706.2395 631.5003,706.4116 631.3705,706.5822 C631.3055,706.6675 631.2409,706.7525 631.1767,706.8371 " fill="none" id="out_of_pool->check_done-1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="631.1767,706.8371,639.8049,702.088,634.2002,702.8549,633.4333,697.2503,631.1767,706.8371" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="694" y="664.4876">requested address is in allowed an pool</text><!--MD5=[7bd3c3d867479d62123546af0a0eba34]
+link out_of_pool to no_lease--><path d="M1203.74,602.9892 C1232.91,612.7492 1264.1,627.8392 1286,650.9192 C1307.77,673.8692 1309,686.6492 1309,718.2792 C1309,718.2792 1309,718.2792 1306,1434.9992 C1306,1673.5792 1398,1725.2792 1398,1963.8592 C1398,1963.8592 1398,1963.8592 1398,2110.8592 C1398,2161.5092 1444.28,2204.0892 1476.8,2227.7592 " fill="none" id="out_of_pool->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1481.09,2230.8292,1476.0801,2222.3498,1477.0175,2227.9284,1471.4388,2228.8658,1481.09,2230.8292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="283" x="1310" y="1439.0676">address not reserved and not in allowed pool</text><!--MD5=[285a75cccafb8a8e1e8a8d054b6bd861]
+link check_done to client_lease--><path d="M622.95,719.8492 C621.39,721.7992 586.7,765.2692 565.07,792.3792 " fill="none" id="check_done->client_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="561.72,796.5892,570.4617,792.0524,564.84,792.6821,564.2103,787.0604,561.72,796.5892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="108" x="600" y="763.3476">has a client lease</text><!--MD5=[69a418bc3ca1e1b953129b8feacd7c7c]
+link client_lease to renew--><path d="M602.26,814.7792 C689.18,814.7792 860.52,814.7792 965.69,814.7792 " fill="none" id="client_lease->renew" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="970.96,814.7792,961.96,810.7792,965.96,814.7792,961.96,818.7792,970.96,814.7792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="332" x="620.5" y="808.3476">requested address was already assigned to the client</text><!--MD5=[82bd19346130f27c4982b22ea05f0ccb]
+link client_lease to new_lease--><path d="M547.85,832.9492 C547.715,848.8792 547.5075,873.1567 547.3313,893.7055 C547.3092,896.2741 547.2877,898.7844 547.2668,901.2129 C547.2564,902.4271 547.2461,903.6209 547.2361,904.7913 C547.2336,905.0839 547.2311,905.375 547.2286,905.6646 " fill="none" id="client_lease->new_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="547.2286,905.6646,551.3058,896.6993,547.2715,900.6648,543.3061,896.6306,547.2286,905.6646" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f19fad7ef643a710f1fa744c146e27e1]
+link new_lease to allocateOrReuseLease4--><path d="M546.94,933.6392 C542.11,933.4192 233,919.8692 233,1070.9992 C233,1070.9992 233,1070.9992 233,1378.4992 C233,1403.8242 237.36,1431.9242 241.7888,1453.9317 C242.3423,1456.6827 242.897,1459.3384 243.4444,1461.8816 C243.7181,1463.1532 243.9899,1464.3967 244.2589,1465.6099 C244.2925,1465.7616 244.3261,1465.9127 244.3596,1466.0634 " fill="none" id="new_lease->allocateOrReuseLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="244.3596,1466.0634,246.3094,1456.4095,243.2737,1461.1828,238.5004,1458.147,244.3596,1466.0634" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="234" y="1213.0676">has a requested address</text><!--MD5=[1e19bcf55215d199025544543592d337]
+link new_lease to allocateUnreservedLease4--><path d="M547,933.7392 C547,935.7842 547,969.0667 547,1002.3417 C547,1010.6605 547,1018.9788 547,1026.8084 C547,1030.7232 547,1034.5158 547,1038.1252 C547,1039.93 547,1041.6889 547,1043.3944 C547,1043.6076 547,1043.8199 547,1044.0314 " fill="none" id="new_lease->allocateUnreservedLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="547,1044.0314,551,1035.0314,547,1039.0314,543,1035.0314,547,1044.0314" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="548" y="977.2076">no requested address</text><!--MD5=[2c84e3b0a8d19577f3d2d8902e61dda6]
+link allocateOrReuseLease4 to candidate--><path d="M251.01,1494.9292 C251.3,1496.8792 257.62,1539.7592 261.66,1567.2092 " fill="none" id="allocateOrReuseLease4->candidate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="262.44,1572.4792,265.0848,1562.9921,261.7109,1567.5327,257.1703,1564.1587,262.44,1572.4792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a5e8e7e456414e548f2004cb6dbe84b6]
+link candidate to reuseExpiredLease4--><path d="M255.97,1608.9892 C243.73,1632.2192 221.85,1673.7092 208.46,1699.1092 " fill="none" id="candidate->reuseExpiredLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="206.07,1703.6592,213.799,1697.5549,208.397,1699.2337,206.7181,1693.8317,206.07,1703.6592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="230" y="1670.4276">expired candidate lease</text><!--MD5=[d2a65277aca220a8b88ff33e161a522b]
+link candidate to no_lease--><path d="M300.41,1608.9492 C331,1622.7292 376.81,1641.0592 419,1648.8592 C438.61,1652.4892 1119.78,1646.7992 1137,1656.8592 C1165.37,1673.4392 1174,1687.9992 1174,1720.8592 C1174,1720.8592 1174,1720.8592 1174,2110.8592 C1174,2167.7192 1341.77,2212.7992 1439.5,2234.2292 " fill="none" id="candidate->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1444.39,2235.2992,1436.4557,2229.4642,1439.5061,2234.2282,1434.7421,2237.2785,1444.39,2235.2992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="169" x="1175" y="1920.9276">conflicting candidate lease</text><!--MD5=[7d0ea550df801bc4f2e5d77c4007fd73]
+link candidate to create--><path d="M302.78,1608.8892 C333.47,1621.9592 378.19,1639.3492 419,1648.8592 C452.51,1656.6692 461.8,1653.0992 496,1656.8592 C663.96,1675.3392 860.53,1698.5492 967.59,1711.3292 " fill="none" id="candidate->create" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="972.62,1711.9292,964.1641,1706.8797,967.656,1711.3301,963.2056,1714.822,972.62,1711.9292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="634" y="1670.4276">no candidate lease</text><!--MD5=[41d477ba3ffb73c8ff7e1f8771a2bc5c]
+link reuseExpiredLease4 to reclaimExpiredLease--><path d="M196.82,1740.2792 C196.65,1755.8192 196.41,1778.6392 196.24,1795.5192 " fill="none" id="reuseExpiredLease4->reclaimExpiredLease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="196.18,1800.5492,200.2572,1791.5839,196.223,1795.5494,192.2575,1791.5152,196.18,1800.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6426546e78ac0ba7440fd3d40f44ede2]
+link reclaimExpiredLease to updateLease4Information--><path d="M195.27,1837.2792 C194.61,1852.8192 193.65,1875.6392 192.94,1892.5192 " fill="none" id="reclaimExpiredLease->updateLease4Information" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="192.73,1897.5492,197.0865,1888.7163,192.9298,1892.5532,189.0929,1888.3965,192.73,1897.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[a62828ac2ba9e6deab1d38c41c6a28c7]
+link updateLease4Information to lease4_select--><path d="M189.25,1934.2792 C186.8,1949.8192 183.19,1972.6392 180.53,1989.5192 " fill="none" id="updateLease4Information->lease4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="179.73,1994.5492,185.097,1986.2912,180.5172,1989.6116,177.1968,1985.0317,179.73,1994.5492" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8451cb76573000a7f0f17878defd5d68]
+link lease4_select to no_lease--><path d="M256.64,2030.8892 C422.11,2065.8992 815.39,2147.1692 1148,2200.8592 C1249.02,2217.1692 1366.7,2231.6892 1439.28,2240.1392 " fill="none" id="lease4_select->no_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1444.43,2240.7392,1435.9456,2235.7377,1439.4627,2240.1683,1435.0321,2243.6853,1444.43,2240.7392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="26" x="1090" y="2114.9276">SKIP</text><!--MD5=[6d30d4fb129fbbb4308e51704d598b83]
+link lease4_select to updateLease4--><path d="M187.75,2031.0092 C194.04,2040.4992 202.41,2052.2792 211,2061.8592 C219.4,2071.2392 229.56,2080.6292 238.73,2088.5292 " fill="none" id="lease4_select->updateLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="242.59,2091.8092,238.3406,2082.9243,238.7867,2088.5635,233.1474,2089.0096,242.59,2091.8092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f38e7914af006d3091e34eae716cf611]
+link updateLease4 to old_lease--><path d="M271.13,2128.1092 C280.01,2147.2092 297.1,2177.2192 322,2191.8592 C391.49,2232.7292 624.21,2243.7792 741.78,2246.7592 " fill="none" id="updateLease4->old_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="746.95,2246.8892,738.0438,2242.6846,741.9513,2246.775,737.8609,2250.6825,746.95,2246.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9b569e4e69bfc07b8f4591db492d7934]
+link allocateUnreservedLease4 to iterate--><path d="M547,1072.5592 C547,1074.0692 547,1105.5792 547,1128.0692 " fill="none" id="allocateUnreservedLease4->iterate" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="547,1133.2792,551,1124.2792,547,1128.2792,543,1124.2792,547,1133.2792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[913c99c1aa5de4d885de0fade3210176]
+link iterate to pick--><path d="M549.34,1169.8392 C551.94,1189.0692 556.14,1220.1292 558.98,1241.1592 " fill="none" id="iterate->pick" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="559.67,1246.2792,562.4258,1236.8238,558.9989,1241.3245,554.4982,1237.8975,559.67,1246.2792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[98fd2d33f60f8d171595f3ad38490357]
+link pick to pick_reserved--><path d="M614.74,1276.6292 C662.69,1287.2492 727.13,1302.9992 735,1312.4992 C744.41,1323.8692 745.43,1340.5992 744.21,1354.0992 " fill="none" id="pick->pick_reserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="743.62,1359.2892,748.6002,1350.7923,744.1784,1354.3205,740.6502,1349.8988,743.62,1359.2892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[40bbb0c51a3c4e170e8c88288f4abbc7]
+reverse link iterate to pick_reserved--><path d="M587.85,1171.9592 C635.04,1196.9992 710.25,1245.3892 742,1312.4992 C748.94,1327.1692 747.31,1345.9192 744.63,1359.3292 " fill="none" id="iterate<-pick_reserved" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="583.37,1169.6092,589.4641,1177.3463,587.7924,1171.9421,593.1966,1170.2704,583.37,1169.6092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="723" y="1269.5676">address reserved to another client</text><!--MD5=[d452465c31c3e200782285fc87364de7]
+link pick_reserved to mt_in_use--><path d="M726.33,1395.8692 C710.31,1416.2192 683.78,1449.9292 666.6,1471.7692 " fill="none" id="pick_reserved->mt_in_use" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="663.5,1475.6992,672.2152,1471.1118,666.5973,1471.7741,665.935,1466.1561,663.5,1475.6992" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0d2cb4b21f131724b772926f54d8c5a6]
+reverse link iterate to mt_in_use--><path d="M525.22,1173.1292 C491.49,1207.6292 434.06,1278.2892 470,1329.4992 C492.53,1361.6092 521.64,1335.9392 553,1359.4992 C595.57,1391.4892 627.49,1447.3892 641.76,1475.5692 " fill="none" id="iterate<-mt_in_use" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="528.81,1169.5092,519.6392,1173.1004,525.296,1173.0661,525.3302,1178.7229,528.81,1169.5092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="255" x="471" y="1326.0676">address already in use by another thread</text><!--MD5=[bc2a6c320076cde845cfe5f7d4f3068f]
+link mt_in_use to pick_lease--><path d="M627.73,1512.0592 C606.74,1528.2692 575.3,1552.5592 553.13,1569.6792 " fill="none" id="mt_in_use->pick_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="549.11,1572.7792,558.6776,1570.4423,553.0667,1569.7224,553.7867,1564.1115,549.11,1572.7792" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2a521ba838ca3ea39c3c98b97230fab1]
+reverse link iterate to pick_lease--><path d="M513.37,1172.6092 C502.3,1180.1892 490.42,1189.4392 481,1199.4992 C464.23,1217.4192 458.7,1222.8892 452,1246.4992 C435.76,1303.7492 469.06,1455.4492 488,1511.8592 C495.37,1533.8192 507.86,1557.3892 516.72,1572.7992 " fill="none" id="iterate<-pick_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="517.73,1169.6792,508.0294,1171.3818,513.5808,1172.4692,512.4934,1178.0206,517.73,1169.6792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="73" x="461" y="1382.5676">active lease</text><!--MD5=[63357d070723cd23e47a694c7dc5adee]
+link pick_lease to reuseExpiredLease4--><path d="M486.46,1608.9192 C461.21,1620.5292 428.75,1637.3192 403,1656.8592 C394.74,1663.1292 395.96,1668.6192 387,1673.8592 C377.25,1679.5592 326.42,1692.0092 279.78,1702.6592 " fill="none" id="pick_lease->reuseExpiredLease4" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="274.7,1703.8192,284.3588,1705.7447,279.5779,1702.721,282.6016,1697.9401,274.7,1703.8192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="404" y="1670.4276">expired lease</text><!--MD5=[cf9da26e069a0df2c62fe2799950086c]
+link pick_lease to create--><path d="M577.81,1604.4592 C670.26,1627.3992 866.3,1676.0292 973.39,1702.5992 " fill="none" id="pick_lease->create" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="978.42,1703.8492,970.6421,1697.8074,973.5659,1702.65,968.7233,1705.5738,978.42,1703.8492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="849" y="1670.4276">no lease</text><!--MD5=[64e111b9225aa9d21cd5edaf123c77e3]
+link create to old_lease--><path d="M1027.36,1740.0192 C1009.53,1757.5992 986,1786.6992 986,1817.8592 C986,1817.8592 986,1817.8592 986,2110.8592 C986,2170.8492 921.44,2208.5092 870.75,2228.8292 " fill="none" id="create->old_lease" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="865.89,2230.7392,875.7293,2231.1732,870.5441,2228.9118,872.8055,2223.7267,865.89,2230.7392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f504166a5b4bb527b5be2231a925b659]
+link old_lease to return--><path d="M811,2267.0192 C811,2286.5992 811,2318.6892 811,2340.2892 " fill="none" id="old_lease->return" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="811,2345.5392,815,2336.5392,811,2340.5392,807,2336.5392,811,2345.5392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[59c1c9ec4beba9cdcc547d8172c0df01]
@startuml\r
\r
title Allocate a lease for DHCPREQUEST\r
\r
agent "Check reserved addressed" as pick_reserved\r
\r
+ agent "Check already in use by another thread" as mt_in_use\r
+\r
agent "Check lease" as pick_lease\r
}\r
}\r
getReservedLease - -> out_of_pool\r
out_of_pool - -> check_done : owned reservation for the requested address\r
out_of_pool - -> check_done : requested address is in allowed an pool\r
-out_of_pool - -> no_lease : address not reserved and not in allowed pool\r
+out_of_pool - -> no_lease : address not reserved and not in allowed pool\r
check_done - -> client_lease : has a client lease\r
client_lease -> renew : requested address was already assigned to the client\r
client_lease - -> new_lease\r
iterate - -> pick\r
pick - -> pick_reserved\r
pick_reserved -up-> iterate : address reserved to another client\r
-pick_reserved - -> pick_lease\r
+pick_reserved - -> mt_in_use\r
+mt_in_use -up-> iterate : address already in use by another thread\r
+mt_in_use - -> pick_lease\r
pick_lease -up-> iterate : active lease\r
pick_lease - -> reuseExpiredLease4 : expired lease\r
pick_lease - -> create : no lease\r
agent "Check reserved addressed" as pick_reserved
+ agent "Check already in use by another thread" as mt_in_use
+
agent "Check lease" as pick_lease
}
}
getReservedLease --> out_of_pool
out_of_pool --> check_done : owned reservation for the requested address
out_of_pool --> check_done : requested address is in allowed an pool
-out_of_pool --> no_lease : address not reserved and not in allowed pool
+out_of_pool --> no_lease : address not reserved and not in allowed pool
check_done --> client_lease : has a client lease
client_lease -> renew : requested address was already assigned to the client
client_lease --> new_lease
iterate --> pick
pick --> pick_reserved
pick_reserved -up-> iterate : address reserved to another client
-pick_reserved --> pick_lease
+pick_reserved --> mt_in_use
+mt_in_use -up-> iterate : address already in use by another thread
+mt_in_use --> pick_lease
pick_lease -up-> iterate : active lease
pick_lease --> reuseExpiredLease4 : expired lease
pick_lease --> create : no lease
-<?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="2497px" preserveAspectRatio="none" style="width:1551px;height:2497px;" version="1.1" viewBox="0 0 1551 2497" width="1551px" zoomAndPan="magnify"><defs><filter height="300%" id="f1007wl7m5iu22" 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><ellipse cx="628.8125" cy="20" fill="#000000" filter="url(#f1007wl7m5iu22)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="554.8125" y="50"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="564.8125" y="71.6016">get lease for the client</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="582.3125,104.1328,675.3125,104.1328,687.3125,116.1328,675.3125,128.1328,582.3125,128.1328,570.3125,116.1328,582.3125,104.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="582.3125" y="120.29">reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="552.3125" y="113.8125">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="687.3125" y="113.8125">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="229,138.1328,329,138.1328,341,150.1328,329,162.1328,229,162.1328,217,150.1328,229,138.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="229" y="154.29">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="203" y="147.8125">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="341" y="147.8125">yes</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="11" y="172.1328"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="21" y="193.7344">requested address = reserved address</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="368.5" y="220.6104"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="378.5" y="242.2119">return no lease</text><ellipse cx="422" cy="300.7432" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="422" cy="300.7432" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="293,172.1328,551,172.1328,563,184.1328,551,196.1328,293,196.1328,281,184.1328,293,172.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="426" y="206.7676">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="293" y="188.29">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="563" y="181.8125">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="279,342.2207,291,354.2207,279,366.2207,267,354.2207,279,342.2207" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="498.1758"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="519.7773">return no lease</text><ellipse cx="279" cy="578.3086" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="578.3086" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="186.5,449.6982,371.5,449.6982,383.5,461.6982,371.5,473.6982,186.5,473.6982,174.5,461.6982,186.5,449.6982" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="484.333">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="186.5" y="465.8555">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="383.5" y="459.3779">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="204.5,401.2207,353.5,401.2207,365.5,413.2207,353.5,425.2207,204.5,425.2207,192.5,413.2207,204.5,401.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="435.8555">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="417.3779">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="410.9004">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="279,644.2637,291,656.2637,279,668.2637,267,656.2637,279,644.2637" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="848.6963"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="870.2979">return no lease</text><ellipse cx="279" cy="928.8291" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="928.8291" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="263.5,800.2188,294.5,800.2188,306.5,812.2188,294.5,824.2188,263.5,824.2188,251.5,812.2188,263.5,800.2188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="834.8535">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="263.5" y="816.376">active</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="306.5" y="809.8984">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="204.5,751.7412,353.5,751.7412,365.5,763.7412,353.5,775.7412,204.5,775.7412,192.5,763.7412,204.5,751.7412" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="786.376">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="767.8984">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="761.4209">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="279,994.7842,291,1006.7842,279,1018.7842,267,1006.7842,279,994.7842" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="1102.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="1123.8633">return no lease</text><ellipse cx="279" cy="1182.3945" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="1182.3945" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="187.5,1053.7842,370.5,1053.7842,382.5,1065.7842,370.5,1077.7842,187.5,1077.7842,175.5,1065.7842,187.5,1053.7842" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="1088.4189">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="187.5" y="1069.9414">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="382.5" y="1063.4639">yes</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="170.5,703.2637,387.5,703.2637,399.5,715.2637,387.5,727.2637,170.5,727.2637,158.5,715.2637,170.5,703.2637" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="737.8984">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="170.5" y="719.4209">requested address == reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="399.5" y="712.9434">yes</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="279,1248.3496,291,1260.3496,279,1272.3496,267,1260.3496,279,1248.3496" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="928.625,138.1328,1028.625,138.1328,1040.625,150.1328,1028.625,162.1328,928.625,162.1328,916.625,150.1328,928.625,138.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="928.625" y="154.29">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="898.625" y="147.8125">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1040.625" y="147.8125">no</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="220.6104"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="242.2119">return no lease</text><ellipse cx="756" cy="300.7432" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="300.7432" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="627,172.1328,885,172.1328,897,184.1328,885,196.1328,627,196.1328,615,184.1328,627,172.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="206.7676">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="627" y="188.29">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="897" y="181.8125">no</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="468.1758"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="489.7773">return no lease</text><ellipse cx="756" cy="548.3086" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="548.3086" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="663.5,419.6982,848.5,419.6982,860.5,431.6982,848.5,443.6982,663.5,443.6982,651.5,431.6982,663.5,419.6982" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="454.333">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="663.5" y="435.8555">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="860.5" y="429.3779">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="681.5,371.2207,830.5,371.2207,842.5,383.2207,830.5,395.2207,681.5,395.2207,669.5,383.2207,681.5,371.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="405.8555">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="681.5" y="387.3779">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="842.5" y="380.9004">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="756,614.2637,768,626.2637,756,638.2637,744,626.2637,756,614.2637" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="721.7412"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="743.3428">return no lease</text><ellipse cx="756" cy="801.874" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="801.874" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="664.5,673.2637,847.5,673.2637,859.5,685.2637,847.5,697.2637,664.5,697.2637,652.5,685.2637,664.5,673.2637" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="760" y="707.8984">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="664.5" y="689.4209">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="859.5" y="682.9434">yes</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1123.25" y="268.6104"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="1133.25" y="290.2119">pick candidate address</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1150.75,380.2207,1251.75,380.2207,1263.75,392.2207,1251.75,404.2207,1150.75,404.2207,1138.75,392.2207,1150.75,380.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1150.75" y="396.3779">lease for candidate</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1124.75" y="389.9004">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1263.75" y="389.9004">yes</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="983" y="414.2207"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="993" y="435.8223">create and return new lease</text><ellipse cx="1074" cy="494.3535" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1074" cy="494.3535" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="1256" y="462.6982"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="1266" y="484.2998">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="1246.5" y="531.8311"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="1256.5" y="553.4326">update lease information</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1259.5" y="600.9639"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1269.5" y="622.5654">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1292,670.0967,1365,670.0967,1377,682.0967,1365,694.0967,1292,694.0967,1280,682.0967,1292,670.0967" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="1292" y="686.2539">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="1258" y="679.7764">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="1377" y="679.7764">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1205" y="704.0967"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1215" y="725.6982">return no lease</text><ellipse cx="1258.5" cy="784.2295" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1258.5" cy="784.2295" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="1351" y="704.0967"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="1361" y="725.6982">update lease</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="1332" y="773.2295"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="1342" y="794.8311">return reused lease</text><ellipse cx="1398.5" cy="853.3623" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1398.5" cy="853.3623" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1308,414.2207,1349,414.2207,1361,426.2207,1349,438.2207,1308,438.2207,1296,426.2207,1308,414.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1332.5" y="448.8555">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="1308" y="430.3779">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1361" y="423.9004">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1096.25,331.7432,1306.25,331.7432,1318.25,343.7432,1306.25,355.7432,1096.25,355.7432,1084.25,343.7432,1096.25,331.7432" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1205.25" y="366.3779">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="1096.25" y="347.9004">candidate is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1318.25" y="341.4229">yes</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1201.25,931.3174,1213.25,943.3174,1201.25,955.3174,1189.25,943.3174,1201.25,931.3174" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1119.75,220.6104,1282.75,220.6104,1294.75,232.6104,1282.75,244.6104,1119.75,244.6104,1107.75,232.6104,1119.75,220.6104" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="1119.75" y="236.7676">iterate over pools and subnect</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1135.25" y="1014.3174"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1145.25" y="1035.9189">maximum attempts</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1147.75" y="1083.4502"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1157.75" y="1105.0518">return no lease</text><ellipse cx="1201.25" cy="1163.583" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1201.25" cy="1163.583" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="1080.75,172.1328,1321.75,172.1328,1333.75,184.1328,1321.75,196.1328,1080.75,196.1328,1068.75,184.1328,1080.75,172.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1205.25" y="206.7676">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="241" x="1080.75" y="188.29">client lease and lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1333.75" y="181.8125">yes</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="978.625,1211.0605,990.625,1223.0605,978.625,1235.0605,966.625,1223.0605,978.625,1211.0605" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="628.8125,1278.3496,640.8125,1290.3496,628.8125,1302.3496,616.8125,1290.3496,628.8125,1278.3496" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="546.8125" y="1467.7822"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="556.8125" y="1489.3838">update lease information</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="556.3125" y="1570.3926"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="566.3125" y="1591.9941">reclaim expired lease</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="583.3125,1521.915,674.3125,1521.915,686.3125,1533.915,674.3125,1545.915,583.3125,1545.915,571.3125,1533.915,583.3125,1521.915" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="632.8125" y="1556.5498">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="583.3125" y="1538.0723">old lease expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="686.3125" y="1531.5947">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="628.8125,1624.5254,640.8125,1636.5254,628.8125,1648.5254,616.8125,1636.5254,628.8125,1624.5254" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="558.8125" y="1668.5254"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="568.8125" y="1690.127">callout lease4_renew</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="592.3125,1722.6582,665.3125,1722.6582,677.3125,1734.6582,665.3125,1746.6582,592.3125,1746.6582,580.3125,1734.6582,592.3125,1722.6582" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="592.3125" y="1738.8154">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="558.3125" y="1732.3379">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="677.3125" y="1732.3379">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="465.8125" y="1756.6582"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="475.8125" y="1778.2598">return old client lease</text><ellipse cx="538.3125" cy="1821.791" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="538.3125" cy="1821.791" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="671.8125" y="1756.6582"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="681.8125" y="1778.2598">update lease</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="630.8125" y="1810.791"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="157" x="640.8125" y="1832.3926">return renewed client lease</text><ellipse cx="719.3125" cy="1875.9238" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="719.3125" cy="1875.9238" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="468.3125,1419.3047,789.3125,1419.3047,801.3125,1431.3047,789.3125,1443.3047,468.3125,1443.3047,456.3125,1431.3047,468.3125,1419.3047" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="632.8125" y="1453.9395">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="321" x="468.3125" y="1435.4619">has reserved address or client lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="801.3125" y="1428.9844">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="446.8125,1370.8271,810.8125,1370.8271,822.8125,1382.8271,810.8125,1394.8271,446.8125,1394.8271,434.8125,1382.8271,446.8125,1370.8271" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="632.8125" y="1405.4619">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="364" x="446.8125" y="1386.9844">no requested address or requested address == client lease address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="822.8125" y="1380.5068">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="628.8125,1928.9238,640.8125,1940.9238,628.8125,1952.9238,616.8125,1940.9238,628.8125,1928.9238" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="599.3125,1322.3496,658.3125,1322.3496,670.3125,1334.3496,658.3125,1346.3496,599.3125,1346.3496,587.3125,1334.3496,599.3125,1322.3496" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="632.8125" y="1356.9844">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="59" x="599.3125" y="1338.5068">client lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="670.3125" y="1332.0293">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="628.8125,1972.9238,640.8125,1984.9238,628.8125,1996.9238,616.8125,1984.9238,628.8125,1972.9238" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="206" x="525.8125" y="2016.9238"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="186" x="535.8125" y="2038.5254">get lease for requested address</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="586.8125,2071.0566,670.8125,2071.0566,682.8125,2083.0566,670.8125,2095.0566,586.8125,2095.0566,574.8125,2083.0566,586.8125,2071.0566" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="586.8125" y="2087.2139">requested lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="556.8125" y="2080.7363">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="682.8125" y="2080.7363">no</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="422.8125,2105.0566,463.8125,2105.0566,475.8125,2117.0566,463.8125,2129.0566,422.8125,2129.0566,410.8125,2117.0566,422.8125,2105.0566" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="422.8125" y="2121.2139">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="396.8125" y="2114.7363">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="475.8125" y="2114.7363">yes</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="286.3125" y="2139.0566"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="296.3125" y="2160.6582">return no lease</text><ellipse cx="339.8125" cy="2219.1895" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="339.8125" cy="2219.1895" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="474.3125" y="2139.0566"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="484.3125" y="2160.6582">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="464.8125" y="2208.1895"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="474.8125" y="2229.791">update lease information</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="477.8125" y="2262.3223"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="487.8125" y="2283.9238">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#f1007wl7m5iu22)" points="510.3125,2316.4551,583.3125,2316.4551,595.3125,2328.4551,583.3125,2340.4551,510.3125,2340.4551,498.3125,2328.4551,510.3125,2316.4551" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="510.3125" y="2332.6123">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="476.3125" y="2326.1348">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="595.3125" y="2326.1348">CONTINUE</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="423.3125" y="2350.4551"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="433.3125" y="2372.0566">return no lease</text><ellipse cx="476.8125" cy="2415.5879" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="476.8125" cy="2415.5879" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="569.3125" y="2350.4551"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="579.3125" y="2372.0566">update lease</text><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="550.3125" y="2404.5879"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="560.3125" y="2426.1895">return reused lease</text><ellipse cx="616.8125" cy="2469.7207" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="616.8125" cy="2469.7207" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1007wl7m5iu22)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="723.3125" y="2105.0566"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="733.3125" y="2126.6582">create and return new lease</text><ellipse cx="814.3125" cy="2185.1895" fill="#FFFFFF" filter="url(#f1007wl7m5iu22)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="814.3125" cy="2185.1895" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="30" y2="50"/><polygon fill="#A80036" points="624.8125,40,628.8125,50,632.8125,40,628.8125,44" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="254.7432" y2="289.7432"/><polygon fill="#A80036" points="418,279.7432,422,289.7432,426,279.7432,422,283.7432" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="196.1328" y2="220.6104"/><polygon fill="#A80036" points="418,210.6104,422,220.6104,426,210.6104,422,214.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="563" x2="575" y1="184.1328" y2="184.1328"/><polygon fill="#A80036" points="571,262.1768,575,272.1768,579,262.1768,575,266.1768" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="575" y1="184.1328" y2="354.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="291" y1="354.2207" y2="354.2207"/><polygon fill="#A80036" points="301,350.2207,291,354.2207,301,358.2207,297,354.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="217" x2="136" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="132,162.1328,136,172.1328,140,162.1328,136,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="341" x2="422" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="418,162.1328,422,172.1328,426,162.1328,422,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="206.2656" y2="354.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="267" y1="354.2207" y2="354.2207"/><polygon fill="#A80036" points="257,350.2207,267,354.2207,257,358.2207,261,354.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="532.3086" y2="567.3086"/><polygon fill="#A80036" points="275,557.3086,279,567.3086,283,557.3086,279,561.3086" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="473.6982" y2="498.1758"/><polygon fill="#A80036" points="275,488.1758,279,498.1758,283,488.1758,279,492.1758" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="383.5" x2="395.5" y1="461.6982" y2="461.6982"/><polygon fill="#A80036" points="391.5,530.7422,395.5,540.7422,399.5,530.7422,395.5,534.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="395.5" y1="461.6982" y2="619.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="279" y1="619.7861" y2="619.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="619.7861" y2="644.2637"/><polygon fill="#A80036" points="275,634.2637,279,644.2637,283,634.2637,279,638.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="425.2207" y2="449.6982"/><polygon fill="#A80036" points="275,439.6982,279,449.6982,283,439.6982,279,443.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="405.5" y1="413.2207" y2="413.2207"/><polygon fill="#A80036" points="401.5,524.7422,405.5,534.7422,409.5,524.7422,405.5,528.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="405.5" y1="413.2207" y2="656.2637"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="291" y1="656.2637" y2="656.2637"/><polygon fill="#A80036" points="301,652.2637,291,656.2637,301,660.2637,297,656.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="366.2207" y2="401.2207"/><polygon fill="#A80036" points="275,391.2207,279,401.2207,283,391.2207,279,395.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="882.8291" y2="917.8291"/><polygon fill="#A80036" points="275,907.8291,279,917.8291,283,907.8291,279,911.8291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="824.2188" y2="848.6963"/><polygon fill="#A80036" points="275,838.6963,279,848.6963,283,838.6963,279,842.6963" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="342.5" y1="812.2188" y2="812.2188"/><polygon fill="#A80036" points="338.5,881.2627,342.5,891.2627,346.5,881.2627,342.5,885.2627" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="342.5" y1="812.2188" y2="970.3066"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="279" y1="970.3066" y2="970.3066"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="970.3066" y2="994.7842"/><polygon fill="#A80036" points="275,984.7842,279,994.7842,283,984.7842,279,988.7842" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="775.7412" y2="800.2188"/><polygon fill="#A80036" points="275,790.2188,279,800.2188,283,790.2188,279,794.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="377.5" y1="763.7412" y2="763.7412"/><polygon fill="#A80036" points="373.5,875.2627,377.5,885.2627,381.5,875.2627,377.5,879.2627" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="377.5" y1="763.7412" y2="1006.7842"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="291" y1="1006.7842" y2="1006.7842"/><polygon fill="#A80036" points="301,1002.7842,291,1006.7842,301,1010.7842,297,1006.7842" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1136.3945" y2="1171.3945"/><polygon fill="#A80036" points="275,1161.3945,279,1171.3945,283,1161.3945,279,1165.3945" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1077.7842" y2="1102.2617"/><polygon fill="#A80036" points="275,1092.2617,279,1102.2617,283,1092.2617,279,1096.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="394.5" y1="1065.7842" y2="1065.7842"/><polygon fill="#A80036" points="390.5,1134.8281,394.5,1144.8281,398.5,1134.8281,394.5,1138.8281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="394.5" y1="1065.7842" y2="1223.8721"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="279" y1="1223.8721" y2="1223.8721"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1223.8721" y2="1248.3496"/><polygon fill="#A80036" points="275,1238.3496,279,1248.3496,283,1238.3496,279,1242.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1018.7842" y2="1053.7842"/><polygon fill="#A80036" points="275,1043.7842,279,1053.7842,283,1043.7842,279,1047.7842" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="727.2637" y2="751.7412"/><polygon fill="#A80036" points="275,741.7412,279,751.7412,283,741.7412,279,745.7412" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.5" x2="411.5" y1="715.2637" y2="715.2637"/><polygon fill="#A80036" points="407.5,977.8066,411.5,987.8066,415.5,977.8066,411.5,981.8066" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="411.5" y1="715.2637" y2="1260.3496"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="291" y1="1260.3496" y2="1260.3496"/><polygon fill="#A80036" points="301,1256.3496,291,1260.3496,301,1264.3496,297,1260.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="668.2637" y2="703.2637"/><polygon fill="#A80036" points="275,693.2637,279,703.2637,283,693.2637,279,697.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="254.7432" y2="289.7432"/><polygon fill="#A80036" points="752,279.7432,756,289.7432,760,279.7432,756,283.7432" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="196.1328" y2="220.6104"/><polygon fill="#A80036" points="752,210.6104,756,220.6104,760,210.6104,756,214.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="897" x2="909" y1="184.1328" y2="184.1328"/><polygon fill="#A80036" points="905,253.1768,909,263.1768,913,253.1768,909,257.1768" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="909" y1="184.1328" y2="336.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="756" y1="336.2207" y2="336.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="336.2207" y2="371.2207"/><polygon fill="#A80036" points="752,361.2207,756,371.2207,760,361.2207,756,365.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="502.3086" y2="537.3086"/><polygon fill="#A80036" points="752,527.3086,756,537.3086,760,527.3086,756,531.3086" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="443.6982" y2="468.1758"/><polygon fill="#A80036" points="752,458.1758,756,468.1758,760,458.1758,756,462.1758" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860.5" x2="872.5" y1="431.6982" y2="431.6982"/><polygon fill="#A80036" points="868.5,500.7422,872.5,510.7422,876.5,500.7422,872.5,504.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="872.5" y1="431.6982" y2="589.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="756" y1="589.7861" y2="589.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="589.7861" y2="614.2637"/><polygon fill="#A80036" points="752,604.2637,756,614.2637,760,604.2637,756,608.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="395.2207" y2="419.6982"/><polygon fill="#A80036" points="752,409.6982,756,419.6982,760,409.6982,756,413.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="842.5" x2="882.5" y1="383.2207" y2="383.2207"/><polygon fill="#A80036" points="878.5,494.7422,882.5,504.7422,886.5,494.7422,882.5,498.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="882.5" y1="383.2207" y2="626.2637"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="768" y1="626.2637" y2="626.2637"/><polygon fill="#A80036" points="778,622.2637,768,626.2637,778,630.2637,774,626.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="755.874" y2="790.874"/><polygon fill="#A80036" points="752,780.874,756,790.874,760,780.874,756,784.874" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="697.2637" y2="721.7412"/><polygon fill="#A80036" points="752,711.7412,756,721.7412,760,711.7412,756,715.7412" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="859.5" x2="871.5" y1="685.2637" y2="685.2637"/><polygon fill="#A80036" points="867.5,944.1621,871.5,954.1621,875.5,944.1621,871.5,948.1621" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="871.5" y1="685.2637" y2="1223.0605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="966.625" y1="1223.0605" y2="1223.0605"/><polygon fill="#A80036" points="956.625,1219.0605,966.625,1223.0605,956.625,1227.0605,960.625,1223.0605" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="638.2637" y2="673.2637"/><polygon fill="#A80036" points="752,663.2637,756,673.2637,760,663.2637,756,667.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1074" x2="1074" y1="448.3535" y2="483.3535"/><polygon fill="#A80036" points="1070,473.3535,1074,483.3535,1078,473.3535,1074,477.3535" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.5" x2="1328.5" y1="496.8311" y2="531.8311"/><polygon fill="#A80036" points="1324.5,521.8311,1328.5,531.8311,1332.5,521.8311,1328.5,525.8311" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.5" x2="1328.5" y1="565.9639" y2="600.9639"/><polygon fill="#A80036" points="1324.5,590.9639,1328.5,600.9639,1332.5,590.9639,1328.5,594.9639" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1258.5" x2="1258.5" y1="738.2295" y2="773.2295"/><polygon fill="#A80036" points="1254.5,763.2295,1258.5,773.2295,1262.5,763.2295,1258.5,767.2295" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1398.5" x2="1398.5" y1="738.2295" y2="773.2295"/><polygon fill="#A80036" points="1394.5,763.2295,1398.5,773.2295,1402.5,763.2295,1398.5,767.2295" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1398.5" x2="1398.5" y1="807.3623" y2="842.3623"/><polygon fill="#A80036" points="1394.5,832.3623,1398.5,842.3623,1402.5,832.3623,1398.5,836.3623" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1280" x2="1258.5" y1="682.0967" y2="682.0967"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1258.5" x2="1258.5" y1="682.0967" y2="704.0967"/><polygon fill="#A80036" points="1254.5,694.0967,1258.5,704.0967,1262.5,694.0967,1258.5,698.0967" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1377" x2="1398.5" y1="682.0967" y2="682.0967"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1398.5" x2="1398.5" y1="682.0967" y2="704.0967"/><polygon fill="#A80036" points="1394.5,694.0967,1398.5,704.0967,1402.5,694.0967,1398.5,698.0967" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.5" x2="1328.5" y1="635.0967" y2="670.0967"/><polygon fill="#A80036" points="1324.5,660.0967,1328.5,670.0967,1332.5,660.0967,1328.5,664.0967" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.5" x2="1328.5" y1="438.2207" y2="462.6982"/><polygon fill="#A80036" points="1324.5,452.6982,1328.5,462.6982,1332.5,452.6982,1328.5,456.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1361" x2="1479" y1="426.2207" y2="426.2207"/><polygon fill="#A80036" points="1475,656.5303,1479,666.5303,1483,656.5303,1479,660.5303" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479" x2="1479" y1="426.2207" y2="906.8398"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1479" x2="1201.25" y1="906.8398" y2="906.8398"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="906.8398" y2="931.3174"/><polygon fill="#A80036" points="1197.25,921.3174,1201.25,931.3174,1205.25,921.3174,1201.25,925.3174" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1138.75" x2="1074" y1="392.2207" y2="392.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1074" x2="1074" y1="392.2207" y2="414.2207"/><polygon fill="#A80036" points="1070,404.2207,1074,414.2207,1078,404.2207,1074,408.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1263.75" x2="1328.5" y1="392.2207" y2="392.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.5" x2="1328.5" y1="392.2207" y2="414.2207"/><polygon fill="#A80036" points="1324.5,404.2207,1328.5,414.2207,1332.5,404.2207,1328.5,408.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="355.7432" y2="380.2207"/><polygon fill="#A80036" points="1197.25,370.2207,1201.25,380.2207,1205.25,370.2207,1201.25,374.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1318.25" x2="1497" y1="343.7432" y2="343.7432"/><polygon fill="#A80036" points="1493,633.5303,1497,643.5303,1501,633.5303,1497,637.5303" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1497" x2="1497" y1="343.7432" y2="943.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1497" x2="1213.25" y1="943.3174" y2="943.3174"/><polygon fill="#A80036" points="1223.25,939.3174,1213.25,943.3174,1223.25,947.3174,1219.25,943.3174" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="302.7432" y2="331.7432"/><polygon fill="#A80036" points="1197.25,321.7432,1201.25,331.7432,1205.25,321.7432,1201.25,325.7432" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="244.6104" y2="268.6104"/><polygon fill="#A80036" points="1197.25,258.6104,1201.25,268.6104,1205.25,258.6104,1201.25,262.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="955.3174" y2="967.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1515" y1="967.3174" y2="967.3174"/><polygon fill="#A80036" points="1511,606.9639,1515,596.9639,1519,606.9639,1515,602.9639" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1515" x2="1515" y1="232.6104" y2="967.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1515" x2="1294.75" y1="232.6104" y2="232.6104"/><polygon fill="#A80036" points="1304.75,228.6104,1294.75,232.6104,1304.75,236.6104,1300.75,232.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1107.75" x2="951" y1="232.6104" y2="232.6104"/><polygon fill="#A80036" points="947,592.9639,951,602.9639,955,592.9639,951,596.9639" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="951" y1="232.6104" y2="979.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="1201.25" y1="979.3174" y2="979.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="979.3174" y2="1014.3174"/><polygon fill="#A80036" points="1197.25,1004.3174,1201.25,1014.3174,1205.25,1004.3174,1201.25,1008.3174" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="1048.4502" y2="1083.4502"/><polygon fill="#A80036" points="1197.25,1073.4502,1201.25,1083.4502,1205.25,1073.4502,1201.25,1077.4502" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="1117.583" y2="1152.583"/><polygon fill="#A80036" points="1197.25,1142.583,1201.25,1152.583,1205.25,1142.583,1201.25,1146.583" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="196.1328" y2="220.6104"/><polygon fill="#A80036" points="1197.25,210.6104,1201.25,220.6104,1205.25,210.6104,1201.25,214.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1333.75" x2="1525" y1="184.1328" y2="184.1328"/><polygon fill="#A80036" points="1521,690.5967,1525,700.5967,1529,690.5967,1525,694.5967" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1525" y1="184.1328" y2="1223.0605"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="990.625" y1="1223.0605" y2="1223.0605"/><polygon fill="#A80036" points="1000.625,1219.0605,990.625,1223.0605,1000.625,1227.0605,996.625,1223.0605" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="916.625" x2="756" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="752,162.1328,756,172.1328,760,162.1328,756,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1040.625" x2="1201.25" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1201.25" x2="1201.25" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="1197.25,162.1328,1201.25,172.1328,1205.25,162.1328,1201.25,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="570.3125" x2="279" y1="116.1328" y2="116.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="116.1328" y2="138.1328"/><polygon fill="#A80036" points="275,128.1328,279,138.1328,283,128.1328,279,132.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="687.3125" x2="978.625" y1="116.1328" y2="116.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="978.625" x2="978.625" y1="116.1328" y2="138.1328"/><polygon fill="#A80036" points="974.625,128.1328,978.625,138.1328,982.625,128.1328,978.625,132.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1272.3496" y2="1290.3496"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="616.8125" y1="1290.3496" y2="1290.3496"/><polygon fill="#A80036" points="606.8125,1286.3496,616.8125,1290.3496,606.8125,1294.3496,610.8125,1290.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="978.625" x2="978.625" y1="1235.0605" y2="1290.3496"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="978.625" x2="640.8125" y1="1290.3496" y2="1290.3496"/><polygon fill="#A80036" points="650.8125,1286.3496,640.8125,1290.3496,650.8125,1294.3496,646.8125,1290.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="84.1328" y2="104.1328"/><polygon fill="#A80036" points="624.8125,94.1328,628.8125,104.1328,632.8125,94.1328,628.8125,98.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1545.915" y2="1570.3926"/><polygon fill="#A80036" points="624.8125,1560.3926,628.8125,1570.3926,632.8125,1560.3926,628.8125,1564.3926" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="686.3125" x2="711.3125" y1="1533.915" y2="1533.915"/><polygon fill="#A80036" points="707.3125,1577.459,711.3125,1587.459,715.3125,1577.459,711.3125,1581.459" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="711.3125" x2="711.3125" y1="1533.915" y2="1636.5254"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="711.3125" x2="640.8125" y1="1636.5254" y2="1636.5254"/><polygon fill="#A80036" points="650.8125,1632.5254,640.8125,1636.5254,650.8125,1640.5254,646.8125,1636.5254" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1604.5254" y2="1624.5254"/><polygon fill="#A80036" points="624.8125,1614.5254,628.8125,1624.5254,632.8125,1614.5254,628.8125,1618.5254" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1501.915" y2="1521.915"/><polygon fill="#A80036" points="624.8125,1511.915,628.8125,1521.915,632.8125,1511.915,628.8125,1515.915" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1648.5254" y2="1668.5254"/><polygon fill="#A80036" points="624.8125,1658.5254,628.8125,1668.5254,632.8125,1658.5254,628.8125,1662.5254" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="538.3125" x2="538.3125" y1="1790.791" y2="1810.791"/><polygon fill="#A80036" points="534.3125,1800.791,538.3125,1810.791,542.3125,1800.791,538.3125,1804.791" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="719.3125" x2="719.3125" y1="1790.791" y2="1810.791"/><polygon fill="#A80036" points="715.3125,1800.791,719.3125,1810.791,723.3125,1800.791,719.3125,1804.791" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="719.3125" x2="719.3125" y1="1844.9238" y2="1864.9238"/><polygon fill="#A80036" points="715.3125,1854.9238,719.3125,1864.9238,723.3125,1854.9238,719.3125,1858.9238" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="580.3125" x2="538.3125" y1="1734.6582" y2="1734.6582"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="538.3125" x2="538.3125" y1="1734.6582" y2="1756.6582"/><polygon fill="#A80036" points="534.3125,1746.6582,538.3125,1756.6582,542.3125,1746.6582,538.3125,1750.6582" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="677.3125" x2="719.3125" y1="1734.6582" y2="1734.6582"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="719.3125" x2="719.3125" y1="1734.6582" y2="1756.6582"/><polygon fill="#A80036" points="715.3125,1746.6582,719.3125,1756.6582,723.3125,1746.6582,719.3125,1750.6582" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1702.6582" y2="1722.6582"/><polygon fill="#A80036" points="624.8125,1712.6582,628.8125,1722.6582,632.8125,1712.6582,628.8125,1716.6582" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1443.3047" y2="1467.7822"/><polygon fill="#A80036" points="624.8125,1457.7822,628.8125,1467.7822,632.8125,1457.7822,628.8125,1461.7822" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="801.3125" x2="827.8125" y1="1431.3047" y2="1431.3047"/><polygon fill="#A80036" points="823.8125,1672.6143,827.8125,1682.6143,831.8125,1672.6143,827.8125,1676.6143" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="827.8125" x2="827.8125" y1="1431.3047" y2="1908.9238"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="827.8125" x2="628.8125" y1="1908.9238" y2="1908.9238"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1908.9238" y2="1928.9238"/><polygon fill="#A80036" points="624.8125,1918.9238,628.8125,1928.9238,632.8125,1918.9238,628.8125,1922.9238" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1394.8271" y2="1419.3047"/><polygon fill="#A80036" points="624.8125,1409.3047,628.8125,1419.3047,632.8125,1409.3047,628.8125,1413.3047" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="822.8125" x2="849.8125" y1="1382.8271" y2="1382.8271"/><polygon fill="#A80036" points="845.8125,1666.6143,849.8125,1676.6143,853.8125,1666.6143,849.8125,1670.6143" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="849.8125" x2="849.8125" y1="1382.8271" y2="1940.9238"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="849.8125" x2="640.8125" y1="1940.9238" y2="1940.9238"/><polygon fill="#A80036" points="650.8125,1936.9238,640.8125,1940.9238,650.8125,1944.9238,646.8125,1940.9238" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1346.3496" y2="1370.8271"/><polygon fill="#A80036" points="624.8125,1360.8271,628.8125,1370.8271,632.8125,1360.8271,628.8125,1364.8271" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="670.3125" x2="871.8125" y1="1334.3496" y2="1334.3496"/><polygon fill="#A80036" points="867.8125,1666.6143,871.8125,1676.6143,875.8125,1666.6143,871.8125,1670.6143" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.8125" x2="871.8125" y1="1334.3496" y2="1984.9238"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.8125" x2="640.8125" y1="1984.9238" y2="1984.9238"/><polygon fill="#A80036" points="650.8125,1980.9238,640.8125,1984.9238,650.8125,1988.9238,646.8125,1984.9238" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1952.9238" y2="1972.9238"/><polygon fill="#A80036" points="624.8125,1962.9238,628.8125,1972.9238,632.8125,1962.9238,628.8125,1966.9238" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1302.3496" y2="1322.3496"/><polygon fill="#A80036" points="624.8125,1312.3496,628.8125,1322.3496,632.8125,1312.3496,628.8125,1316.3496" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="1996.9238" y2="2016.9238"/><polygon fill="#A80036" points="624.8125,2006.9238,628.8125,2016.9238,632.8125,2006.9238,628.8125,2010.9238" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.8125" x2="339.8125" y1="2173.1895" y2="2208.1895"/><polygon fill="#A80036" points="335.8125,2198.1895,339.8125,2208.1895,343.8125,2198.1895,339.8125,2202.1895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="546.8125" x2="546.8125" y1="2173.1895" y2="2208.1895"/><polygon fill="#A80036" points="542.8125,2198.1895,546.8125,2208.1895,550.8125,2198.1895,546.8125,2202.1895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="546.8125" x2="546.8125" y1="2242.3223" y2="2262.3223"/><polygon fill="#A80036" points="542.8125,2252.3223,546.8125,2262.3223,550.8125,2252.3223,546.8125,2256.3223" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="476.8125" x2="476.8125" y1="2384.5879" y2="2404.5879"/><polygon fill="#A80036" points="472.8125,2394.5879,476.8125,2404.5879,480.8125,2394.5879,476.8125,2398.5879" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="616.8125" x2="616.8125" y1="2384.5879" y2="2404.5879"/><polygon fill="#A80036" points="612.8125,2394.5879,616.8125,2404.5879,620.8125,2394.5879,616.8125,2398.5879" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="616.8125" x2="616.8125" y1="2438.7207" y2="2458.7207"/><polygon fill="#A80036" points="612.8125,2448.7207,616.8125,2458.7207,620.8125,2448.7207,616.8125,2452.7207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="498.3125" x2="476.8125" y1="2328.4551" y2="2328.4551"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="476.8125" x2="476.8125" y1="2328.4551" y2="2350.4551"/><polygon fill="#A80036" points="472.8125,2340.4551,476.8125,2350.4551,480.8125,2340.4551,476.8125,2344.4551" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="595.3125" x2="616.8125" y1="2328.4551" y2="2328.4551"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="616.8125" x2="616.8125" y1="2328.4551" y2="2350.4551"/><polygon fill="#A80036" points="612.8125,2340.4551,616.8125,2350.4551,620.8125,2340.4551,616.8125,2344.4551" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="546.8125" x2="546.8125" y1="2296.4551" y2="2316.4551"/><polygon fill="#A80036" points="542.8125,2306.4551,546.8125,2316.4551,550.8125,2306.4551,546.8125,2310.4551" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="410.8125" x2="339.8125" y1="2117.0566" y2="2117.0566"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="339.8125" x2="339.8125" y1="2117.0566" y2="2139.0566"/><polygon fill="#A80036" points="335.8125,2129.0566,339.8125,2139.0566,343.8125,2129.0566,339.8125,2133.0566" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="475.8125" x2="546.8125" y1="2117.0566" y2="2117.0566"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="546.8125" x2="546.8125" y1="2117.0566" y2="2139.0566"/><polygon fill="#A80036" points="542.8125,2129.0566,546.8125,2139.0566,550.8125,2129.0566,546.8125,2133.0566" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="814.3125" x2="814.3125" y1="2139.1895" y2="2174.1895"/><polygon fill="#A80036" points="810.3125,2164.1895,814.3125,2174.1895,818.3125,2164.1895,814.3125,2168.1895" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="574.8125" x2="443.3125" y1="2083.0566" y2="2083.0566"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="443.3125" x2="443.3125" y1="2083.0566" y2="2105.0566"/><polygon fill="#A80036" points="439.3125,2095.0566,443.3125,2105.0566,447.3125,2095.0566,443.3125,2099.0566" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="682.8125" x2="814.3125" y1="2083.0566" y2="2083.0566"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="814.3125" x2="814.3125" y1="2083.0566" y2="2105.0566"/><polygon fill="#A80036" points="810.3125,2095.0566,814.3125,2105.0566,818.3125,2095.0566,814.3125,2099.0566" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="628.8125" x2="628.8125" y1="2051.0566" y2="2071.0566"/><polygon fill="#A80036" points="624.8125,2061.0566,628.8125,2071.0566,632.8125,2061.0566,628.8125,2065.0566" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e31179d83d450c56f80a42060fbe6266]
+<?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="2539px" preserveAspectRatio="none" style="width:1579px;height:2539px;" version="1.1" viewBox="0 0 1579 2539" width="1579px" zoomAndPan="magnify"><defs><filter height="300%" id="fmr1n1g8b9a3j" 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><ellipse cx="631.3125" cy="20" fill="#000000" filter="url(#fmr1n1g8b9a3j)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="557.3125" y="50"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="567.3125" y="71.6016">get lease for the client</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="584.8125,104.1328,677.8125,104.1328,689.8125,116.1328,677.8125,128.1328,584.8125,128.1328,572.8125,116.1328,584.8125,104.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="584.8125" y="120.29">reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="554.8125" y="113.8125">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="689.8125" y="113.8125">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="229,138.1328,329,138.1328,341,150.1328,329,162.1328,229,162.1328,217,150.1328,229,138.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="229" y="154.29">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="203" y="147.8125">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="341" y="147.8125">yes</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="11" y="172.1328"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="21" y="193.7344">requested address = reserved address</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="368.5" y="220.6104"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="378.5" y="242.2119">return no lease</text><ellipse cx="422" cy="300.7432" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="422" cy="300.7432" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="293,172.1328,551,172.1328,563,184.1328,551,196.1328,293,196.1328,281,184.1328,293,172.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="426" y="206.7676">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="293" y="188.29">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="563" y="181.8125">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="279,342.2207,291,354.2207,279,366.2207,267,354.2207,279,342.2207" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="498.1758"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="519.7773">return no lease</text><ellipse cx="279" cy="578.3086" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="578.3086" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="186.5,449.6982,371.5,449.6982,383.5,461.6982,371.5,473.6982,186.5,473.6982,174.5,461.6982,186.5,449.6982" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="484.333">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="186.5" y="465.8555">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="383.5" y="459.3779">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="204.5,401.2207,353.5,401.2207,365.5,413.2207,353.5,425.2207,204.5,425.2207,192.5,413.2207,204.5,401.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="435.8555">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="417.3779">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="410.9004">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="279,644.2637,291,656.2637,279,668.2637,267,656.2637,279,644.2637" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="848.6963"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="870.2979">return no lease</text><ellipse cx="279" cy="928.8291" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="928.8291" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="263.5,800.2188,294.5,800.2188,306.5,812.2188,294.5,824.2188,263.5,824.2188,251.5,812.2188,263.5,800.2188" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="834.8535">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="263.5" y="816.376">active</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="306.5" y="809.8984">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="204.5,751.7412,353.5,751.7412,365.5,763.7412,353.5,775.7412,204.5,775.7412,192.5,763.7412,204.5,751.7412" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="283" y="786.376">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="204.5" y="767.8984">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="365.5" y="761.4209">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="279,994.7842,291,1006.7842,279,1018.7842,267,1006.7842,279,994.7842" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="225.5" y="1102.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="235.5" y="1123.8633">return no lease</text><ellipse cx="279" cy="1176.4053" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="279" cy="1176.4053" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="187.5,1053.7842,370.5,1053.7842,382.5,1065.7842,370.5,1077.7842,187.5,1077.7842,175.5,1065.7842,187.5,1053.7842" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="1088.4189">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="187.5" y="1069.9414">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="382.5" y="1063.4639">yes</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="170.5,703.2637,387.5,703.2637,399.5,715.2637,387.5,727.2637,170.5,727.2637,158.5,715.2637,170.5,703.2637" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="283" y="737.8984">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="170.5" y="719.4209">requested address == reserved address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="399.5" y="712.9434">yes</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="279,1237.8828,291,1249.8828,279,1261.8828,267,1249.8828,279,1237.8828" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="933.625,138.1328,1033.625,138.1328,1045.625,150.1328,1033.625,162.1328,933.625,162.1328,921.625,150.1328,933.625,138.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="933.625" y="154.29">requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="903.625" y="147.8125">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1045.625" y="147.8125">no</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="220.6104"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="242.2119">return no lease</text><ellipse cx="756" cy="300.7432" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="300.7432" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="627,172.1328,885,172.1328,897,184.1328,885,196.1328,627,196.1328,615,184.1328,627,172.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="206.7676">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="627" y="188.29">requested address is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="897" y="181.8125">no</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="468.1758"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="489.7773">return no lease</text><ellipse cx="756" cy="548.3086" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="548.3086" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="663.5,419.6982,848.5,419.6982,860.5,431.6982,848.5,443.6982,663.5,443.6982,651.5,431.6982,663.5,419.6982" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="454.333">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="663.5" y="435.8555">active and owned by another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="860.5" y="429.3779">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="681.5,371.2207,830.5,371.2207,842.5,383.2207,830.5,395.2207,681.5,395.2207,669.5,383.2207,681.5,371.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="760" y="405.8555">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="681.5" y="387.3779">lease for requested address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="842.5" y="380.9004">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="756,614.2637,768,626.2637,756,638.2637,744,626.2637,756,614.2637" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="702.5" y="721.7412"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="712.5" y="743.3428">return no lease</text><ellipse cx="756" cy="801.874" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="756" cy="801.874" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="664.5,673.2637,847.5,673.2637,859.5,685.2637,847.5,697.2637,664.5,697.2637,652.5,685.2637,664.5,673.2637" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="760" y="707.8984">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="664.5" y="689.4209">requested address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="859.5" y="682.9434">yes</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1133.25" y="268.6104"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="1143.25" y="290.2119">pick candidate address</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1160.75,428.6982,1261.75,428.6982,1273.75,440.6982,1261.75,452.6982,1160.75,452.6982,1148.75,440.6982,1160.75,428.6982" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1160.75" y="444.8555">lease for candidate</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1134.75" y="438.3779">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1273.75" y="438.3779">yes</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="993" y="462.6982"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="1003" y="484.2998">create and return new lease</text><ellipse cx="1084" cy="542.8311" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1084" cy="542.8311" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="1266" y="511.1758"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="1276" y="532.7773">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="1256.5" y="580.3086"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="1266.5" y="601.9102">update lease information</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1269.5" y="649.4414"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1279.5" y="671.043">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1302,718.5742,1375,718.5742,1387,730.5742,1375,742.5742,1302,742.5742,1290,730.5742,1302,718.5742" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="1302" y="734.7314">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="1268" y="728.2539">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="1387" y="728.2539">CONTINUE</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1215" y="752.5742"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1225" y="774.1758">return no lease</text><ellipse cx="1268.5" cy="832.707" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1268.5" cy="832.707" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="1361" y="752.5742"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="1371" y="774.1758">update lease</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="1342" y="821.707"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="1352" y="843.3086">return reused lease</text><ellipse cx="1408.5" cy="901.8398" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1408.5" cy="901.8398" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1318,462.6982,1359,462.6982,1371,474.6982,1359,486.6982,1318,486.6982,1306,474.6982,1318,462.6982" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1342.5" y="497.333">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="1318" y="478.8555">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1371" y="472.3779">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1115.25,380.2207,1307.25,380.2207,1319.25,392.2207,1307.25,404.2207,1115.25,404.2207,1103.25,392.2207,1115.25,380.2207" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="414.8555">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1115.25" y="396.3779">candidate is used by another thread</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1319.25" y="389.9004">yes</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1211.25,979.7949,1223.25,991.7949,1211.25,1003.7949,1199.25,991.7949,1211.25,979.7949" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1106.25,331.7432,1316.25,331.7432,1328.25,343.7432,1316.25,355.7432,1106.25,355.7432,1094.25,343.7432,1106.25,331.7432" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="366.3779">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="1106.25" y="347.9004">candidate is reserved for another client</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1328.25" y="341.4229">yes</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1211.25,1028.2725,1223.25,1040.2725,1211.25,1052.2725,1199.25,1040.2725,1211.25,1028.2725" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1129.75,220.6104,1292.75,220.6104,1304.75,232.6104,1292.75,244.6104,1129.75,244.6104,1117.75,232.6104,1129.75,220.6104" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="1129.75" y="236.7676">iterate over pools and subnect</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="1145.25" y="1111.2725"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="1155.25" y="1132.874">maximum attempts</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="1157.75" y="1174.416"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="1167.75" y="1196.0176">return no lease</text><ellipse cx="1211.25" cy="1250.0713" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1211.25" cy="1250.0713" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="1090.75,172.1328,1331.75,172.1328,1343.75,184.1328,1331.75,196.1328,1090.75,196.1328,1078.75,184.1328,1090.75,172.1328" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1215.25" y="206.7676">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="241" x="1090.75" y="188.29">client lease and lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="1343.75" y="181.8125">yes</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="983.625,1289.8828,995.625,1301.8828,983.625,1313.8828,971.625,1301.8828,983.625,1289.8828" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="631.3125,1319.8828,643.3125,1331.8828,631.3125,1343.8828,619.3125,1331.8828,631.3125,1319.8828" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="549.3125" y="1509.3154"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="559.3125" y="1530.917">update lease information</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="558.8125" y="1611.9258"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="568.8125" y="1633.5273">reclaim expired lease</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="585.8125,1563.4482,676.8125,1563.4482,688.8125,1575.4482,676.8125,1587.4482,585.8125,1587.4482,573.8125,1575.4482,585.8125,1563.4482" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1598.083">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="585.8125" y="1579.6055">old lease expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="688.8125" y="1573.1279">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="631.3125,1666.0586,643.3125,1678.0586,631.3125,1690.0586,619.3125,1678.0586,631.3125,1666.0586" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="561.3125" y="1710.0586"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="571.3125" y="1731.6602">callout lease4_renew</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="594.8125,1764.1914,667.8125,1764.1914,679.8125,1776.1914,667.8125,1788.1914,594.8125,1788.1914,582.8125,1776.1914,594.8125,1764.1914" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="594.8125" y="1780.3486">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="560.8125" y="1773.8711">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="679.8125" y="1773.8711">CONTINUE</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="468.3125" y="1798.1914"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="478.3125" y="1819.793">return old client lease</text><ellipse cx="540.8125" cy="1863.3242" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="540.8125" cy="1863.3242" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="674.3125" y="1798.1914"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="684.3125" y="1819.793">update lease</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="633.3125" y="1852.3242"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="157" x="643.3125" y="1873.9258">return renewed client lease</text><ellipse cx="721.8125" cy="1917.457" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="721.8125" cy="1917.457" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="470.8125,1460.8379,791.8125,1460.8379,803.8125,1472.8379,791.8125,1484.8379,470.8125,1484.8379,458.8125,1472.8379,470.8125,1460.8379" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1495.4727">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="321" x="470.8125" y="1476.9951">has reserved address or client lease address in allowed pool</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="803.8125" y="1470.5176">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="449.3125,1412.3604,813.3125,1412.3604,825.3125,1424.3604,813.3125,1436.3604,449.3125,1436.3604,437.3125,1424.3604,449.3125,1412.3604" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1446.9951">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="364" x="449.3125" y="1428.5176">no requested address or requested address == client lease address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="825.3125" y="1422.04">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="631.3125,1970.457,643.3125,1982.457,631.3125,1994.457,619.3125,1982.457,631.3125,1970.457" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="601.8125,1363.8828,660.8125,1363.8828,672.8125,1375.8828,660.8125,1387.8828,601.8125,1387.8828,589.8125,1375.8828,601.8125,1363.8828" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="635.3125" y="1398.5176">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="59" x="601.8125" y="1380.04">client lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="672.8125" y="1373.5625">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="631.3125,2014.457,643.3125,2026.457,631.3125,2038.457,619.3125,2026.457,631.3125,2014.457" style="stroke: #A80036; stroke-width: 1.5;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="206" x="528.3125" y="2058.457"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="186" x="538.3125" y="2080.0586">get lease for requested address</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="589.3125,2112.5898,673.3125,2112.5898,685.3125,2124.5898,673.3125,2136.5898,589.3125,2136.5898,577.3125,2124.5898,589.3125,2112.5898" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="589.3125" y="2128.7471">requested lease</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="559.3125" y="2122.2695">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="685.3125" y="2122.2695">no</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="425.3125,2146.5898,466.3125,2146.5898,478.3125,2158.5898,466.3125,2170.5898,425.3125,2170.5898,413.3125,2158.5898,425.3125,2146.5898" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="425.3125" y="2162.7471">expired</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="399.3125" y="2156.2695">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="18" x="478.3125" y="2156.2695">yes</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="288.8125" y="2180.5898"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="298.8125" y="2202.1914">return no lease</text><ellipse cx="342.3125" cy="2260.7227" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="342.3125" cy="2260.7227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="476.8125" y="2180.5898"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="125" x="486.8125" y="2202.1914">reclaim expired lease</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="164" x="467.3125" y="2249.7227"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="144" x="477.3125" y="2271.3242">update lease information</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="480.3125" y="2303.8555"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="490.3125" y="2325.457">callout lease4_select</text><polygon fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" points="512.8125,2357.9883,585.8125,2357.9883,597.8125,2369.9883,585.8125,2381.9883,512.8125,2381.9883,500.8125,2369.9883,512.8125,2357.9883" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="512.8125" y="2374.1455">callout return</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="478.8125" y="2367.668">SKIP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="57" x="597.8125" y="2367.668">CONTINUE</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="425.8125" y="2391.9883"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="435.8125" y="2413.5898">return no lease</text><ellipse cx="479.3125" cy="2457.1211" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="479.3125" cy="2457.1211" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="571.8125" y="2391.9883"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="581.8125" y="2413.5898">update lease</text><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="552.8125" y="2446.1211"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="113" x="562.8125" y="2467.7227">return reused lease</text><ellipse cx="619.3125" cy="2511.2539" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="619.3125" cy="2511.2539" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fmr1n1g8b9a3j)" height="34.1328" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="725.8125" y="2146.5898"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="162" x="735.8125" y="2168.1914">create and return new lease</text><ellipse cx="816.8125" cy="2226.7227" fill="#FFFFFF" filter="url(#fmr1n1g8b9a3j)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="816.8125" cy="2226.7227" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="30" y2="50"/><polygon fill="#A80036" points="627.3125,40,631.3125,50,635.3125,40,631.3125,44" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="254.7432" y2="289.7432"/><polygon fill="#A80036" points="418,279.7432,422,289.7432,426,279.7432,422,283.7432" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="196.1328" y2="220.6104"/><polygon fill="#A80036" points="418,210.6104,422,220.6104,426,210.6104,422,214.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="563" x2="575" y1="184.1328" y2="184.1328"/><polygon fill="#A80036" points="571,262.1768,575,272.1768,579,262.1768,575,266.1768" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="575" y1="184.1328" y2="354.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="575" x2="291" y1="354.2207" y2="354.2207"/><polygon fill="#A80036" points="301,350.2207,291,354.2207,301,358.2207,297,354.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="217" x2="136" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="132,162.1328,136,172.1328,140,162.1328,136,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="341" x2="422" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="422" x2="422" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="418,162.1328,422,172.1328,426,162.1328,422,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="136" y1="206.2656" y2="354.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="136" x2="267" y1="354.2207" y2="354.2207"/><polygon fill="#A80036" points="257,350.2207,267,354.2207,257,358.2207,261,354.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="532.3086" y2="567.3086"/><polygon fill="#A80036" points="275,557.3086,279,567.3086,283,557.3086,279,561.3086" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="473.6982" y2="498.1758"/><polygon fill="#A80036" points="275,488.1758,279,498.1758,283,488.1758,279,492.1758" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="383.5" x2="395.5" y1="461.6982" y2="461.6982"/><polygon fill="#A80036" points="391.5,530.7422,395.5,540.7422,399.5,530.7422,395.5,534.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="395.5" y1="461.6982" y2="619.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="395.5" x2="279" y1="619.7861" y2="619.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="619.7861" y2="644.2637"/><polygon fill="#A80036" points="275,634.2637,279,644.2637,283,634.2637,279,638.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="425.2207" y2="449.6982"/><polygon fill="#A80036" points="275,439.6982,279,449.6982,283,439.6982,279,443.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="405.5" y1="413.2207" y2="413.2207"/><polygon fill="#A80036" points="401.5,524.7422,405.5,534.7422,409.5,524.7422,405.5,528.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="405.5" y1="413.2207" y2="656.2637"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="405.5" x2="291" y1="656.2637" y2="656.2637"/><polygon fill="#A80036" points="301,652.2637,291,656.2637,301,660.2637,297,656.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="366.2207" y2="401.2207"/><polygon fill="#A80036" points="275,391.2207,279,401.2207,283,391.2207,279,395.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="882.8291" y2="917.8291"/><polygon fill="#A80036" points="275,907.8291,279,917.8291,283,907.8291,279,911.8291" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="824.2188" y2="848.6963"/><polygon fill="#A80036" points="275,838.6963,279,848.6963,283,838.6963,279,842.6963" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="306.5" x2="342.5" y1="812.2188" y2="812.2188"/><polygon fill="#A80036" points="338.5,881.2627,342.5,891.2627,346.5,881.2627,342.5,885.2627" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="342.5" y1="812.2188" y2="970.3066"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.5" x2="279" y1="970.3066" y2="970.3066"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="970.3066" y2="994.7842"/><polygon fill="#A80036" points="275,984.7842,279,994.7842,283,984.7842,279,988.7842" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="775.7412" y2="800.2188"/><polygon fill="#A80036" points="275,790.2188,279,800.2188,283,790.2188,279,794.2188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="365.5" x2="377.5" y1="763.7412" y2="763.7412"/><polygon fill="#A80036" points="373.5,875.2627,377.5,885.2627,381.5,875.2627,377.5,879.2627" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="377.5" y1="763.7412" y2="1006.7842"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="377.5" x2="291" y1="1006.7842" y2="1006.7842"/><polygon fill="#A80036" points="301,1002.7842,291,1006.7842,301,1010.7842,297,1006.7842" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1136.3945" y2="1165.4053"/><polygon fill="#A80036" points="275,1155.4053,279,1165.4053,283,1155.4053,279,1159.4053" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1077.7842" y2="1102.2617"/><polygon fill="#A80036" points="275,1092.2617,279,1102.2617,283,1092.2617,279,1096.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="394.5" y1="1065.7842" y2="1065.7842"/><polygon fill="#A80036" points="390.5,1134.8281,394.5,1144.8281,398.5,1134.8281,394.5,1138.8281" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="394.5" y1="1065.7842" y2="1217.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="394.5" x2="279" y1="1217.8828" y2="1217.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1217.8828" y2="1237.8828"/><polygon fill="#A80036" points="275,1227.8828,279,1237.8828,283,1227.8828,279,1231.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1018.7842" y2="1053.7842"/><polygon fill="#A80036" points="275,1043.7842,279,1053.7842,283,1043.7842,279,1047.7842" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="727.2637" y2="751.7412"/><polygon fill="#A80036" points="275,741.7412,279,751.7412,283,741.7412,279,745.7412" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="399.5" x2="411.5" y1="715.2637" y2="715.2637"/><polygon fill="#A80036" points="407.5,977.8066,411.5,987.8066,415.5,977.8066,411.5,981.8066" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="411.5" y1="715.2637" y2="1249.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="411.5" x2="291" y1="1249.8828" y2="1249.8828"/><polygon fill="#A80036" points="301,1245.8828,291,1249.8828,301,1253.8828,297,1249.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="668.2637" y2="703.2637"/><polygon fill="#A80036" points="275,693.2637,279,703.2637,283,693.2637,279,697.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="254.7432" y2="289.7432"/><polygon fill="#A80036" points="752,279.7432,756,289.7432,760,279.7432,756,283.7432" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="196.1328" y2="220.6104"/><polygon fill="#A80036" points="752,210.6104,756,220.6104,760,210.6104,756,214.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="897" x2="909" y1="184.1328" y2="184.1328"/><polygon fill="#A80036" points="905,253.1768,909,263.1768,913,253.1768,909,257.1768" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="909" y1="184.1328" y2="336.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="909" x2="756" y1="336.2207" y2="336.2207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="336.2207" y2="371.2207"/><polygon fill="#A80036" points="752,361.2207,756,371.2207,760,361.2207,756,365.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="502.3086" y2="537.3086"/><polygon fill="#A80036" points="752,527.3086,756,537.3086,760,527.3086,756,531.3086" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="443.6982" y2="468.1758"/><polygon fill="#A80036" points="752,458.1758,756,468.1758,760,458.1758,756,462.1758" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="860.5" x2="872.5" y1="431.6982" y2="431.6982"/><polygon fill="#A80036" points="868.5,500.7422,872.5,510.7422,876.5,500.7422,872.5,504.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="872.5" y1="431.6982" y2="589.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="872.5" x2="756" y1="589.7861" y2="589.7861"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="589.7861" y2="614.2637"/><polygon fill="#A80036" points="752,604.2637,756,614.2637,760,604.2637,756,608.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="395.2207" y2="419.6982"/><polygon fill="#A80036" points="752,409.6982,756,419.6982,760,409.6982,756,413.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="842.5" x2="882.5" y1="383.2207" y2="383.2207"/><polygon fill="#A80036" points="878.5,494.7422,882.5,504.7422,886.5,494.7422,882.5,498.7422" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="882.5" y1="383.2207" y2="626.2637"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="882.5" x2="768" y1="626.2637" y2="626.2637"/><polygon fill="#A80036" points="778,622.2637,768,626.2637,778,630.2637,774,626.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="755.874" y2="790.874"/><polygon fill="#A80036" points="752,780.874,756,790.874,760,780.874,756,784.874" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="697.2637" y2="721.7412"/><polygon fill="#A80036" points="752,711.7412,756,721.7412,760,711.7412,756,715.7412" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="859.5" x2="871.5" y1="685.2637" y2="685.2637"/><polygon fill="#A80036" points="867.5,992.6396,871.5,1002.6396,875.5,992.6396,871.5,996.6396" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="871.5" y1="685.2637" y2="1301.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="871.5" x2="971.625" y1="1301.8828" y2="1301.8828"/><polygon fill="#A80036" points="961.625,1297.8828,971.625,1301.8828,961.625,1305.8828,965.625,1301.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="638.2637" y2="673.2637"/><polygon fill="#A80036" points="752,663.2637,756,673.2637,760,663.2637,756,667.2637" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1084" x2="1084" y1="496.8311" y2="531.8311"/><polygon fill="#A80036" points="1080,521.8311,1084,531.8311,1088,521.8311,1084,525.8311" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="545.3086" y2="580.3086"/><polygon fill="#A80036" points="1334.5,570.3086,1338.5,580.3086,1342.5,570.3086,1338.5,574.3086" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="614.4414" y2="649.4414"/><polygon fill="#A80036" points="1334.5,639.4414,1338.5,649.4414,1342.5,639.4414,1338.5,643.4414" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="786.707" y2="821.707"/><polygon fill="#A80036" points="1264.5,811.707,1268.5,821.707,1272.5,811.707,1268.5,815.707" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="786.707" y2="821.707"/><polygon fill="#A80036" points="1404.5,811.707,1408.5,821.707,1412.5,811.707,1408.5,815.707" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="855.8398" y2="890.8398"/><polygon fill="#A80036" points="1404.5,880.8398,1408.5,890.8398,1412.5,880.8398,1408.5,884.8398" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1290" x2="1268.5" y1="730.5742" y2="730.5742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1268.5" x2="1268.5" y1="730.5742" y2="752.5742"/><polygon fill="#A80036" points="1264.5,742.5742,1268.5,752.5742,1272.5,742.5742,1268.5,746.5742" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1387" x2="1408.5" y1="730.5742" y2="730.5742"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1408.5" x2="1408.5" y1="730.5742" y2="752.5742"/><polygon fill="#A80036" points="1404.5,742.5742,1408.5,752.5742,1412.5,742.5742,1408.5,746.5742" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="683.5742" y2="718.5742"/><polygon fill="#A80036" points="1334.5,708.5742,1338.5,718.5742,1342.5,708.5742,1338.5,712.5742" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="486.6982" y2="511.1758"/><polygon fill="#A80036" points="1334.5,501.1758,1338.5,511.1758,1342.5,501.1758,1338.5,505.1758" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1371" x2="1489" y1="474.6982" y2="474.6982"/><polygon fill="#A80036" points="1485,705.0078,1489,715.0078,1493,705.0078,1489,709.0078" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1489" x2="1489" y1="474.6982" y2="955.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1489" x2="1211.25" y1="955.3174" y2="955.3174"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="955.3174" y2="979.7949"/><polygon fill="#A80036" points="1207.25,969.7949,1211.25,979.7949,1215.25,969.7949,1211.25,973.7949" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1148.75" x2="1084" y1="440.6982" y2="440.6982"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1084" x2="1084" y1="440.6982" y2="462.6982"/><polygon fill="#A80036" points="1080,452.6982,1084,462.6982,1088,452.6982,1084,456.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1273.75" x2="1338.5" y1="440.6982" y2="440.6982"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1338.5" x2="1338.5" y1="440.6982" y2="462.6982"/><polygon fill="#A80036" points="1334.5,452.6982,1338.5,462.6982,1342.5,452.6982,1338.5,456.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="404.2207" y2="428.6982"/><polygon fill="#A80036" points="1207.25,418.6982,1211.25,428.6982,1215.25,418.6982,1211.25,422.6982" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1319.25" x2="1507" y1="392.2207" y2="392.2207"/><polygon fill="#A80036" points="1503,682.0078,1507,692.0078,1511,682.0078,1507,686.0078" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1507" y1="392.2207" y2="991.7949"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1507" x2="1223.25" y1="991.7949" y2="991.7949"/><polygon fill="#A80036" points="1233.25,987.7949,1223.25,991.7949,1233.25,995.7949,1229.25,991.7949" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="355.7432" y2="380.2207"/><polygon fill="#A80036" points="1207.25,370.2207,1211.25,380.2207,1215.25,370.2207,1211.25,374.2207" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1328.25" x2="1525" y1="343.7432" y2="343.7432"/><polygon fill="#A80036" points="1521,682.0078,1525,692.0078,1529,682.0078,1525,686.0078" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1525" y1="343.7432" y2="1040.2725"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1525" x2="1223.25" y1="1040.2725" y2="1040.2725"/><polygon fill="#A80036" points="1233.25,1036.2725,1223.25,1040.2725,1233.25,1044.2725,1229.25,1040.2725" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1003.7949" y2="1028.2725"/><polygon fill="#A80036" points="1207.25,1018.2725,1211.25,1028.2725,1215.25,1018.2725,1211.25,1022.2725" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="302.7432" y2="331.7432"/><polygon fill="#A80036" points="1207.25,321.7432,1211.25,331.7432,1215.25,321.7432,1211.25,325.7432" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="244.6104" y2="268.6104"/><polygon fill="#A80036" points="1207.25,258.6104,1211.25,268.6104,1215.25,258.6104,1211.25,262.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1052.2725" y2="1064.2725"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1543" y1="1064.2725" y2="1064.2725"/><polygon fill="#A80036" points="1539,655.4414,1543,645.4414,1547,655.4414,1543,651.4414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1543" x2="1543" y1="232.6104" y2="1064.2725"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1543" x2="1304.75" y1="232.6104" y2="232.6104"/><polygon fill="#A80036" points="1314.75,228.6104,1304.75,232.6104,1314.75,236.6104,1310.75,232.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1117.75" x2="951" y1="232.6104" y2="232.6104"/><polygon fill="#A80036" points="947,641.4414,951,651.4414,955,641.4414,951,645.4414" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="951" y1="232.6104" y2="1076.2725"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="1211.25" y1="1076.2725" y2="1076.2725"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1076.2725" y2="1111.2725"/><polygon fill="#A80036" points="1207.25,1101.2725,1211.25,1111.2725,1215.25,1101.2725,1211.25,1105.2725" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1145.4053" y2="1174.416"/><polygon fill="#A80036" points="1207.25,1164.416,1211.25,1174.416,1215.25,1164.416,1211.25,1168.416" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="1208.5488" y2="1239.0713"/><polygon fill="#A80036" points="1207.25,1229.0713,1211.25,1239.0713,1215.25,1229.0713,1211.25,1233.0713" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="196.1328" y2="220.6104"/><polygon fill="#A80036" points="1207.25,210.6104,1211.25,220.6104,1215.25,210.6104,1211.25,214.6104" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1343.75" x2="1553" y1="184.1328" y2="184.1328"/><polygon fill="#A80036" points="1549,739.0742,1553,749.0742,1557,739.0742,1553,743.0742" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1553" x2="1553" y1="184.1328" y2="1301.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1553" x2="995.625" y1="1301.8828" y2="1301.8828"/><polygon fill="#A80036" points="1005.625,1297.8828,995.625,1301.8828,1005.625,1305.8828,1001.625,1301.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="921.625" x2="756" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="756" x2="756" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="752,162.1328,756,172.1328,760,162.1328,756,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1045.625" x2="1211.25" y1="150.1328" y2="150.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1211.25" x2="1211.25" y1="150.1328" y2="172.1328"/><polygon fill="#A80036" points="1207.25,162.1328,1211.25,172.1328,1215.25,162.1328,1211.25,166.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="572.8125" x2="279" y1="116.1328" y2="116.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="116.1328" y2="138.1328"/><polygon fill="#A80036" points="275,128.1328,279,138.1328,283,128.1328,279,132.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="689.8125" x2="983.625" y1="116.1328" y2="116.1328"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="983.625" y1="116.1328" y2="138.1328"/><polygon fill="#A80036" points="979.625,128.1328,983.625,138.1328,987.625,128.1328,983.625,132.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="279" y1="1261.8828" y2="1331.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="279" x2="619.3125" y1="1331.8828" y2="1331.8828"/><polygon fill="#A80036" points="609.3125,1327.8828,619.3125,1331.8828,609.3125,1335.8828,613.3125,1331.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="983.625" y1="1313.8828" y2="1331.8828"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="983.625" x2="643.3125" y1="1331.8828" y2="1331.8828"/><polygon fill="#A80036" points="653.3125,1327.8828,643.3125,1331.8828,653.3125,1335.8828,649.3125,1331.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="84.1328" y2="104.1328"/><polygon fill="#A80036" points="627.3125,94.1328,631.3125,104.1328,635.3125,94.1328,631.3125,98.1328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1587.4482" y2="1611.9258"/><polygon fill="#A80036" points="627.3125,1601.9258,631.3125,1611.9258,635.3125,1601.9258,631.3125,1605.9258" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="688.8125" x2="713.8125" y1="1575.4482" y2="1575.4482"/><polygon fill="#A80036" points="709.8125,1618.9922,713.8125,1628.9922,717.8125,1618.9922,713.8125,1622.9922" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713.8125" x2="713.8125" y1="1575.4482" y2="1678.0586"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="713.8125" x2="643.3125" y1="1678.0586" y2="1678.0586"/><polygon fill="#A80036" points="653.3125,1674.0586,643.3125,1678.0586,653.3125,1682.0586,649.3125,1678.0586" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1646.0586" y2="1666.0586"/><polygon fill="#A80036" points="627.3125,1656.0586,631.3125,1666.0586,635.3125,1656.0586,631.3125,1660.0586" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1543.4482" y2="1563.4482"/><polygon fill="#A80036" points="627.3125,1553.4482,631.3125,1563.4482,635.3125,1553.4482,631.3125,1557.4482" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1690.0586" y2="1710.0586"/><polygon fill="#A80036" points="627.3125,1700.0586,631.3125,1710.0586,635.3125,1700.0586,631.3125,1704.0586" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540.8125" x2="540.8125" y1="1832.3242" y2="1852.3242"/><polygon fill="#A80036" points="536.8125,1842.3242,540.8125,1852.3242,544.8125,1842.3242,540.8125,1846.3242" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1832.3242" y2="1852.3242"/><polygon fill="#A80036" points="717.8125,1842.3242,721.8125,1852.3242,725.8125,1842.3242,721.8125,1846.3242" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1886.457" y2="1906.457"/><polygon fill="#A80036" points="717.8125,1896.457,721.8125,1906.457,725.8125,1896.457,721.8125,1900.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="582.8125" x2="540.8125" y1="1776.1914" y2="1776.1914"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="540.8125" x2="540.8125" y1="1776.1914" y2="1798.1914"/><polygon fill="#A80036" points="536.8125,1788.1914,540.8125,1798.1914,544.8125,1788.1914,540.8125,1792.1914" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="679.8125" x2="721.8125" y1="1776.1914" y2="1776.1914"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="721.8125" x2="721.8125" y1="1776.1914" y2="1798.1914"/><polygon fill="#A80036" points="717.8125,1788.1914,721.8125,1798.1914,725.8125,1788.1914,721.8125,1792.1914" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1744.1914" y2="1764.1914"/><polygon fill="#A80036" points="627.3125,1754.1914,631.3125,1764.1914,635.3125,1754.1914,631.3125,1758.1914" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1484.8379" y2="1509.3154"/><polygon fill="#A80036" points="627.3125,1499.3154,631.3125,1509.3154,635.3125,1499.3154,631.3125,1503.3154" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="803.8125" x2="830.3125" y1="1472.8379" y2="1472.8379"/><polygon fill="#A80036" points="826.3125,1714.1475,830.3125,1724.1475,834.3125,1714.1475,830.3125,1718.1475" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.3125" x2="830.3125" y1="1472.8379" y2="1950.457"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.3125" x2="631.3125" y1="1950.457" y2="1950.457"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1950.457" y2="1970.457"/><polygon fill="#A80036" points="627.3125,1960.457,631.3125,1970.457,635.3125,1960.457,631.3125,1964.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1436.3604" y2="1460.8379"/><polygon fill="#A80036" points="627.3125,1450.8379,631.3125,1460.8379,635.3125,1450.8379,631.3125,1454.8379" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="825.3125" x2="852.3125" y1="1424.3604" y2="1424.3604"/><polygon fill="#A80036" points="848.3125,1708.1475,852.3125,1718.1475,856.3125,1708.1475,852.3125,1712.1475" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852.3125" x2="852.3125" y1="1424.3604" y2="1982.457"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852.3125" x2="643.3125" y1="1982.457" y2="1982.457"/><polygon fill="#A80036" points="653.3125,1978.457,643.3125,1982.457,653.3125,1986.457,649.3125,1982.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1387.8828" y2="1412.3604"/><polygon fill="#A80036" points="627.3125,1402.3604,631.3125,1412.3604,635.3125,1402.3604,631.3125,1406.3604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="672.8125" x2="874.3125" y1="1375.8828" y2="1375.8828"/><polygon fill="#A80036" points="870.3125,1708.1475,874.3125,1718.1475,878.3125,1708.1475,874.3125,1712.1475" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874.3125" x2="874.3125" y1="1375.8828" y2="2026.457"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="874.3125" x2="643.3125" y1="2026.457" y2="2026.457"/><polygon fill="#A80036" points="653.3125,2022.457,643.3125,2026.457,653.3125,2030.457,649.3125,2026.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1994.457" y2="2014.457"/><polygon fill="#A80036" points="627.3125,2004.457,631.3125,2014.457,635.3125,2004.457,631.3125,2008.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="1343.8828" y2="1363.8828"/><polygon fill="#A80036" points="627.3125,1353.8828,631.3125,1363.8828,635.3125,1353.8828,631.3125,1357.8828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2038.457" y2="2058.457"/><polygon fill="#A80036" points="627.3125,2048.457,631.3125,2058.457,635.3125,2048.457,631.3125,2052.457" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.3125" x2="342.3125" y1="2214.7227" y2="2249.7227"/><polygon fill="#A80036" points="338.3125,2239.7227,342.3125,2249.7227,346.3125,2239.7227,342.3125,2243.7227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2214.7227" y2="2249.7227"/><polygon fill="#A80036" points="545.3125,2239.7227,549.3125,2249.7227,553.3125,2239.7227,549.3125,2243.7227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2283.8555" y2="2303.8555"/><polygon fill="#A80036" points="545.3125,2293.8555,549.3125,2303.8555,553.3125,2293.8555,549.3125,2297.8555" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="479.3125" x2="479.3125" y1="2426.1211" y2="2446.1211"/><polygon fill="#A80036" points="475.3125,2436.1211,479.3125,2446.1211,483.3125,2436.1211,479.3125,2440.1211" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2426.1211" y2="2446.1211"/><polygon fill="#A80036" points="615.3125,2436.1211,619.3125,2446.1211,623.3125,2436.1211,619.3125,2440.1211" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2480.2539" y2="2500.2539"/><polygon fill="#A80036" points="615.3125,2490.2539,619.3125,2500.2539,623.3125,2490.2539,619.3125,2494.2539" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="500.8125" x2="479.3125" y1="2369.9883" y2="2369.9883"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="479.3125" x2="479.3125" y1="2369.9883" y2="2391.9883"/><polygon fill="#A80036" points="475.3125,2381.9883,479.3125,2391.9883,483.3125,2381.9883,479.3125,2385.9883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="597.8125" x2="619.3125" y1="2369.9883" y2="2369.9883"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="619.3125" x2="619.3125" y1="2369.9883" y2="2391.9883"/><polygon fill="#A80036" points="615.3125,2381.9883,619.3125,2391.9883,623.3125,2381.9883,619.3125,2385.9883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2337.9883" y2="2357.9883"/><polygon fill="#A80036" points="545.3125,2347.9883,549.3125,2357.9883,553.3125,2347.9883,549.3125,2351.9883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="413.3125" x2="342.3125" y1="2158.5898" y2="2158.5898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342.3125" x2="342.3125" y1="2158.5898" y2="2180.5898"/><polygon fill="#A80036" points="338.3125,2170.5898,342.3125,2180.5898,346.3125,2170.5898,342.3125,2174.5898" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="478.3125" x2="549.3125" y1="2158.5898" y2="2158.5898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="549.3125" x2="549.3125" y1="2158.5898" y2="2180.5898"/><polygon fill="#A80036" points="545.3125,2170.5898,549.3125,2180.5898,553.3125,2170.5898,549.3125,2174.5898" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.8125" x2="816.8125" y1="2180.7227" y2="2215.7227"/><polygon fill="#A80036" points="812.8125,2205.7227,816.8125,2215.7227,820.8125,2205.7227,816.8125,2209.7227" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="577.3125" x2="445.8125" y1="2124.5898" y2="2124.5898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="445.8125" x2="445.8125" y1="2124.5898" y2="2146.5898"/><polygon fill="#A80036" points="441.8125,2136.5898,445.8125,2146.5898,449.8125,2136.5898,445.8125,2140.5898" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="685.3125" x2="816.8125" y1="2124.5898" y2="2124.5898"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="816.8125" x2="816.8125" y1="2124.5898" y2="2146.5898"/><polygon fill="#A80036" points="812.8125,2136.5898,816.8125,2146.5898,820.8125,2136.5898,816.8125,2140.5898" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="631.3125" x2="631.3125" y1="2092.5898" y2="2112.5898"/><polygon fill="#A80036" points="627.3125,2102.5898,631.3125,2112.5898,635.3125,2102.5898,631.3125,2106.5898" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2d4e9e7b11f007030370c7d24c646966]
@startuml\r
\r
start\r
stop\r
else (no)\r
endif\r
- else (no) \r
+ else (no)\r
endif\r
if (requested address in allowed pool) then (no)\r
:return no lease;\r
while (iterate over pools and subnect)\r
:pick candidate address;\r
if (candidate is reserved for another client) then (no)\r
- if (lease for candidate) then (no)\r
- :create and return new lease;\r
- stop\r
- else (yes)\r
- if (expired) then (yes)\r
- :reclaim expired lease;\r
- :update lease information;\r
- :callout lease4_select;\r
- if (callout return) then (SKIP)\r
- :return no lease;\r
- stop\r
- else (CONTINUE)\r
- :update lease;\r
- :return reused lease;\r
- stop\r
+ if (candidate is used by another thread) then (no)\r
+ if (lease for candidate) then (no)\r
+ :create and return new lease;\r
+ stop\r
+ else (yes)\r
+ if (expired) then (yes)\r
+ :reclaim expired lease;\r
+ :update lease information;\r
+ :callout lease4_select;\r
+ if (callout return) then (SKIP)\r
+ :return no lease;\r
+ stop\r
+ else (CONTINUE)\r
+ :update lease;\r
+ :return reused lease;\r
+ stop\r
+ endif\r
+ else (no)\r
endif\r
- else (no)\r
- endif \r
+ endif\r
+ else (yes)\r
endif\r
else (yes)\r
endif\r
stop\r
else (no)\r
endif\r
- else (no) \r
+ else (no)\r
endif\r
if (requested address in allowed pool) then (no)\r
:return no lease;\r
while (iterate over pools and subnect)\r
:pick candidate address;\r
if (candidate is reserved for another client) then (no)\r
- if (lease for candidate) then (no)\r
- :create and return new lease;\r
- stop\r
- else (yes)\r
- if (expired) then (yes)\r
- :reclaim expired lease;\r
- :update lease information;\r
- :callout lease4_select;\r
- if (callout return) then (SKIP)\r
- :return no lease;\r
- stop\r
- else (CONTINUE)\r
- :update lease;\r
- :return reused lease;\r
- stop\r
+ if (candidate is used by another thread) then (no)\r
+ if (lease for candidate) then (no)\r
+ :create and return new lease;\r
+ stop\r
+ else (yes)\r
+ if (expired) then (yes)\r
+ :reclaim expired lease;\r
+ :update lease information;\r
+ :callout lease4_select;\r
+ if (callout return) then (SKIP)\r
+ :return no lease;\r
+ stop\r
+ else (CONTINUE)\r
+ :update lease;\r
+ :return reused lease;\r
+ stop\r
+ endif\r
+ else (no)\r
endif\r
- else (no)\r
- endif \r
+ endif\r
+ else (yes)\r
endif\r
else (yes)\r
endif\r
stop
else (no)
endif
- else (no)
+ else (no)
endif
if (requested address in allowed pool) then (no)
:return no lease;
while (iterate over pools and subnect)
:pick candidate address;
if (candidate is reserved for another client) then (no)
- if (lease for candidate) then (no)
- :create and return new lease;
- stop
- else (yes)
- if (expired) then (yes)
- :reclaim expired lease;
- :update lease information;
- :callout lease4_select;
- if (callout return) then (SKIP)
- :return no lease;
- stop
- else (CONTINUE)
- :update lease;
- :return reused lease;
- stop
+ if (candidate is used by another thread) then (no)
+ if (lease for candidate) then (no)
+ :create and return new lease;
+ stop
+ else (yes)
+ if (expired) then (yes)
+ :reclaim expired lease;
+ :update lease information;
+ :callout lease4_select;
+ if (callout return) then (SKIP)
+ :return no lease;
+ stop
+ else (CONTINUE)
+ :update lease;
+ :return reused lease;
+ stop
+ endif
+ else (no)
endif
- else (no)
- endif
+ endif
+ else (yes)
endif
else (yes)
endif
-<?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="2113px" preserveAspectRatio="none" style="width:1468px;height:2113px;" version="1.1" viewBox="0 0 1468 2113" width="1468px" zoomAndPan="magnify"><defs><filter height="300%" id="fzgkacd0xpkt1" 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" lengthAdjust="spacingAndGlyphs" textLength="216" x="617" y="17.4023">DHCPv4 subnet selection</text><!--MD5=[73860abe08ab23c9b8e49eb23f18ae46]
-cluster relayed--><rect fill="#FFFFFF" filter="url(#fzgkacd0xpkt1)" height="374.86" style="stroke: #000000; stroke-width: 1.5;" width="445" x="7" y="232.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="201.5" y="247.7344">Relayed</text><!--MD5=[234613e222536af9475ae40e3492b0e6]
-cluster set_address--><rect fill="#FFFFFF" filter="url(#fzgkacd0xpkt1)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="803" x="227" y="672.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="546.5" y="687.5944">Set address for lookup</text><!--MD5=[a59c1d05a8f6fb54290705d41e67acbe]
-cluster interface--><rect fill="#FFFFFF" filter="url(#fzgkacd0xpkt1)" height="488" style="stroke: #000000; stroke-width: 1.5;" width="395" x="945" y="893.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="1060.5" y="909.4544">Try incoming interface</text><!--MD5=[8f3f5adf9176dbd9c419c05d483ab0c6]
-cluster address--><rect fill="#FFFFFF" filter="url(#fzgkacd0xpkt1)" height="294" style="stroke: #000000; stroke-width: 1.5;" width="190" x="745" y="1430.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="797.5" y="1446.4544">Try address</text><!--MD5=[aeb2f621969028d4547d386ac1a1ba6d]
-entity relay_subnet--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="172" y="321.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="206" x="182" y="344.5944">Relay address matches subnet</text><!--MD5=[bf459b32eaaf498e62edf6d622ac5891]
-entity relay_network--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="142" y="434.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="266" x="152" y="457.5944">Relay address matches shared network</text><!--MD5=[076bfff500cab59e856b606fdf63ed5a]
-entity relay_class--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="112" y="547.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="122" y="570.5944">Check client class</text><!--MD5=[467e96f12fdeb7da53b220e72b6eb1fc]
-entity relay_address--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="136" x="251" y="776.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="116" x="261" y="800.4544">Set relay address</text><!--MD5=[a0e4201c97a623c3dfa593fb75aad03b]
-entity client_address--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="553" y="776.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="563" y="800.4544">Set client address</text><!--MD5=[a2d7389029b0dd04029e629f1661a883]
-entity source_address--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="856.5" y="776.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="866.5" y="800.4544">Set source address</text><!--MD5=[8eaa1e77cbee43fcac8de4e493864e04]
-entity interface_subnet--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="997" y="928.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="172" x="1007" y="952.4544">Interface matches subnet</text><!--MD5=[44eac5a65cc5cd7e6cc1fc4b89b09f4d]
-entity interface_network--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1072" y="1041.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="232" x="1082" y="1065.4544">Interface matches shared network</text><!--MD5=[8e51806cb27b2b60db022c6084a961c9]
-entity interface_class--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="1022" y="1154.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="1032" y="1178.4544">Check client class</text><!--MD5=[953883d00ea10db133fca33539954fed]
-entity interface_address--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="961.5" y="1329.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="143" x="971.5" y="1353.4544">Set interface address</text><!--MD5=[132ec46735878e55c0250b14c07769ad]
-entity inRange--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="761" y="1465.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="138" x="771" y="1489.4544">Check subnet prefix</text><!--MD5=[a34f95003b379bc2f5b7f1af307bcb98]
-entity address_class--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="779" y="1672.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="789" y="1696.4544">Check client class</text><!--MD5=[e3476fda087b0512b1cf4e3a66ca5e59]
-entity entry--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="350.5" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="75" x="360.5" y="51.7344">Entry point</text><!--MD5=[a23c6b9dab1f8744947aaee2891e743e]
-entity rai_link_select--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="327.5" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="337.5" y="148.7344">Try RAI link select</text><!--MD5=[6348f6d706001cc5dc6ed638bec44faf]
-entity found--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="708.5" y="1849.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="718.5" y="1873.4544">Found a subnet</text><!--MD5=[7dc9e356e22f2f113ceeb6da807ce9ff]
-entity not_found--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="870.5" y="1849.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="117" x="880.5" y="1873.4544">Found no subnet</text><!--MD5=[4a9142d0fee9ff77eb50a001ac7877e7]
-entity subnet4_select--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="767.5" y="1946.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="155" x="777.5" y="1970.4544">Callout subnet4_select</text><!--MD5=[d0fdc5cb89e99cab1ccfec009231794d]
-entity success--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="584.5" y="2059.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="109" x="594.5" y="2083.4544">Return a subnet</text><!--MD5=[d0255a03afa46a62fe0c456dae837167]
-entity no_subnet--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="139" x="785.5" y="2059.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="119" x="795.5" y="2083.4544">Return no subnet</text><!--MD5=[c92710f32fe9c293a125fb7e80204a05]
-entity drop--><rect fill="#FEFECE" filter="url(#fzgkacd0xpkt1)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="97" x="986.5" y="2059.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="77" x="996.5" y="2083.4544">Drop query</text><!--MD5=[732ffb0ffbc5cdc82abf95e46b9c6dc7]
-link entry to rai_link_select--><path d="M398,64.6192 C398,80.1592 398,102.9792 398,119.8592 " fill="none" id="entry->rai_link_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="398,124.8892,402,115.8892,398,119.8892,394,115.8892,398,124.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[5853887b4749cf1e36855f5979bccba8]
-link rai_link_select to relayed--><path d="M389.65,161.5692 C382.075,177.3142 370.655,201.0567 361.01,221.1092 C359.8044,223.6158 358.6265,226.0647 357.4873,228.4331 C356.9177,229.6173 356.3578,230.7814 355.8089,231.9225 " fill="none" id="rai_link_select->relayed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="355.8089,231.9225,363.3147,225.5458,357.9762,227.4167,356.1053,222.0781,355.8089,231.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="374" y="204.7676">relayed</text><!--MD5=[4e1625724f20f702efa0fa07c823f159]
-link rai_link_select to set_address--><path d="M433.44,161.3692 C466.58,180.1792 511,213.7592 511,258.5592 C511,258.5592 511,258.5592 511,566.0592 C511,614.2292 468.365,647.0467 425.0638,667.9542 C422.3574,669.2609 419.6485,670.5211 416.9472,671.7356 " fill="none" id="rai_link_select->set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="416.9472,671.7356,426.796,671.6933,421.5075,669.6853,423.5155,664.3968,416.9472,671.7356" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="512" y="400.6276">not relayed</text><!--MD5=[289599dfcd7d1f32272e42cc3c26c895]
-link relayed to relay_subnet--><path d="M342.96,260.1192 C341.81,261.6492 317.61,294.2092 300.84,316.7592 " fill="none" id="relayed->relay_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="297.8,320.8392,306.3807,316.0049,300.784,316.8273,299.9616,311.2305,297.8,320.8392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[65c9b407d2d4ddf1b89c397faeac317e]
-link relay_subnet to relay_network--><path d="M285,357.3992 C285,376.6292 285,407.6892 285,428.7192 " fill="none" id="relay_subnet->relay_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="285,433.8392,289,424.8392,285,428.8392,281,424.8392,285,433.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="286" y="400.6276">no match</text><!--MD5=[918f6d4a891df42092f9be64f359f985]
-link relay_subnet to relay_class--><path d="M199.58,357.0892 C156.79,370.3892 108.74,393.6992 83,434.0592 C56.99,474.8592 109.58,518.9992 147.59,543.9192 " fill="none" id="relay_subnet->relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="152.15,546.8592,146.7424,538.6277,147.9441,544.1554,142.4164,545.3571,152.15,546.8592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="84" y="457.1276">match</text><!--MD5=[ec56da742308e5dcfe86ad0421278606]
-link relay_network to set_address--><path d="M288.52,470.3092 C294.12,497.7992 305.4675,553.4892 315.5475,602.9592 C320.5875,627.6942 325.3106,650.8742 328.84,668.1967 C329.0606,669.2794 329.2765,670.3392 329.4876,671.375 " fill="none" id="relay_network->set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="329.4876,671.375,331.6103,661.7576,328.4893,666.4756,323.7713,663.3547,329.4876,671.375" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="319" y="570.1276">no match</text><!--MD5=[a30462b61ddf59585f12c8e1078496e0]
-link relay_network to relay_class--><path d="M268.91,470.3992 C250.69,490.0392 221.02,522.0092 201.5,543.0392 " fill="none" id="relay_network->relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="197.98,546.8392,207.0376,542.9713,201.3844,543.1773,201.1785,537.5242,197.98,546.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="241" y="513.6276">match</text><!--MD5=[44feab40ce9c0df31465bdb13adac7ed]
-link relay_class to found--><path d="M177.97,583.0792 C172.39,608.1692 163,656.6292 163,698.4192 C163,698.4192 163,698.4192 163,1781.4192 C163,1835.4492 543.78,1857.4892 703.15,1864.3492 " fill="none" id="relay_class->found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.26,1864.5692,699.4395,1860.1875,703.2646,1864.3551,699.097,1868.1802,708.26,1864.5692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="164" y="1265.4876">compatible</text><!--MD5=[d5e1893c7bc3c7589901f4b78d6439f0]
-link relay_class to set_address--><path d="M185.6,583.2592 C190.22,601.4992 199.91,630.0992 218,648.0592 C222.9438,652.9667 228.4423,657.4291 234.2844,661.4815 C237.2054,663.5077 240.2123,665.4314 243.2786,667.2571 C244.8117,668.1699 246.3597,669.0582 247.9193,669.9226 C248.6991,670.3547 249.4818,670.7809 250.2669,671.2012 C250.6595,671.4113 251.0527,671.6199 251.4464,671.8271 " fill="none" id="relay_class->set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="251.4464,671.8271,245.3441,664.0965,247.0215,669.499,241.6191,671.1764,251.4464,671.8271" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="219" y="644.6276">not compatible</text><!--MD5=[3f679d64a1cccee12b0e824b1733c0ed]
-link set_address to relay_address--><path d="M334.99,699.9892 C334.66,701.9192 327.44,744.3492 322.81,771.5092 " fill="none" id="set_address->relay_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="321.93,776.7292,327.3899,768.5323,322.7728,771.8008,319.5043,767.1837,321.93,776.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="330" y="743.4876">try the relay addreess</text><!--MD5=[9d0435cdb5bba0d446c223c46240db6f]
-link relay_address to client_address--><path d="M387.22,794.9192 C434.95,794.9192 498.7,794.9192 547.88,794.9192 " fill="none" id="relay_address->client_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="552.9,794.9192,543.9,790.9192,547.9,794.9192,543.9,798.9192,552.9,794.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="405.5" y="788.4876">has no relay address</text><!--MD5=[4192df04ddbb3f1e00a57ee174f51cdb]
-link client_address to source_address--><path d="M693.28,794.9192 C740.3,794.9192 802.28,794.9192 851.17,794.9192 " fill="none" id="client_address->source_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="856.46,794.9192,847.46,790.9192,851.46,794.9192,847.46,798.9192,856.46,794.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="127" x="711.25" y="788.4876">has no client addrss</text><!--MD5=[1cd4e848379fc555ffa76a6d3111f3fb]
-link source_address to interface_subnet--><path d="M949.58,813.1292 C979.61,840.9292 1038.68,895.6192 1070.85,925.4092 " fill="none" id="source_address->interface_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1074.63,928.9092,1070.7255,919.8674,1070.9543,925.5196,1065.3021,925.7484,1074.63,928.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="1017" y="874.4876">no suitable address</text><!--MD5=[a29ca77fdc41863d51ecafa8e32dcb85]
-link relay_address to inRange--><path d="M319,813.0192 C319,840.8592 319,897.7392 319,945.9192 C319,945.9192 319,945.9192 319,1348.9192 C319,1437.9892 608.22,1468.7192 755.69,1478.5992 " fill="none" id="relay_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.87,1478.9392,752.1525,1474.356,755.8808,1478.6104,751.6264,1482.3387,760.87,1478.9392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="1177.9876">has a relay address</text><!--MD5=[bf38c5431748c4414750c7275409615d]
-link client_address to inRange--><path d="M598.14,813.0992 C565.15,838.1492 511,888.0692 511,945.9192 C511,945.9192 511,945.9192 511,1348.9192 C511,1401.7592 658.41,1443.8992 755.88,1465.9892 " fill="none" id="client_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.78,1467.0892,752.8657,1461.2272,755.8997,1466.0015,751.1254,1469.0356,760.78,1467.0892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="125" x="512" y="1177.9876">has a client address</text><!--MD5=[306377b471c1f30003804df3ba3e4280]
-link source_address to inRange--><path d="M856.74,812.9992 C791.87,832.8492 708,872.6692 708,945.9192 C708,945.9192 708,945.9192 708,1348.9192 C708,1401.6392 760.49,1441.1592 799.27,1463.1592 " fill="none" id="source_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="803.93,1465.7492,798.0248,1457.8671,799.5653,1463.3101,794.1222,1464.8506,803.93,1465.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="709" y="1177.9876">has source addess and use unicast</text><!--MD5=[4c5f9760336ab58778079bb174cbf5f0]
-link interface_subnet to not_found--><path d="M1183.41,964.9192 C1267.54,983.3992 1380,1016.1092 1380,1058.9192 C1380,1058.9192 1380,1058.9192 1380,1781.4192 C1380,1855.2692 1138.67,1866.6392 1013.06,1867.5692 " fill="none" id="interface_subnet->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.91,1867.5992,1016.9327,1871.5477,1012.9099,1867.5706,1016.887,1863.5479,1007.91,1867.5992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1381" y="1411.4876">no interface</text><!--MD5=[f6d146b568a537518d52dd0109d2cafd]
-link interface_subnet to interface_class--><path d="M1071.84,965.1092 C1052.58,982.2392 1025.46,1010.4692 1014,1041.9192 C998.88,1083.3992 1037.07,1126.3392 1065.19,1151.0092 " fill="none" id="interface_subnet->interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1069.26,1154.5192,1065.0657,1145.6081,1065.4768,1151.25,1059.835,1151.6612,1069.26,1154.5192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1015" y="1064.9876">match</text><!--MD5=[8c73b6f253b7f8003f1aeec9d3e2c401]
-link interface_subnet to interface_network--><path d="M1109.41,965.2592 C1127.98,984.8992 1158.22,1016.8692 1178.12,1037.8992 " fill="none" id="interface_subnet->interface_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1181.71,1041.6992,1178.417,1032.4172,1178.2685,1038.0721,1172.6136,1037.9236,1181.71,1041.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1152" y="1008.4876">no match</text><!--MD5=[8a490629b42afa0a067bde343f0409be]
-link interface_network to interface_class--><path d="M1181.44,1078.2592 C1162.69,1097.8992 1132.15,1129.8692 1112.07,1150.8992 " fill="none" id="interface_network->interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1108.45,1154.6992,1117.5542,1150.9424,1111.899,1151.0792,1111.7622,1145.424,1108.45,1154.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1152" y="1121.4876">march</text><!--MD5=[e1288d340d0c431aabe10a4c239c74f7]
-link interface_network to not_found--><path d="M1216.94,1078.1492 C1237.06,1098.4392 1266,1134.1792 1266,1171.9192 C1266,1171.9192 1266,1171.9192 1266,1781.4192 C1266,1833.4492 1109.1,1854.4192 1012.67,1862.3992 " fill="none" id="interface_network->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.55,1862.8192,1016.8511,1866.058,1012.5327,1862.404,1016.1867,1858.0856,1007.55,1862.8192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1267" y="1488.9876">no match</text><!--MD5=[9d13a96273b9c1dbfb8a7fbd997b0088]
-link interface_class to found--><path d="M1111.94,1191.2092 C1127.1,1205.7092 1146.84,1227.8592 1156,1251.9192 C1203,1375.3792 1160.06,1417.0492 1168,1548.9192 C1169,1565.6092 1171,1569.6992 1171,1586.4192 C1171,1586.4192 1171,1586.4192 1171,1781.4192 C1171,1782.4592 954.79,1828.2992 840.68,1852.4192 " fill="none" id="interface_class->found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="835.66,1853.4792,845.2955,1855.5181,840.5505,1852.4384,843.6302,1847.6934,835.66,1853.4792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="1169" y="1545.4876">compatible</text><!--MD5=[d4a81a9eb6ae9754c2f91708a00f90ba]
-link interface_class to interface_address--><path d="M1081.97,1190.9492 C1073.39,1206.3492 1061.43,1229.9092 1055,1251.9192 C1047.93,1276.1292 1045.02,1305.0192 1043.83,1324.5292 " fill="none" id="interface_class->interface_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1043.54,1329.7692,1048.0484,1321.0128,1043.8261,1324.7774,1040.0615,1320.5551,1043.54,1329.7692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="1056" y="1265.4876">not compatible</text><!--MD5=[18f0036984a219b8e279d39e6955cbb3]
-link interface_address to inRange--><path d="M961.24,1357.9892 C910.72,1365.4692 852.64,1378.1192 837,1397.9192 C823.19,1415.3892 826.7,1441.7792 831.91,1460.5092 " fill="none" id="interface_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="833.41,1465.5792,834.6953,1455.8146,831.993,1460.7842,827.0233,1458.0818,833.41,1465.5792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="838" y="1411.4876">has an interface address</text><!--MD5=[1be935c2e674a39bb491f742257146af]
-link interface_address to not_found--><path d="M1037.7,1366.0692 C1030.36,1391.3792 1018,1440.3192 1018,1482.9192 C1018,1482.9192 1018,1482.9192 1018,1781.4192 C1018,1809.2692 995.11,1831.9092 973.97,1846.8892 " fill="none" id="interface_address->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="969.77,1849.7792,979.4482,1847.9538,973.8835,1846.9369,974.9005,1841.3722,969.77,1849.7792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1019" y="1639.4876">no interface address</text><!--MD5=[65c872516cd5acbef394f498ee60e6f6]
-link inRange to address_class--><path d="M840.75,1502.0492 C842.38,1539.0492 846.21,1626.4492 848.02,1667.6692 " fill="none" id="inRange->address_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="848.24,1672.6992,851.8498,1663.5358,848.0253,1667.7038,843.8572,1663.8793,848.24,1672.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="845" y="1592.4876">match</text><!--MD5=[c6a81dd9b5c38fb7a31992aeb43efba5]
-link inRange to not_found--><path d="M768.39,1501.9792 C726.98,1516.5792 683,1542.4392 683,1586.4192 C683,1586.4192 683,1586.4192 683,1781.4192 C683,1800.7892 789.82,1830.8092 865.46,1849.6392 " fill="none" id="inRange->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="870.4,1850.8692,862.6221,1844.8274,865.5459,1849.67,860.7033,1852.5938,870.4,1850.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="684" y="1695.9876">no match</text><!--MD5=[6bbdb059bb8431be14feb2edf9179bcc]
-link address_class to found--><path d="M815.7,1708.9392 C765.48,1735.3692 674.36,1786.6192 657,1818.9192 C644.07,1842.9792 671.86,1854.9792 703.35,1860.9692 " fill="none" id="address_class->found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.43,1861.8792,700.2794,1856.3504,703.5088,1860.9948,698.8644,1864.2243,708.43,1861.8792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="708" y="1785.4876">compatible</text><!--MD5=[6fa859304e08ed6b1a2f69b396a973f6]
-link address_class to not_found--><path d="M856.62,1708.9192 C865.47,1728.4292 880.68,1761.2892 895,1788.9192 C904.99,1808.1792 917.16,1829.6292 926.17,1845.1492 " fill="none" id="address_class->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="928.86,1849.7592,927.7843,1839.9693,926.3424,1845.4393,920.8724,1843.9974,928.86,1849.7592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="896" y="1785.4876">not compatible</text><!--MD5=[920af236d2bfe8ac015294b6ec32c751]
-link found to subnet4_select--><path d="M787.22,1886.3392 C801.03,1902.1492 821.43,1925.4892 836.24,1942.4392 " fill="none" id="found->subnet4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="839.87,1946.6092,836.9563,1937.2012,836.5785,1942.8454,830.9343,1942.4676,839.87,1946.6092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[be5a985c5094547d1aa8a3dfda06631d]
-link not_found to subnet4_select--><path d="M923.59,1886.3392 C909.62,1902.1492 888.98,1925.4892 873.99,1942.4392 " fill="none" id="not_found->subnet4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="870.31,1946.6092,879.2712,1942.523,873.6247,1942.8659,873.2818,1937.2194,870.31,1946.6092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[085d72d70044aeb14e8d963046e88b11]
+<?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="2210px" preserveAspectRatio="none" style="width:1468px;height:2210px;" version="1.1" viewBox="0 0 1468 2210" width="1468px" zoomAndPan="magnify"><defs><filter height="300%" id="f6b1wc8ue06t4" 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" lengthAdjust="spacingAndGlyphs" textLength="216" x="617" y="17.4023">DHCPv4 subnet selection</text><!--MD5=[73860abe08ab23c9b8e49eb23f18ae46]
+cluster relayed--><rect fill="#FFFFFF" filter="url(#f6b1wc8ue06t4)" height="374.86" style="stroke: #000000; stroke-width: 1.5;" width="445" x="7" y="329.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="56" x="201.5" y="344.7344">Relayed</text><!--MD5=[234613e222536af9475ae40e3492b0e6]
+cluster set_address--><rect fill="#FFFFFF" filter="url(#f6b1wc8ue06t4)" height="164.86" style="stroke: #000000; stroke-width: 1.5;" width="803" x="227" y="769.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="546.5" y="784.5944">Set address for lookup</text><!--MD5=[a59c1d05a8f6fb54290705d41e67acbe]
+cluster interface--><rect fill="#FFFFFF" filter="url(#f6b1wc8ue06t4)" height="488" style="stroke: #000000; stroke-width: 1.5;" width="395" x="945" y="990.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="164" x="1060.5" y="1006.4544">Try incoming interface</text><!--MD5=[8f3f5adf9176dbd9c419c05d483ab0c6]
+cluster address--><rect fill="#FFFFFF" filter="url(#f6b1wc8ue06t4)" height="294" style="stroke: #000000; stroke-width: 1.5;" width="190" x="745" y="1527.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="85" x="797.5" y="1543.4544">Try address</text><!--MD5=[aeb2f621969028d4547d386ac1a1ba6d]
+entity relay_subnet--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="172" y="418.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="206" x="182" y="441.5944">Relay address matches subnet</text><!--MD5=[bf459b32eaaf498e62edf6d622ac5891]
+entity relay_network--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="142" y="531.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="266" x="152" y="554.5944">Relay address matches shared network</text><!--MD5=[076bfff500cab59e856b606fdf63ed5a]
+entity relay_class--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="112" y="644.0592"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="122" y="667.5944">Check client class</text><!--MD5=[467e96f12fdeb7da53b220e72b6eb1fc]
+entity relay_address--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="136" x="251" y="873.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="116" x="261" y="897.4544">Set relay address</text><!--MD5=[a0e4201c97a623c3dfa593fb75aad03b]
+entity client_address--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="553" y="873.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="563" y="897.4544">Set client address</text><!--MD5=[a2d7389029b0dd04029e629f1661a883]
+entity source_address--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="856.5" y="873.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="866.5" y="897.4544">Set source address</text><!--MD5=[8eaa1e77cbee43fcac8de4e493864e04]
+entity interface_subnet--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="997" y="1025.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="172" x="1007" y="1049.4544">Interface matches subnet</text><!--MD5=[44eac5a65cc5cd7e6cc1fc4b89b09f4d]
+entity interface_network--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1072" y="1138.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="232" x="1082" y="1162.4544">Interface matches shared network</text><!--MD5=[8e51806cb27b2b60db022c6084a961c9]
+entity interface_class--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="1022" y="1251.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="1032" y="1275.4544">Check client class</text><!--MD5=[953883d00ea10db133fca33539954fed]
+entity interface_address--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="961.5" y="1426.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="143" x="971.5" y="1450.4544">Set interface address</text><!--MD5=[132ec46735878e55c0250b14c07769ad]
+entity inRange--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="761" y="1562.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="138" x="771" y="1586.4544">Check subnet prefix</text><!--MD5=[a34f95003b379bc2f5b7f1af307bcb98]
+entity address_class--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="779" y="1769.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="120" x="789" y="1793.4544">Check client class</text><!--MD5=[e3476fda087b0512b1cf4e3a66ca5e59]
+entity entry--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="350.5" y="28.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="75" x="360.5" y="51.7344">Entry point</text><!--MD5=[a23c6b9dab1f8744947aaee2891e743e]
+entity rai_link_select--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="327.5" y="125.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="337.5" y="148.7344">Try RAI link select</text><!--MD5=[6d8910fd8533ab76ffd986c0d960248c]
+entity subnet_select--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="294.5" y="222.1992"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="187" x="304.5" y="245.7344">Try subnet selection option</text><!--MD5=[6348f6d706001cc5dc6ed638bec44faf]
+entity found--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="708.5" y="1946.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="107" x="718.5" y="1970.4544">Found a subnet</text><!--MD5=[7dc9e356e22f2f113ceeb6da807ce9ff]
+entity not_found--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="870.5" y="1946.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="117" x="880.5" y="1970.4544">Found no subnet</text><!--MD5=[4a9142d0fee9ff77eb50a001ac7877e7]
+entity subnet4_select--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="175" x="767.5" y="2043.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="155" x="777.5" y="2067.4544">Callout subnet4_select</text><!--MD5=[d0fdc5cb89e99cab1ccfec009231794d]
+entity success--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="584.5" y="2156.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="109" x="594.5" y="2180.4544">Return a subnet</text><!--MD5=[d0255a03afa46a62fe0c456dae837167]
+entity no_subnet--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="139" x="785.5" y="2156.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="119" x="795.5" y="2180.4544">Return no subnet</text><!--MD5=[c92710f32fe9c293a125fb7e80204a05]
+entity drop--><rect fill="#FEFECE" filter="url(#f6b1wc8ue06t4)" height="36.4883" style="stroke: #A80036; stroke-width: 1.5;" width="97" x="986.5" y="2156.9192"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="77" x="996.5" y="2180.4544">Drop query</text><!--MD5=[732ffb0ffbc5cdc82abf95e46b9c6dc7]
+link entry to rai_link_select--><path d="M398,64.6192 C398,80.1592 398,102.9792 398,119.8592 " fill="none" id="entry->rai_link_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="398,124.8892,402,115.8892,398,119.8892,394,115.8892,398,124.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f0b6d7b08c058a6efc1e3a3886382c22]
+link rai_link_select to subnet_select--><path d="M398,161.6192 C398,177.1592 398,199.9792 398,216.8592 " fill="none" id="rai_link_select->subnet_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="398,221.8892,402,212.8892,398,216.8892,394,212.8892,398,221.8892" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2989df9457f995d9ec76378f9e46e3a6]
+link subnet_select to relayed--><path d="M389.65,258.5692 C382.075,274.3142 370.655,298.0567 361.01,318.1092 C359.8044,320.6158 358.6265,323.0647 357.4873,325.4331 C356.9177,326.6173 356.3578,327.7814 355.8089,328.9225 " fill="none" id="subnet_select->relayed" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="355.8089,328.9225,363.3147,322.5458,357.9762,324.4167,356.1053,319.0781,355.8089,328.9225" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="45" x="374" y="301.7676">relayed</text><!--MD5=[19a01d6111b1c934e32249a327a2afa6]
+link subnet_select to set_address--><path d="M433.44,258.3692 C466.58,277.1792 511,310.7592 511,355.5592 C511,355.5592 511,355.5592 511,663.0592 C511,711.2292 468.365,744.0467 425.0638,764.9542 C422.3574,766.2609 419.6485,767.5211 416.9472,768.7356 " fill="none" id="subnet_select->set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="416.9472,768.7356,426.796,768.6933,421.5075,766.6853,423.5155,761.3968,416.9472,768.7356" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="512" y="497.6276">not relayed</text><!--MD5=[289599dfcd7d1f32272e42cc3c26c895]
+link relayed to relay_subnet--><path d="M342.96,357.1192 C341.81,358.6492 317.61,391.2092 300.84,413.7592 " fill="none" id="relayed->relay_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="297.8,417.8392,306.3807,413.0049,300.784,413.8273,299.9616,408.2305,297.8,417.8392" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[65c9b407d2d4ddf1b89c397faeac317e]
+link relay_subnet to relay_network--><path d="M285,454.3992 C285,473.6292 285,504.6892 285,525.7192 " fill="none" id="relay_subnet->relay_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="285,530.8392,289,521.8392,285,525.8392,281,521.8392,285,530.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="286" y="497.6276">no match</text><!--MD5=[918f6d4a891df42092f9be64f359f985]
+link relay_subnet to relay_class--><path d="M199.58,454.0892 C156.79,467.3892 108.74,490.6992 83,531.0592 C56.99,571.8592 109.58,615.9992 147.59,640.9192 " fill="none" id="relay_subnet->relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="152.15,643.8592,146.7424,635.6277,147.9441,641.1554,142.4164,642.3571,152.15,643.8592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="84" y="554.1276">match</text><!--MD5=[ec56da742308e5dcfe86ad0421278606]
+link relay_network to set_address--><path d="M288.52,567.3092 C294.12,594.7992 305.4675,650.4892 315.5475,699.9592 C320.5875,724.6942 325.3106,747.8742 328.84,765.1967 C329.0606,766.2794 329.2765,767.3392 329.4876,768.375 " fill="none" id="relay_network->set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="329.4876,768.375,331.6103,758.7576,328.4893,763.4756,323.7713,760.3547,329.4876,768.375" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="319" y="667.1276">no match</text><!--MD5=[a30462b61ddf59585f12c8e1078496e0]
+link relay_network to relay_class--><path d="M268.91,567.3992 C250.69,587.0392 221.02,619.0092 201.5,640.0392 " fill="none" id="relay_network->relay_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="197.98,643.8392,207.0376,639.9713,201.3844,640.1773,201.1785,634.5242,197.98,643.8392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="241" y="610.6276">match</text><!--MD5=[44feab40ce9c0df31465bdb13adac7ed]
+link relay_class to found--><path d="M177.97,680.0792 C172.39,705.1692 163,753.6292 163,795.4192 C163,795.4192 163,795.4192 163,1878.4192 C163,1932.4492 543.78,1954.4892 703.15,1961.3492 " fill="none" id="relay_class->found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.26,1961.5692,699.4395,1957.1875,703.2646,1961.3551,699.097,1965.1802,708.26,1961.5692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="164" y="1362.4876">compatible</text><!--MD5=[d5e1893c7bc3c7589901f4b78d6439f0]
+link relay_class to set_address--><path d="M185.6,680.2592 C190.22,698.4992 199.91,727.0992 218,745.0592 C222.9438,749.9667 228.4423,754.4291 234.2844,758.4815 C237.2054,760.5077 240.2123,762.4314 243.2786,764.2571 C244.8117,765.1699 246.3597,766.0582 247.9193,766.9226 C248.6991,767.3547 249.4818,767.7809 250.2669,768.2012 C250.6595,768.4113 251.0527,768.6199 251.4464,768.8271 " fill="none" id="relay_class->set_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="251.4464,768.8271,245.3441,761.0965,247.0215,766.499,241.6191,768.1764,251.4464,768.8271" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="219" y="741.6276">not compatible</text><!--MD5=[3f679d64a1cccee12b0e824b1733c0ed]
+link set_address to relay_address--><path d="M334.99,796.9892 C334.66,798.9192 327.44,841.3492 322.81,868.5092 " fill="none" id="set_address->relay_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="321.93,873.7292,327.3899,865.5323,322.7728,868.8008,319.5043,864.1837,321.93,873.7292" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="330" y="840.4876">try the relay addreess</text><!--MD5=[9d0435cdb5bba0d446c223c46240db6f]
+link relay_address to client_address--><path d="M387.22,891.9192 C434.95,891.9192 498.7,891.9192 547.88,891.9192 " fill="none" id="relay_address->client_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="552.9,891.9192,543.9,887.9192,547.9,891.9192,543.9,895.9192,552.9,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="405.5" y="885.4876">has no relay address</text><!--MD5=[4192df04ddbb3f1e00a57ee174f51cdb]
+link client_address to source_address--><path d="M693.28,891.9192 C740.3,891.9192 802.28,891.9192 851.17,891.9192 " fill="none" id="client_address->source_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="856.46,891.9192,847.46,887.9192,851.46,891.9192,847.46,895.9192,856.46,891.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="127" x="711.25" y="885.4876">has no client addrss</text><!--MD5=[1cd4e848379fc555ffa76a6d3111f3fb]
+link source_address to interface_subnet--><path d="M949.58,910.1292 C979.61,937.9292 1038.68,992.6192 1070.85,1022.4092 " fill="none" id="source_address->interface_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1074.63,1025.9092,1070.7255,1016.8674,1070.9543,1022.5196,1065.3021,1022.7484,1074.63,1025.9092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="1017" y="971.4876">no suitable address</text><!--MD5=[a29ca77fdc41863d51ecafa8e32dcb85]
+link relay_address to inRange--><path d="M319,910.0192 C319,937.8592 319,994.7392 319,1042.9192 C319,1042.9192 319,1042.9192 319,1445.9192 C319,1534.9892 608.22,1565.7192 755.69,1575.5992 " fill="none" id="relay_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.87,1575.9392,752.1525,1571.356,755.8808,1575.6104,751.6264,1579.3387,760.87,1575.9392" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="320" y="1274.9876">has a relay address</text><!--MD5=[bf38c5431748c4414750c7275409615d]
+link client_address to inRange--><path d="M598.14,910.0992 C565.15,935.1492 511,985.0692 511,1042.9192 C511,1042.9192 511,1042.9192 511,1445.9192 C511,1498.7592 658.41,1540.8992 755.88,1562.9892 " fill="none" id="client_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="760.78,1564.0892,752.8657,1558.2272,755.8997,1563.0015,751.1254,1566.0356,760.78,1564.0892" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="125" x="512" y="1274.9876">has a client address</text><!--MD5=[306377b471c1f30003804df3ba3e4280]
+link source_address to inRange--><path d="M856.74,909.9992 C791.87,929.8492 708,969.6692 708,1042.9192 C708,1042.9192 708,1042.9192 708,1445.9192 C708,1498.6392 760.49,1538.1592 799.27,1560.1592 " fill="none" id="source_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="803.93,1562.7492,798.0248,1554.8671,799.5653,1560.3101,794.1222,1561.8506,803.93,1562.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="709" y="1274.9876">has source addess and use unicast</text><!--MD5=[4c5f9760336ab58778079bb174cbf5f0]
+link interface_subnet to not_found--><path d="M1183.41,1061.9192 C1267.54,1080.3992 1380,1113.1092 1380,1155.9192 C1380,1155.9192 1380,1155.9192 1380,1878.4192 C1380,1952.2692 1138.67,1963.6392 1013.06,1964.5692 " fill="none" id="interface_subnet->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.91,1964.5992,1016.9327,1968.5477,1012.9099,1964.5706,1016.887,1960.5479,1007.91,1964.5992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="1381" y="1508.4876">no interface</text><!--MD5=[f6d146b568a537518d52dd0109d2cafd]
+link interface_subnet to interface_class--><path d="M1071.84,1062.1092 C1052.58,1079.2392 1025.46,1107.4692 1014,1138.9192 C998.88,1180.3992 1037.07,1223.3392 1065.19,1248.0092 " fill="none" id="interface_subnet->interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1069.26,1251.5192,1065.0657,1242.6081,1065.4768,1248.25,1059.835,1248.6612,1069.26,1251.5192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1015" y="1161.9876">match</text><!--MD5=[8c73b6f253b7f8003f1aeec9d3e2c401]
+link interface_subnet to interface_network--><path d="M1109.41,1062.2592 C1127.98,1081.8992 1158.22,1113.8692 1178.12,1134.8992 " fill="none" id="interface_subnet->interface_network" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1181.71,1138.6992,1178.417,1129.4172,1178.2685,1135.0721,1172.6136,1134.9236,1181.71,1138.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1152" y="1105.4876">no match</text><!--MD5=[8a490629b42afa0a067bde343f0409be]
+link interface_network to interface_class--><path d="M1181.44,1175.2592 C1162.69,1194.8992 1132.15,1226.8692 1112.07,1247.8992 " fill="none" id="interface_network->interface_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1108.45,1251.6992,1117.5542,1247.9424,1111.899,1248.0792,1111.7622,1242.424,1108.45,1251.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="1152" y="1218.4876">march</text><!--MD5=[e1288d340d0c431aabe10a4c239c74f7]
+link interface_network to not_found--><path d="M1216.94,1175.1492 C1237.06,1195.4392 1266,1231.1792 1266,1268.9192 C1266,1268.9192 1266,1268.9192 1266,1878.4192 C1266,1930.4492 1109.1,1951.4192 1012.67,1959.3992 " fill="none" id="interface_network->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1007.55,1959.8192,1016.8511,1963.058,1012.5327,1959.404,1016.1867,1955.0856,1007.55,1959.8192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="1267" y="1585.9876">no match</text><!--MD5=[9d13a96273b9c1dbfb8a7fbd997b0088]
+link interface_class to found--><path d="M1111.94,1288.2092 C1127.1,1302.7092 1146.84,1324.8592 1156,1348.9192 C1203,1472.3792 1160.06,1514.0492 1168,1645.9192 C1169,1662.6092 1171,1666.6992 1171,1683.4192 C1171,1683.4192 1171,1683.4192 1171,1878.4192 C1171,1879.4592 954.79,1925.2992 840.68,1949.4192 " fill="none" id="interface_class->found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="835.66,1950.4792,845.2955,1952.5181,840.5505,1949.4384,843.6302,1944.6934,835.66,1950.4792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="1169" y="1642.4876">compatible</text><!--MD5=[d4a81a9eb6ae9754c2f91708a00f90ba]
+link interface_class to interface_address--><path d="M1081.97,1287.9492 C1073.39,1303.3492 1061.43,1326.9092 1055,1348.9192 C1047.93,1373.1292 1045.02,1402.0192 1043.83,1421.5292 " fill="none" id="interface_class->interface_address" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1043.54,1426.7692,1048.0484,1418.0128,1043.8261,1421.7774,1040.0615,1417.5551,1043.54,1426.7692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="1056" y="1362.4876">not compatible</text><!--MD5=[18f0036984a219b8e279d39e6955cbb3]
+link interface_address to inRange--><path d="M961.24,1454.9892 C910.72,1462.4692 852.64,1475.1192 837,1494.9192 C823.19,1512.3892 826.7,1538.7792 831.91,1557.5092 " fill="none" id="interface_address->inRange" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="833.41,1562.5792,834.6953,1552.8146,831.993,1557.7842,827.0233,1555.0818,833.41,1562.5792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="838" y="1508.4876">has an interface address</text><!--MD5=[1be935c2e674a39bb491f742257146af]
+link interface_address to not_found--><path d="M1037.7,1463.0692 C1030.36,1488.3792 1018,1537.3192 1018,1579.9192 C1018,1579.9192 1018,1579.9192 1018,1878.4192 C1018,1906.2692 995.11,1928.9092 973.97,1943.8892 " fill="none" id="interface_address->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="969.77,1946.7792,979.4482,1944.9538,973.8835,1943.9369,974.9005,1938.3722,969.77,1946.7792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="1019" y="1736.4876">no interface address</text><!--MD5=[65c872516cd5acbef394f498ee60e6f6]
+link inRange to address_class--><path d="M840.75,1599.0492 C842.38,1636.0492 846.21,1723.4492 848.02,1764.6692 " fill="none" id="inRange->address_class" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="848.24,1769.6992,851.8498,1760.5358,848.0253,1764.7038,843.8572,1760.8793,848.24,1769.6992" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="845" y="1689.4876">match</text><!--MD5=[c6a81dd9b5c38fb7a31992aeb43efba5]
+link inRange to not_found--><path d="M768.39,1598.9792 C726.98,1613.5792 683,1639.4392 683,1683.4192 C683,1683.4192 683,1683.4192 683,1878.4192 C683,1897.7892 789.82,1927.8092 865.46,1946.6392 " fill="none" id="inRange->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="870.4,1947.8692,862.6221,1941.8274,865.5459,1946.67,860.7033,1949.5938,870.4,1947.8692" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="59" x="684" y="1792.9876">no match</text><!--MD5=[6bbdb059bb8431be14feb2edf9179bcc]
+link address_class to found--><path d="M815.7,1805.9392 C765.48,1832.3692 674.36,1883.6192 657,1915.9192 C644.07,1939.9792 671.86,1951.9792 703.35,1957.9692 " fill="none" id="address_class->found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="708.43,1958.8792,700.2794,1953.3504,703.5088,1957.9948,698.8644,1961.2243,708.43,1958.8792" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="70" x="708" y="1882.4876">compatible</text><!--MD5=[6fa859304e08ed6b1a2f69b396a973f6]
+link address_class to not_found--><path d="M856.62,1805.9192 C865.47,1825.4292 880.68,1858.2892 895,1885.9192 C904.99,1905.1792 917.16,1926.6292 926.17,1942.1492 " fill="none" id="address_class->not_found" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="928.86,1946.7592,927.7843,1936.9693,926.3424,1942.4393,920.8724,1940.9974,928.86,1946.7592" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="95" x="896" y="1882.4876">not compatible</text><!--MD5=[920af236d2bfe8ac015294b6ec32c751]
+link found to subnet4_select--><path d="M787.22,1983.3392 C801.03,1999.1492 821.43,2022.4892 836.24,2039.4392 " fill="none" id="found->subnet4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="839.87,2043.6092,836.9563,2034.2012,836.5785,2039.8454,830.9343,2039.4676,839.87,2043.6092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[be5a985c5094547d1aa8a3dfda06631d]
+link not_found to subnet4_select--><path d="M923.59,1983.3392 C909.62,1999.1492 888.98,2022.4892 873.99,2039.4392 " fill="none" id="not_found->subnet4_select" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="870.31,2043.6092,879.2712,2039.523,873.6247,2039.8659,873.2818,2034.2194,870.31,2043.6092" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[085d72d70044aeb14e8d963046e88b11]
link found to not_found--><!--MD5=[d0da1e00427a0ca7837196c7dddb3af4]
-link subnet4_select to success--><path d="M767.05,1973.2692 C735.7,1979.7092 702,1991.4992 677,2012.9192 C664.53,2023.5992 657.42,2040.8792 653.49,2054.7992 " fill="none" id="subnet4_select->success" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="652.18,2059.7492,658.3343,2052.0599,653.4497,2054.9131,650.5965,2050.0285,652.18,2059.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="678" y="2026.4876">CONTINUE and subnet set</text><!--MD5=[48d8edc0219dd4d7c3847b4159c280ef]
-link subnet4_select to no_subnet--><path d="M853.62,1983.3192 C852.99,1992.1692 852.31,2003.1092 852,2012.9192 C851.56,2026.8292 852.26,2042.4292 853.1,2054.7492 " fill="none" id="subnet4_select->no_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="853.47,2059.8092,856.8167,2050.5464,853.1127,2054.822,848.8372,2051.118,853.47,2059.8092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="138" x="853" y="2026.4876">SKIP or subnet not set</text><!--MD5=[f590b573e48b5dfdcd1774729941f83a]
-link subnet4_select to drop--><path d="M938.2,1983.0192 C958.54,1989.9392 979.25,1999.5792 996,2012.9192 C1009.78,2023.8892 1019.89,2041.1592 1026.36,2054.9892 " fill="none" id="subnet4_select->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1028.58,2059.9192,1028.5229,2050.0705,1026.5228,2055.362,1021.2313,2053.362,1028.58,2059.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1012" y="2026.4876">DROP</text><!--MD5=[8a6ededd5ab0492adf89ee9e73320547]
+link subnet4_select to success--><path d="M767.05,2070.2692 C735.7,2076.7092 702,2088.4992 677,2109.9192 C664.53,2120.5992 657.42,2137.8792 653.49,2151.7992 " fill="none" id="subnet4_select->success" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="652.18,2156.7492,658.3343,2149.0599,653.4497,2151.9131,650.5965,2147.0285,652.18,2156.7492" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="678" y="2123.4876">CONTINUE and subnet set</text><!--MD5=[48d8edc0219dd4d7c3847b4159c280ef]
+link subnet4_select to no_subnet--><path d="M853.62,2080.3192 C852.99,2089.1692 852.31,2100.1092 852,2109.9192 C851.56,2123.8292 852.26,2139.4292 853.1,2151.7492 " fill="none" id="subnet4_select->no_subnet" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="853.47,2156.8092,856.8167,2147.5464,853.1127,2151.822,848.8372,2148.118,853.47,2156.8092" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="138" x="853" y="2123.4876">SKIP or subnet not set</text><!--MD5=[f590b573e48b5dfdcd1774729941f83a]
+link subnet4_select to drop--><path d="M938.2,2080.0192 C958.54,2086.9392 979.25,2096.5792 996,2109.9192 C1009.78,2120.8892 1019.89,2138.1592 1026.36,2151.9892 " fill="none" id="subnet4_select->drop" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1028.58,2156.9192,1028.5229,2147.0705,1026.5228,2152.362,1021.2313,2150.362,1028.58,2156.9192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="35" x="1012" y="2123.4876">DROP</text><!--MD5=[4188dcd48161b6aa5dad3b94d8f84b5e]
@startuml\r
\r
title DHCPv4 subnet selection\r
\r
agent "Try RAI link select" as rai_link_select\r
\r
+agent "Try subnet selection option" as subnet_select\r
+\r
rectangle "Relayed" as relayed {\r
agent "Relay address matches subnet" as relay_subnet\r
agent "Relay address matches shared network" as relay_network\r
agent "Drop query" as drop\r
\r
entry - -> rai_link_select\r
-rai_link_select - -> relayed : relayed\r
-rai_link_select - -> set_address : not relayed\r
+rai_link_select - -> subnet_select\r
+subnet_select - -> relayed : relayed\r
+subnet_select - -> set_address : not relayed\r
relayed - -> relay_subnet\r
relay_subnet - -> relay_network : no match\r
relay_subnet - -> relay_class : match\r
agent "Try RAI link select" as rai_link_select
+agent "Try subnet selection option" as subnet_select
+
rectangle "Relayed" as relayed {
agent "Relay address matches subnet" as relay_subnet
agent "Relay address matches shared network" as relay_network
agent "Drop query" as drop
entry --> rai_link_select
-rai_link_select --> relayed : relayed
-rai_link_select --> set_address : not relayed
+rai_link_select --> subnet_select
+subnet_select --> relayed : relayed
+subnet_select --> set_address : not relayed
relayed --> relay_subnet
relay_subnet --> relay_network : no match
relay_subnet --> relay_class : match