<?xml version="1.0" encoding="UTF-8"?>
<net name="d_pong_eng" type="iopt-flow">
  <signal id="X" x="735" y="85" mode="output" type="range" min="-1" max="801" frac="0" value="0" dynamic="none" microstep="1" nano-step="2"/>
  <signal id="XS" x="235" y="290" mode="internal" type="range" min="-5" max="5" frac="0" value="0" dynamic="none" microstep="0" nano-step="1"/>
  <operation id="o005" x="150" y="290" rot="0" shape="arrow" size="24">
    <name off_x="-19" off_y="-24" text="XDirection"/>
    <input off_x="-24" off_y="-8" name="X" id="o005.X" type="range" min="-1" max="801" dynamic="all" frac="0"/>
    <input off_x="-24" off_y="8" name="XS" id="o005.XS" type="range" min="-5" max="5" dynamic="all" frac="0"/>
    <output off_x="24" off_y="0" name="out" id="o005.out" type="range" min="-5" max="801" dynamic="type" frac="0" microstep="0" nano-step="1">
      <expression>
        <operand type="literal" value="1"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="X" delay="1"/>
          <operator type="less"/>
          <operand type="literal" value="1"/>
          <operator type="or"/>
          <operand type="signal" idRef="XS" delay="1"/>
          <operator type="equal"/>
          <operand type="literal" value="0"/>
        </operand>
        <text>1 WHEN (X[-1] &lt; 1 OR XS[-1] = 0)</text>
      </expression>
      <expression>
        <operand type="literal" value="-1"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="X" delay="1"/>
          <operator type="more"/>
          <operand type="literal" value="799"/>
        </operand>
        <text>-1 WHEN (X[-1] &gt; 799)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="XS" delay="1"/>
        <text>XS[-1] OTHERWISE</text>
      </expression>
    </output>
  </operation>
  <arc id="a006" type="read" source="XS" target="o005.XS" view="symbolic"/>
  <arc id="a007" type="read" source="X" target="o005.X" view="symbolic"/>
  <arc id="a009" type="read" source="o005.out" target="XS"/>
  <signal id="Y" x="735" y="225" mode="output" type="range" min="-1" max="801" frac="0" value="0" dynamic="none" microstep="1" nano-step="5"/>
  <signal id="YS" x="365" y="405" mode="internal" type="range" min="-5" max="5" frac="0" value="0" dynamic="none" microstep="1" nano-step="4"/>
  <operation id="o016" x="260" y="405" rot="0" shape="arrow" size="54">
    <name off_x="-43" off_y="-54" text="YDirection"/>
    <input off_x="-55" off_y="-40" name="Y" id="o016.Y" type="range" min="-1" max="801" dynamic="type" frac="0"/>
    <input off_x="-55" off_y="40" name="YS" id="o016.YS" type="range" min="-5" max="5" dynamic="type" frac="0"/>
    <input name="Defend" id="o016.Defend" type="boolean" min="0" max="1" frac="0" dynamic="all" off_x="-55" off_y="-20"/>
    <input name="DefendP2" id="o016.DefendP2" type="boolean" min="0" max="1" frac="0" dynamic="all" off_x="-55" off_y="0"/>
    <input name="Start" id="o016.Start" type="boolean" min="0" max="1" frac="0" off_x="-55" off_y="20"/>
    <output off_x="54" off_y="0" name="out" id="o016.out" type="range" min="-5" max="801" dynamic="type" frac="0" microstep="1" nano-step="4">
      <expression>
        <operand type="literal" value="1"/>
        <operator type="when"/>
        <operand type="signal" idRef="Start"/>
        <text>1 WHEN (Start)</text>
      </expression>
      <expression>
        <operand type="literal" value="-1"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Defend"/>
          <operator type="and"/>
          <operand type="signal" idRef="Y" delay="1"/>
          <operator type="more-or-equal"/>
          <operand type="literal" value="500"/>
        </operand>
        <text>-1 WHEN (Defend AND Y[-1] &gt;= 500)</text>
      </expression>
      <expression>
        <operand type="literal" value="1"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="DefendP2"/>
          <operator type="and"/>
          <operand type="signal" idRef="Y" delay="1"/>
          <operator type="less-or-equal"/>
          <operand type="literal" value="60"/>
        </operand>
        <text>1 WHEN (DefendP2 AND Y[-1] &lt;= 60)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="YS" delay="1"/>
        <text>YS[-1] OTHERWISE</text>
      </expression>
    </output>
  </operation>
  <arc id="a018" type="read" source="YS" target="o016.YS" view="symbolic"/>
  <arc id="a019" type="read" source="Y" target="o016.Y" view="symbolic"/>
  <arc id="a020" type="read" source="o016.out" target="YS"/>
  <component id="c003" class="rnd/rnd_gen.xml" x="425" y="55" width="100" height="40" rot="0" implementation="iopt-flow" target="external">
    <name off_x="-50" off_y="-25" text="rnd_gen"/>
    <source_model file="files/rnd_gen.xml"/>
    <input id="c003.Gen" name="Gen" type="event" off_x="-50" off_y="0" microstep="1" nano-step="0"/>
    <output id="c003.Rnd" name="Rnd" off_x="50" off_y="0" type="range" min="0" max="32767" microstep="1" nano-step="1"/>
  </component>
  <signal id="BaseX" x="315" y="570" mode="output" type="range" min="0" max="800" frac="0" value="400" dynamic="none" microstep="0" nano-step="3"/>
  <operation id="o048" x="210" y="570" rot="0" shape="arrow" size="40">
    <name off_x="-35" off_y="-40" text="BaseMove"/>
    <input off_x="-40" off_y="-24" name="Starting" id="o048.Starting" type="range" min="0" max="255" dynamic="type" frac="0"/>
    <input off_x="-40" off_y="-8" name="Left" id="o048.Left" type="boolean" min="0" max="1" frac="0"/>
    <input off_x="-40" off_y="8" name="Right" id="o048.Right" type="boolean" min="0" max="1" frac="0"/>
    <input off_x="-40" off_y="24" name="BaseX" id="o048.BaseX" type="range" min="0" max="800" dynamic="all" frac="0"/>
    <output off_x="40" off_y="0" name="out" id="o048.out" type="range" min="0" max="800" dynamic="type" frac="0" microstep="0" nano-step="3">
      <expression>
        <operand type="literal" value="400"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Starting"/>
        </operand>
        <text>400 WHEN (Starting)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="BaseX" delay="1"/>
        <operator type="sub"/>
        <operand type="literal" value="4"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Left"/>
          <operator type="and"/>
          <operand type="signal" idRef="BaseX" delay="1"/>
          <operator type="more"/>
          <operand type="literal" value="4"/>
        </operand>
        <text>BaseX[-1] - 4 WHEN (Left AND BaseX[-1] &gt; 4)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="BaseX" delay="1"/>
        <operator type="add"/>
        <operand type="literal" value="4"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Right"/>
          <operator type="and"/>
          <operand type="signal" idRef="BaseX" delay="1"/>
          <operator type="less"/>
          <operand type="literal" value="740"/>
        </operand>
        <text>BaseX[-1] + 4 WHEN (Right AND BaseX[-1] &lt; 740)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="BaseX" delay="1"/>
        <text>BaseX[-1] OTHERWISE</text>
      </expression>
    </output>
  </operation>
  <arc id="a049" type="read" source="BaseX" target="o048.BaseX" view="symbolic"/>
  <arc id="a050" type="read" source="o048.out" target="BaseX"/>
  <operation id="o003" x="95" y="385" rot="0" shape="arrow" size="24">
    <name off_x="-19" off_y="-24" text="Defend"/>
    <input off_x="-24" off_y="-8" name="X" id="o003.X" type="range" min="-1" max="801" dynamic="all" frac="0"/>
    <input off_x="-24" off_y="8" name="BaseX" id="o003.BaseX" type="range" min="0" max="800" dynamic="all" frac="0"/>
    <output off_x="24" off_y="0" name="out" id="o003.out" type="boolean" min="0" max="1" dynamic="type" frac="0" microstep="1" nano-step="3">
      <expression>
        <operand type="signal" idRef="X"/>
        <operator type="more-or-equal"/>
        <operand type="signal" idRef="BaseX"/>
        <operator type="sub"/>
        <operand type="literal" value="36"/>
        <operator type="and"/>
        <operand type="signal" idRef="X"/>
        <operator type="less-or-equal"/>
        <operand type="signal" idRef="BaseX"/>
        <operator type="add"/>
        <operand type="literal" value="124"/>
        <text>X &gt;= BaseX - 36 AND X &lt;= BaseX + 124</text>
      </expression>
    </output>
  </operation>
  <arc id="a047" type="read" source="X" target="o003.X" view="symbolic"/>
  <arc id="a048" type="read" source="BaseX" target="o003.BaseX" view="symbolic"/>
  <arc id="a055" type="read" source="o003.out" target="o016.Defend"/>
  <operation id="o057" x="150" y="215" rot="0" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="DefendFail"/>
    <input off_x="-16" off_y="0" name="Y" id="o057.Y" type="range" min="-1" max="801" dynamic="all" frac="0"/>
    <output off_x="16" off_y="0" name="out" id="o057.out" type="boolean" min="0" max="1" dynamic="type" frac="0" microstep="1" nano-step="6">
      <expression>
        <operand type="signal" idRef="Y"/>
        <operator type="more-or-equal"/>
        <operand type="literal" value="520"/>
        <operator type="or"/>
        <operand type="signal" idRef="Y"/>
        <operator type="less"/>
        <operand type="literal" value="20"/>
        <text>Y &gt;= 520 OR Y &lt; 20</text>
      </expression>
    </output>
  </operation>
  <arc id="a063" type="read" source="Y" target="o057.Y" view="symbolic"/>
  <place id="p001" x="220" y="55" init_marking="1">
    <name off_x="-10" off_y="-10" text="Ready"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <place id="p002" x="310" y="155" init_marking="0">
    <name off_x="-10" off_y="-10" text="Run"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <place id="p003" x="130" y="155" init_marking="0">
    <name off_x="-10" off_y="-10" text="GameOver"/>
    <comment off_x="0" off_y="20" text="-"/>
  </place>
  <transition id="t004" x="310" y="55" priority="0" microstep="0">
    <name off_x="-10" off_y="-10" text="Start"/>
    <comment off_x="0" off_y="20" text="-"/>
  </transition>
  <arc id="a039" type="normal" source="p001" target="t004"/>
  <arc id="a040" type="normal" source="t004" target="p002"/>
  <transition id="t041" x="220" y="155" priority="0" microstep="1">
    <name off_x="-10" off_y="-10" text="EndGame"/>
    <comment off_x="0" off_y="20" text="-"/>
  </transition>
  <arc id="a042" type="normal" source="p002" target="t041"/>
  <arc id="a044" type="normal" source="t041" target="p003"/>
  <transition id="t045" x="130" y="55" priority="0" microstep="0">
    <name off_x="-10" off_y="-10" text="Restart"/>
    <comment off_x="0" off_y="20" text="-"/>
  </transition>
  <arc id="a057" type="normal" source="p003" target="t045"/>
  <arc id="a059" type="normal" source="t045" target="p001"/>
  <arc id="a069" type="read" source="o057.out" target="t041"/>
  <signal id="Score" x="735" y="355" mode="output" type="range" min="0" max="10000" frac="0" value="0" dynamic="none" microstep="1" nano-step="7"/>
  <operation id="o071" x="655" y="355" rot="0" shape="arrow" size="32">
    <name off_x="-27" off_y="-32" text="CalcScore"/>
    <input off_x="-32" off_y="-16" name="StartGame" id="o071.StartGame" type="event" min="0" max="1" frac="0"/>
    <input off_x="-32" off_y="0" name="Bounce" id="o071.Bounce" type="event" min="0" max="1" dynamic="all" frac="0"/>
    <input off_x="-32" off_y="16" name="Score" id="o071.Score" type="range" min="0" max="10000" dynamic="all" frac="0"/>
    <output off_x="32" off_y="0" name="out" id="o071.out" type="range" min="0" max="10000" dynamic="type" frac="0" microstep="1" nano-step="7">
      <expression>
        <operand type="literal" value="0"/>
        <operator type="when"/>
        <operand type="signal" idRef="StartGame"/>
        <text>0 WHEN (StartGame)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="Score" delay="1"/>
        <operator type="add"/>
        <operand type="literal" value="1"/>
        <operator type="when"/>
        <operand type="signal" idRef="Bounce"/>
        <text>Score[-1] + 1 WHEN (Bounce)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="Score" delay="1"/>
        <text>Score[-1] OTHERWISE</text>
      </expression>
    </output>
  </operation>
  <arc id="a072" type="read" source="t004" target="o071.StartGame" view="symbolic"/>
  <arc id="a073" type="read" source="Score" target="o071.Score" view="symbolic"/>
  <arc id="a074" type="read" source="o071.out" target="Score"/>
  <operation id="o075" x="530" y="355" rot="0" shape="arrow" size="34">
    <name off_x="-27" off_y="-34" text="Bounce"/>
    <input off_x="-35" off_y="-20" name="YS" id="o075.YS" type="range" min="-5" max="5" dynamic="all" frac="0"/>
    <input off_x="-35" off_y="0" name="Defend" id="o075.Defend" type="boolean" min="0" max="1" dynamic="all" frac="0"/>
    <input name="DefendP2" id="o075.DefendP2" type="boolean" min="0" max="1" frac="0" dynamic="name" off_x="-35" off_y="20"/>
    <output off_x="34" off_y="0" name="out" id="o075.out" type="event" min="0" max="1" dynamic="none" frac="0" microstep="1" nano-step="6">
      <expression>
        <operand type="sub-expression">
          <operand type="signal" idRef="Defend"/>
          <operator type="or"/>
          <operand type="signal" idRef="DefendP2"/>
        </operand>
        <operator type="and"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="YS" delay="1"/>
          <operator type="diff"/>
          <operand type="signal" idRef="YS"/>
        </operand>
        <text>(Defend OR DefendP2) AND (YS[-1] &lt;&gt; YS)</text>
      </expression>
    </output>
  </operation>
  <arc id="a076" type="read" source="t004" target="c003.Gen"/>
  <arc id="a077" type="read" source="o003.out" target="o075.Defend" view="symbolic"/>
  <arc id="a079" type="read" source="o075.out" target="o071.Bounce"/>
  <operation id="o004" x="625" y="85" rot="0" shape="arrow" size="48">
    <name off_x="-43" off_y="-48" text="CalcX"/>
    <input off_x="-48" off_y="-32" name="Rnd" id="o004.Rnd" type="range" min="0" max="32767" dynamic="all"/>
    <input off_x="-48" off_y="-16" name="Run" id="o004.Run" type="range" min="0" max="255" dynamic="type" frac="0"/>
    <input off_x="-48" off_y="0" name="Pause" id="o004.Pause" type="boolean" min="0" max="1" dynamic="all"/>
    <input off_x="-48" off_y="16" name="XS" id="o004.XS" type="range" min="-5" max="5" dynamic="all" frac="0"/>
    <input off_x="-48" off_y="32" name="X" id="o004.X" type="range" min="-1" max="801" dynamic="all" frac="0"/>
    <output off_x="48" off_y="0" name="out" id="o004.out" type="range" min="-5" max="800" dynamic="none" frac="0" microstep="1" nano-step="2">
      <expression>
        <operand type="signal" idRef="Rnd"/>
        <operator type="mod"/>
        <operand type="literal" value="800"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="sub-expression" neg="true">
            <operand type="signal" idRef="Run"/>
          </operand>
        </operand>
        <text>Rnd MOD 800 WHEN (NOT(Run))</text>
      </expression>
      <expression>
        <operand type="signal" idRef="X" delay="1"/>
        <operator type="add"/>
        <operand type="signal" idRef="XS"/>
        <operator type="when"/>
        <operand type="signal" idRef="Run"/>
        <operator type="and"/>
        <operand type="signal" idRef="Pause" neg="true"/>
        <text>X[-1] + XS WHEN (Run AND NOT(Pause))</text>
      </expression>
      <expression>
        <operand type="signal" idRef="X" delay="1"/>
        <text>X[-1]</text>
      </expression>
    </output>
  </operation>
  <arc id="a008" type="read" source="c003.Rnd" target="o004.Rnd"/>
  <arc id="a017" type="read" source="p002" target="o004.Run" view="symbolic"/>
  <arc id="a062" type="read" source="XS" target="o004.XS" view="symbolic"/>
  <arc id="a064" type="read" source="X" target="o004.X" view="symbolic"/>
  <arc id="a070" type="read" source="o004.out" target="X"/>
  <operation id="o072" x="625" y="225" rot="0" shape="arrow" size="40">
    <name off_x="-35" off_y="-40" text="CalcY"/>
    <input off_x="-40" off_y="-24" name="Run" id="o072.Run" type="range" min="0" max="255" frac="0" dynamic="type"/>
    <input off_x="-40" off_y="-8" name="Pause" id="o072.Pause" type="boolean" min="0" max="1" dynamic="all"/>
    <input off_x="-40" off_y="8" name="YS" id="o072.YS" type="range" min="-5" max="5" dynamic="all" frac="0"/>
    <input off_x="-40" off_y="24" name="Y" id="o072.Y" type="range" min="-1" max="801" dynamic="all" frac="0"/>
    <output off_x="40" off_y="0" name="out" id="o072.out" type="range" min="-5" max="801" dynamic="type" frac="0" microstep="1" nano-step="5">
      <expression>
        <operand type="literal" value="50"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="sub-expression" neg="true">
            <operand type="signal" idRef="Run"/>
          </operand>
        </operand>
        <text>50 WHEN (NOT(Run))</text>
      </expression>
      <expression>
        <operand type="signal" idRef="Y" delay="1"/>
        <operator type="add"/>
        <operand type="signal" idRef="YS"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="sub-expression" neg="true">
            <operand type="signal" idRef="Pause"/>
          </operand>
        </operand>
        <text>Y[-1] + YS WHEN (NOT(Pause))</text>
      </expression>
      <expression>
        <operand type="signal" idRef="Y" delay="1"/>
        <text>Y[-1]</text>
      </expression>
    </output>
  </operation>
  <arc id="a083" type="read" source="YS" target="o072.YS" view="symbolic"/>
  <arc id="a084" type="read" source="Y" target="o072.Y" view="symbolic"/>
  <arc id="a085" type="read" source="o072.out" target="Y"/>
  <arc id="a086" type="read" source="p001" target="o048.Starting" view="symbolic"/>
  <arc id="a087" type="read" source="p002" target="o072.Run" view="symbolic"/>
  <arc id="a003" type="read" source="YS" target="o075.YS" view="symbolic"/>
  <signal id="P2BaseX" x="735" y="520" mode="output" type="range" min="0" max="800" frac="0" value="400" dynamic="none" microstep="0" nano-step="3"/>
  <operation id="o002" x="590" y="520" rot="0" shape="arrow" size="70">
    <name off_x="-62" off_y="-70" text="P2BaseMove"/>
    <input off_x="-70" off_y="-10" name="Starting" id="o002.Starting" type="range" min="0" max="255" dynamic="type" frac="0"/>
    <input off_x="-70" off_y="10" name="Left" id="o002.Left" type="boolean" min="0" max="1" frac="0"/>
    <input off_x="-70" off_y="30" name="Right" id="o002.Right" type="boolean" min="0" max="1" frac="0"/>
    <input off_x="-70" off_y="50" name="BaseX" id="o002.BaseX" type="range" min="0" max="800" dynamic="all" frac="0"/>
    <input name="X" id="o002.X" type="range" min="0" max="800" frac="0" dynamic="name" off_x="-70" off_y="-30"/>
    <input name="Player2On" id="o002.Player2On" type="boolean" min="0" max="1" frac="0" dynamic="name" off_x="-70" off_y="-50"/>
    <output off_x="70" off_y="0" name="out" id="o002.out" type="range" min="0" max="800" dynamic="type" frac="0" microstep="0" nano-step="3">
      <expression>
        <operand type="literal" value="400"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Starting"/>
        </operand>
        <text>400 WHEN (Starting)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="X"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="sub-expression" neg="true">
            <operand type="signal" idRef="Player2On"/>
          </operand>
        </operand>
        <text>X WHEN (NOT(Player2On))</text>
      </expression>
      <expression>
        <operand type="signal" idRef="BaseX" delay="1"/>
        <operator type="sub"/>
        <operand type="literal" value="4"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Left"/>
          <operator type="and"/>
          <operand type="signal" idRef="BaseX" delay="1"/>
          <operator type="more"/>
          <operand type="literal" value="4"/>
        </operand>
        <text>BaseX[-1] - 4 WHEN (Left AND BaseX[-1] &gt; 4)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="BaseX" delay="1"/>
        <operator type="add"/>
        <operand type="literal" value="4"/>
        <operator type="when"/>
        <operand type="sub-expression">
          <operand type="signal" idRef="Right"/>
          <operator type="and"/>
          <operand type="signal" idRef="BaseX" delay="1"/>
          <operator type="less"/>
          <operand type="literal" value="740"/>
        </operand>
        <text>BaseX[-1] + 4 WHEN (Right AND BaseX[-1] &lt; 740)</text>
      </expression>
      <expression>
        <operand type="signal" idRef="BaseX" delay="1"/>
        <text>BaseX[-1]</text>
      </expression>
    </output>
  </operation>
  <arc id="a004" type="read" source="P2BaseX" target="o002.BaseX" view="symbolic"/>
  <arc id="a005" type="read" source="o002.out" target="P2BaseX"/>
  <signal id="P1LeftBtn" x="50" y="560" mode="input" type="boolean" min="0" max="1"/>
  <signal id="P1RightBtn" x="95" y="580" mode="input" type="boolean" min="0" max="1"/>
  <signal id="P2LeftBtn" x="435" y="530" mode="input" type="boolean" min="0" max="1"/>
  <signal id="P2RightBtn" x="400" y="550" mode="input" type="boolean" min="0" max="1"/>
  <arc id="a010" type="read" source="P1LeftBtn" target="o048.Left"/>
  <arc id="a011" type="read" source="P1RightBtn" target="o048.Right"/>
  <arc id="a012" type="read" source="P2LeftBtn" target="o002.Left"/>
  <arc id="a013" type="read" source="P2RightBtn" target="o002.Right"/>
  <arc id="a014" type="read" source="X" target="o002.X" view="symbolic"/>
  <arc id="a015" type="read" source="p001" target="o002.Starting" view="symbolic"/>
  <signal id="Player2On" x="440" y="470" mode="input" type="boolean" min="0" max="1" frac="0" value="0" dynamic="none" on_error="0"/>
  <arc id="a021" type="read" source="Player2On" target="o002.Player2On"/>
  <event id="StartGame" x="250" y="100" mode="input"/>
  <arc id="a023" type="read" source="StartGame" target="t004"/>
  <event id="Rst" x="55" y="55" mode="input"/>
  <arc id="a025" type="read" source="Rst" target="t045"/>
  <operation id="o001" x="95" y="455" rot="0" shape="arrow" size="24">
    <name off_x="-19" off_y="-24" text="DefendP2"/>
    <input off_x="-24" off_y="-8" name="X" id="o001.X" type="range" min="-1" max="801" dynamic="all" frac="0"/>
    <input off_x="-24" off_y="8" name="P2BaseX" id="o001.P2BaseX" type="range" min="0" max="800" dynamic="all" frac="0"/>
    <output off_x="24" off_y="0" name="out" id="o001.out" type="boolean" min="0" max="1" dynamic="type" frac="0" microstep="1" nano-step="3">
      <expression>
        <operand type="signal" idRef="X"/>
        <operator type="more-or-equal"/>
        <operand type="signal" idRef="P2BaseX"/>
        <operator type="sub"/>
        <operand type="literal" value="36"/>
        <operator type="and"/>
        <operand type="signal" idRef="X"/>
        <operator type="less-or-equal"/>
        <operand type="signal" idRef="P2BaseX"/>
        <operator type="add"/>
        <operand type="literal" value="124"/>
        <text>X &gt;= P2BaseX - 36 AND X &lt;= P2BaseX + 124</text>
      </expression>
    </output>
  </operation>
  <arc id="a002" type="read" source="X" target="o001.X" view="symbolic"/>
  <arc id="a016" type="read" source="P2BaseX" target="o001.P2BaseX" view="symbolic"/>
  <arc id="a022" type="read" source="o001.out" target="o016.DefendP2"/>
  <signal id="GameOver" x="175" y="115" mode="output" type="range" min="0" max="255" dynamic="type" frac="0"/>
  <arc id="a024" type="read" source="p003" target="GameOver"/>
  <signal id="Ready" x="270" y="15" mode="output" type="range" min="0" max="255" dynamic="type" frac="0"/>
  <arc id="a026" type="read" source="p001" target="Ready"/>
  <signal id="Run" x="385" y="155" mode="output" type="range" min="0" max="255" dynamic="type" frac="0"/>
  <arc id="a027" type="read" source="p002" target="Run"/>
  <event id="Boing" x="620" y="440" mode="output"/>
  <arc id="a029" type="read" source="o075.out" target="Boing"/>
  <event id="Crash" x="280" y="230" mode="output"/>
  <arc id="a031" type="read" source="t041" target="Crash"/>
  <signal id="Pause" x="475" y="130" mode="input" type="boolean" min="0" max="1"/>
  <arc id="a028" type="read" source="Pause" target="o004.Pause"/>
  <arc id="a030" type="read" source="Pause" target="o072.Pause"/>
  <arc id="a001" type="read" source="o001.out" target="o075.DefendP2" view="symbolic"/>
  <arc id="a032" type="read" source="p001" target="o016.Start" view="symbolic"/>
</net>
