UniTO/anno3/vpc/consegne/3/unused/dekker_WN.PNPRO

545 lines
37 KiB
Text
Raw Normal View History

2020-05-21 13:57:43 +02:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- This project file has been saved by the New GreatSPN Editor, v.100 --><project name="New project" version="121">
<gspn name="CPN" show-fluid-cmd="false" show-timed-cmd="false" view-rates="false">
<nodes>
<place domain="Process" label-x="0.5" label-y="2.0" marking="&lt;P&gt;+&lt;Q&gt;" name="local" x="19.0" y="8.0"/>
<place domain="Process" label-x="-3.5" label-y="0.0" name="resetFalse" x="19.0" y="17.0"/>
<place domain="Process" name="changeTurn" x="19.0" y="35.0"/>
<place domain="Process" name="await" x="19.0" y="26.0"/>
<place domain="Process" label-x="0.5" name="setFalse" x="19.0" y="48.0"/>
<place domain="Process" label-x="3.0" label-y="-1.5" name="setTrue" x="35.0" y="8.0"/>
<place domain="Process" name="while" x="35.0" y="17.0"/>
<place domain="Process" name="critical" x="35.0" y="35.0"/>
<place domain="Process" name="resetTrue" x="35.0" y="26.0"/>
<transition name="T0" nservers-x="0.5" type="EXP" x="27.55" y="8.0"/>
<transition guard="(t == t2 &amp;&amp; p == P) || (p == Q &amp;&amp; t == t1)" guard-x="-7.0" guard-y="-2.0" name="T1" nservers-x="0.5" type="EXP" x="27.55" y="17.0"/>
<transition guard="(p == P &amp;&amp; t == t1) || (p == Q &amp;&amp; t ==t2)" guard-x="-8.0" guard-y="4.5" name="T2" nservers-x="0.5" type="EXP" x="27.55" y="26.0"/>
<transition name="T3" nservers-x="0.5" type="EXP" x="27.55" y="35.0"/>
<transition label-x="-2.5" label-y="-0.5" name="Treset" nservers-x="0.5" type="EXP" x="12.55" y="48.0"/>
<transition name="T6" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="19.55" y="22.0"/>
<transition name="T8" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="10.0"/>
<transition name="T9" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="22.0"/>
<place domain="Turn" marking="&lt;t1&gt;" name="turn" x="6.0" y="12.0"/>
<color-class definition="{isTrue, isFalse}" name="Bool" x="62.3125" y="7.0"/>
<color-class definition="{P, Q}" name="Process" x="62.125" y="9.0"/>
<color-class definition="Process*Bool" name="D" x="62.125" y="11.0"/>
<color-class definition="{t1,t2}" name="Turn" x="62.0625" y="5.0"/>
<place domain="D" marking="&lt;P, isFalse&gt; + &lt;Q,isFalse&gt;" name="wait" x="3.0" y="26.0"/>
<color-var domain="Process" name="p" x="53.1875" y="8.0"/>
<color-var domain="Turn" name="t" x="53.375" y="11.0"/>
<color-var domain="Bool" name="b" x="53.25" y="9.0"/>
<transition guard="False" name="T7" nservers-x="0.5" type="EXP" x="19.55" y="3.0"/>
<transition guard="p==Q" guard-x="2.0" guard-y="-2.0" name="T15" nservers-x="0.5" type="EXP" x="64.55" y="17.0"/>
<transition guard="p==P" guard-x="-2.0" guard-y="-1.5" name="T14" nservers-x="0.5" rotation="3.141592653589793" type="EXP" x="55.55" y="17.0"/>
<transition guard="p == P" name="T4" nservers-x="0.5" rotation="1.5707963267948966" type="EXP" x="33.55" y="43.0"/>
<transition guard="p == Q" name="T5" nservers-x="0.5" rotation="1.5707963267948966" type="EXP" x="22.55" y="43.0"/>
<place domain="Process" name="P0" x="43.0" y="14.0"/>
<transition guard="b == isFalse" guard-y="-1.0" label-x="-1.5" label-y="0.5" name="T10" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="15.0"/>
<transition guard="b == isTrue" guard-x="3.0" guard-y="-2.0" label-x="1.5" label-y="1.5" name="T11" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="43.55" y="26.0"/>
</nodes>
<edges>
<arc head="T0" kind="INPUT" mult="&lt;p&gt;" tail="local">
<point x="24.0" y="9.0"/>
</arc>
<arc head="setTrue" kind="OUTPUT" mult="&lt;p&gt;" tail="T0"/>
<arc head="T8" kind="INPUT" mult="&lt;p&gt;" tail="setTrue"/>
<arc head="T1" kind="INPUT" mult="&lt;p&gt;" tail="while"/>
<arc head="resetFalse" kind="OUTPUT" mult="&lt;p&gt;" tail="T1"/>
<arc head="T6" kind="INPUT" mult="&lt;p&gt;" tail="resetFalse"/>
<arc head="await" kind="OUTPUT" mult="&lt;p&gt;" tail="T6"/>
<arc head="T2" kind="INPUT" mult="&lt;p&gt;" tail="await"/>
<arc head="resetTrue" kind="OUTPUT" mult="&lt;p&gt;" tail="T2"/>
<arc head="T9" kind="INPUT" mult="&lt;p&gt;" tail="resetTrue"/>
<arc head="while" kind="OUTPUT" mult="&lt;p&gt;" tail="T9"/>
<arc head="T3" kind="INPUT" mult="&lt;p&gt;" tail="critical"/>
<arc head="changeTurn" kind="OUTPUT" mult="&lt;p&gt;" tail="T3"/>
<arc head="Treset" kind="INPUT" mult="&lt;p&gt;" tail="setFalse"/>
<arc broken="true" head="local" kind="OUTPUT" mult="&lt;p&gt;" mult-x="-0.9998973355823111" mult-y="1.5" tail="Treset">
<point x="12.5" y="12.0"/>
</arc>
<arc broken="true" head="T1" kind="INPUT" mult="&lt;t&gt;" tail="turn">
<point x="28.0" y="13.5"/>
</arc>
<arc broken="true" head="turn" kind="OUTPUT" mult="&lt;t&gt;" tail="T1">
<point x="28.0" y="21.5"/>
<point x="7.5" y="21.0"/>
</arc>
<arc broken="true" head="T2" kind="INPUT" mult="&lt;t&gt;" tail="turn">
<point x="3.5" y="13.5"/>
<point x="2.0" y="13.5"/>
<point x="2.0" y="34.0"/>
<point x="28.0" y="32.5"/>
</arc>
<arc broken="true" head="turn" kind="OUTPUT" mult="&lt;t&gt;" tail="T2">
<point x="28.0" y="23.0"/>
<point x="8.0" y="24.0"/>
<point x="14.0" y="9.5"/>
<point x="7.5" y="8.5"/>
</arc>
<arc broken="true" head="T6" kind="INPUT" mult="&lt;p, isTrue&gt;" tail="wait">
<point x="11.0" y="22.5"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;p, isFalse&gt;" tail="T6">
<point x="11.5" y="28.0"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;p, isTrue&gt;" tail="T9">
<point x="46.5" y="23.0"/>
<point x="48.5" y="14.5"/>
<point x="4.5" y="21.0"/>
</arc>
<arc broken="true" head="T9" kind="INPUT" mult="&lt;p, isFalse&gt;" tail="wait">
<point x="6.0" y="35.0"/>
<point x="31.5" y="31.0"/>
<point x="31.5" y="23.0"/>
</arc>
<arc broken="true" head="T8" kind="INPUT" mult="&lt;p, isFalse&gt;" tail="wait">
<point x="4.5" y="19.0"/>
<point x="30.5" y="14.0"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;p, isTrue&gt;" tail="T8">
<point x="46.5" y="10.5"/>
<point x="52.0" y="10.5"/>
<point x="53.0" y="41.0"/>
<point x="4.5" y="38.0"/>
</arc>
<arc broken="true" head="Treset" kind="INPUT" mult="&lt;p, isTrue&gt;" tail="wait"/>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;p, isFalse&gt;" tail="Treset">
<point x="11.5" y="53.0"/>
<point x="8.0" y="53.5"/>
</arc>
<arc head="T7" kind="INPUT" mult="&lt;p&gt;" tail="local">
<point x="18.0" y="6.0"/>
</arc>
<arc head="local" kind="OUTPUT" mult="&lt;p&gt;" tail="T7">
<point x="22.0" y="6.5"/>
</arc>
<arc broken="true" head="T15" kind="INPUT" mult="&lt;Q&gt;" tail="while">
<point x="75.0" y="18.0"/>
<point x="75.0" y="27.0"/>
</arc>
<arc broken="true" head="T14" kind="INPUT" mult="&lt;P&gt;" mult-k="1.1125976562500002" tail="while">
<point x="53.0" y="18.0"/>
<point x="53.0" y="32.0"/>
<point x="53.0" y="41.0"/>
</arc>
<arc head="critical" kind="OUTPUT" mult="&lt;p&gt;" mult-x="0.2249755859375" mult-y="2.0" tail="T15">
<point x="65.5" y="36.0"/>
</arc>
<arc broken="true" head="T14" kind="INPUT" mult="&lt;Q, isFalse&gt;" mult-k="0.7805664062500001" mult-x="2.026855033382727" mult-y="-1.1574710451992871" tail="wait">
<point x="52.5" y="60.0"/>
</arc>
<arc broken="true" head="T15" kind="INPUT" mult="&lt;P,isFalse&gt;" mult-k="0.8616210937500001" mult-x="-2.101865912139509" mult-y="-0.7056767833189568" tail="wait">
<point x="70.0" y="54.5"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;Q,isFalse&gt;" tail="T14">
<point x="38.5" y="64.5"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;P,isFalse&gt;" tail="T15">
<point x="75.5" y="54.5"/>
</arc>
<arc head="critical" kind="OUTPUT" mult="&lt;p&gt;" tail="T14">
<point x="52.5" y="18.0"/>
<point x="52.5" y="36.0"/>
</arc>
<arc head="T5" kind="INPUT" mult="&lt;p&gt;" tail="changeTurn"/>
<arc head="T4" kind="INPUT" mult="&lt;p&gt;" tail="changeTurn"/>
<arc head="setFalse" kind="OUTPUT" mult="&lt;p&gt;" tail="T5"/>
<arc head="setFalse" kind="OUTPUT" mult="&lt;p&gt;" tail="T4"/>
<arc broken="true" head="T5" kind="INPUT" mult="&lt;t&gt;" tail="turn">
<point x="7.0" y="44.0"/>
</arc>
<arc broken="true" head="T4" kind="INPUT" mult="&lt;t&gt;" tail="turn">
<point x="7.0" y="44.0"/>
</arc>
<arc broken="true" head="turn" kind="OUTPUT" mult="&lt;t1&gt;" tail="T5">
<point x="27.0" y="44.0"/>
<point x="29.0" y="52.5"/>
<point x="25.5" y="59.0"/>
<point x="8.0" y="57.5"/>
<point x="9.5" y="45.0"/>
<point x="9.5" y="44.5"/>
</arc>
<arc broken="true" head="turn" kind="OUTPUT" mult="&lt;t2&gt;" mult-x="1.3147959104502354" mult-y="2.009056037340031" tail="T4">
<point x="42.0" y="49.0"/>
<point x="38.0" y="56.5"/>
<point x="27.0" y="56.5"/>
<point x="21.5" y="60.5"/>
<point x="9.0" y="60.0"/>
<point x="7.5" y="42.0"/>
<point x="9.0" y="34.5"/>
</arc>
<arc head="P0" kind="OUTPUT" mult="&lt;p&gt;" tail="T8"/>
<arc head="T10" kind="INPUT" mult="&lt;p&gt;" tail="P0"/>
<arc head="while" kind="OUTPUT" mult="&lt;p&gt;" tail="T10"/>
<arc head="T11" kind="INPUT" mult="&lt;p&gt;" tail="P0"/>
<arc head="critical" kind="OUTPUT" mult="&lt;p&gt;" tail="T11">
<point x="44.0" y="36.0"/>
</arc>
<arc broken="true" head="T10" kind="INPUT" mult="&lt;p, b&gt;" tail="wait">
<point x="14.5" y="14.5"/>
<point x="30.0" y="15.0"/>
<point x="22.0" y="13.5"/>
<point x="50.5" y="7.5"/>
<point x="52.0" y="15.0"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;p, b&gt;" tail="T10">
<point x="15.0" y="15.0"/>
<point x="10.5" y="24.0"/>
<point x="7.0" y="40.0"/>
</arc>
<arc broken="true" head="T11" kind="INPUT" mult="&lt;p, b&gt;" tail="wait">
<point x="50.5" y="44.0"/>
<point x="60.5" y="28.0"/>
<point x="53.0" y="27.0"/>
</arc>
<arc broken="true" head="wait" kind="OUTPUT" mult="&lt;p, b&gt;" tail="T11">
<point x="39.0" y="27.0"/>
<point x="36.5" y="33.5"/>
<point x="11.0" y="32.0"/>
</arc>
</edges>
</gspn>
<measures gspn-name="CPN" name="Measures" simplified-UI="false">
<assignments/>
<rgmedd2/>
<formulas>
<formula comment="Basic statistics of the toolchain execution." language="STAT"/>
<formula expr="AG(#critical_P == 1)" language="CTL"/>
<formula language="CTL"/>
<formula expr="deadlock" language="CTL"/>
<formula language="LTL"/>
</formulas>
</measures>
<measures gspn-name="Unfolding of CPN" log-uuid="c1532aef-ff8a-49e4-b3b3-a0604dacfaf6" name="CTL model checking of Unfolding of CPN" rapid-type="CTL_MODEL_CHECKING" simplified-UI="true">
<assignments/>
<rgmedd2 counter-examples="true"/>
<formulas>
<formula language="STAT">
<result-table>
<stat-result name="STAT">
<bindings/>
<stat key="build_time" value="0.00244 seconds."/>
<stat key="num_rs_nodes" value="90"/>
<stat key="num_tangible_markings" value="112"/>
<stat key="total_firings" value="unknown"/>
</stat-result>
</result-table>
</formula>
<formula comment="CTL formula" expr="AG( #critical_P != 1 || #critical_Q != 1)" language="CTL">
<result-table>
<mc-result name="MEASURE1" value="true">
<bindings/>
</mc-result>
</result-table>
</formula>
<formula expr="AG ((#await_P==1 || #await_Q == 1) -&gt; AF (#critical_P == 1 || #critical_Q == 1))" language="CTL">
<result-table>
<mc-result name="MEASURE2" value="false">
<bindings/>
</mc-result>
</result-table>
</formula>
<formula expr="AG (#await_P==1 -&gt; AF (#critical_P == 1))" language="CTL">
<result-table>
<mc-result name="MEASURE0" value="false">
<bindings/>
</mc-result>
</result-table>
</formula>
</formulas>
</measures>
<gspn name="While_loop" show-fluid-cmd="false" show-timed-cmd="false" view-rates="false">
<nodes>
<color-class definition="{isTrue, isFalse}" name="Bool" x="55.3125" y="28.0"/>
<color-class definition="{P, Q}" name="Process" x="55.125" y="30.0"/>
<color-class definition="Process*Bool" name="D" x="55.125" y="32.0"/>
<color-class definition="{t1,t2}" name="Turn" x="55.0625" y="26.0"/>
<color-var domain="Process" name="p" x="58.1875" y="19.0"/>
<color-var domain="Turn" name="t" x="58.375" y="21.0"/>
<color-var domain="Bool" name="b" x="58.25" y="20.0"/>
<place domain="D" marking="&lt;P, isFalse&gt; + &lt;Q,isFalse&gt;" name="wait" x="31.0" y="35.0"/>
<place domain="Process" marking="&lt;All&gt;" name="P0" x="31.0" y="5.0"/>
<place domain="Process" label-x="-4.5" label-y="-1.5" name="While" x="31.0" y="14.0"/>
<transition guard="p==Q" guard-x="2.0" guard-y="-2.0" name="T0" nservers-x="0.5" type="EXP" x="32.55" y="23.0"/>
<transition guard="p==P" guard-x="-2.0" guard-y="-1.5" name="T1" nservers-x="0.5" rotation="3.141592653589793" type="EXP" x="30.55" y="23.0"/>
<transition name="T2" nservers-x="0.5" rotation="1.5707963267948966" type="EXP" x="31.55" y="10.0"/>
</nodes>
<edges>
<arc head="T2" kind="INPUT" mult="&lt;p&gt;" tail="P0"/>
<arc head="T0" kind="INPUT" mult="&lt;Q&gt;" tail="While">
<point x="39.5" y="15.0"/>
<point x="39.5" y="24.0"/>
</arc>
<arc head="T1" kind="INPUT" mult="&lt;P&gt;" tail="While">
<point x="24.5" y="15.0"/>
<point x="24.5" y="24.0"/>
</arc>
<arc head="While" kind="OUTPUT" mult="&lt;p&gt;" mult-x="-0.2249755859375" mult-y="2.0" tail="T1">
<point x="32.0" y="24.0"/>
</arc>
<arc head="While" kind="OUTPUT" mult="&lt;p&gt;" mult-x="0.2249755859375" mult-y="2.0" tail="T0">
<point x="32.0" y="24.0"/>
</arc>
<arc head="While" kind="OUTPUT" mult="&lt;p&gt;" mult-x="2.5" mult-y="0.0" tail="T2"/>
<arc head="T1" kind="INPUT" mult="&lt;Q, isFalse&gt;" mult-k="0.7805664062500001" mult-x="2.026855033382727" mult-y="-1.1574710451992871" tail="wait">
<point x="25.0" y="30.5"/>
</arc>
<arc head="T0" kind="INPUT" mult="&lt;P,isFalse&gt;" mult-k="0.8616210937500001" mult-x="-2.101865912139509" mult-y="-0.7056767833189568" tail="wait">
<point x="39.0" y="30.5"/>
</arc>
<arc head="wait" kind="OUTPUT" mult="&lt;Q,isFalse&gt;" tail="T1">
<point x="18.5" y="30.5"/>
</arc>
<arc head="wait" kind="OUTPUT" mult="&lt;P,isFalse&gt;" tail="T0">
<point x="44.5" y="30.5"/>
</arc>
</edges>
</gspn>
<gspn name="Unfolding of CPN">
<nodes>
<place marking="1" name="local_P" x="19.0" y="8.0"/>
<place marking="1" name="local_Q" x="19.0" y="11.0"/>
<place name="resetFalse_P" x="19.0" y="17.0"/>
<place name="resetFalse_Q" x="19.0" y="20.0"/>
<place name="changeTurn_P" x="19.0" y="35.0"/>
<place name="changeTurn_Q" x="19.0" y="38.0"/>
<place name="await_P" x="19.0" y="26.0"/>
<place name="await_Q" x="19.0" y="29.0"/>
<place name="setFalse_P" x="19.0" y="45.0"/>
<place name="setFalse_Q" x="19.0" y="48.0"/>
<place name="setTrue_P" x="35.0" y="8.0"/>
<place name="setTrue_Q" x="35.0" y="11.0"/>
<place name="while_P" x="35.0" y="17.0"/>
<place name="while_Q" x="35.0" y="20.0"/>
<place name="critical_P" x="35.0" y="35.0"/>
<place name="critical_Q" x="35.0" y="38.0"/>
<place name="resetTrue_P" x="35.0" y="26.0"/>
<place name="resetTrue_Q" x="35.0" y="29.0"/>
<place marking="1" name="turn_t1" x="6.0" y="12.0"/>
<place name="turn_t2" x="6.0" y="15.0"/>
<place name="wait_P_isTrue" x="3.0" y="26.0"/>
<place marking="1" name="wait_P_isFalse" x="6.0" y="26.0"/>
<place name="wait_Q_isTrue" x="3.0" y="29.0"/>
<place marking="1" name="wait_Q_isFalse" x="6.0" y="29.0"/>
<transition name="T0_p_P" nservers-x="0.5" type="EXP" x="27.55" y="8.0"/>
<transition name="T0_p_Q" nservers-x="0.5" type="EXP" x="27.55" y="11.0"/>
<transition name="T1_p_P_t_t2" nservers-x="0.5" type="EXP" x="30.55" y="17.0"/>
<transition name="T1_p_Q_t_t1" nservers-x="0.5" type="EXP" x="27.55" y="20.0"/>
<transition name="T2_p_P_t_t1" nservers-x="0.5" type="EXP" x="27.55" y="26.0"/>
<transition name="T2_p_Q_t_t2" nservers-x="0.5" type="EXP" x="30.55" y="29.0"/>
<transition name="T3_p_P" nservers-x="0.5" type="EXP" x="27.55" y="35.0"/>
<transition name="T3_p_Q" nservers-x="0.5" type="EXP" x="27.55" y="38.0"/>
<transition name="Treset_p_P" nservers-x="0.5" type="EXP" x="12.55" y="45.0"/>
<transition name="Treset_p_Q" nservers-x="0.5" type="EXP" x="12.55" y="48.0"/>
<transition name="T5" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="21.55" y="41.0"/>
<transition name="T6_p_P" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="19.55" y="22.0"/>
<transition name="T6_p_Q" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="19.55" y="25.0"/>
<transition name="T8_p_P" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="13.0"/>
<transition name="T8_p_Q" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="16.0"/>
<transition name="T9_p_P" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="22.0"/>
<transition name="T9_p_Q" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="35.55" y="25.0"/>
<transition name="T4" nservers-x="0.5" rotation="4.71238898038469" type="EXP" x="17.55" y="41.0"/>
<transition name="T15_p_Q" nservers-x="0.5" type="EXP" x="64.55" y="20.0"/>
<transition name="T14_p_P" nservers-x="0.5" rotation="3.141592653589793" type="EXP" x="55.55" y="17.0"/>
</nodes>
<edges>
<arc head="setTrue_P" kind="OUTPUT" tail="T0_p_P"/>
<arc head="T0_p_P" kind="INPUT" tail="local_P">
<point x="24.0" y="9.0"/>
</arc>
<arc head="setTrue_Q" kind="OUTPUT" tail="T0_p_Q"/>
<arc head="T0_p_Q" kind="INPUT" tail="local_Q">
<point x="24.0" y="12.0"/>
</arc>
<arc broken="true" head="T1_p_P_t_t2" kind="INPUT" tail="turn_t2">
<point x="31.0" y="13.5"/>
</arc>
<arc broken="true" head="turn_t2" kind="OUTPUT" tail="T1_p_P_t_t2">
<point x="31.0" y="21.5"/>
<point x="10.5" y="21.0"/>
</arc>
<arc head="resetFalse_P" kind="OUTPUT" tail="T1_p_P_t_t2"/>
<arc head="T1_p_P_t_t2" kind="INPUT" tail="while_P"/>
<arc broken="true" head="T1_p_Q_t_t1" kind="INPUT" tail="turn_t1">
<point x="28.0" y="16.5"/>
</arc>
<arc broken="true" head="turn_t1" kind="OUTPUT" tail="T1_p_Q_t_t1">
<point x="28.0" y="24.5"/>
<point x="7.5" y="24.0"/>
</arc>
<arc head="resetFalse_Q" kind="OUTPUT" tail="T1_p_Q_t_t1"/>
<arc head="T1_p_Q_t_t1" kind="INPUT" tail="while_Q"/>
<arc broken="true" head="turn_t1" kind="OUTPUT" tail="T2_p_P_t_t1">
<point x="28.0" y="23.0"/>
<point x="8.0" y="24.0"/>
<point x="14.0" y="9.5"/>
<point x="7.5" y="8.5"/>
</arc>
<arc broken="true" head="T2_p_P_t_t1" kind="INPUT" tail="turn_t1">
<point x="3.5" y="13.5"/>
<point x="2.0" y="13.5"/>
<point x="2.0" y="34.0"/>
<point x="28.0" y="32.5"/>
</arc>
<arc head="resetTrue_P" kind="OUTPUT" tail="T2_p_P_t_t1"/>
<arc head="T2_p_P_t_t1" kind="INPUT" tail="await_P"/>
<arc broken="true" head="turn_t2" kind="OUTPUT" tail="T2_p_Q_t_t2">
<point x="31.0" y="26.0"/>
<point x="11.0" y="27.0"/>
<point x="17.0" y="12.5"/>
<point x="10.5" y="11.5"/>
</arc>
<arc broken="true" head="T2_p_Q_t_t2" kind="INPUT" tail="turn_t2">
<point x="6.5" y="16.5"/>
<point x="5.0" y="16.5"/>
<point x="5.0" y="37.0"/>
<point x="31.0" y="35.5"/>
</arc>
<arc head="resetTrue_Q" kind="OUTPUT" tail="T2_p_Q_t_t2"/>
<arc head="T2_p_Q_t_t2" kind="INPUT" tail="await_Q"/>
<arc head="T3_p_P" kind="INPUT" tail="critical_P"/>
<arc head="changeTurn_P" kind="OUTPUT" tail="T3_p_P"/>
<arc head="T3_p_Q" kind="INPUT" tail="critical_Q"/>
<arc head="changeTurn_Q" kind="OUTPUT" tail="T3_p_Q"/>
<arc broken="true" head="local_P" kind="OUTPUT" tail="Treset_p_P">
<point x="12.5" y="9.0"/>
</arc>
<arc broken="true" head="Treset_p_P" kind="INPUT" tail="wait_P_isTrue"/>
<arc head="Treset_p_P" kind="INPUT" tail="setFalse_P"/>
<arc broken="true" head="wait_P_isFalse" kind="OUTPUT" tail="Treset_p_P">
<point x="11.5" y="50.0"/>
<point x="8.0" y="50.5"/>
</arc>
<arc broken="true" head="local_Q" kind="OUTPUT" tail="Treset_p_Q">
<point x="12.5" y="12.0"/>
</arc>
<arc broken="true" head="Treset_p_Q" kind="INPUT" tail="wait_Q_isTrue"/>
<arc head="Treset_p_Q" kind="INPUT" tail="setFalse_Q"/>
<arc broken="true" head="wait_Q_isFalse" kind="OUTPUT" tail="Treset_p_Q">
<point x="11.5" y="53.0"/>
<point x="8.0" y="53.5"/>
</arc>
<arc broken="true" head="T5" kind="INPUT" tail="turn_t2">
<point x="7.5" y="42.5"/>
<point x="36.0" y="40.0"/>
<point x="33.0" y="42.0"/>
</arc>
<arc broken="true" head="turn_t1" kind="OUTPUT" tail="T5">
<point x="26.5" y="45.0"/>
<point x="29.5" y="49.5"/>
<point x="21.0" y="51.0"/>
<point x="17.0" y="50.5"/>
<point x="1.0" y="49.5"/>
<point x="1.0" y="48.0"/>
<point x="3.0" y="35.0"/>
<point x="3.5" y="34.5"/>
</arc>
<arc head="setFalse_Q" kind="OUTPUT" tail="T5"/>
<arc head="T5" kind="INPUT" tail="changeTurn_Q"/>
<arc broken="true" head="wait_P_isFalse" kind="OUTPUT" tail="T6_p_P">
<point x="11.5" y="28.0"/>
</arc>
<arc head="T6_p_P" kind="INPUT" tail="resetFalse_P"/>
<arc broken="true" head="T6_p_P" kind="INPUT" tail="wait_P_isTrue">
<point x="11.0" y="22.5"/>
</arc>
<arc head="await_P" kind="OUTPUT" tail="T6_p_P"/>
<arc broken="true" head="wait_Q_isFalse" kind="OUTPUT" tail="T6_p_Q">
<point x="11.5" y="31.0"/>
</arc>
<arc head="T6_p_Q" kind="INPUT" tail="resetFalse_Q"/>
<arc broken="true" head="T6_p_Q" kind="INPUT" tail="wait_Q_isTrue">
<point x="11.0" y="25.5"/>
</arc>
<arc head="await_Q" kind="OUTPUT" tail="T6_p_Q"/>
<arc broken="true" head="T8_p_P" kind="INPUT" tail="wait_P_isFalse">
<point x="4.5" y="19.0"/>
<point x="30.5" y="14.0"/>
</arc>
<arc broken="true" head="wait_P_isTrue" kind="OUTPUT" tail="T8_p_P">
<point x="45.5" y="14.0"/>
<point x="51.0" y="14.0"/>
<point x="52.0" y="44.5"/>
<point x="3.5" y="41.5"/>
</arc>
<arc head="while_P" kind="OUTPUT" tail="T8_p_P"/>
<arc head="T8_p_P" kind="INPUT" tail="setTrue_P"/>
<arc broken="true" head="T8_p_Q" kind="INPUT" tail="wait_Q_isFalse">
<point x="4.5" y="22.0"/>
<point x="30.5" y="17.0"/>
</arc>
<arc broken="true" head="wait_Q_isTrue" kind="OUTPUT" tail="T8_p_Q">
<point x="45.5" y="17.0"/>
<point x="51.0" y="17.0"/>
<point x="52.0" y="47.5"/>
<point x="3.5" y="44.5"/>
</arc>
<arc head="while_Q" kind="OUTPUT" tail="T8_p_Q"/>
<arc head="T8_p_Q" kind="INPUT" tail="setTrue_Q"/>
<arc head="T9_p_P" kind="INPUT" tail="resetTrue_P"/>
<arc head="while_P" kind="OUTPUT" tail="T9_p_P"/>
<arc broken="true" head="T9_p_P" kind="INPUT" tail="wait_P_isFalse">
<point x="6.0" y="35.0"/>
<point x="31.5" y="31.0"/>
<point x="31.5" y="23.0"/>
</arc>
<arc broken="true" head="wait_P_isTrue" kind="OUTPUT" tail="T9_p_P">
<point x="46.5" y="23.0"/>
<point x="48.5" y="14.5"/>
<point x="4.5" y="21.0"/>
</arc>
<arc head="T9_p_Q" kind="INPUT" tail="resetTrue_Q"/>
<arc head="while_Q" kind="OUTPUT" tail="T9_p_Q"/>
<arc broken="true" head="T9_p_Q" kind="INPUT" tail="wait_Q_isFalse">
<point x="6.0" y="38.0"/>
<point x="31.5" y="34.0"/>
<point x="31.5" y="26.0"/>
</arc>
<arc broken="true" head="wait_Q_isTrue" kind="OUTPUT" tail="T9_p_Q">
<point x="46.5" y="26.0"/>
<point x="48.5" y="17.5"/>
<point x="4.5" y="24.0"/>
</arc>
<arc broken="true" head="T4" kind="INPUT" tail="turn_t1">
<point x="6.5" y="40.0"/>
</arc>
<arc head="T4" kind="INPUT" tail="changeTurn_P"/>
<arc head="setFalse_P" kind="OUTPUT" tail="T4"/>
<arc broken="true" head="turn_t2" kind="OUTPUT" tail="T4">
<point x="15.5" y="40.0"/>
</arc>
<arc head="critical_Q" kind="OUTPUT" tail="T15_p_Q">
<point x="65.5" y="39.0"/>
</arc>
<arc broken="true" head="wait_P_isFalse" kind="OUTPUT" tail="T15_p_Q">
<point x="75.5" y="57.5"/>
</arc>
<arc broken="true" head="T15_p_Q" kind="INPUT" tail="wait_P_isFalse">
<point x="70.0" y="57.5"/>
</arc>
<arc broken="true" head="T15_p_Q" kind="INPUT" tail="while_Q">
<point x="75.0" y="21.0"/>
<point x="75.0" y="30.0"/>
</arc>
<arc broken="true" head="T14_p_P" kind="INPUT" tail="while_P">
<point x="53.0" y="18.0"/>
<point x="53.0" y="32.0"/>
<point x="53.0" y="41.0"/>
</arc>
<arc broken="true" head="T14_p_P" kind="INPUT" tail="wait_Q_isFalse">
<point x="52.5" y="60.0"/>
</arc>
<arc head="critical_P" kind="OUTPUT" tail="T14_p_P">
<point x="52.5" y="18.0"/>
<point x="52.5" y="36.0"/>
</arc>
<arc broken="true" head="wait_Q_isFalse" kind="OUTPUT" tail="T14_p_P">
<point x="38.5" y="64.5"/>
</arc>
</edges>
</gspn>
<resource-list>
<document-log uuid="c1532aef-ff8a-49e4-b3b3-a0604dacfaf6">rO0ABXNyABRqYXZhLnV0aWwuTGlua2VkTGlzdAwpU11KYIgiAwAAeHB3BAAAAJx0AMUbWzBtRVhFQzogL3Vzci9sb2NhbC9HcmVhdFNQTi9iaW4vRFNQTi1Ub29sIC1sb2FkICIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zL2Rla2tlcl9XTi1DVEwgbW9kZWwgY2hlY2tpbmcgb2YgVW5mb2xkaW5nIG9mIENQTi5zb2x1dGlvbi9VbmZvbGRpbmcgb2YgQ1BOIiAtcGJhc2lzIC1kZXRlY3QtZXhwIC1wc2ZsIC1ibmQgCnQAohtbMW0bWzRtTE9BRElORyBQRVRSSSBORVQgL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy9kZWtrZXJfV04tQ1RMIG1vZGVsIGNoZWNraW5nIG9mIFVuZm9sZGluZyBvZiBDUE4uc29sdXRpb24vVW5mb2xkaW5nIG9mIENQTiAobmV0L2RlZikuLi4bWzIybRtbMjRtCnQAD01BUktJTkcgUEFSOiAwCnQAEFBMQUNFUzogICAgICAyNAp0AA9SQVRFIFBBUjogICAgMAp0ABBUUkFOU0lUSU9OUzogMjAKdAAPTUVBU1VSRVM6ICAgIDAKdAAoTE9BRElORyBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQAAQp0AAEKdAAeQ09NUFVUSU5HIFBMQUNFIEZMT1cgQkFTSVMuLi4KdAASTT0yMCwgTj0yNCwgTjA9MjQKdAA5Q29tcHV0YXRpb24gb2YgRmxvdyBiYXNpczogc3RlcCAxLzIwLCB8S3w9MjIsIHByb2R1Y3RzPTEKdABTG1sxQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp0AFMbWzFBQ29tcHV0YXRpb24gb2YgRmxvdyBiYXNpczogY29tcGxldGVkIGluIDE3IHN0ZXBzLCB8S3w9Ny4gICAgICAgICAgICAgICAgICAgICAgCnQAQEZPVU5EIDcgVkVDVE9SUyBJTiBUSEUgUExBQ0UgRkxPVyBCQVNJUyAoNSBzZW1pZmxvd3MsIDIgZmxvd3MpLgp0AAEKdAABCnQAJ0FsbCBwbGFjZXMgYXJlIGNvdmVyZWQgYnkgc29tZSBQLWZsb3cuCnQAAQp0ACZUT1RBTCBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQAJ0FWT0lEIEVYUE9ORU5USUFMIEdST1dUSCBPRiBTRU1JRkxPV1MuCnQAHUNPTVBVVElORyBQTEFDRSBTRU1JRkxPV1MuLi4KdAASTT0yMCwgTj0yNCwgTjA9MjQKdAArR2VuZXJhdGlvbiBvZiBTZW1pZmxvd3M6IHN0ZXAgMS8yMCwgfEt8PTIyCnQAUxtbMUEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKdABRG1sxQUdlbmVyYXRpb24gb2YgU2VtaWZsb3dzOiBjb21wbGV0ZWQgaW4gMTcgc3RlcHMsIHxLfD05LiAgICAgICAgICAgICAgICAgICAgICAKdAAZRk9VTkQgOSBQTEFDRSBTRU1JRkxPV1MuCnQAAQp0AAEKdAArQWxsIHBsYWNlcyBhcmUgY292ZXJlZCBieSBzb21lIFAtc2VtaWZsb3cuCnQAAQp0ACZUT1RBTCBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQALENPTVBVVElORyBQTEFDRSBCT1VORFMgRlJPTSBQLVNFTUlGTE9XUyAuLi4KdAAnG1swWBtbMzJtIFBST0NFU1MgRVhJVEVEIE5PUk1BTExZLhtbMG0KdADWG1swbUVYRUM6IHBlcmwgLWUgJ2FsYXJtIDUgOyBleGVjICIvdXNyL2xvY2FsL0dyZWF0U1BOL2Jpbi9EU1BOLVRvb2wgLWxvYWQgXCIvaG9tZS91c2VyL1VOSVRPL2Fubm8zL3ZwYy9jb25zZWduZS8zL2Rla2tlcl9XTi1DVEwgbW9kZWwgY2hlY2tpbmcgb2YgVW5mb2xkaW5nIG9mIENQTi5zb2x1dGlvbi9VbmZvbGRpbmcgb2YgQ1BOXCIgLWxvYWQtYm5kIC1pbHAtYm5kIiAnCnQAohtbMW0bWzRtTE9BRElORyBQRVRSSSBORVQgL2hvbWUvdXNlci9VTklUTy9hbm5vMy92cGMvY29uc2VnbmUvMy9kZWtrZXJfV04tQ1RMIG1vZGVsIGNoZWNraW5nIG9mIFVuZm9sZGluZyBvZiBDUE4uc29sdXRpb24vVW5mb2xkaW5nIG9mIENQTiAobmV0L2RlZikuLi4bWzIybRtbMjRtCnQAD01BUktJTkcgUEFSOiAwCnQAEFBMQUNFUzogICAgICAyNAp0AA9SQVRFIFBBUjogICAgMAp0ABBUUkFOU0lUSU9OUzogMjAKdAAPTUVBU1VSRVM6ICAgIDAKdAAoTE9BRElORyBUSU1FOiBbVXNlciAwLjAwMHMsIFN5cyAwLjAwMHNdCnQAAQp0AAEKdAAVTE9BRElORyBCTkQgRklMRSAuLi4KdAAlQ09NUFVUSU5HIFBMQUNFIEJPVU5EUyBVU0lORyBJTFAgLi4uCnQAGEFsbCBwbGFjZXMgYXJlIGJvdW5kZWQuCnEAfgAkdACqG1swbUVYRUM6IC91c3IvbG9jYWwvR3JlYXRTUE4vYmluL1JHTUVERDMgIi9ob21lL3VzZXIvVU5JVE8vYW5ubzMvdnBjL2NvbnNlZ25lLzMvZGVra2VyX1dOLUNUTCBtb2RlbCBjaGVja2luZyBvZiBVbmZvbGRpbmcgb2YgQ1BOLnNvbHV0aW9uL1VuZm9sZGluZyBvZiBDUE4iIC1NRVRBICAtYyAtQwp0ACBSYW5kb20gc2VlZHM6IDE1ODkxMDY1OTkgNDg1NTM0CnQAUD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdAARR3JlYXRTUE4vTWVkZGx5Lgp0ADggIENvcHlyaWdodCAoQykgMTk4Ny0yMDE4LCBVbml2ZXJzaXR5IG9mIFRvcmlubywgSXRhbHkuCnQAMSAgU2VuZCBmaWxlcyBuZXRuYW1lLm5ldCwgLmRlZiB0byBlLW1haWwgYWRkcmVzcwp0ACsgIGJlY2N1dGlAZGkudW5pdG8uaXQgaWYgeW91IGZpbmQgYW55IGJ1Zy4KdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AB9CYXNlZCBvbiBNRURETFkgdmVyc2lvbiAwLjE2LjAKdABGICBDb3B5cmlnaHQgKEMpIDIwMDksIElvd2EgU3RhdGUgVW5pdmVyc2l0eSBSZXNlYXJjaCBGb3VuZGF0aW9uLCBJbmMuCnQAKSAgd2Vic2l0ZTogaHR0cDovL21lZGRseS5zb3VyY2Vmb3JnZS5uZXQKdABQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp0AClVc2luZyBwZXItZXZlbnQgc2F0dXJhdGlvbiAoc2F0LXByZWdlbikuCnQAG1VzaW5nIGZhc3QgTlNGIGdlbmVyYXRpb24uCnQAElByb2Nlc3MgSUQ6I
</resource-list>
</project>