<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1750085200694" clover="3.2.0">
  <project timestamp="1750085200694" name="All files">
    <metrics statements="3391" coveredstatements="2747" conditionals="998" coveredconditionals="641" methods="739" coveredmethods="543" elements="5128" coveredelements="3931" complexity="0" loc="3391" ncloc="3391" packages="56" files="117" classes="117"/>
    <package name="src">
      <metrics statements="2" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
      <file name="main.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/main.ts">
        <metrics statements="2" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
        <line num="5" count="35" type="stmt"/>
        <line num="6" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app">
      <metrics statements="64" coveredstatements="54" conditionals="22" coveredconditionals="16" methods="24" coveredmethods="17"/>
      <file name="app.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/app.component.html">
        <metrics statements="18" coveredstatements="18" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="0"/>
        <line num="1" count="35" type="stmt"/>
        <line num="3" count="14652" type="stmt"/>
        <line num="5" count="14652" type="cond" truecount="2" falsecount="0"/>
        <line num="7" count="31" type="stmt"/>
        <line num="8" count="31" type="stmt"/>
        <line num="12" count="12912" type="stmt"/>
        <line num="13" count="12912" type="stmt"/>
        <line num="15" count="12912" type="stmt"/>
        <line num="16" count="12912" type="stmt"/>
        <line num="17" count="31" type="stmt"/>
        <line num="19" count="12912" type="stmt"/>
        <line num="23" count="31" type="stmt"/>
        <line num="26" count="31" type="stmt"/>
        <line num="27" count="31" type="stmt"/>
        <line num="29" count="31" type="stmt"/>
        <line num="31" count="14652" type="stmt"/>
        <line num="32" count="36" type="stmt"/>
        <line num="33" count="36" type="stmt"/>
      </file>
      <file name="app.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/app.component.ts">
        <metrics statements="42" coveredstatements="32" conditionals="18" coveredconditionals="12" methods="19" coveredmethods="14"/>
        <line num="28" count="70" type="cond" truecount="2" falsecount="0"/>
        <line num="29" count="35" type="stmt"/>
        <line num="33" count="35" type="stmt"/>
        <line num="38" count="35" type="stmt"/>
        <line num="40" count="35" type="stmt"/>
        <line num="42" count="35" type="stmt"/>
        <line num="43" count="35" type="stmt"/>
        <line num="45" count="35" type="stmt"/>
        <line num="46" count="1269" type="stmt"/>
        <line num="48" count="111" type="stmt"/>
        <line num="49" count="111" type="cond" truecount="4" falsecount="0"/>
        <line num="50" count="98" type="stmt"/>
        <line num="53" count="13" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="63" count="35" type="stmt"/>
        <line num="65" count="35" type="stmt"/>
        <line num="77" count="35" type="stmt"/>
        <line num="79" count="126" type="cond" truecount="2" falsecount="0"/>
        <line num="80" count="115" type="stmt"/>
        <line num="81" count="115" type="stmt"/>
        <line num="84" count="11" type="stmt"/>
        <line num="85" count="11" type="stmt"/>
        <line num="89" count="0" type="stmt"/>
        <line num="95" count="115" type="stmt"/>
        <line num="96" count="115" type="stmt"/>
        <line num="98" count="93" type="stmt"/>
        <line num="100" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="101" count="0" type="stmt"/>
        <line num="108" count="115" type="stmt"/>
        <line num="109" count="115" type="stmt"/>
        <line num="112" count="88" type="stmt"/>
        <line num="113" count="88" type="stmt"/>
        <line num="114" count="88" type="cond" truecount="3" falsecount="1"/>
        <line num="115" count="0" type="stmt"/>
        <line num="119" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="120" count="0" type="stmt"/>
        <line num="127" count="88" type="stmt"/>
        <line num="128" count="88" type="cond" truecount="1" falsecount="1"/>
        <line num="129" count="0" type="stmt"/>
        <line num="131" count="88" type="stmt"/>
        <line num="135" count="0" type="stmt"/>
        <line num="136" count="0" type="stmt"/>
      </file>
      <file name="app.config.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/app.config.ts">
        <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="14" count="35" type="stmt"/>
      </file>
      <file name="app.routes.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/app.routes.ts">
        <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="37" count="35" type="stmt"/>
      </file>
      <file name="status-count.pipe.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/status-count.pipe.ts">
        <metrics statements="2" coveredstatements="2" conditionals="2" coveredconditionals="2" methods="3" coveredmethods="3"/>
        <line num="8" count="95" type="cond" truecount="2" falsecount="0"/>
        <line num="10" count="558" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.administrator">
      <metrics statements="43" coveredstatements="42" conditionals="14" coveredconditionals="13" methods="9" coveredmethods="8"/>
      <file name="administrator.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/administrator/administrator.component.html">
        <metrics statements="29" coveredstatements="29" conditionals="6" coveredconditionals="6" methods="0" coveredmethods="0"/>
        <line num="2" count="8" type="stmt"/>
        <line num="5" count="124" type="stmt"/>
        <line num="7" count="124" type="stmt"/>
        <line num="10" count="4" type="stmt"/>
        <line num="11" count="4" type="stmt"/>
        <line num="12" count="4" type="stmt"/>
        <line num="13" count="4" type="stmt"/>
        <line num="14" count="4" type="stmt"/>
        <line num="15" count="4" type="stmt"/>
        <line num="16" count="4" type="stmt"/>
        <line num="17" count="4" type="stmt"/>
        <line num="19" count="8" type="stmt"/>
        <line num="21" count="114" type="stmt"/>
        <line num="22" count="114" type="stmt"/>
        <line num="23" count="114" type="stmt"/>
        <line num="24" count="114" type="stmt"/>
        <line num="25" count="6" type="stmt"/>
        <line num="26" count="54" type="cond" truecount="2" falsecount="0"/>
        <line num="27" count="6" type="stmt"/>
        <line num="28" count="6" type="stmt"/>
        <line num="29" count="54" type="cond" truecount="2" falsecount="0"/>
        <line num="30" count="6" type="stmt"/>
        <line num="31" count="6" type="stmt"/>
        <line num="32" count="108" type="cond" truecount="2" falsecount="0"/>
        <line num="33" count="36" type="stmt"/>
        <line num="35" count="6" type="stmt"/>
        <line num="36" count="18" type="stmt"/>
        <line num="39" count="6" type="stmt"/>
        <line num="42" count="8" type="stmt"/>
      </file>
      <file name="administrator.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/administrator/administrator.component.ts">
        <metrics statements="14" coveredstatements="13" conditionals="8" coveredconditionals="7" methods="9" coveredmethods="8"/>
        <line num="16" count="43" type="cond" truecount="2" falsecount="0"/>
        <line num="21" count="8" type="stmt"/>
        <line num="24" count="4" type="stmt"/>
        <line num="26" count="3" type="stmt"/>
        <line num="27" count="3" type="cond" truecount="1" falsecount="1"/>
        <line num="28" count="3" type="stmt"/>
        <line num="29" count="3" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="40" count="54" type="cond" truecount="2" falsecount="0"/>
        <line num="41" count="10" type="stmt"/>
        <line num="43" count="44" type="stmt"/>
        <line num="47" count="54" type="cond" truecount="2" falsecount="0"/>
        <line num="48" count="18" type="stmt"/>
        <line num="50" count="36" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.campaign">
      <metrics statements="96" coveredstatements="82" conditionals="24" coveredconditionals="15" methods="24" coveredmethods="16"/>
      <file name="campaign.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/campaign/campaign.component.html">
        <metrics statements="52" coveredstatements="52" conditionals="4" coveredconditionals="4" methods="4" coveredmethods="3"/>
        <line num="10" count="1516" type="stmt"/>
        <line num="11" count="11" type="stmt"/>
        <line num="12" count="11" type="stmt"/>
        <line num="13" count="11" type="stmt"/>
        <line num="15" count="1516" type="stmt"/>
        <line num="16" count="1516" type="stmt"/>
        <line num="17" count="11" type="stmt"/>
        <line num="18" count="11" type="stmt"/>
        <line num="19" count="1516" type="stmt"/>
        <line num="20" count="362" type="stmt"/>
        <line num="21" count="2" type="stmt"/>
        <line num="22" count="2" type="stmt"/>
        <line num="23" count="1516" type="stmt"/>
        <line num="24" count="396" type="stmt"/>
        <line num="25" count="1516" type="stmt"/>
        <line num="26" count="396" type="stmt"/>
        <line num="27" count="9" type="stmt"/>
        <line num="28" count="9" type="stmt"/>
        <line num="30" count="11" type="stmt"/>
        <line num="32" count="1516" type="stmt"/>
        <line num="34" count="11" type="stmt"/>
        <line num="35" count="11" type="stmt"/>
        <line num="36" count="11" type="stmt"/>
        <line num="38" count="11" type="stmt"/>
        <line num="40" count="11" type="stmt"/>
        <line num="41" count="11" type="stmt"/>
        <line num="42" count="11" type="stmt"/>
        <line num="44" count="11" type="stmt"/>
        <line num="45" count="1516" type="cond" truecount="2" falsecount="0"/>
        <line num="46" count="396" type="cond" truecount="2" falsecount="0"/>
        <line num="47" count="162" type="stmt"/>
        <line num="49" count="162" type="stmt"/>
        <line num="52" count="4" type="stmt"/>
        <line num="53" count="4" type="stmt"/>
        <line num="54" count="4" type="stmt"/>
        <line num="55" count="4" type="stmt"/>
        <line num="56" count="4" type="stmt"/>
        <line num="57" count="4" type="stmt"/>
        <line num="58" count="4" type="stmt"/>
        <line num="60" count="4" type="stmt"/>
        <line num="62" count="602" type="stmt"/>
        <line num="63" count="602" type="stmt"/>
        <line num="64" count="602" type="stmt"/>
        <line num="65" count="602" type="stmt"/>
        <line num="66" count="602" type="stmt"/>
        <line num="67" count="6" type="stmt"/>
        <line num="68" count="6" type="stmt"/>
        <line num="71" count="4" type="stmt"/>
        <line num="72" count="792" type="stmt"/>
        <line num="74" count="792" type="stmt"/>
        <line num="76" count="9" type="stmt"/>
        <line num="86" count="11" type="stmt"/>
      </file>
      <file name="campaign.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/campaign/campaign.component.ts">
        <metrics statements="44" coveredstatements="30" conditionals="20" coveredconditionals="11" methods="20" coveredmethods="13"/>
        <line num="16" count="46" type="cond" truecount="2" falsecount="0"/>
        <line num="21" count="11" type="stmt"/>
        <line num="22" count="11" type="stmt"/>
        <line num="24" count="11" type="stmt"/>
        <line num="28" count="11" type="stmt"/>
        <line num="33" count="11" type="cond" truecount="2" falsecount="0"/>
        <line num="34" count="11" type="cond" truecount="2" falsecount="0"/>
        <line num="35" count="9" type="stmt"/>
        <line num="37" count="9" type="stmt"/>
        <line num="38" count="9" type="stmt"/>
        <line num="39" count="9" type="stmt"/>
        <line num="40" count="9" type="stmt"/>
        <line num="43" count="0" type="stmt"/>
        <line num="50" count="3" type="stmt"/>
        <line num="51" count="3" type="stmt"/>
        <line num="52" count="3" type="cond" truecount="1" falsecount="1"/>
        <line num="53" count="3" type="stmt"/>
        <line num="55" count="0" type="stmt"/>
        <line num="56" count="0" type="stmt"/>
        <line num="60" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="61" count="2" type="stmt"/>
        <line num="63" count="2" type="stmt"/>
        <line num="64" count="2" type="stmt"/>
        <line num="65" count="2" type="stmt"/>
        <line num="68" count="0" type="stmt"/>
        <line num="75" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="76" count="1" type="stmt"/>
        <line num="78" count="1" type="stmt"/>
        <line num="81" count="0" type="stmt"/>
        <line num="88" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="89" count="1" type="stmt"/>
        <line num="91" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="92" count="1" type="stmt"/>
        <line num="93" count="1" type="stmt"/>
        <line num="96" count="0" type="stmt"/>
        <line num="100" count="0" type="stmt"/>
        <line num="107" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="108" count="0" type="stmt"/>
        <line num="110" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="111" count="0" type="stmt"/>
        <line num="112" count="0" type="stmt"/>
        <line num="115" count="0" type="stmt"/>
        <line num="119" count="0" type="stmt"/>
        <line num="126" count="9" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.campaigns">
      <metrics statements="22" coveredstatements="22" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
      <file name="campaigns.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/campaigns/campaigns.component.html">
        <metrics statements="19" coveredstatements="19" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="10" type="stmt"/>
        <line num="3" count="552" type="stmt"/>
        <line num="5" count="552" type="stmt"/>
        <line num="6" count="162" type="stmt"/>
        <line num="9" count="9" type="stmt"/>
        <line num="10" count="9" type="stmt"/>
        <line num="11" count="9" type="stmt"/>
        <line num="12" count="9" type="stmt"/>
        <line num="13" count="9" type="stmt"/>
        <line num="15" count="9" type="stmt"/>
        <line num="16" count="254" type="stmt"/>
        <line num="17" count="522" type="stmt"/>
        <line num="18" count="522" type="stmt"/>
        <line num="19" count="522" type="stmt"/>
        <line num="20" count="14" type="stmt"/>
        <line num="21" count="14" type="stmt"/>
        <line num="23" count="9" type="stmt"/>
        <line num="24" count="324" type="stmt"/>
        <line num="25" count="9" type="stmt"/>
      </file>
      <file name="campaigns.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/campaigns/campaigns.component.ts">
        <metrics statements="3" coveredstatements="3" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
        <line num="15" count="45" type="cond" truecount="2" falsecount="0"/>
        <line num="18" count="10" type="stmt"/>
        <line num="21" count="9" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.countdown">
      <metrics statements="97" coveredstatements="94" conditionals="38" coveredconditionals="35" methods="8" coveredmethods="7"/>
      <file name="countdown.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/countdown/countdown.component.html">
        <metrics statements="58" coveredstatements="58" conditionals="26" coveredconditionals="25" methods="0" coveredmethods="0"/>
        <line num="1" count="1" type="stmt"/>
        <line num="2" count="288" type="stmt"/>
        <line num="4" count="213" type="cond" truecount="1" falsecount="1"/>
        <line num="5" count="1" type="stmt"/>
        <line num="7" count="213" type="stmt"/>
        <line num="8" count="1" type="stmt"/>
        <line num="9" count="1" type="stmt"/>
        <line num="11" count="213" type="stmt"/>
        <line num="12" count="1" type="stmt"/>
        <line num="13" count="1" type="stmt"/>
        <line num="15" count="213" type="stmt"/>
        <line num="16" count="1" type="stmt"/>
        <line num="17" count="1" type="stmt"/>
        <line num="19" count="213" type="stmt"/>
        <line num="20" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="28" count="289" type="stmt"/>
        <line num="29" count="1" type="stmt"/>
        <line num="31" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="32" count="1" type="stmt"/>
        <line num="33" count="1" type="stmt"/>
        <line num="35" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="36" count="1" type="stmt"/>
        <line num="37" count="1" type="stmt"/>
        <line num="39" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="40" count="1" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="43" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="44" count="1" type="stmt"/>
        <line num="45" count="1" type="stmt"/>
        <line num="47" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="48" count="1" type="stmt"/>
        <line num="49" count="1" type="stmt"/>
        <line num="51" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="52" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="58" count="1" type="stmt"/>
        <line num="59" count="1" type="stmt"/>
        <line num="60" count="1" type="stmt"/>
        <line num="62" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="63" count="1" type="stmt"/>
        <line num="64" count="1" type="stmt"/>
        <line num="66" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="67" count="1" type="stmt"/>
        <line num="68" count="1" type="stmt"/>
        <line num="70" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="71" count="1" type="stmt"/>
        <line num="72" count="1" type="stmt"/>
        <line num="74" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="75" count="1" type="stmt"/>
        <line num="76" count="1" type="stmt"/>
        <line num="78" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="79" count="1" type="stmt"/>
        <line num="80" count="1" type="stmt"/>
        <line num="82" count="289" type="cond" truecount="2" falsecount="0"/>
        <line num="83" count="1" type="stmt"/>
        <line num="86" count="1" type="stmt"/>
      </file>
      <file name="countdown.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/countdown/countdown.component.ts">
        <metrics statements="39" coveredstatements="36" conditionals="12" coveredconditionals="10" methods="8" coveredmethods="7"/>
        <line num="11" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="13" count="1" type="stmt"/>
        <line num="14" count="1" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="16" count="1" type="stmt"/>
        <line num="17" count="1" type="stmt"/>
        <line num="18" count="1" type="stmt"/>
        <line num="19" count="1" type="stmt"/>
        <line num="20" count="1" type="stmt"/>
        <line num="26" count="1" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="29" count="10" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
        <line num="34" count="3" type="stmt"/>
        <line num="35" count="3" type="stmt"/>
        <line num="39" count="0" type="stmt"/>
        <line num="43" count="14" type="stmt"/>
        <line num="44" count="14" type="cond" truecount="2" falsecount="0"/>
        <line num="45" count="13" type="stmt"/>
        <line num="47" count="13" type="stmt"/>
        <line num="48" count="13" type="cond" truecount="1" falsecount="1"/>
        <line num="49" count="0" type="stmt"/>
        <line num="52" count="13" type="stmt"/>
        <line num="53" count="13" type="stmt"/>
        <line num="54" count="13" type="stmt"/>
        <line num="55" count="13" type="stmt"/>
        <line num="58" count="1" type="stmt"/>
        <line num="59" count="1" type="stmt"/>
        <line num="60" count="1" type="stmt"/>
        <line num="61" count="1" type="stmt"/>
        <line num="66" count="424" type="cond" truecount="1" falsecount="1"/>
        <line num="67" count="0" type="stmt"/>
        <line num="69" count="424" type="cond" truecount="2" falsecount="0"/>
        <line num="73" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="74" count="3" type="stmt"/>
        <line num="76" count="3" type="stmt"/>
        <line num="77" count="3" type="stmt"/>
        <line num="80" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.custom-view">
      <metrics statements="39" coveredstatements="27" conditionals="17" coveredconditionals="8" methods="9" coveredmethods="8"/>
      <file name="custom-view.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/custom-view/custom-view.component.html">
        <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="1" type="stmt"/>
        <line num="2" count="1" type="stmt"/>
        <line num="3" count="1" type="stmt"/>
      </file>
      <file name="custom-view.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/custom-view/custom-view.component.ts">
        <metrics statements="36" coveredstatements="24" conditionals="17" coveredconditionals="8" methods="9" coveredmethods="8"/>
        <line num="12" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="13" count="1" type="stmt"/>
        <line num="17" count="1" type="stmt"/>
        <line num="18" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="22" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="23" count="1" type="stmt"/>
        <line num="25" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="26" count="1" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="34" count="0" type="stmt"/>
        <line num="40" count="1" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="43" count="1" type="stmt"/>
        <line num="44" count="2" type="stmt"/>
        <line num="45" count="2" type="stmt"/>
        <line num="46" count="2" type="stmt"/>
        <line num="50" count="2" type="stmt"/>
        <line num="52" count="2" type="cond" truecount="2" falsecount="5"/>
        <line num="54" count="0" type="stmt"/>
        <line num="55" count="0" type="stmt"/>
        <line num="58" count="0" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="62" count="0" type="stmt"/>
        <line num="63" count="0" type="stmt"/>
        <line num="66" count="1" type="stmt"/>
        <line num="67" count="1" type="stmt"/>
        <line num="70" count="1" type="stmt"/>
        <line num="71" count="1" type="stmt"/>
        <line num="74" count="0" type="stmt"/>
        <line num="75" count="0" type="stmt"/>
        <line num="78" count="0" type="stmt"/>
        <line num="81" count="2" type="stmt"/>
        <line num="82" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="83" count="2" type="stmt"/>
        <line num="86" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.custom-views">
      <metrics statements="19" coveredstatements="17" conditionals="2" coveredconditionals="2" methods="7" coveredmethods="5"/>
      <file name="custom-views.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/custom-views/custom-views.component.html">
        <metrics statements="12" coveredstatements="12" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="2" count="188" type="stmt"/>
        <line num="4" count="188" type="stmt"/>
        <line num="7" count="2" type="stmt"/>
        <line num="8" count="2" type="stmt"/>
        <line num="9" count="2" type="stmt"/>
        <line num="11" count="2" type="stmt"/>
        <line num="13" count="21" type="stmt"/>
        <line num="14" count="20" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="17" count="2" type="stmt"/>
        <line num="19" count="2" type="stmt"/>
        <line num="20" count="2" type="stmt"/>
      </file>
      <file name="custom-views.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/custom-views/custom-views.component.ts">
        <metrics statements="7" coveredstatements="5" conditionals="2" coveredconditionals="2" methods="7" coveredmethods="5"/>
        <line num="16" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="20" count="2" type="stmt"/>
        <line num="23" count="2" type="stmt"/>
        <line num="25" count="2" type="stmt"/>
        <line num="27" count="2" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="35" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.dashboard">
      <metrics statements="85" coveredstatements="74" conditionals="10" coveredconditionals="5" methods="12" coveredmethods="8"/>
      <file name="dashboard.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/dashboard/dashboard.component.html">
        <metrics statements="30" coveredstatements="30" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
        <line num="1" count="48" type="stmt"/>
        <line num="2" count="48" type="stmt"/>
        <line num="5" count="2700" type="stmt"/>
        <line num="8" count="2700" type="stmt"/>
        <line num="11" count="23" type="stmt"/>
        <line num="12" count="564" type="stmt"/>
        <line num="13" count="587" type="stmt"/>
        <line num="16" count="23" type="stmt"/>
        <line num="20" count="23" type="stmt"/>
        <line num="21" count="564" type="stmt"/>
        <line num="22" count="587" type="stmt"/>
        <line num="25" count="23" type="stmt"/>
        <line num="29" count="23" type="stmt"/>
        <line num="30" count="564" type="stmt"/>
        <line num="31" count="587" type="stmt"/>
        <line num="34" count="23" type="stmt"/>
        <line num="38" count="23" type="stmt"/>
        <line num="39" count="564" type="stmt"/>
        <line num="40" count="587" type="stmt"/>
        <line num="43" count="23" type="stmt"/>
        <line num="47" count="23" type="stmt"/>
        <line num="48" count="564" type="stmt"/>
        <line num="49" count="587" type="stmt"/>
        <line num="52" count="23" type="stmt"/>
        <line num="56" count="23" type="stmt"/>
        <line num="57" count="564" type="stmt"/>
        <line num="58" count="587" type="stmt"/>
        <line num="63" count="23" type="stmt"/>
        <line num="66" count="2700" type="stmt"/>
        <line num="67" count="2700" type="stmt"/>
      </file>
      <file name="dashboard.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/dashboard/dashboard.component.ts">
        <metrics statements="55" coveredstatements="44" conditionals="10" coveredconditionals="5" methods="11" coveredmethods="8"/>
        <line num="19" count="35" type="stmt"/>
        <line num="28" count="83" type="cond" truecount="2" falsecount="0"/>
        <line num="33" count="48" type="stmt"/>
        <line num="34" count="48" type="stmt"/>
        <line num="35" count="48" type="stmt"/>
        <line num="39" count="48" type="stmt"/>
        <line num="42" count="25" type="stmt"/>
        <line num="44" count="25" type="stmt"/>
        <line num="45" count="25" type="stmt"/>
        <line num="46" count="25" type="stmt"/>
        <line num="47" count="25" type="stmt"/>
        <line num="48" count="25" type="stmt"/>
        <line num="49" count="25" type="stmt"/>
        <line num="51" count="525" type="stmt"/>
        <line num="52" count="525" type="stmt"/>
        <line num="53" count="525" type="stmt"/>
        <line num="54" count="3675" type="stmt"/>
        <line num="55" count="3675" type="stmt"/>
        <line num="56" count="3675" type="stmt"/>
        <line num="57" count="3675" type="stmt"/>
        <line num="58" count="3675" type="stmt"/>
        <line num="61" count="25" type="stmt"/>
        <line num="63" count="25" type="stmt"/>
        <line num="64" count="25" type="stmt"/>
        <line num="66" count="25" type="stmt"/>
        <line num="68" count="25" type="stmt"/>
        <line num="76" count="0" type="stmt"/>
        <line num="77" count="0" type="stmt"/>
        <line num="78" count="0" type="stmt"/>
        <line num="79" count="0" type="stmt"/>
        <line num="80" count="0" type="stmt"/>
        <line num="81" count="0" type="stmt"/>
        <line num="127" count="25" type="stmt"/>
        <line num="128" count="25" type="stmt"/>
        <line num="133" count="25" type="stmt"/>
        <line num="135" count="25" type="stmt"/>
        <line num="136" count="25" type="stmt"/>
        <line num="137" count="81" type="stmt"/>
        <line num="138" count="81" type="stmt"/>
        <line num="139" count="81" type="cond" truecount="2" falsecount="0"/>
        <line num="140" count="25" type="stmt"/>
        <line num="143" count="56" type="stmt"/>
        <line num="146" count="25" type="stmt"/>
        <line num="147" count="25" type="stmt"/>
        <line num="148" count="25" type="stmt"/>
        <line num="149" count="25" type="cond" truecount="1" falsecount="1"/>
        <line num="150" count="25" type="stmt"/>
        <line num="153" count="25" type="stmt"/>
        <line num="154" count="25" type="stmt"/>
        <line num="156" count="0" type="stmt"/>
        <line num="161" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="162" count="0" type="stmt"/>
        <line num="163" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="164" count="0" type="stmt"/>
        <line num="170" count="44" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.device">
      <metrics statements="56" coveredstatements="54" conditionals="8" coveredconditionals="8" methods="11" coveredmethods="10"/>
      <file name="device.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device/device.component.html">
        <metrics statements="36" coveredstatements="36" conditionals="6" coveredconditionals="6" methods="1" coveredmethods="1"/>
        <line num="1" count="206" type="stmt"/>
        <line num="3" count="412" type="cond" truecount="2" falsecount="0"/>
        <line num="4" count="4" type="stmt"/>
        <line num="6" count="4" type="stmt"/>
        <line num="7" count="4" type="stmt"/>
        <line num="9" count="4" type="stmt"/>
        <line num="10" count="4" type="stmt"/>
        <line num="18" count="4" type="stmt"/>
        <line num="20" count="412" type="stmt"/>
        <line num="21" count="3" type="stmt"/>
        <line num="23" count="272" type="stmt"/>
        <line num="25" count="3" type="stmt"/>
        <line num="29" count="136" type="stmt"/>
        <line num="31" count="136" type="stmt"/>
        <line num="34" count="3" type="stmt"/>
        <line num="35" count="3" type="stmt"/>
        <line num="36" count="3" type="stmt"/>
        <line num="37" count="3" type="stmt"/>
        <line num="38" count="3" type="stmt"/>
        <line num="39" count="3" type="stmt"/>
        <line num="41" count="3" type="stmt"/>
        <line num="43" count="825" type="stmt"/>
        <line num="44" count="825" type="stmt"/>
        <line num="45" count="825" type="stmt"/>
        <line num="46" count="825" type="stmt"/>
        <line num="47" count="9" type="stmt"/>
        <line num="48" count="816" type="cond" truecount="2" falsecount="0"/>
        <line num="49" count="272" type="stmt"/>
        <line num="50" count="6" type="stmt"/>
        <line num="51" count="816" type="cond" truecount="2" falsecount="0"/>
        <line num="52" count="816" type="stmt"/>
        <line num="54" count="9" type="stmt"/>
        <line num="57" count="3" type="stmt"/>
        <line num="58" count="3" type="stmt"/>
        <line num="59" count="272" type="stmt"/>
        <line num="62" count="3" type="stmt"/>
      </file>
      <file name="device.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device/device.component.ts">
        <metrics statements="20" coveredstatements="18" conditionals="2" coveredconditionals="2" methods="10" coveredmethods="9"/>
        <line num="23" count="40" type="cond" truecount="2" falsecount="0"/>
        <line num="24" count="5" type="stmt"/>
        <line num="27" count="5" type="stmt"/>
        <line num="29" count="5" type="stmt"/>
        <line num="33" count="5" type="stmt"/>
        <line num="34" count="5" type="stmt"/>
        <line num="38" count="4" type="stmt"/>
        <line num="39" count="4" type="stmt"/>
        <line num="40" count="4" type="stmt"/>
        <line num="41" count="4" type="stmt"/>
        <line num="42" count="3" type="stmt"/>
        <line num="43" count="3" type="stmt"/>
        <line num="46" count="1" type="stmt"/>
        <line num="53" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="55" count="1" type="stmt"/>
        <line num="58" count="0" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="66" count="4" type="stmt"/>
        <line num="67" count="4" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.device-card">
      <metrics statements="49" coveredstatements="48" conditionals="6" coveredconditionals="5" methods="6" coveredmethods="6"/>
      <file name="device-card.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-card/device-card.component.html">
        <metrics statements="37" coveredstatements="37" conditionals="2" coveredconditionals="2" methods="0" coveredmethods="0"/>
        <line num="1" count="136" type="stmt"/>
        <line num="3" count="91" type="stmt"/>
        <line num="4" count="91" type="stmt"/>
        <line num="9" count="3" type="stmt"/>
        <line num="10" count="91" type="stmt"/>
        <line num="12" count="3" type="stmt"/>
        <line num="13" count="88" type="cond" truecount="2" falsecount="0"/>
        <line num="15" count="3" type="stmt"/>
        <line num="16" count="91" type="stmt"/>
        <line num="18" count="3" type="stmt"/>
        <line num="19" count="88" type="stmt"/>
        <line num="21" count="3" type="stmt"/>
        <line num="22" count="88" type="stmt"/>
        <line num="23" count="91" type="stmt"/>
        <line num="25" count="3" type="stmt"/>
        <line num="27" count="3" type="stmt"/>
        <line num="29" count="88" type="stmt"/>
        <line num="30" count="3" type="stmt"/>
        <line num="31" count="3" type="stmt"/>
        <line num="32" count="3" type="stmt"/>
        <line num="33" count="3" type="stmt"/>
        <line num="34" count="3" type="stmt"/>
        <line num="35" count="88" type="stmt"/>
        <line num="36" count="3" type="stmt"/>
        <line num="37" count="3" type="stmt"/>
        <line num="38" count="3" type="stmt"/>
        <line num="39" count="3" type="stmt"/>
        <line num="40" count="3" type="stmt"/>
        <line num="41" count="88" type="stmt"/>
        <line num="42" count="3" type="stmt"/>
        <line num="43" count="3" type="stmt"/>
        <line num="44" count="3" type="stmt"/>
        <line num="45" count="3" type="stmt"/>
        <line num="46" count="3" type="stmt"/>
        <line num="49" count="3" type="stmt"/>
        <line num="50" count="91" type="stmt"/>
        <line num="54" count="3" type="stmt"/>
      </file>
      <file name="device-card.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-card/device-card.component.ts">
        <metrics statements="12" coveredstatements="11" conditionals="4" coveredconditionals="3" methods="6" coveredmethods="6"/>
        <line num="14" count="38" type="cond" truecount="2" falsecount="0"/>
        <line num="23" count="3" type="stmt"/>
        <line num="26" count="3" type="stmt"/>
        <line num="27" count="3" type="stmt"/>
        <line num="29" count="3" type="stmt"/>
        <line num="30" count="3" type="cond" truecount="1" falsecount="1"/>
        <line num="31" count="3" type="stmt"/>
        <line num="34" count="0" type="stmt"/>
        <line num="36" count="3" type="stmt"/>
        <line num="37" count="3" type="stmt"/>
        <line num="38" count="3" type="stmt"/>
        <line num="45" count="3" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.device-card-mini">
      <metrics statements="12" coveredstatements="1" conditionals="2" coveredconditionals="0" methods="6" coveredmethods="1"/>
      <file name="device-card-mini.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-card-mini/device-card-mini.component.html">
        <metrics statements="7" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="0" type="stmt"/>
        <line num="5" count="0" type="stmt"/>
        <line num="6" count="0" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
        <line num="10" count="0" type="stmt"/>
        <line num="11" count="0" type="stmt"/>
        <line num="14" count="0" type="stmt"/>
      </file>
      <file name="device-card-mini.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-card-mini/device-card-mini.component.ts">
        <metrics statements="5" coveredstatements="1" conditionals="2" coveredconditionals="0" methods="6" coveredmethods="1"/>
        <line num="13" count="35" type="cond" truecount="0" falsecount="2"/>
        <line num="20" count="0" type="stmt"/>
        <line num="23" count="0" type="stmt"/>
        <line num="25" count="0" type="stmt"/>
        <line num="31" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.device-setup">
      <metrics statements="39" coveredstatements="1" conditionals="4" coveredconditionals="0" methods="8" coveredmethods="1"/>
      <file name="device-setup.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-setup/device-setup.component.html">
        <metrics statements="25" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
        <line num="1" count="0" type="stmt"/>
        <line num="2" count="0" type="stmt"/>
        <line num="5" count="0" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
        <line num="9" count="0" type="stmt"/>
        <line num="10" count="0" type="stmt"/>
        <line num="11" count="0" type="stmt"/>
        <line num="12" count="0" type="stmt"/>
        <line num="17" count="0" type="stmt"/>
        <line num="20" count="0" type="stmt"/>
        <line num="21" count="0" type="stmt"/>
        <line num="22" count="0" type="stmt"/>
        <line num="23" count="0" type="stmt"/>
        <line num="25" count="0" type="stmt"/>
        <line num="27" count="0" type="stmt"/>
        <line num="28" count="0" type="stmt"/>
        <line num="29" count="0" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="32" count="0" type="stmt"/>
        <line num="35" count="0" type="stmt"/>
        <line num="36" count="0" type="stmt"/>
        <line num="39" count="0" type="stmt"/>
        <line num="41" count="0" type="stmt"/>
        <line num="42" count="0" type="stmt"/>
        <line num="43" count="0" type="stmt"/>
      </file>
      <file name="device-setup.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-setup/device-setup.component.ts">
        <metrics statements="14" coveredstatements="1" conditionals="4" coveredconditionals="0" methods="7" coveredmethods="1"/>
        <line num="17" count="35" type="cond" truecount="0" falsecount="2"/>
        <line num="18" count="0" type="stmt"/>
        <line num="23" count="0" type="stmt"/>
        <line num="24" count="0" type="stmt"/>
        <line num="25" count="0" type="stmt"/>
        <line num="29" count="0" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="31" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="32" count="0" type="stmt"/>
        <line num="34" count="0" type="stmt"/>
        <line num="35" count="0" type="stmt"/>
        <line num="43" count="0" type="stmt"/>
        <line num="45" count="0" type="stmt"/>
        <line num="46" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.device-setups">
      <metrics statements="15" coveredstatements="11" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
      <file name="device-setups.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-setups/device-setups.component.html">
        <metrics statements="12" coveredstatements="8" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="2" type="stmt"/>
        <line num="3" count="58" type="stmt"/>
        <line num="5" count="58" type="stmt"/>
        <line num="8" count="2" type="stmt"/>
        <line num="9" count="2" type="stmt"/>
        <line num="10" count="2" type="stmt"/>
        <line num="12" count="2" type="stmt"/>
        <line num="13" count="0" type="stmt"/>
        <line num="14" count="0" type="stmt"/>
        <line num="15" count="0" type="stmt"/>
        <line num="16" count="0" type="stmt"/>
        <line num="18" count="2" type="stmt"/>
      </file>
      <file name="device-setups.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-setups/device-setups.component.ts">
        <metrics statements="3" coveredstatements="3" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
        <line num="14" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="18" count="2" type="stmt"/>
        <line num="21" count="2" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.device-states">
      <metrics statements="62" coveredstatements="55" conditionals="22" coveredconditionals="14" methods="17" coveredmethods="12"/>
      <file name="device-states.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-states/device-states.component.html">
        <metrics statements="23" coveredstatements="23" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="1"/>
        <line num="3" count="77" type="stmt"/>
        <line num="4" count="77" type="stmt"/>
        <line num="6" count="1" type="stmt"/>
        <line num="8" count="2" type="stmt"/>
        <line num="9" count="76" type="stmt"/>
        <line num="20" count="2" type="stmt"/>
        <line num="21" count="1" type="stmt"/>
        <line num="23" count="12" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
        <line num="35" count="1" type="stmt"/>
        <line num="36" count="1" type="stmt"/>
        <line num="37" count="1" type="stmt"/>
        <line num="38" count="1" type="stmt"/>
        <line num="39" count="1" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="43" count="250" type="stmt"/>
        <line num="44" count="250" type="stmt"/>
        <line num="45" count="250" type="stmt"/>
        <line num="46" count="250" type="stmt"/>
        <line num="47" count="10" type="stmt"/>
        <line num="49" count="1" type="stmt"/>
      </file>
      <file name="device-states.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/device-states/device-states.component.ts">
        <metrics statements="39" coveredstatements="32" conditionals="22" coveredconditionals="14" methods="15" coveredmethods="11"/>
        <line num="25" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="29" count="1" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
        <line num="31" count="1" type="stmt"/>
        <line num="32" count="1" type="stmt"/>
        <line num="33" count="1" type="stmt"/>
        <line num="34" count="1" type="stmt"/>
        <line num="39" count="1" type="stmt"/>
        <line num="42" count="1" type="stmt"/>
        <line num="43" count="1" type="stmt"/>
        <line num="44" count="1" type="stmt"/>
        <line num="45" count="1" type="stmt"/>
        <line num="47" count="1" type="stmt"/>
        <line num="50" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="51" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="53" count="1" type="stmt"/>
        <line num="54" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="55" count="1" type="stmt"/>
        <line num="60" count="0" type="stmt"/>
        <line num="64" count="0" type="stmt"/>
        <line num="68" count="0" type="stmt"/>
        <line num="69" count="0" type="stmt"/>
        <line num="71" count="0" type="stmt"/>
        <line num="78" count="2" type="stmt"/>
        <line num="82" count="2" type="stmt"/>
        <line num="83" count="2" type="stmt"/>
        <line num="85" count="2" type="stmt"/>
        <line num="88" count="1" type="stmt"/>
        <line num="91" count="0" type="stmt"/>
        <line num="97" count="1" type="cond" truecount="3" falsecount="1"/>
        <line num="98" count="1" type="stmt"/>
        <line num="100" count="1" type="cond" truecount="3" falsecount="1"/>
        <line num="101" count="1" type="stmt"/>
        <line num="104" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="105" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="106" count="0" type="stmt"/>
        <line num="109" count="1" type="stmt"/>
        <line num="110" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="112" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.devices">
      <metrics statements="55" coveredstatements="45" conditionals="18" coveredconditionals="8" methods="12" coveredmethods="9"/>
      <file name="devices.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/devices/devices.component.html">
        <metrics statements="29" coveredstatements="29" conditionals="6" coveredconditionals="2" methods="1" coveredmethods="0"/>
        <line num="1" count="2" type="stmt"/>
        <line num="3" count="128" type="stmt"/>
        <line num="5" count="128" type="stmt"/>
        <line num="7" count="22" type="cond" truecount="0" falsecount="2"/>
        <line num="9" count="20" type="stmt"/>
        <line num="12" count="2" type="stmt"/>
        <line num="13" count="2" type="stmt"/>
        <line num="14" count="2" type="stmt"/>
        <line num="15" count="2" type="stmt"/>
        <line num="16" count="2" type="stmt"/>
        <line num="17" count="2" type="stmt"/>
        <line num="18" count="2" type="stmt"/>
        <line num="20" count="2" type="stmt"/>
        <line num="21" count="60" type="stmt"/>
        <line num="22" count="126" type="stmt"/>
        <line num="23" count="126" type="stmt"/>
        <line num="24" count="6" type="stmt"/>
        <line num="25" count="120" type="cond" truecount="1" falsecount="1"/>
        <line num="26" count="66" type="stmt"/>
        <line num="28" count="6" type="stmt"/>
        <line num="30" count="6" type="stmt"/>
        <line num="31" count="252" type="stmt"/>
        <line num="32" count="12" type="stmt"/>
        <line num="34" count="6" type="stmt"/>
        <line num="35" count="126" type="stmt"/>
        <line num="36" count="6" type="stmt"/>
        <line num="37" count="60" type="cond" truecount="1" falsecount="1"/>
        <line num="39" count="6" type="stmt"/>
        <line num="42" count="2" type="stmt"/>
      </file>
      <file name="devices.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/devices/devices.component.ts">
        <metrics statements="26" coveredstatements="16" conditionals="12" coveredconditionals="6" methods="11" coveredmethods="9"/>
        <line num="17" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="21" count="2" type="stmt"/>
        <line num="22" count="2" type="stmt"/>
        <line num="24" count="2" type="stmt"/>
        <line num="25" count="2" type="stmt"/>
        <line num="28" count="2" type="stmt"/>
        <line num="31" count="2" type="stmt"/>
        <line num="32" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="33" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="34" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="36" count="2" type="stmt"/>
        <line num="39" count="2" type="stmt"/>
        <line num="41" count="2" type="stmt"/>
        <line num="42" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="44" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="46" count="0" type="stmt"/>
        <line num="47" count="0" type="stmt"/>
        <line num="49" count="0" type="stmt"/>
        <line num="50" count="0" type="stmt"/>
        <line num="52" count="0" type="stmt"/>
        <line num="53" count="0" type="stmt"/>
        <line num="60" count="2" type="stmt"/>
        <line num="64" count="0" type="stmt"/>
        <line num="65" count="0" type="stmt"/>
        <line num="67" count="0" type="stmt"/>
        <line num="74" count="4" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.empty-placeholder">
      <metrics statements="12" coveredstatements="1" conditionals="6" coveredconditionals="0" methods="4" coveredmethods="1"/>
      <file name="empty-placeholder.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/empty-placeholder/empty-placeholder.component.html">
        <metrics statements="3" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="3" count="0" type="stmt"/>
        <line num="4" count="0" type="stmt"/>
        <line num="6" count="0" type="stmt"/>
      </file>
      <file name="empty-placeholder.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/empty-placeholder/empty-placeholder.component.ts">
        <metrics statements="9" coveredstatements="1" conditionals="6" coveredconditionals="0" methods="4" coveredmethods="1"/>
        <line num="10" count="35" type="cond" truecount="0" falsecount="2"/>
        <line num="12" count="0" type="stmt"/>
        <line num="14" count="0" type="stmt"/>
        <line num="17" count="0" type="stmt"/>
        <line num="18" count="0" type="stmt"/>
        <line num="19" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="20" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="21" count="0" type="stmt"/>
        <line num="23" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.error">
      <metrics statements="21" coveredstatements="20" conditionals="8" coveredconditionals="5" methods="5" coveredmethods="3"/>
      <file name="error.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/error/error.component.html">
        <metrics statements="13" coveredstatements="13" conditionals="2" coveredconditionals="1" methods="1" coveredmethods="0"/>
        <line num="4" count="1" type="stmt"/>
        <line num="5" count="28" type="stmt"/>
        <line num="6" count="28" type="stmt"/>
        <line num="7" count="1" type="stmt"/>
        <line num="8" count="1" type="stmt"/>
        <line num="9" count="28" type="stmt"/>
        <line num="10" count="29" type="cond" truecount="1" falsecount="1"/>
        <line num="11" count="29" type="stmt"/>
        <line num="12" count="29" type="stmt"/>
        <line num="13" count="29" type="stmt"/>
        <line num="14" count="1" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="19" count="1" type="stmt"/>
      </file>
      <file name="error.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/error/error.component.ts">
        <metrics statements="8" coveredstatements="7" conditionals="6" coveredconditionals="4" methods="4" coveredmethods="3"/>
        <line num="12" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="17" count="1" type="stmt"/>
        <line num="20" count="1" type="stmt"/>
        <line num="21" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="22" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="23" count="1" type="stmt"/>
        <line num="25" count="1" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.event">
      <metrics statements="18" coveredstatements="15" conditionals="2" coveredconditionals="2" methods="5" coveredmethods="4"/>
      <file name="event.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/event/event.component.html">
        <metrics statements="9" coveredstatements="7" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="2" count="146" type="stmt"/>
        <line num="3" count="269" type="stmt"/>
        <line num="4" count="269" type="stmt"/>
        <line num="5" count="269" type="stmt"/>
        <line num="6" count="134" type="stmt"/>
        <line num="9" count="1" type="stmt"/>
        <line num="10" count="292" type="stmt"/>
        <line num="11" count="0" type="stmt"/>
        <line num="12" count="0" type="stmt"/>
      </file>
      <file name="event.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/event/event.component.ts">
        <metrics statements="9" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="5" coveredmethods="4"/>
        <line num="14" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="21" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
        <line num="31" count="1" type="stmt"/>
        <line num="32" count="1" type="stmt"/>
        <line num="35" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.event-rule">
      <metrics statements="18" coveredstatements="13" conditionals="4" coveredconditionals="4" methods="5" coveredmethods="4"/>
      <file name="event-rule.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/event-rule/event-rule.component.html">
        <metrics statements="9" coveredstatements="7" conditionals="2" coveredconditionals="2" methods="0" coveredmethods="0"/>
        <line num="1" count="26" type="stmt"/>
        <line num="2" count="29" type="stmt"/>
        <line num="3" count="29" type="stmt"/>
        <line num="4" count="29" type="stmt"/>
        <line num="5" count="28" type="cond" truecount="2" falsecount="0"/>
        <line num="6" count="1" type="stmt"/>
        <line num="7" count="52" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
        <line num="9" count="0" type="stmt"/>
      </file>
      <file name="event-rule.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/event-rule/event-rule.component.ts">
        <metrics statements="9" coveredstatements="6" conditionals="2" coveredconditionals="2" methods="5" coveredmethods="4"/>
        <line num="14" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="22" count="1" type="stmt"/>
        <line num="23" count="1" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="29" count="1" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
        <line num="34" count="0" type="stmt"/>
        <line num="36" count="0" type="stmt"/>
        <line num="37" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.event-rules">
      <metrics statements="56" coveredstatements="46" conditionals="32" coveredconditionals="21" methods="15" coveredmethods="10"/>
      <file name="event-rules.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/event-rules/event-rules.component.html">
        <metrics statements="19" coveredstatements="19" conditionals="8" coveredconditionals="6" methods="4" coveredmethods="1"/>
        <line num="1" count="52" type="cond" truecount="2" falsecount="0"/>
        <line num="2" count="104" type="stmt"/>
        <line num="4" count="104" type="cond" truecount="2" falsecount="0"/>
        <line num="6" count="104" type="cond" truecount="2" falsecount="0"/>
        <line num="8" count="23" type="cond" truecount="0" falsecount="2"/>
        <line num="10" count="22" type="stmt"/>
        <line num="12" count="1" type="stmt"/>
        <line num="13" count="1" type="stmt"/>
        <line num="14" count="1" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="19" count="1" type="stmt"/>
        <line num="20" count="1" type="stmt"/>
        <line num="21" count="1" type="stmt"/>
        <line num="23" count="1" type="stmt"/>
        <line num="24" count="220" type="stmt"/>
        <line num="25" count="460" type="stmt"/>
        <line num="26" count="460" type="stmt"/>
        <line num="27" count="20" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
      </file>
      <file name="event-rules.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/event-rules/event-rules.component.ts">
        <metrics statements="37" coveredstatements="27" conditionals="24" coveredconditionals="15" methods="11" coveredmethods="9"/>
        <line num="20" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="24" count="2" type="stmt"/>
        <line num="25" count="2" type="stmt"/>
        <line num="26" count="2" type="stmt"/>
        <line num="27" count="2" type="stmt"/>
        <line num="28" count="2" type="stmt"/>
        <line num="32" count="2" type="stmt"/>
        <line num="35" count="2" type="stmt"/>
        <line num="36" count="2" type="stmt"/>
        <line num="37" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="38" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="40" count="2" type="stmt"/>
        <line num="41" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="42" count="0" type="stmt"/>
        <line num="45" count="2" type="stmt"/>
        <line num="46" count="2" type="stmt"/>
        <line num="51" count="3" type="stmt"/>
        <line num="52" count="3" type="stmt"/>
        <line num="53" count="3" type="stmt"/>
        <line num="54" count="3" type="stmt"/>
        <line num="57" count="0" type="stmt"/>
        <line num="63" count="1" type="stmt"/>
        <line num="64" count="1" type="cond" truecount="3" falsecount="1"/>
        <line num="65" count="1" type="stmt"/>
        <line num="67" count="1" type="cond" truecount="3" falsecount="1"/>
        <line num="68" count="1" type="stmt"/>
        <line num="71" count="1" type="cond" truecount="2" falsecount="2"/>
        <line num="72" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="73" count="0" type="stmt"/>
        <line num="76" count="0" type="stmt"/>
        <line num="78" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="79" count="0" type="stmt"/>
        <line num="82" count="1" type="stmt"/>
        <line num="86" count="0" type="stmt"/>
        <line num="87" count="0" type="stmt"/>
        <line num="89" count="0" type="stmt"/>
        <line num="96" count="4" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.events">
      <metrics statements="67" coveredstatements="55" conditionals="36" coveredconditionals="23" methods="15" coveredmethods="10"/>
      <file name="events.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/events/events.component.html">
        <metrics statements="21" coveredstatements="21" conditionals="8" coveredconditionals="6" methods="4" coveredmethods="1"/>
        <line num="1" count="130" type="cond" truecount="2" falsecount="0"/>
        <line num="2" count="260" type="stmt"/>
        <line num="4" count="260" type="cond" truecount="2" falsecount="0"/>
        <line num="6" count="260" type="cond" truecount="2" falsecount="0"/>
        <line num="8" count="92" type="cond" truecount="0" falsecount="2"/>
        <line num="10" count="90" type="stmt"/>
        <line num="12" count="2" type="stmt"/>
        <line num="13" count="2" type="stmt"/>
        <line num="14" count="2" type="stmt"/>
        <line num="15" count="2" type="stmt"/>
        <line num="19" count="2" type="stmt"/>
        <line num="20" count="2" type="stmt"/>
        <line num="21" count="2" type="stmt"/>
        <line num="22" count="2" type="stmt"/>
        <line num="24" count="2" type="stmt"/>
        <line num="25" count="312" type="stmt"/>
        <line num="26" count="644" type="stmt"/>
        <line num="27" count="644" type="stmt"/>
        <line num="28" count="644" type="stmt"/>
        <line num="29" count="20" type="stmt"/>
        <line num="32" count="2" type="stmt"/>
      </file>
      <file name="events.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/events/events.component.ts">
        <metrics statements="46" coveredstatements="34" conditionals="28" coveredconditionals="17" methods="11" coveredmethods="9"/>
        <line num="22" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="24" count="2" type="stmt"/>
        <line num="28" count="2" type="stmt"/>
        <line num="29" count="2" type="stmt"/>
        <line num="30" count="2" type="stmt"/>
        <line num="31" count="2" type="stmt"/>
        <line num="32" count="2" type="stmt"/>
        <line num="33" count="2" type="stmt"/>
        <line num="34" count="2" type="stmt"/>
        <line num="39" count="2" type="stmt"/>
        <line num="42" count="2" type="stmt"/>
        <line num="43" count="2" type="stmt"/>
        <line num="44" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="45" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="47" count="2" type="stmt"/>
        <line num="48" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="49" count="0" type="stmt"/>
        <line num="51" count="2" type="stmt"/>
        <line num="52" count="2" type="stmt"/>
        <line num="54" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="55" count="0" type="stmt"/>
        <line num="57" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="58" count="0" type="stmt"/>
        <line num="60" count="2" type="stmt"/>
        <line num="61" count="2" type="stmt"/>
        <line num="67" count="4" type="stmt"/>
        <line num="68" count="4" type="stmt"/>
        <line num="70" count="4" type="stmt"/>
        <line num="71" count="4" type="stmt"/>
        <line num="74" count="0" type="stmt"/>
        <line num="80" count="2" type="stmt"/>
        <line num="81" count="2" type="cond" truecount="3" falsecount="1"/>
        <line num="82" count="2" type="stmt"/>
        <line num="84" count="2" type="cond" truecount="3" falsecount="1"/>
        <line num="85" count="2" type="stmt"/>
        <line num="88" count="2" type="cond" truecount="2" falsecount="2"/>
        <line num="89" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="90" count="0" type="stmt"/>
        <line num="93" count="0" type="stmt"/>
        <line num="95" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="96" count="0" type="stmt"/>
        <line num="99" count="2" type="stmt"/>
        <line num="103" count="0" type="stmt"/>
        <line num="104" count="0" type="stmt"/>
        <line num="106" count="0" type="stmt"/>
        <line num="113" count="4" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.footer">
      <metrics statements="5" coveredstatements="5" conditionals="4" coveredconditionals="4" methods="4" coveredmethods="4"/>
      <file name="footer.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/footer/footer.component.html">
        <metrics statements="1" coveredstatements="1" conditionals="2" coveredconditionals="2" methods="0" coveredmethods="0"/>
        <line num="1" count="12943" type="cond" truecount="2" falsecount="0"/>
      </file>
      <file name="footer.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/footer/footer.component.ts">
        <metrics statements="4" coveredstatements="4" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
        <line num="11" count="66" type="cond" truecount="2" falsecount="0"/>
        <line num="16" count="31" type="stmt"/>
        <line num="19" count="31" type="stmt"/>
        <line num="20" count="31" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.four-o-four">
      <metrics statements="20" coveredstatements="19" conditionals="4" coveredconditionals="3" methods="4" coveredmethods="4"/>
      <file name="four-o-four.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/four-o-four/four-o-four.component.html">
        <metrics statements="13" coveredstatements="13" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
        <line num="2" count="1" type="stmt"/>
        <line num="3" count="1" type="stmt"/>
        <line num="5" count="1" type="stmt"/>
        <line num="6" count="1" type="stmt"/>
        <line num="7" count="9" type="stmt"/>
        <line num="8" count="1" type="stmt"/>
        <line num="9" count="1" type="stmt"/>
        <line num="10" count="1" type="stmt"/>
        <line num="11" count="1" type="stmt"/>
        <line num="12" count="1" type="stmt"/>
        <line num="13" count="1" type="stmt"/>
        <line num="14" count="1" type="stmt"/>
        <line num="16" count="1" type="stmt"/>
      </file>
      <file name="four-o-four.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/four-o-four/four-o-four.component.ts">
        <metrics statements="7" coveredstatements="6" conditionals="4" coveredconditionals="3" methods="3" coveredmethods="3"/>
        <line num="11" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="13" count="1" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="16" count="1" type="stmt"/>
        <line num="20" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="21" count="1" type="stmt"/>
        <line num="24" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.global-error">
      <metrics statements="19" coveredstatements="1" conditionals="4" coveredconditionals="0" methods="4" coveredmethods="1"/>
      <file name="global-error.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/global-error/global-error.component.html">
        <metrics statements="9" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="3" count="0" type="stmt"/>
        <line num="4" count="0" type="stmt"/>
        <line num="5" count="0" type="stmt"/>
        <line num="7" count="0" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
        <line num="9" count="0" type="stmt"/>
        <line num="10" count="0" type="stmt"/>
        <line num="11" count="0" type="stmt"/>
        <line num="14" count="0" type="stmt"/>
      </file>
      <file name="global-error.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/global-error/global-error.component.ts">
        <metrics statements="10" coveredstatements="1" conditionals="4" coveredconditionals="0" methods="4" coveredmethods="1"/>
        <line num="11" count="35" type="cond" truecount="0" falsecount="2"/>
        <line num="16" count="0" type="stmt"/>
        <line num="17" count="0" type="stmt"/>
        <line num="20" count="0" type="stmt"/>
        <line num="22" count="0" type="stmt"/>
        <line num="25" count="0" type="stmt"/>
        <line num="26" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="27" count="0" type="stmt"/>
        <line num="33" count="0" type="stmt"/>
        <line num="34" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.header">
      <metrics statements="44" coveredstatements="40" conditionals="4" coveredconditionals="4" methods="11" coveredmethods="8"/>
      <file name="header.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/header/header.component.html">
        <metrics statements="27" coveredstatements="27" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="0"/>
        <line num="4" count="31" type="stmt"/>
        <line num="5" count="31" type="stmt"/>
        <line num="6" count="31" type="stmt"/>
        <line num="7" count="31" type="stmt"/>
        <line num="8" count="31" type="stmt"/>
        <line num="9" count="31" type="stmt"/>
        <line num="10" count="12943" type="stmt"/>
        <line num="11" count="31" type="stmt"/>
        <line num="14" count="31" type="stmt"/>
        <line num="15" count="31" type="stmt"/>
        <line num="16" count="31" type="stmt"/>
        <line num="18" count="31" type="stmt"/>
        <line num="19" count="31" type="stmt"/>
        <line num="20" count="31" type="stmt"/>
        <line num="21" count="31" type="stmt"/>
        <line num="22" count="31" type="stmt"/>
        <line num="23" count="31" type="stmt"/>
        <line num="24" count="31" type="stmt"/>
        <line num="25" count="12912" type="cond" truecount="2" falsecount="0"/>
        <line num="26" count="26" type="stmt"/>
        <line num="27" count="26" type="stmt"/>
        <line num="28" count="26" type="stmt"/>
        <line num="29" count="26" type="stmt"/>
        <line num="31" count="31" type="stmt"/>
        <line num="32" count="31" type="stmt"/>
        <line num="33" count="31" type="stmt"/>
        <line num="38" count="31" type="stmt"/>
      </file>
      <file name="header.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/header/header.component.ts">
        <metrics statements="17" coveredstatements="13" conditionals="2" coveredconditionals="2" methods="10" coveredmethods="8"/>
        <line num="14" count="66" type="cond" truecount="2" falsecount="0"/>
        <line num="15" count="31" type="stmt"/>
        <line num="16" count="31" type="stmt"/>
        <line num="22" count="31" type="stmt"/>
        <line num="23" count="31" type="stmt"/>
        <line num="25" count="30" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="29" count="1" type="stmt"/>
        <line num="35" count="31" type="stmt"/>
        <line num="36" count="31" type="stmt"/>
        <line num="37" count="608" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="45" count="639" type="stmt"/>
        <line num="49" count="0" type="stmt"/>
        <line num="50" count="0" type="stmt"/>
        <line num="51" count="0" type="stmt"/>
        <line num="53" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.leftbar">
      <metrics statements="69" coveredstatements="69" conditionals="4" coveredconditionals="4" methods="7" coveredmethods="6"/>
      <file name="leftbar.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/leftbar/leftbar.component.html">
        <metrics statements="62" coveredstatements="62" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="1"/>
        <line num="4" count="31" type="stmt"/>
        <line num="5" count="31" type="stmt"/>
        <line num="7" count="31" type="stmt"/>
        <line num="9" count="31" type="stmt"/>
        <line num="10" count="31" type="stmt"/>
        <line num="11" count="31" type="stmt"/>
        <line num="13" count="31" type="stmt"/>
        <line num="14" count="31" type="stmt"/>
        <line num="15" count="31" type="stmt"/>
        <line num="17" count="31" type="stmt"/>
        <line num="20" count="31" type="stmt"/>
        <line num="21" count="31" type="stmt"/>
        <line num="22" count="31" type="stmt"/>
        <line num="25" count="31" type="stmt"/>
        <line num="26" count="31" type="stmt"/>
        <line num="28" count="31" type="stmt"/>
        <line num="29" count="31" type="stmt"/>
        <line num="30" count="31" type="stmt"/>
        <line num="31" count="31" type="stmt"/>
        <line num="32" count="31" type="stmt"/>
        <line num="34" count="31" type="stmt"/>
        <line num="35" count="31" type="stmt"/>
        <line num="36" count="31" type="stmt"/>
        <line num="38" count="31" type="stmt"/>
        <line num="40" count="31" type="stmt"/>
        <line num="41" count="31" type="stmt"/>
        <line num="42" count="31" type="stmt"/>
        <line num="44" count="31" type="stmt"/>
        <line num="45" count="31" type="stmt"/>
        <line num="46" count="31" type="stmt"/>
        <line num="47" count="31" type="stmt"/>
        <line num="48" count="31" type="stmt"/>
        <line num="49" count="31" type="stmt"/>
        <line num="50" count="31" type="stmt"/>
        <line num="51" count="31" type="stmt"/>
        <line num="52" count="31" type="stmt"/>
        <line num="53" count="31" type="stmt"/>
        <line num="54" count="31" type="stmt"/>
        <line num="55" count="12912" type="stmt"/>
        <line num="56" count="124" type="stmt"/>
        <line num="57" count="3" type="stmt"/>
        <line num="58" count="3" type="stmt"/>
        <line num="59" count="31" type="stmt"/>
        <line num="62" count="31" type="stmt"/>
        <line num="63" count="12912" type="stmt"/>
        <line num="64" count="31" type="stmt"/>
        <line num="65" count="12912" type="stmt"/>
        <line num="66" count="31" type="stmt"/>
        <line num="68" count="31" type="stmt"/>
        <line num="69" count="31" type="stmt"/>
        <line num="70" count="12912" type="cond" truecount="2" falsecount="0"/>
        <line num="73" count="31" type="stmt"/>
        <line num="74" count="31" type="stmt"/>
        <line num="76" count="31" type="stmt"/>
        <line num="78" count="31" type="stmt"/>
        <line num="80" count="5306" type="stmt"/>
        <line num="81" count="10642" type="stmt"/>
        <line num="83" count="30" type="stmt"/>
        <line num="85" count="5306" type="stmt"/>
        <line num="86" count="10642" type="stmt"/>
        <line num="88" count="30" type="stmt"/>
        <line num="91" count="31" type="stmt"/>
      </file>
      <file name="leftbar.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/leftbar/leftbar.component.ts">
        <metrics statements="7" coveredstatements="7" conditionals="2" coveredconditionals="2" methods="5" coveredmethods="5"/>
        <line num="15" count="66" type="cond" truecount="2" falsecount="0"/>
        <line num="16" count="31" type="stmt"/>
        <line num="19" count="31" type="stmt"/>
        <line num="22" count="31" type="stmt"/>
        <line num="23" count="31" type="stmt"/>
        <line num="25" count="30" type="stmt"/>
        <line num="32" count="5" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.loader">
      <metrics statements="4" coveredstatements="4" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="1"/>
      <file name="loader.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/loader/loader.component.html">
        <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="3" count="20" type="stmt"/>
        <line num="4" count="20" type="stmt"/>
        <line num="6" count="20" type="stmt"/>
      </file>
      <file name="loader.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/loader/loader.component.ts">
        <metrics statements="1" coveredstatements="1" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="1"/>
        <line num="9" count="55" type="cond" truecount="2" falsecount="0"/>
      </file>
    </package>
    <package name="src.app.components.login">
      <metrics statements="42" coveredstatements="40" conditionals="4" coveredconditionals="3" methods="11" coveredmethods="10"/>
      <file name="login.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/login/login.component.html">
        <metrics statements="20" coveredstatements="20" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
        <line num="6" count="12" type="stmt"/>
        <line num="7" count="1308" type="stmt"/>
        <line num="8" count="12" type="stmt"/>
        <line num="9" count="1308" type="stmt"/>
        <line num="11" count="12" type="stmt"/>
        <line num="12" count="12" type="stmt"/>
        <line num="13" count="12" type="stmt"/>
        <line num="14" count="12" type="stmt"/>
        <line num="15" count="12" type="stmt"/>
        <line num="18" count="12" type="stmt"/>
        <line num="21" count="12" type="stmt"/>
        <line num="22" count="12" type="stmt"/>
        <line num="23" count="12" type="stmt"/>
        <line num="24" count="12" type="stmt"/>
        <line num="25" count="12" type="stmt"/>
        <line num="28" count="12" type="stmt"/>
        <line num="29" count="1308" type="stmt"/>
        <line num="30" count="12" type="stmt"/>
        <line num="32" count="12" type="stmt"/>
        <line num="39" count="12" type="stmt"/>
      </file>
      <file name="login.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/login/login.component.ts">
        <metrics statements="22" coveredstatements="20" conditionals="4" coveredconditionals="3" methods="10" coveredmethods="9"/>
        <line num="19" count="47" type="cond" truecount="2" falsecount="0"/>
        <line num="20" count="12" type="stmt"/>
        <line num="24" count="12" type="stmt"/>
        <line num="30" count="12" type="stmt"/>
        <line num="31" count="12" type="stmt"/>
        <line num="34" count="11" type="cond" truecount="1" falsecount="1"/>
        <line num="36" count="0" type="stmt"/>
        <line num="38" count="11" type="stmt"/>
        <line num="40" count="11" type="stmt"/>
        <line num="43" count="11" type="stmt"/>
        <line num="46" count="11" type="stmt"/>
        <line num="52" count="11" type="stmt"/>
        <line num="53" count="184" type="stmt"/>
        <line num="58" count="7" type="stmt"/>
        <line num="59" count="7" type="stmt"/>
        <line num="60" count="7" type="stmt"/>
        <line num="63" count="6" type="stmt"/>
        <line num="64" count="6" type="stmt"/>
        <line num="65" count="6" type="stmt"/>
        <line num="66" count="6" type="stmt"/>
        <line num="70" count="0" type="stmt"/>
        <line num="78" count="184" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.multi-select-signals">
      <metrics statements="31" coveredstatements="30" conditionals="8" coveredconditionals="7" methods="12" coveredmethods="12"/>
      <file name="multi-select-signals.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/multi-select-signals/multi-select-signals.component.html">
        <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="3" coveredmethods="3"/>
        <line num="2" count="5" type="stmt"/>
        <line num="4" count="661" type="stmt"/>
        <line num="6" count="661" type="stmt"/>
        <line num="7" count="666" type="cond" truecount="2" falsecount="0"/>
        <line num="9" count="661" type="stmt"/>
        <line num="11" count="6" type="stmt"/>
        <line num="12" count="5" type="stmt"/>
        <line num="14" count="5" type="stmt"/>
      </file>
      <file name="multi-select-signals.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/multi-select-signals/multi-select-signals.component.ts">
        <metrics statements="23" coveredstatements="22" conditionals="6" coveredconditionals="5" methods="9" coveredmethods="9"/>
        <line num="17" count="40" type="cond" truecount="2" falsecount="0"/>
        <line num="18" count="5" type="stmt"/>
        <line num="19" count="5" type="stmt"/>
        <line num="20" count="5" type="stmt"/>
        <line num="21" count="5" type="stmt"/>
        <line num="22" count="5" type="stmt"/>
        <line num="27" count="5" type="stmt"/>
        <line num="30" count="5" type="stmt"/>
        <line num="32" count="5" type="stmt"/>
        <line num="36" count="34" type="stmt"/>
        <line num="37" count="31" type="stmt"/>
        <line num="38" count="31" type="stmt"/>
        <line num="39" count="306" type="stmt"/>
        <line num="41" count="31" type="cond" truecount="2" falsecount="0"/>
        <line num="43" count="29" type="stmt"/>
        <line num="49" count="6" type="stmt"/>
        <line num="50" count="6" type="stmt"/>
        <line num="51" count="6" type="stmt"/>
        <line num="52" count="165" type="cond" truecount="1" falsecount="1"/>
        <line num="53" count="0" type="stmt"/>
        <line num="57" count="6" type="stmt"/>
        <line num="61" count="2" type="stmt"/>
        <line num="62" count="2" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.petri">
      <metrics statements="12" coveredstatements="11" conditionals="4" coveredconditionals="3" methods="5" coveredmethods="4"/>
      <file name="petri.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/petri/petri.component.html">
        <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="1" type="stmt"/>
      </file>
      <file name="petri.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/petri/petri.component.ts">
        <metrics statements="11" coveredstatements="10" conditionals="4" coveredconditionals="3" methods="5" coveredmethods="4"/>
        <line num="13" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="21" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="28" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="29" count="1" type="stmt"/>
        <line num="30" count="1" type="stmt"/>
        <line num="31" count="1" type="stmt"/>
        <line num="32" count="1" type="stmt"/>
        <line num="34" count="1" type="stmt"/>
        <line num="35" count="1" type="stmt"/>
        <line num="40" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.phase">
      <metrics statements="75" coveredstatements="68" conditionals="23" coveredconditionals="18" methods="18" coveredmethods="14"/>
      <file name="phase.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/phase/phase.component.html">
        <metrics statements="36" coveredstatements="36" conditionals="2" coveredconditionals="2" methods="3" coveredmethods="3"/>
        <line num="8" count="1040" type="stmt"/>
        <line num="9" count="5" type="stmt"/>
        <line num="10" count="5" type="stmt"/>
        <line num="12" count="5" type="stmt"/>
        <line num="13" count="5" type="stmt"/>
        <line num="14" count="1040" type="stmt"/>
        <line num="15" count="1040" type="stmt"/>
        <line num="18" count="5" type="stmt"/>
        <line num="19" count="1040" type="stmt"/>
        <line num="21" count="5" type="stmt"/>
        <line num="22" count="5" type="stmt"/>
        <line num="23" count="5" type="stmt"/>
        <line num="25" count="5" type="stmt"/>
        <line num="27" count="5" type="stmt"/>
        <line num="28" count="5" type="stmt"/>
        <line num="29" count="5" type="stmt"/>
        <line num="32" count="5" type="stmt"/>
        <line num="34" count="5" type="stmt"/>
        <line num="35" count="5" type="stmt"/>
        <line num="36" count="5" type="stmt"/>
        <line num="37" count="520" type="stmt"/>
        <line num="39" count="5" type="stmt"/>
        <line num="41" count="5" type="stmt"/>
        <line num="42" count="5" type="stmt"/>
        <line num="43" count="5" type="stmt"/>
        <line num="44" count="520" type="stmt"/>
        <line num="46" count="5" type="stmt"/>
        <line num="47" count="5" type="stmt"/>
        <line num="48" count="1040" type="stmt"/>
        <line num="49" count="322" type="stmt"/>
        <line num="50" count="1040" type="cond" truecount="2" falsecount="0"/>
        <line num="51" count="198" type="stmt"/>
        <line num="52" count="3" type="stmt"/>
        <line num="53" count="396" type="stmt"/>
        <line num="54" count="3" type="stmt"/>
        <line num="62" count="5" type="stmt"/>
      </file>
      <file name="phase.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/phase/phase.component.ts">
        <metrics statements="39" coveredstatements="32" conditionals="21" coveredconditionals="16" methods="15" coveredmethods="11"/>
        <line num="15" count="40" type="cond" truecount="2" falsecount="0"/>
        <line num="16" count="5" type="stmt"/>
        <line num="27" count="5" type="stmt"/>
        <line num="31" count="5" type="stmt"/>
        <line num="38" count="5" type="cond" truecount="2" falsecount="0"/>
        <line num="39" count="5" type="cond" truecount="2" falsecount="0"/>
        <line num="40" count="5" type="cond" truecount="2" falsecount="0"/>
        <line num="41" count="3" type="stmt"/>
        <line num="43" count="3" type="stmt"/>
        <line num="44" count="3" type="stmt"/>
        <line num="45" count="3" type="stmt"/>
        <line num="46" count="3" type="stmt"/>
        <line num="47" count="3" type="stmt"/>
        <line num="50" count="0" type="stmt"/>
        <line num="57" count="3" type="stmt"/>
        <line num="58" count="3" type="stmt"/>
        <line num="59" count="3" type="stmt"/>
        <line num="60" count="3" type="stmt"/>
        <line num="61" count="3" type="cond" truecount="4" falsecount="1"/>
        <line num="62" count="3" type="stmt"/>
        <line num="64" count="0" type="stmt"/>
        <line num="65" count="0" type="stmt"/>
        <line num="69" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="70" count="2" type="stmt"/>
        <line num="72" count="2" type="stmt"/>
        <line num="73" count="2" type="stmt"/>
        <line num="74" count="2" type="stmt"/>
        <line num="77" count="0" type="stmt"/>
        <line num="84" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="85" count="1" type="stmt"/>
        <line num="87" count="1" type="stmt"/>
        <line num="90" count="0" type="stmt"/>
        <line num="97" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="98" count="1" type="stmt"/>
        <line num="100" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="101" count="1" type="stmt"/>
        <line num="102" count="1" type="stmt"/>
        <line num="105" count="0" type="stmt"/>
        <line num="109" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.pid">
      <metrics statements="73" coveredstatements="51" conditionals="26" coveredconditionals="13" methods="16" coveredmethods="9"/>
      <file name="pid.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/pid/pid.component.html">
        <metrics statements="12" coveredstatements="8" conditionals="2" coveredconditionals="0" methods="1" coveredmethods="0"/>
        <line num="1" count="120" type="stmt"/>
        <line num="2" count="240" type="stmt"/>
        <line num="4" count="241" type="cond" truecount="0" falsecount="2"/>
        <line num="5" count="240" type="stmt"/>
        <line num="6" count="240" type="stmt"/>
        <line num="7" count="0" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
        <line num="10" count="240" type="stmt"/>
        <line num="11" count="240" type="stmt"/>
        <line num="12" count="0" type="stmt"/>
        <line num="13" count="0" type="stmt"/>
        <line num="14" count="1" type="stmt"/>
      </file>
      <file name="pid.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/pid/pid.component.ts">
        <metrics statements="61" coveredstatements="43" conditionals="24" coveredconditionals="13" methods="15" coveredmethods="9"/>
        <line num="22" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="32" count="1" type="stmt"/>
        <line num="35" count="1" type="stmt"/>
        <line num="37" count="1" type="stmt"/>
        <line num="38" count="1" type="stmt"/>
        <line num="40" count="1" type="stmt"/>
        <line num="43" count="0" type="stmt"/>
        <line num="47" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="48" count="1" type="stmt"/>
        <line num="50" count="1" type="cond" truecount="3" falsecount="1"/>
        <line num="51" count="1" type="stmt"/>
        <line num="52" count="1" type="stmt"/>
        <line num="53" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="56" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="57" count="0" type="stmt"/>
        <line num="58" count="0" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="61" count="0" type="stmt"/>
        <line num="63" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="64" count="0" type="stmt"/>
        <line num="65" count="0" type="stmt"/>
        <line num="66" count="0" type="stmt"/>
        <line num="68" count="0" type="stmt"/>
        <line num="72" count="1" type="stmt"/>
        <line num="75" count="0" type="stmt"/>
        <line num="79" count="0" type="stmt"/>
        <line num="80" count="0" type="stmt"/>
        <line num="86" count="1" type="stmt"/>
        <line num="87" count="1" type="stmt"/>
        <line num="88" count="1" type="stmt"/>
        <line num="89" count="1" type="stmt"/>
        <line num="90" count="0" type="stmt"/>
        <line num="91" count="0" type="stmt"/>
        <line num="92" count="0" type="stmt"/>
        <line num="94" count="1" type="stmt"/>
        <line num="95" count="11" type="stmt"/>
        <line num="96" count="11" type="stmt"/>
        <line num="97" count="11" type="stmt"/>
        <line num="100" count="1" type="stmt"/>
        <line num="101" count="1" type="stmt"/>
        <line num="102" count="1" type="stmt"/>
        <line num="103" count="26" type="cond" truecount="2" falsecount="0"/>
        <line num="104" count="11" type="stmt"/>
        <line num="105" count="11" type="stmt"/>
        <line num="106" count="11" type="stmt"/>
        <line num="111" count="1" type="stmt"/>
        <line num="112" count="11" type="stmt"/>
        <line num="113" count="11" type="stmt"/>
        <line num="117" count="2" type="stmt"/>
        <line num="118" count="1" type="stmt"/>
        <line num="119" count="1" type="stmt"/>
        <line num="120" count="22" type="cond" truecount="1" falsecount="1"/>
        <line num="121" count="22" type="cond" truecount="2" falsecount="0"/>
        <line num="122" count="11" type="stmt"/>
        <line num="124" count="22" type="cond" truecount="2" falsecount="0"/>
        <line num="125" count="11" type="stmt"/>
        <line num="129" count="1" type="stmt"/>
        <line num="131" count="1" type="stmt"/>
        <line num="135" count="0" type="stmt"/>
        <line num="139" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.pid-designer">
      <metrics statements="31" coveredstatements="25" conditionals="8" coveredconditionals="3" methods="5" coveredmethods="3"/>
      <file name="pid-designer.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/pid-designer/pid-designer.component.html">
        <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="0" methods="2" coveredmethods="0"/>
        <line num="3" count="70" type="cond" truecount="0" falsecount="2"/>
        <line num="7" count="2" type="stmt"/>
        <line num="8" count="2" type="stmt"/>
        <line num="9" count="69" type="stmt"/>
        <line num="10" count="2" type="stmt"/>
        <line num="11" count="2" type="stmt"/>
        <line num="12" count="2" type="stmt"/>
        <line num="14" count="2" type="stmt"/>
      </file>
      <file name="pid-designer.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/pid-designer/pid-designer.component.ts">
        <metrics statements="23" coveredstatements="17" conditionals="6" coveredconditionals="3" methods="3" coveredmethods="3"/>
        <line num="14" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="17" count="2" type="stmt"/>
        <line num="19" count="2" type="stmt"/>
        <line num="21" count="2" type="stmt"/>
        <line num="25" count="1" type="stmt"/>
        <line num="26" count="1" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="60" count="1" type="stmt"/>
        <line num="62" count="1" type="stmt"/>
        <line num="67" count="1" type="stmt"/>
        <line num="68" count="1" type="stmt"/>
        <line num="69" count="1" type="stmt"/>
        <line num="72" count="0" type="stmt"/>
        <line num="73" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="74" count="0" type="stmt"/>
        <line num="75" count="0" type="stmt"/>
        <line num="77" count="0" type="stmt"/>
        <line num="79" count="0" type="stmt"/>
        <line num="82" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="83" count="1" type="stmt"/>
        <line num="84" count="1" type="stmt"/>
        <line num="85" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.profile">
      <metrics statements="59" coveredstatements="56" conditionals="8" coveredconditionals="7" methods="9" coveredmethods="7"/>
      <file name="profile.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/profile/profile.component.html">
        <metrics statements="34" coveredstatements="34" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="1"/>
        <line num="12" count="3" type="stmt"/>
        <line num="13" count="264" type="stmt"/>
        <line num="15" count="3" type="stmt"/>
        <line num="16" count="3" type="stmt"/>
        <line num="17" count="3" type="stmt"/>
        <line num="19" count="3" type="stmt"/>
        <line num="20" count="3" type="stmt"/>
        <line num="21" count="3" type="stmt"/>
        <line num="22" count="3" type="stmt"/>
        <line num="24" count="3" type="stmt"/>
        <line num="25" count="3" type="stmt"/>
        <line num="26" count="3" type="stmt"/>
        <line num="27" count="3" type="stmt"/>
        <line num="28" count="3" type="stmt"/>
        <line num="29" count="3" type="stmt"/>
        <line num="32" count="3" type="stmt"/>
        <line num="33" count="264" type="cond" truecount="2" falsecount="0"/>
        <line num="36" count="1" type="stmt"/>
        <line num="37" count="1" type="stmt"/>
        <line num="38" count="1" type="stmt"/>
        <line num="40" count="1" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="43" count="1" type="stmt"/>
        <line num="45" count="3" type="stmt"/>
        <line num="47" count="1" type="stmt"/>
        <line num="48" count="1" type="stmt"/>
        <line num="49" count="1" type="stmt"/>
        <line num="50" count="1" type="stmt"/>
        <line num="51" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="56" count="264" type="stmt"/>
        <line num="57" count="3" type="stmt"/>
        <line num="58" count="3" type="stmt"/>
        <line num="64" count="3" type="stmt"/>
      </file>
      <file name="profile.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/profile/profile.component.ts">
        <metrics statements="25" coveredstatements="22" conditionals="6" coveredconditionals="5" methods="8" coveredmethods="6"/>
        <line num="17" count="38" type="cond" truecount="2" falsecount="0"/>
        <line num="19" count="3" type="stmt"/>
        <line num="20" count="3" type="stmt"/>
        <line num="23" count="3" type="stmt"/>
        <line num="32" count="3" type="stmt"/>
        <line num="35" count="2" type="stmt"/>
        <line num="36" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="37" count="1" type="stmt"/>
        <line num="40" count="2" type="stmt"/>
        <line num="42" count="2" type="stmt"/>
        <line num="51" count="2" type="stmt"/>
        <line num="53" count="2" type="stmt"/>
        <line num="54" count="2" type="stmt"/>
        <line num="55" count="2" type="stmt"/>
        <line num="56" count="2" type="stmt"/>
        <line num="57" count="2" type="stmt"/>
        <line num="58" count="2" type="stmt"/>
        <line num="61" count="0" type="stmt"/>
        <line num="65" count="2" type="stmt"/>
        <line num="66" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="67" count="0" type="stmt"/>
        <line num="70" count="2" type="stmt"/>
        <line num="76" count="1" type="stmt"/>
        <line num="79" count="1" type="stmt"/>
        <line num="82" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.register">
      <metrics statements="79" coveredstatements="76" conditionals="20" coveredconditionals="18" methods="11" coveredmethods="10"/>
      <file name="register.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/register/register.component.html">
        <metrics statements="56" coveredstatements="56" conditionals="12" coveredconditionals="11" methods="1" coveredmethods="1"/>
        <line num="6" count="1" type="stmt"/>
        <line num="7" count="284" type="stmt"/>
        <line num="9" count="1" type="stmt"/>
        <line num="10" count="1" type="stmt"/>
        <line num="11" count="284" type="stmt"/>
        <line num="13" count="1" type="stmt"/>
        <line num="14" count="1" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="16" count="1" type="stmt"/>
        <line num="17" count="1" type="stmt"/>
        <line num="20" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="23" count="1" type="stmt"/>
        <line num="24" count="1" type="stmt"/>
        <line num="25" count="1" type="stmt"/>
        <line num="26" count="1" type="stmt"/>
        <line num="29" count="1" type="stmt"/>
        <line num="31" count="1" type="stmt"/>
        <line num="32" count="1" type="stmt"/>
        <line num="33" count="1" type="stmt"/>
        <line num="34" count="1" type="stmt"/>
        <line num="35" count="1" type="stmt"/>
        <line num="38" count="1" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="42" count="1" type="stmt"/>
        <line num="43" count="1" type="stmt"/>
        <line num="44" count="284" type="cond" truecount="1" falsecount="1"/>
        <line num="45" count="1" type="stmt"/>
        <line num="46" count="68" type="cond" truecount="2" falsecount="0"/>
        <line num="47" count="1" type="stmt"/>
        <line num="48" count="1" type="stmt"/>
        <line num="49" count="1" type="stmt"/>
        <line num="50" count="1" type="stmt"/>
        <line num="51" count="68" type="cond" truecount="2" falsecount="0"/>
        <line num="52" count="1" type="stmt"/>
        <line num="53" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="55" count="1" type="stmt"/>
        <line num="56" count="68" type="cond" truecount="2" falsecount="0"/>
        <line num="57" count="1" type="stmt"/>
        <line num="58" count="1" type="stmt"/>
        <line num="59" count="1" type="stmt"/>
        <line num="60" count="1" type="stmt"/>
        <line num="61" count="68" type="cond" truecount="2" falsecount="0"/>
        <line num="62" count="1" type="stmt"/>
        <line num="63" count="1" type="stmt"/>
        <line num="64" count="1" type="stmt"/>
        <line num="65" count="1" type="stmt"/>
        <line num="66" count="68" type="cond" truecount="2" falsecount="0"/>
        <line num="67" count="1" type="stmt"/>
        <line num="69" count="1" type="stmt"/>
        <line num="70" count="1" type="stmt"/>
        <line num="71" count="1" type="stmt"/>
        <line num="74" count="1" type="stmt"/>
        <line num="75" count="284" type="stmt"/>
        <line num="83" count="1" type="stmt"/>
      </file>
      <file name="register.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/register/register.component.ts">
        <metrics statements="23" coveredstatements="20" conditionals="8" coveredconditionals="7" methods="10" coveredmethods="9"/>
        <line num="17" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="18" count="1" type="stmt"/>
        <line num="24" count="1" type="stmt"/>
        <line num="27" count="1" type="stmt"/>
        <line num="28" count="1" type="stmt"/>
        <line num="32" count="1" type="stmt"/>
        <line num="34" count="1" type="stmt"/>
        <line num="42" count="1" type="stmt"/>
        <line num="43" count="28" type="stmt"/>
        <line num="48" count="794" type="stmt"/>
        <line num="52" count="1" type="stmt"/>
        <line num="53" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="55" count="1" type="stmt"/>
        <line num="57" count="1" type="cond" truecount="5" falsecount="1"/>
        <line num="58" count="0" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="62" count="1" type="stmt"/>
        <line num="65" count="1" type="stmt"/>
        <line num="66" count="1" type="stmt"/>
        <line num="67" count="1" type="stmt"/>
        <line num="73" count="0" type="stmt"/>
        <line num="80" count="28" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signal">
      <metrics statements="15" coveredstatements="13" conditionals="4" coveredconditionals="4" methods="5" coveredmethods="4"/>
      <file name="signal.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal/signal.component.html">
        <metrics statements="7" coveredstatements="7" conditionals="2" coveredconditionals="2" methods="0" coveredmethods="0"/>
        <line num="1" count="823" type="cond" truecount="2" falsecount="0"/>
        <line num="2" count="1646" type="stmt"/>
        <line num="4" count="1646" type="stmt"/>
        <line num="7" count="1534" type="stmt"/>
        <line num="8" count="1534" type="stmt"/>
        <line num="9" count="1534" type="stmt"/>
        <line num="10" count="5" type="stmt"/>
      </file>
      <file name="signal.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal/signal.component.ts">
        <metrics statements="8" coveredstatements="6" conditionals="2" coveredconditionals="2" methods="5" coveredmethods="4"/>
        <line num="24" count="40" type="cond" truecount="2" falsecount="0"/>
        <line num="29" count="5" type="stmt"/>
        <line num="30" count="5" type="stmt"/>
        <line num="34" count="5" type="stmt"/>
        <line num="35" count="5" type="stmt"/>
        <line num="36" count="5" type="stmt"/>
        <line num="39" count="0" type="stmt"/>
        <line num="40" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signal-card">
      <metrics statements="79" coveredstatements="70" conditionals="18" coveredconditionals="15" methods="16" coveredmethods="9"/>
      <file name="signal-card.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal-card/signal-card.component.html">
        <metrics statements="49" coveredstatements="49" conditionals="14" coveredconditionals="13" methods="1" coveredmethods="0"/>
        <line num="1" count="767" type="stmt"/>
        <line num="7" count="5" type="stmt"/>
        <line num="10" count="5" type="stmt"/>
        <line num="12" count="1275" type="stmt"/>
        <line num="13" count="1270" type="stmt"/>
        <line num="15" count="5" type="stmt"/>
        <line num="24" count="5" type="stmt"/>
        <line num="25" count="1275" type="stmt"/>
        <line num="27" count="5" type="stmt"/>
        <line num="31" count="5" type="stmt"/>
        <line num="32" count="1275" type="stmt"/>
        <line num="34" count="5" type="stmt"/>
        <line num="38" count="5" type="stmt"/>
        <line num="39" count="1275" type="cond" truecount="2" falsecount="0"/>
        <line num="42" count="5" type="stmt"/>
        <line num="44" count="1270" type="stmt"/>
        <line num="45" count="1122" type="stmt"/>
        <line num="47" count="5" type="stmt"/>
        <line num="48" count="1127" type="stmt"/>
        <line num="49" count="1122" type="cond" truecount="2" falsecount="0"/>
        <line num="51" count="5" type="stmt"/>
        <line num="53" count="1122" type="cond" truecount="2" falsecount="0"/>
        <line num="55" count="86" type="cond" truecount="1" falsecount="1"/>
        <line num="57" count="2" type="stmt"/>
        <line num="59" count="2" type="stmt"/>
        <line num="60" count="2" type="stmt"/>
        <line num="61" count="174" type="stmt"/>
        <line num="63" count="2" type="stmt"/>
        <line num="66" count="1122" type="cond" truecount="2" falsecount="0"/>
        <line num="68" count="5" type="stmt"/>
        <line num="69" count="1127" type="stmt"/>
        <line num="71" count="5" type="stmt"/>
        <line num="73" count="1122" type="cond" truecount="2" falsecount="0"/>
        <line num="75" count="5" type="stmt"/>
        <line num="76" count="1127" type="stmt"/>
        <line num="78" count="5" type="stmt"/>
        <line num="79" count="5" type="stmt"/>
        <line num="81" count="1270" type="stmt"/>
        <line num="84" count="5" type="stmt"/>
        <line num="85" count="1087" type="stmt"/>
        <line num="87" count="5" type="stmt"/>
        <line num="91" count="5" type="stmt"/>
        <line num="92" count="1087" type="stmt"/>
        <line num="96" count="5" type="stmt"/>
        <line num="98" count="1275" type="stmt"/>
        <line num="99" count="5" type="stmt"/>
        <line num="100" count="5" type="stmt"/>
        <line num="101" count="635" type="cond" truecount="2" falsecount="0"/>
        <line num="104" count="5" type="stmt"/>
      </file>
      <file name="signal-card.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal-card/signal-card.component.ts">
        <metrics statements="30" coveredstatements="21" conditionals="4" coveredconditionals="2" methods="15" coveredmethods="9"/>
        <line num="25" count="40" type="cond" truecount="2" falsecount="0"/>
        <line num="26" count="5" type="stmt"/>
        <line num="29" count="5" type="stmt"/>
        <line num="30" count="5" type="stmt"/>
        <line num="36" count="5" type="stmt"/>
        <line num="38" count="5" type="stmt"/>
        <line num="41" count="5" type="stmt"/>
        <line num="42" count="5" type="stmt"/>
        <line num="43" count="5" type="stmt"/>
        <line num="44" count="5" type="stmt"/>
        <line num="46" count="5" type="stmt"/>
        <line num="47" count="5" type="stmt"/>
        <line num="48" count="5" type="stmt"/>
        <line num="49" count="5" type="stmt"/>
        <line num="52" count="5" type="stmt"/>
        <line num="53" count="12" type="stmt"/>
        <line num="56" count="12" type="stmt"/>
        <line num="57" count="12" type="stmt"/>
        <line num="60" count="0" type="stmt"/>
        <line num="64" count="5" type="stmt"/>
        <line num="65" count="7" type="stmt"/>
        <line num="68" count="7" type="stmt"/>
        <line num="71" count="0" type="stmt"/>
        <line num="77" count="0" type="stmt"/>
        <line num="78" count="0" type="stmt"/>
        <line num="82" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="83" count="0" type="stmt"/>
        <line num="84" count="0" type="stmt"/>
        <line num="87" count="0" type="stmt"/>
        <line num="88" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signal-command">
      <metrics statements="70" coveredstatements="59" conditionals="39" coveredconditionals="30" methods="18" coveredmethods="14"/>
      <file name="signal-command.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal-command/signal-command.component.html">
        <metrics statements="20" coveredstatements="20" conditionals="15" coveredconditionals="13" methods="6" coveredmethods="5"/>
        <line num="1" count="5" type="stmt"/>
        <line num="3" count="1270" type="cond" truecount="2" falsecount="0"/>
        <line num="5" count="1270" type="stmt"/>
        <line num="6" count="53" type="stmt"/>
        <line num="7" count="53" type="cond" truecount="0" falsecount="2"/>
        <line num="8" count="53" type="stmt"/>
        <line num="9" count="1" type="stmt"/>
        <line num="11" count="1270" type="cond" truecount="2" falsecount="0"/>
        <line num="12" count="411" type="stmt"/>
        <line num="13" count="413" type="cond" truecount="2" falsecount="0"/>
        <line num="16" count="1270" type="stmt"/>
        <line num="17" count="249" type="cond" truecount="2" falsecount="0"/>
        <line num="19" count="124" type="stmt"/>
        <line num="21" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="25" count="5" type="stmt"/>
        <line num="26" count="635" type="cond" truecount="5" falsecount="0"/>
        <line num="28" count="1275" type="stmt"/>
        <line num="29" count="1270" type="stmt"/>
        <line num="30" count="5" type="stmt"/>
      </file>
      <file name="signal-command.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal-command/signal-command.component.ts">
        <metrics statements="50" coveredstatements="39" conditionals="24" coveredconditionals="17" methods="12" coveredmethods="9"/>
        <line num="23" count="40" type="cond" truecount="2" falsecount="0"/>
        <line num="25" count="5" type="stmt"/>
        <line num="28" count="5" type="stmt"/>
        <line num="29" count="5" type="stmt"/>
        <line num="39" count="5" type="stmt"/>
        <line num="43" count="8" type="stmt"/>
        <line num="44" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="45" count="0" type="stmt"/>
        <line num="47" count="8" type="cond" truecount="2" falsecount="0"/>
        <line num="48" count="6" type="stmt"/>
        <line num="49" count="6" type="stmt"/>
        <line num="52" count="2" type="stmt"/>
        <line num="53" count="2" type="stmt"/>
        <line num="56" count="8" type="stmt"/>
        <line num="57" count="8" type="stmt"/>
        <line num="64" count="4" type="stmt"/>
        <line num="65" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="66" count="2" type="stmt"/>
        <line num="69" count="4" type="stmt"/>
        <line num="70" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="71" count="1" type="stmt"/>
        <line num="73" count="3" type="cond" truecount="2" falsecount="0"/>
        <line num="74" count="2" type="stmt"/>
        <line num="77" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="78" count="1" type="stmt"/>
        <line num="81" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="82" count="3" type="stmt"/>
        <line num="83" count="3" type="stmt"/>
        <line num="84" count="3" type="stmt"/>
        <line num="87" count="0" type="stmt"/>
        <line num="88" count="0" type="stmt"/>
        <line num="92" count="1" type="stmt"/>
        <line num="93" count="1" type="stmt"/>
        <line num="96" count="0" type="stmt"/>
        <line num="97" count="0" type="stmt"/>
        <line num="103" count="2" type="stmt"/>
        <line num="105" count="2" type="stmt"/>
        <line num="106" count="2" type="stmt"/>
        <line num="109" count="0" type="stmt"/>
        <line num="110" count="0" type="stmt"/>
        <line num="115" count="2" type="stmt"/>
        <line num="116" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="117" count="2" type="stmt"/>
        <line num="120" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="121" count="0" type="stmt"/>
        <line num="123" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="124" count="2" type="stmt"/>
        <line num="127" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="128" count="0" type="stmt"/>
        <line num="130" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signal-countdown">
      <metrics statements="8" coveredstatements="7" conditionals="4" coveredconditionals="3" methods="6" coveredmethods="5"/>
      <file name="signal-countdown.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal-countdown/signal-countdown.component.html">
        <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="144" type="stmt"/>
      </file>
      <file name="signal-countdown.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signal-countdown/signal-countdown.component.ts">
        <metrics statements="7" coveredstatements="6" conditionals="4" coveredconditionals="3" methods="6" coveredmethods="5"/>
        <line num="13" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="19" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="23" count="2" type="stmt"/>
        <line num="25" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="26" count="2" type="stmt"/>
        <line num="32" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signals">
      <metrics statements="28" coveredstatements="28" conditionals="4" coveredconditionals="4" methods="4" coveredmethods="4"/>
      <file name="signals.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals/signals.component.html">
        <metrics statements="22" coveredstatements="22" conditionals="2" coveredconditionals="2" methods="0" coveredmethods="0"/>
        <line num="1" count="509" type="stmt"/>
        <line num="3" count="1018" type="stmt"/>
        <line num="4" count="8" type="stmt"/>
        <line num="5" count="1018" type="stmt"/>
        <line num="6" count="1018" type="stmt"/>
        <line num="9" count="702" type="stmt"/>
        <line num="10" count="6" type="stmt"/>
        <line num="12" count="6" type="stmt"/>
        <line num="14" count="6" type="stmt"/>
        <line num="15" count="696" type="cond" truecount="2" falsecount="0"/>
        <line num="16" count="696" type="stmt"/>
        <line num="17" count="6" type="stmt"/>
        <line num="19" count="6" type="stmt"/>
        <line num="22" count="702" type="stmt"/>
        <line num="23" count="6" type="stmt"/>
        <line num="25" count="6" type="stmt"/>
        <line num="28" count="702" type="stmt"/>
        <line num="29" count="6" type="stmt"/>
        <line num="32" count="6" type="stmt"/>
        <line num="33" count="8" type="stmt"/>
        <line num="34" count="8" type="stmt"/>
        <line num="35" count="8" type="stmt"/>
      </file>
      <file name="signals.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals/signals.component.ts">
        <metrics statements="6" coveredstatements="6" conditionals="2" coveredconditionals="2" methods="4" coveredmethods="4"/>
        <line num="24" count="43" type="cond" truecount="2" falsecount="0"/>
        <line num="25" count="8" type="stmt"/>
        <line num="29" count="8" type="stmt"/>
        <line num="32" count="8" type="stmt"/>
        <line num="33" count="7" type="stmt"/>
        <line num="35" count="8" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signals-graph">
      <metrics statements="172" coveredstatements="145" conditionals="89" coveredconditionals="58" methods="30" coveredmethods="23"/>
      <file name="signals-graph.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-graph/signals-graph.component.html">
        <metrics statements="13" coveredstatements="13" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
        <line num="1" count="1258" type="stmt"/>
        <line num="2" count="2516" type="stmt"/>
        <line num="3" count="16" type="stmt"/>
        <line num="9" count="2524" type="stmt"/>
        <line num="11" count="8" type="stmt"/>
        <line num="14" count="2524" type="stmt"/>
        <line num="16" count="8" type="stmt"/>
        <line num="19" count="2524" type="stmt"/>
        <line num="21" count="8" type="stmt"/>
        <line num="24" count="2524" type="stmt"/>
        <line num="26" count="8" type="stmt"/>
        <line num="29" count="2524" type="stmt"/>
        <line num="34" count="8" type="stmt"/>
      </file>
      <file name="signals-graph.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-graph/signals-graph.component.ts">
        <metrics statements="159" coveredstatements="132" conditionals="89" coveredconditionals="58" methods="29" coveredmethods="22"/>
        <line num="21" count="35" type="stmt"/>
        <line num="30" count="43" type="cond" truecount="2" falsecount="0"/>
        <line num="33" count="8" type="stmt"/>
        <line num="35" count="8" type="stmt"/>
        <line num="36" count="8" type="stmt"/>
        <line num="37" count="8" type="stmt"/>
        <line num="40" count="8" type="stmt"/>
        <line num="41" count="8" type="stmt"/>
        <line num="61" count="8" type="stmt"/>
        <line num="64" count="8" type="stmt"/>
        <line num="65" count="8" type="stmt"/>
        <line num="66" count="8" type="stmt"/>
        <line num="67" count="8" type="stmt"/>
        <line num="69" count="8" type="stmt"/>
        <line num="72" count="8" type="stmt"/>
        <line num="76" count="8" type="stmt"/>
        <line num="78" count="8" type="stmt"/>
        <line num="80" count="8" type="cond" truecount="2" falsecount="0"/>
        <line num="81" count="3" type="stmt"/>
        <line num="86" count="8" type="stmt"/>
        <line num="87" count="8" type="stmt"/>
        <line num="88" count="0" type="stmt"/>
        <line num="90" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="91" count="0" type="stmt"/>
        <line num="92" count="0" type="stmt"/>
        <line num="93" count="0" type="stmt"/>
        <line num="97" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="98" count="0" type="stmt"/>
        <line num="99" count="0" type="stmt"/>
        <line num="101" count="0" type="stmt"/>
        <line num="107" count="14" type="stmt"/>
        <line num="108" count="14" type="stmt"/>
        <line num="110" count="14" type="stmt"/>
        <line num="112" count="14" type="cond" truecount="1" falsecount="1"/>
        <line num="113" count="14" type="stmt"/>
        <line num="115" count="14" type="cond" truecount="1" falsecount="1"/>
        <line num="116" count="14" type="stmt"/>
        <line num="119" count="14" type="stmt"/>
        <line num="120" count="14" type="cond" truecount="2" falsecount="0"/>
        <line num="121" count="11" type="cond" truecount="2" falsecount="0"/>
        <line num="122" count="1" type="stmt"/>
        <line num="126" count="14" type="stmt"/>
        <line num="127" count="14" type="stmt"/>
        <line num="129" count="12" type="stmt"/>
        <line num="130" count="273" type="stmt"/>
        <line num="131" count="214" type="stmt"/>
        <line num="133" count="12" type="stmt"/>
        <line num="134" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="135" count="12" type="stmt"/>
        <line num="137" count="12" type="stmt"/>
        <line num="139" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="140" count="12" type="stmt"/>
        <line num="141" count="12" type="stmt"/>
        <line num="153" count="20" type="cond" truecount="4" falsecount="0"/>
        <line num="154" count="9" type="stmt"/>
        <line num="155" count="9" type="stmt"/>
        <line num="158" count="11" type="stmt"/>
        <line num="160" count="11" type="stmt"/>
        <line num="161" count="10" type="stmt"/>
        <line num="164" count="11" type="stmt"/>
        <line num="171" count="11" type="stmt"/>
        <line num="172" count="11" type="stmt"/>
        <line num="174" count="12" type="stmt"/>
        <line num="175" count="12" type="stmt"/>
        <line num="176" count="12" type="cond" truecount="3" falsecount="1"/>
        <line num="177" count="12" type="stmt"/>
        <line num="178" count="12" type="stmt"/>
        <line num="180" count="12" type="stmt"/>
        <line num="183" count="6" type="stmt"/>
        <line num="187" count="6" type="stmt"/>
        <line num="190" count="6" type="stmt"/>
        <line num="191" count="6" type="cond" truecount="5" falsecount="0"/>
        <line num="192" count="5" type="stmt"/>
        <line num="195" count="6" type="stmt"/>
        <line num="196" count="6" type="stmt"/>
        <line num="198" count="6" type="cond" truecount="2" falsecount="0"/>
        <line num="199" count="5" type="stmt"/>
        <line num="202" count="1" type="stmt"/>
        <line num="205" count="6" type="stmt"/>
        <line num="208" count="0" type="stmt"/>
        <line num="209" count="0" type="stmt"/>
        <line num="216" count="22" type="stmt"/>
        <line num="217" count="22" type="stmt"/>
        <line num="218" count="22" type="cond" truecount="2" falsecount="0"/>
        <line num="219" count="16" type="stmt"/>
        <line num="220" count="12" type="stmt"/>
        <line num="221" count="12" type="stmt"/>
        <line num="228" count="12" type="stmt"/>
        <line num="229" count="12" type="stmt"/>
        <line num="230" count="12" type="stmt"/>
        <line num="239" count="22" type="stmt"/>
        <line num="253" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="254" count="0" type="stmt"/>
        <line num="255" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="283" count="284" type="stmt"/>
        <line num="284" count="284" type="cond" truecount="1" falsecount="1"/>
        <line num="290" count="0" type="stmt"/>
        <line num="291" count="0" type="stmt"/>
        <line num="292" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="331" count="22" type="cond" truecount="1" falsecount="1"/>
        <line num="332" count="22" type="stmt"/>
        <line num="335" count="22" type="cond" truecount="4" falsecount="0"/>
        <line num="336" count="12" type="stmt"/>
        <line num="347" count="22" type="stmt"/>
        <line num="356" count="6" type="cond" truecount="1" falsecount="1"/>
        <line num="357" count="6" type="stmt"/>
        <line num="359" count="6" type="cond" truecount="1" falsecount="1"/>
        <line num="360" count="6" type="stmt"/>
        <line num="363" count="0" type="stmt"/>
        <line num="367" count="6" type="stmt"/>
        <line num="368" count="6" type="stmt"/>
        <line num="372" count="22" type="stmt"/>
        <line num="406" count="29" type="stmt"/>
        <line num="407" count="29" type="stmt"/>
        <line num="408" count="29" type="cond" truecount="4" falsecount="0"/>
        <line num="409" count="11" type="stmt"/>
        <line num="410" count="13" type="stmt"/>
        <line num="411" count="13" type="stmt"/>
        <line num="412" count="13" type="cond" truecount="1" falsecount="1"/>
        <line num="413" count="13" type="stmt"/>
        <line num="415" count="13" type="stmt"/>
        <line num="416" count="13" type="cond" truecount="2" falsecount="0"/>
        <line num="417" count="5" type="stmt"/>
        <line num="421" count="13" type="stmt"/>
        <line num="422" count="104" type="cond" truecount="6" falsecount="0"/>
        <line num="423" count="91" type="cond" truecount="2" falsecount="0"/>
        <line num="424" count="13" type="cond" truecount="1" falsecount="1"/>
        <line num="425" count="0" type="stmt"/>
        <line num="426" count="0" type="stmt"/>
        <line num="431" count="13" type="stmt"/>
        <line num="439" count="13" type="stmt"/>
        <line num="448" count="29" type="stmt"/>
        <line num="452" count="14" type="stmt"/>
        <line num="453" count="14" type="stmt"/>
        <line num="454" count="14" type="stmt"/>
        <line num="455" count="14" type="stmt"/>
        <line num="457" count="14" type="stmt"/>
        <line num="458" count="14" type="cond" truecount="2" falsecount="0"/>
        <line num="460" count="11" type="stmt"/>
        <line num="464" count="14" type="stmt"/>
        <line num="465" count="14" type="stmt"/>
        <line num="469" count="29" type="cond" truecount="2" falsecount="0"/>
        <line num="470" count="19" type="stmt"/>
        <line num="471" count="19" type="stmt"/>
        <line num="474" count="10" type="cond" truecount="1" falsecount="1"/>
        <line num="475" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="476" count="0" type="stmt"/>
        <line num="479" count="10" type="cond" truecount="1" falsecount="1"/>
        <line num="480" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="481" count="0" type="stmt"/>
        <line num="488" count="15" type="stmt"/>
        <line num="489" count="15" type="stmt"/>
        <line num="490" count="15" type="stmt"/>
        <line num="495" count="15" type="stmt"/>
        <line num="499" count="15" type="stmt"/>
        <line num="505" count="0" type="stmt"/>
        <line num="507" count="0" type="stmt"/>
        <line num="510" count="0" type="stmt"/>
        <line num="515" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signals-graphs">
      <metrics statements="115" coveredstatements="99" conditionals="24" coveredconditionals="12" methods="35" coveredmethods="16"/>
      <file name="signals-graphs.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-graphs/signals-graphs.component.html">
        <metrics statements="55" coveredstatements="50" conditionals="10" coveredconditionals="0" methods="14" coveredmethods="4"/>
        <line num="1" count="1258" type="stmt"/>
        <line num="4" count="2516" type="stmt"/>
        <line num="6" count="8" type="stmt"/>
        <line num="7" count="2516" type="stmt"/>
        <line num="8" count="2516" type="stmt"/>
        <line num="10" count="278" type="cond" truecount="0" falsecount="2"/>
        <line num="13" count="4" type="stmt"/>
        <line num="15" count="137" type="stmt"/>
        <line num="17" count="4" type="stmt"/>
        <line num="18" count="4" type="stmt"/>
        <line num="21" count="8" type="stmt"/>
        <line num="22" count="274" type="stmt"/>
        <line num="23" count="141" type="cond" truecount="0" falsecount="2"/>
        <line num="24" count="4" type="stmt"/>
        <line num="28" count="4" type="stmt"/>
        <line num="31" count="4" type="stmt"/>
        <line num="32" count="8" type="stmt"/>
        <line num="34" count="2516" type="stmt"/>
        <line num="35" count="14" type="stmt"/>
        <line num="36" count="2242" type="stmt"/>
        <line num="37" count="1128" type="cond" truecount="0" falsecount="2"/>
        <line num="41" count="7" type="stmt"/>
        <line num="42" count="7" type="stmt"/>
        <line num="44" count="2516" type="stmt"/>
        <line num="47" count="16" type="stmt"/>
        <line num="48" count="2516" type="stmt"/>
        <line num="49" count="1266" type="cond" truecount="0" falsecount="2"/>
        <line num="54" count="8" type="stmt"/>
        <line num="55" count="8" type="stmt"/>
        <line num="58" count="2516" type="stmt"/>
        <line num="59" count="8" type="stmt"/>
        <line num="60" count="8" type="stmt"/>
        <line num="62" count="8" type="stmt"/>
        <line num="64" count="2516" type="stmt"/>
        <line num="65" count="0" type="stmt"/>
        <line num="66" count="0" type="stmt"/>
        <line num="68" count="0" type="stmt"/>
        <line num="70" count="8" type="stmt"/>
        <line num="71" count="2516" type="stmt"/>
        <line num="72" count="0" type="stmt"/>
        <line num="74" count="0" type="stmt"/>
        <line num="75" count="2516" type="stmt"/>
        <line num="76" count="8" type="stmt"/>
        <line num="78" count="8" type="stmt"/>
        <line num="79" count="16" type="stmt"/>
        <line num="80" count="2516" type="stmt"/>
        <line num="81" count="1266" type="cond" truecount="0" falsecount="2"/>
        <line num="83" count="1258" type="stmt"/>
        <line num="86" count="8" type="stmt"/>
        <line num="92" count="8" type="stmt"/>
        <line num="94" count="1258" type="stmt"/>
        <line num="95" count="12" type="stmt"/>
        <line num="96" count="8" type="stmt"/>
        <line num="97" count="1258" type="stmt"/>
        <line num="101" count="8" type="stmt"/>
      </file>
      <file name="signals-graphs.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-graphs/signals-graphs.component.ts">
        <metrics statements="60" coveredstatements="49" conditionals="14" coveredconditionals="12" methods="21" coveredmethods="12"/>
        <line num="27" count="43" type="cond" truecount="2" falsecount="0"/>
        <line num="28" count="8" type="stmt"/>
        <line num="31" count="8" type="stmt"/>
        <line num="32" count="8" type="stmt"/>
        <line num="33" count="8" type="stmt"/>
        <line num="34" count="8" type="stmt"/>
        <line num="36" count="8" type="stmt"/>
        <line num="38" count="8" type="stmt"/>
        <line num="46" count="8" type="stmt"/>
        <line num="47" count="8" type="stmt"/>
        <line num="58" count="8" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="62" count="8" type="stmt"/>
        <line num="63" count="8" type="stmt"/>
        <line num="64" count="8" type="stmt"/>
        <line num="67" count="15" type="cond" truecount="2" falsecount="0"/>
        <line num="68" count="6" type="stmt"/>
        <line num="71" count="15" type="stmt"/>
        <line num="73" count="15" type="cond" truecount="2" falsecount="0"/>
        <line num="74" count="2" type="stmt"/>
        <line num="79" count="8" type="stmt"/>
        <line num="83" count="8" type="stmt"/>
        <line num="84" count="8" type="stmt"/>
        <line num="86" count="8" type="stmt"/>
        <line num="87" count="8" type="stmt"/>
        <line num="89" count="8" type="stmt"/>
        <line num="100" count="8" type="stmt"/>
        <line num="102" count="8" type="stmt"/>
        <line num="111" count="8" type="stmt"/>
        <line num="113" count="8" type="stmt"/>
        <line num="123" count="8" type="stmt"/>
        <line num="125" count="8" type="cond" truecount="2" falsecount="0"/>
        <line num="126" count="4" type="stmt"/>
        <line num="128" count="8" type="stmt"/>
        <line num="129" count="8" type="stmt"/>
        <line num="133" count="20" type="stmt"/>
        <line num="134" count="19" type="stmt"/>
        <line num="135" count="19" type="stmt"/>
        <line num="136" count="279" type="stmt"/>
        <line num="138" count="19" type="cond" truecount="2" falsecount="0"/>
        <line num="140" count="16" type="stmt"/>
        <line num="146" count="0" type="stmt"/>
        <line num="147" count="0" type="stmt"/>
        <line num="148" count="0" type="stmt"/>
        <line num="149" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="150" count="0" type="stmt"/>
        <line num="154" count="0" type="stmt"/>
        <line num="158" count="6" type="stmt"/>
        <line num="161" count="6" type="stmt"/>
        <line num="165" count="0" type="stmt"/>
        <line num="169" count="6" type="stmt"/>
        <line num="173" count="8" type="cond" truecount="2" falsecount="0"/>
        <line num="174" count="7" type="stmt"/>
        <line num="176" count="8" type="stmt"/>
        <line num="177" count="8" type="stmt"/>
        <line num="178" count="8" type="stmt"/>
        <line num="182" count="5" type="stmt"/>
        <line num="186" count="0" type="stmt"/>
        <line num="190" count="0" type="stmt"/>
        <line num="194" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signals-table">
      <metrics statements="65" coveredstatements="63" conditionals="22" coveredconditionals="18" methods="20" coveredmethods="17"/>
      <file name="signals-table.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-table/signals-table.component.html">
        <metrics statements="31" coveredstatements="31" conditionals="4" coveredconditionals="4" methods="5" coveredmethods="4"/>
        <line num="1" count="645" type="stmt"/>
        <line num="2" count="1290" type="stmt"/>
        <line num="5" count="370" type="stmt"/>
        <line num="9" count="9" type="stmt"/>
        <line num="10" count="9" type="stmt"/>
        <line num="11" count="9" type="stmt"/>
        <line num="13" count="9" type="stmt"/>
        <line num="14" count="740" type="cond" truecount="2" falsecount="0"/>
        <line num="15" count="2" type="stmt"/>
        <line num="16" count="2" type="stmt"/>
        <line num="17" count="2" type="stmt"/>
        <line num="18" count="2" type="stmt"/>
        <line num="19" count="2" type="stmt"/>
        <line num="20" count="9" type="stmt"/>
        <line num="22" count="749" type="cond" truecount="2" falsecount="0"/>
        <line num="25" count="9" type="stmt"/>
        <line num="30" count="9" type="stmt"/>
        <line num="31" count="9" type="stmt"/>
        <line num="32" count="9" type="stmt"/>
        <line num="33" count="9" type="stmt"/>
        <line num="34" count="9" type="stmt"/>
        <line num="35" count="9" type="stmt"/>
        <line num="37" count="9" type="stmt"/>
        <line num="38" count="3386" type="stmt"/>
        <line num="39" count="7105" type="stmt"/>
        <line num="40" count="3386" type="stmt"/>
        <line num="41" count="7105" type="stmt"/>
        <line num="42" count="7105" type="stmt"/>
        <line num="43" count="7105" type="stmt"/>
        <line num="44" count="333" type="stmt"/>
        <line num="46" count="9" type="stmt"/>
      </file>
      <file name="signals-table.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-table/signals-table.component.ts">
        <metrics statements="34" coveredstatements="32" conditionals="18" coveredconditionals="14" methods="15" coveredmethods="13"/>
        <line num="24" count="46" type="cond" truecount="2" falsecount="0"/>
        <line num="29" count="11" type="stmt"/>
        <line num="30" count="11" type="stmt"/>
        <line num="32" count="11" type="stmt"/>
        <line num="33" count="11" type="stmt"/>
        <line num="36" count="3" type="cond" truecount="1" falsecount="1"/>
        <line num="37" count="3" type="stmt"/>
        <line num="38" count="3" type="stmt"/>
        <line num="42" count="11" type="stmt"/>
        <line num="45" count="11" type="stmt"/>
        <line num="46" count="13" type="cond" truecount="2" falsecount="0"/>
        <line num="47" count="13" type="cond" truecount="2" falsecount="0"/>
        <line num="49" count="11" type="stmt"/>
        <line num="50" count="11" type="cond" truecount="1" falsecount="1"/>
        <line num="51" count="11" type="stmt"/>
        <line num="56" count="3386" type="stmt"/>
        <line num="60" count="0" type="stmt"/>
        <line num="64" count="20" type="stmt"/>
        <line num="65" count="20" type="stmt"/>
        <line num="69" count="2" type="stmt"/>
        <line num="70" count="2" type="stmt"/>
        <line num="72" count="2" type="stmt"/>
        <line num="79" count="22" type="stmt"/>
        <line num="83" count="45" type="stmt"/>
        <line num="84" count="45" type="stmt"/>
        <line num="86" count="44" type="stmt"/>
        <line num="87" count="44" type="stmt"/>
        <line num="90" count="0" type="stmt"/>
        <line num="96" count="11" type="stmt"/>
        <line num="97" count="11" type="cond" truecount="3" falsecount="1"/>
        <line num="98" count="11" type="stmt"/>
        <line num="100" count="11" type="cond" truecount="3" falsecount="1"/>
        <line num="101" count="11" type="stmt"/>
        <line num="104" count="11" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.signals-values-table">
      <metrics statements="69" coveredstatements="35" conditionals="20" coveredconditionals="3" methods="20" coveredmethods="6"/>
      <file name="signals-values-table.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-values-table/signals-values-table.component.html">
        <metrics statements="26" coveredstatements="15" conditionals="6" coveredconditionals="0" methods="6" coveredmethods="0"/>
        <line num="1" count="26" type="stmt"/>
        <line num="4" count="1" type="stmt"/>
        <line num="6" count="52" type="cond" truecount="0" falsecount="2"/>
        <line num="8" count="1" type="stmt"/>
        <line num="15" count="1" type="stmt"/>
        <line num="16" count="52" type="stmt"/>
        <line num="17" count="159" type="stmt"/>
        <line num="18" count="3" type="stmt"/>
        <line num="19" count="1" type="stmt"/>
        <line num="20" count="1" type="stmt"/>
        <line num="22" count="1" type="stmt"/>
        <line num="26" count="0" type="stmt"/>
        <line num="27" count="0" type="stmt"/>
        <line num="28" count="0" type="stmt"/>
        <line num="29" count="0" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="32" count="0" type="stmt"/>
        <line num="33" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="34" count="0" type="stmt"/>
        <line num="35" count="0" type="stmt"/>
        <line num="38" count="0" type="stmt"/>
        <line num="40" count="0" type="stmt"/>
        <line num="42" count="1" type="stmt"/>
        <line num="44" count="52" type="cond" truecount="0" falsecount="2"/>
        <line num="45" count="52" type="stmt"/>
        <line num="47" count="1" type="stmt"/>
      </file>
      <file name="signals-values-table.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/signals-values-table/signals-values-table.component.ts">
        <metrics statements="43" coveredstatements="20" conditionals="14" coveredconditionals="3" methods="14" coveredmethods="6"/>
        <line num="35" count="36" type="cond" truecount="2" falsecount="0"/>
        <line num="40" count="1" type="stmt"/>
        <line num="41" count="1" type="stmt"/>
        <line num="48" count="1" type="stmt"/>
        <line num="54" count="1" type="stmt"/>
        <line num="57" count="1" type="stmt"/>
        <line num="58" count="1" type="stmt"/>
        <line num="59" count="1" type="stmt"/>
        <line num="60" count="1" type="stmt"/>
        <line num="63" count="1" type="stmt"/>
        <line num="72" count="1" type="stmt"/>
        <line num="74" count="1" type="stmt"/>
        <line num="78" count="0" type="stmt"/>
        <line num="79" count="0" type="stmt"/>
        <line num="80" count="0" type="stmt"/>
        <line num="87" count="0" type="stmt"/>
        <line num="88" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="89" count="0" type="stmt"/>
        <line num="90" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="91" count="0" type="stmt"/>
        <line num="98" count="0" type="stmt"/>
        <line num="99" count="0" type="stmt"/>
        <line num="101" count="0" type="stmt"/>
        <line num="102" count="0" type="stmt"/>
        <line num="103" count="0" type="stmt"/>
        <line num="104" count="0" type="stmt"/>
        <line num="105" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="106" count="0" type="stmt"/>
        <line num="109" count="0" type="stmt"/>
        <line num="115" count="8" type="stmt"/>
        <line num="116" count="7" type="stmt"/>
        <line num="117" count="7" type="stmt"/>
        <line num="118" count="70" type="stmt"/>
        <line num="119" count="70" type="stmt"/>
        <line num="121" count="7" type="cond" truecount="1" falsecount="1"/>
        <line num="123" count="7" type="stmt"/>
        <line num="129" count="0" type="stmt"/>
        <line num="130" count="0" type="stmt"/>
        <line num="134" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="135" count="0" type="stmt"/>
        <line num="136" count="0" type="stmt"/>
        <line num="138" count="0" type="stmt"/>
        <line num="142" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.video">
      <metrics statements="7" coveredstatements="1" conditionals="2" coveredconditionals="0" methods="1" coveredmethods="1"/>
      <file name="video.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/video/video.component.html">
        <metrics statements="6" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="2" count="0" type="stmt"/>
        <line num="3" count="0" type="stmt"/>
        <line num="4" count="0" type="stmt"/>
        <line num="6" count="0" type="stmt"/>
        <line num="7" count="0" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
      </file>
      <file name="video.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/video/video.component.ts">
        <metrics statements="1" coveredstatements="1" conditionals="2" coveredconditionals="0" methods="1" coveredmethods="1"/>
        <line num="9" count="35" type="cond" truecount="0" falsecount="2"/>
      </file>
    </package>
    <package name="src.app.components.videos">
      <metrics statements="15" coveredstatements="10" conditionals="6" coveredconditionals="3" methods="5" coveredmethods="3"/>
      <file name="videos.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/videos/videos.component.html">
        <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="2" type="stmt"/>
      </file>
      <file name="videos.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/videos/videos.component.ts">
        <metrics statements="14" coveredstatements="9" conditionals="6" coveredconditionals="3" methods="5" coveredmethods="3"/>
        <line num="10" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="15" count="2" type="stmt"/>
        <line num="16" count="2" type="stmt"/>
        <line num="18" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="19" count="2" type="stmt"/>
        <line num="22" count="2" type="stmt"/>
        <line num="23" count="2" type="stmt"/>
        <line num="24" count="2" type="stmt"/>
        <line num="25" count="0" type="stmt"/>
        <line num="28" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="29" count="0" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="31" count="0" type="stmt"/>
        <line num="36" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.components.view-builder">
      <metrics statements="119" coveredstatements="95" conditionals="52" coveredconditionals="38" methods="24" coveredmethods="20"/>
      <file name="view-builder.component.html" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/view-builder/view-builder.component.html">
        <metrics statements="31" coveredstatements="31" conditionals="6" coveredconditionals="6" methods="7" coveredmethods="7"/>
        <line num="2" count="2" type="stmt"/>
        <line num="3" count="540" type="stmt"/>
        <line num="4" count="540" type="stmt"/>
        <line num="5" count="2" type="stmt"/>
        <line num="6" count="540" type="stmt"/>
        <line num="8" count="2" type="stmt"/>
        <line num="9" count="2" type="stmt"/>
        <line num="10" count="540" type="stmt"/>
        <line num="12" count="542" type="cond" truecount="2" falsecount="0"/>
        <line num="13" count="540" type="stmt"/>
        <line num="14" count="540" type="stmt"/>
        <line num="16" count="2" type="stmt"/>
        <line num="19" count="2" type="stmt"/>
        <line num="20" count="2" type="stmt"/>
        <line num="21" count="2" type="stmt"/>
        <line num="22" count="2" type="stmt"/>
        <line num="23" count="2" type="stmt"/>
        <line num="24" count="2" type="stmt"/>
        <line num="25" count="2" type="stmt"/>
        <line num="26" count="2" type="stmt"/>
        <line num="28" count="2" type="stmt"/>
        <line num="30" count="542" type="cond" truecount="2" falsecount="0"/>
        <line num="31" count="2" type="stmt"/>
        <line num="34" count="2" type="stmt"/>
        <line num="35" count="2" type="stmt"/>
        <line num="36" count="540" type="cond" truecount="2" falsecount="0"/>
        <line num="37" count="2" type="stmt"/>
        <line num="38" count="2" type="stmt"/>
        <line num="40" count="2" type="stmt"/>
        <line num="41" count="2" type="stmt"/>
        <line num="45" count="2" type="stmt"/>
      </file>
      <file name="view-builder.component.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/components/view-builder/view-builder.component.ts">
        <metrics statements="88" coveredstatements="64" conditionals="46" coveredconditionals="32" methods="17" coveredmethods="13"/>
        <line num="16" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="17" count="2" type="stmt"/>
        <line num="18" count="2" type="stmt"/>
        <line num="19" count="2" type="stmt"/>
        <line num="22" count="2" type="stmt"/>
        <line num="26" count="2" type="stmt"/>
        <line num="27" count="2" type="stmt"/>
        <line num="28" count="2" type="stmt"/>
        <line num="30" count="2" type="stmt"/>
        <line num="31" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="32" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="36" count="2" type="stmt"/>
        <line num="41" count="2" type="stmt"/>
        <line num="42" count="2" type="stmt"/>
        <line num="43" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="44" count="1" type="stmt"/>
        <line num="46" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="47" count="1" type="stmt"/>
        <line num="48" count="1" type="stmt"/>
        <line num="49" count="1" type="stmt"/>
        <line num="52" count="0" type="stmt"/>
        <line num="56" count="0" type="stmt"/>
        <line num="63" count="2" type="stmt"/>
        <line num="64" count="2" type="cond" truecount="2" falsecount="5"/>
        <line num="66" count="0" type="stmt"/>
        <line num="73" count="0" type="stmt"/>
        <line num="76" count="0" type="stmt"/>
        <line num="83" count="0" type="stmt"/>
        <line num="86" count="0" type="stmt"/>
        <line num="91" count="0" type="stmt"/>
        <line num="94" count="1" type="stmt"/>
        <line num="99" count="1" type="stmt"/>
        <line num="102" count="1" type="stmt"/>
        <line num="107" count="1" type="stmt"/>
        <line num="110" count="0" type="stmt"/>
        <line num="115" count="0" type="stmt"/>
        <line num="118" count="0" type="stmt"/>
        <line num="121" count="2" type="stmt"/>
        <line num="125" count="2" type="stmt"/>
        <line num="126" count="2" type="stmt"/>
        <line num="127" count="2" type="stmt"/>
        <line num="129" count="2" type="stmt"/>
        <line num="130" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="131" count="1" type="stmt"/>
        <line num="134" count="1" type="stmt"/>
        <line num="136" count="2" type="stmt"/>
        <line num="139" count="0" type="stmt"/>
        <line num="140" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="141" count="0" type="stmt"/>
        <line num="144" count="0" type="stmt"/>
        <line num="150" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="151" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="152" count="1" type="stmt"/>
        <line num="154" count="1" type="stmt"/>
        <line num="157" count="0" type="stmt"/>
        <line num="162" count="1" type="stmt"/>
        <line num="164" count="1" type="stmt"/>
        <line num="165" count="1" type="stmt"/>
        <line num="166" count="1" type="stmt"/>
        <line num="169" count="0" type="stmt"/>
        <line num="177" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="178" count="1" type="stmt"/>
        <line num="180" count="1" type="cond" truecount="1" falsecount="1"/>
        <line num="181" count="1" type="stmt"/>
        <line num="182" count="1" type="stmt"/>
        <line num="185" count="0" type="stmt"/>
        <line num="189" count="0" type="stmt"/>
        <line num="196" count="2" type="stmt"/>
        <line num="197" count="2" type="stmt"/>
        <line num="198" count="2" type="stmt"/>
        <line num="201" count="2" type="cond" truecount="3" falsecount="1"/>
        <line num="202" count="0" type="stmt"/>
        <line num="205" count="2" type="stmt"/>
        <line num="209" count="2" type="stmt"/>
        <line num="210" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="211" count="0" type="stmt"/>
        <line num="214" count="2" type="stmt"/>
        <line num="218" count="2" type="stmt"/>
        <line num="219" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="224" count="2" type="cond" truecount="4" falsecount="1"/>
        <line num="225" count="0" type="stmt"/>
        <line num="229" count="2" type="stmt"/>
        <line num="230" count="2" type="stmt"/>
        <line num="231" count="2" type="cond" truecount="4" falsecount="0"/>
        <line num="232" count="1" type="stmt"/>
        <line num="235" count="2" type="stmt"/>
        <line num="238" count="0" type="stmt"/>
        <line num="239" count="0" type="stmt"/>
      </file>
    </package>
    <package name="src.app.guards">
      <metrics statements="21" coveredstatements="18" conditionals="4" coveredconditionals="4" methods="5" coveredmethods="4"/>
      <file name="admin.guard.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/guards/admin.guard.ts">
        <metrics statements="9" coveredstatements="9" conditionals="2" coveredconditionals="2" methods="3" coveredmethods="3"/>
        <line num="5" count="35" type="stmt"/>
        <line num="6" count="5" type="stmt"/>
        <line num="7" count="5" type="stmt"/>
        <line num="10" count="5" type="stmt"/>
        <line num="12" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="13" count="1" type="stmt"/>
        <line num="17" count="1" type="stmt"/>
        <line num="18" count="1" type="stmt"/>
        <line num="21" count="5" type="stmt"/>
      </file>
      <file name="auth.guard.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/guards/auth.guard.ts">
        <metrics statements="12" coveredstatements="9" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="1"/>
        <line num="5" count="35" type="stmt"/>
        <line num="6" count="100" type="stmt"/>
        <line num="7" count="100" type="stmt"/>
        <line num="8" count="100" type="stmt"/>
        <line num="10" count="100" type="cond" truecount="2" falsecount="0"/>
        <line num="11" count="9" type="stmt"/>
        <line num="12" count="9" type="stmt"/>
        <line num="15" count="91" type="stmt"/>
        <line num="17" count="0" type="stmt"/>
        <line num="18" count="0" type="stmt"/>
        <line num="19" count="0" type="stmt"/>
        <line num="22" count="91" type="stmt"/>
      </file>
    </package>
    <package name="src.app.http-interceptors">
      <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="3" coveredmethods="3"/>
      <file name="auth.interceptor.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/http-interceptors/auth.interceptor.ts">
        <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="3" coveredmethods="3"/>
        <line num="7" count="737" type="stmt"/>
        <line num="8" count="737" type="stmt"/>
        <line num="10" count="737" type="cond" truecount="2" falsecount="0"/>
        <line num="11" count="13" type="stmt"/>
        <line num="14" count="724" type="stmt"/>
        <line num="18" count="724" type="stmt"/>
        <line num="22" count="724" type="stmt"/>
        <line num="25" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.models">
      <metrics statements="815" coveredstatements="620" conditionals="158" coveredconditionals="96" methods="117" coveredmethods="88"/>
      <file name="canvas.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/models/canvas.ts">
        <metrics statements="265" coveredstatements="169" conditionals="30" coveredconditionals="21" methods="49" coveredmethods="31"/>
        <line num="12" count="1829" type="stmt"/>
        <line num="13" count="1829" type="stmt"/>
        <line num="17" count="0" type="stmt"/>
        <line num="21" count="0" type="stmt"/>
        <line num="25" count="0" type="stmt"/>
        <line num="29" count="48" type="stmt"/>
        <line num="40" count="70" type="stmt"/>
        <line num="41" count="70" type="stmt"/>
        <line num="42" count="70" type="stmt"/>
        <line num="43" count="70" type="stmt"/>
        <line num="47" count="35" type="stmt"/>
        <line num="48" count="35" type="stmt"/>
        <line num="56" count="294" type="stmt"/>
        <line num="57" count="294" type="stmt"/>
        <line num="58" count="294" type="stmt"/>
        <line num="67" count="212" type="stmt"/>
        <line num="68" count="212" type="stmt"/>
        <line num="78" count="645" type="stmt"/>
        <line num="79" count="645" type="stmt"/>
        <line num="80" count="645" type="stmt"/>
        <line num="85" count="16" type="stmt"/>
        <line num="86" count="16" type="stmt"/>
        <line num="87" count="16" type="stmt"/>
        <line num="88" count="16" type="stmt"/>
        <line num="89" count="16" type="stmt"/>
        <line num="100" count="637" type="stmt"/>
        <line num="104" count="372" type="stmt"/>
        <line num="105" count="372" type="stmt"/>
        <line num="106" count="372" type="stmt"/>
        <line num="107" count="372" type="stmt"/>
        <line num="108" count="372" type="stmt"/>
        <line num="109" count="372" type="stmt"/>
        <line num="115" count="153" type="stmt"/>
        <line num="116" count="153" type="stmt"/>
        <line num="118" count="153" type="cond" truecount="1" falsecount="1"/>
        <line num="119" count="153" type="stmt"/>
        <line num="120" count="153" type="stmt"/>
        <line num="123" count="153" type="cond" truecount="2" falsecount="0"/>
        <line num="124" count="152" type="stmt"/>
        <line num="125" count="152" type="stmt"/>
        <line num="126" count="152" type="stmt"/>
        <line num="129" count="153" type="stmt"/>
        <line num="134" count="123" type="stmt"/>
        <line num="139" count="123" type="stmt"/>
        <line num="140" count="123" type="stmt"/>
        <line num="142" count="123" type="cond" truecount="1" falsecount="1"/>
        <line num="143" count="123" type="stmt"/>
        <line num="144" count="123" type="stmt"/>
        <line num="147" count="123" type="cond" truecount="1" falsecount="1"/>
        <line num="148" count="123" type="stmt"/>
        <line num="149" count="123" type="stmt"/>
        <line num="150" count="123" type="stmt"/>
        <line num="153" count="123" type="stmt"/>
        <line num="158" count="8" type="stmt"/>
        <line num="161" count="8" type="stmt"/>
        <line num="162" count="8" type="stmt"/>
        <line num="165" count="8" type="stmt"/>
        <line num="167" count="8" type="stmt"/>
        <line num="170" count="8" type="stmt"/>
        <line num="173" count="8" type="stmt"/>
        <line num="174" count="8" type="stmt"/>
        <line num="175" count="8" type="stmt"/>
        <line num="178" count="8" type="cond" truecount="2" falsecount="0"/>
        <line num="181" count="8" type="stmt"/>
        <line num="182" count="8" type="stmt"/>
        <line num="185" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="186" count="8" type="stmt"/>
        <line num="187" count="8" type="stmt"/>
        <line num="190" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="191" count="8" type="stmt"/>
        <line num="192" count="8" type="stmt"/>
        <line num="193" count="8" type="stmt"/>
        <line num="196" count="8" type="stmt"/>
        <line num="202" count="212" type="stmt"/>
        <line num="204" count="212" type="stmt"/>
        <line num="205" count="212" type="stmt"/>
        <line num="207" count="212" type="stmt"/>
        <line num="208" count="212" type="stmt"/>
        <line num="209" count="212" type="stmt"/>
        <line num="210" count="212" type="stmt"/>
        <line num="214" count="212" type="stmt"/>
        <line num="215" count="212" type="stmt"/>
        <line num="216" count="212" type="stmt"/>
        <line num="220" count="212" type="stmt"/>
        <line num="225" count="212" type="stmt"/>
        <line num="226" count="212" type="stmt"/>
        <line num="229" count="212" type="stmt"/>
        <line num="230" count="212" type="stmt"/>
        <line num="231" count="212" type="stmt"/>
        <line num="234" count="212" type="stmt"/>
        <line num="238" count="193" type="stmt"/>
        <line num="240" count="193" type="stmt"/>
        <line num="241" count="193" type="stmt"/>
        <line num="242" count="659" type="stmt"/>
        <line num="245" count="193" type="stmt"/>
        <line num="246" count="193" type="stmt"/>
        <line num="247" count="193" type="stmt"/>
        <line num="248" count="193" type="cond" truecount="2" falsecount="0"/>
        <line num="249" count="53" type="stmt"/>
        <line num="250" count="53" type="stmt"/>
        <line num="252" count="193" type="stmt"/>
        <line num="256" count="0" type="stmt"/>
        <line num="257" count="0" type="stmt"/>
        <line num="258" count="0" type="stmt"/>
        <line num="259" count="0" type="stmt"/>
        <line num="260" count="0" type="stmt"/>
        <line num="261" count="0" type="stmt"/>
        <line num="262" count="0" type="stmt"/>
        <line num="275" count="9" type="cond" truecount="2" falsecount="0"/>
        <line num="276" count="3" type="stmt"/>
        <line num="277" count="3" type="stmt"/>
        <line num="280" count="9" type="cond" truecount="2" falsecount="0"/>
        <line num="281" count="3" type="stmt"/>
        <line num="282" count="3" type="stmt"/>
        <line num="285" count="9" type="stmt"/>
        <line num="286" count="9" type="stmt"/>
        <line num="287" count="9" type="stmt"/>
        <line num="288" count="9" type="stmt"/>
        <line num="293" count="0" type="stmt"/>
        <line num="297" count="6" type="stmt"/>
        <line num="301" count="3" type="stmt"/>
        <line num="302" count="3" type="stmt"/>
        <line num="303" count="3" type="stmt"/>
        <line num="304" count="3" type="stmt"/>
        <line num="305" count="3" type="stmt"/>
        <line num="306" count="126" type="stmt"/>
        <line num="307" count="126" type="stmt"/>
        <line num="308" count="126" type="stmt"/>
        <line num="309" count="126" type="stmt"/>
        <line num="311" count="3" type="stmt"/>
        <line num="320" count="3" type="stmt"/>
        <line num="321" count="3" type="stmt"/>
        <line num="322" count="3" type="stmt"/>
        <line num="326" count="855" type="stmt"/>
        <line num="330" count="855" type="stmt"/>
        <line num="334" count="849" type="stmt"/>
        <line num="338" count="849" type="stmt"/>
        <line num="342" count="3" type="stmt"/>
        <line num="343" count="3" type="stmt"/>
        <line num="344" count="3" type="stmt"/>
        <line num="348" count="3" type="stmt"/>
        <line num="353" count="6" type="stmt"/>
        <line num="354" count="6" type="cond" truecount="2" falsecount="0"/>
        <line num="356" count="5" type="stmt"/>
        <line num="357" count="5" type="stmt"/>
        <line num="358" count="5" type="stmt"/>
        <line num="359" count="5" type="stmt"/>
        <line num="360" count="5" type="stmt"/>
        <line num="364" count="1" type="stmt"/>
        <line num="365" count="1" type="stmt"/>
        <line num="366" count="1" type="stmt"/>
        <line num="367" count="1" type="stmt"/>
        <line num="368" count="1" type="stmt"/>
        <line num="370" count="6" type="stmt"/>
        <line num="371" count="6" type="stmt"/>
        <line num="376" count="3" type="stmt"/>
        <line num="377" count="3" type="stmt"/>
        <line num="378" count="3" type="stmt"/>
        <line num="379" count="3" type="stmt"/>
        <line num="383" count="0" type="stmt"/>
        <line num="384" count="0" type="stmt"/>
        <line num="385" count="0" type="stmt"/>
        <line num="386" count="0" type="stmt"/>
        <line num="390" count="0" type="stmt"/>
        <line num="391" count="0" type="stmt"/>
        <line num="392" count="0" type="stmt"/>
        <line num="393" count="0" type="stmt"/>
        <line num="394" count="0" type="stmt"/>
        <line num="395" count="0" type="stmt"/>
        <line num="399" count="0" type="stmt"/>
        <line num="400" count="0" type="stmt"/>
        <line num="401" count="0" type="stmt"/>
        <line num="402" count="0" type="stmt"/>
        <line num="403" count="0" type="stmt"/>
        <line num="404" count="0" type="stmt"/>
        <line num="410" count="1050" type="stmt"/>
        <line num="411" count="1050" type="stmt"/>
        <line num="412" count="1050" type="stmt"/>
        <line num="416" count="0" type="stmt"/>
        <line num="417" count="0" type="stmt"/>
        <line num="418" count="0" type="stmt"/>
        <line num="433" count="3" type="stmt"/>
        <line num="435" count="3" type="stmt"/>
        <line num="438" count="3" type="stmt"/>
        <line num="439" count="3" type="stmt"/>
        <line num="441" count="3" type="stmt"/>
        <line num="442" count="3" type="stmt"/>
        <line num="443" count="3" type="stmt"/>
        <line num="445" count="3" type="stmt"/>
        <line num="446" count="0" type="stmt"/>
        <line num="447" count="0" type="stmt"/>
        <line num="450" count="3" type="stmt"/>
        <line num="451" count="0" type="stmt"/>
        <line num="452" count="0" type="stmt"/>
        <line num="454" count="0" type="stmt"/>
        <line num="456" count="0" type="stmt"/>
        <line num="459" count="3" type="stmt"/>
        <line num="460" count="0" type="stmt"/>
        <line num="464" count="3" type="stmt"/>
        <line num="465" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="466" count="0" type="stmt"/>
        <line num="467" count="0" type="stmt"/>
        <line num="468" count="0" type="stmt"/>
        <line num="469" count="0" type="stmt"/>
        <line num="470" count="0" type="stmt"/>
        <line num="474" count="3" type="stmt"/>
        <line num="475" count="0" type="stmt"/>
        <line num="476" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="477" count="0" type="stmt"/>
        <line num="479" count="0" type="stmt"/>
        <line num="480" count="0" type="stmt"/>
        <line num="483" count="3" type="stmt"/>
        <line num="484" count="3" type="stmt"/>
        <line num="488" count="0" type="stmt"/>
        <line num="489" count="0" type="stmt"/>
        <line num="490" count="0" type="stmt"/>
        <line num="493" count="0" type="stmt"/>
        <line num="500" count="3" type="stmt"/>
        <line num="501" count="3" type="stmt"/>
        <line num="502" count="3" type="stmt"/>
        <line num="507" count="0" type="stmt"/>
        <line num="508" count="0" type="stmt"/>
        <line num="509" count="0" type="stmt"/>
        <line num="511" count="0" type="stmt"/>
        <line num="512" count="0" type="stmt"/>
        <line num="513" count="0" type="stmt"/>
        <line num="514" count="0" type="stmt"/>
        <line num="515" count="0" type="stmt"/>
        <line num="516" count="0" type="stmt"/>
        <line num="519" count="0" type="stmt"/>
        <line num="520" count="0" type="stmt"/>
        <line num="521" count="0" type="stmt"/>
        <line num="522" count="0" type="stmt"/>
        <line num="523" count="0" type="stmt"/>
        <line num="524" count="0" type="stmt"/>
        <line num="529" count="0" type="stmt"/>
        <line num="530" count="0" type="stmt"/>
        <line num="531" count="0" type="stmt"/>
        <line num="533" count="0" type="stmt"/>
        <line num="534" count="0" type="stmt"/>
        <line num="535" count="0" type="stmt"/>
        <line num="536" count="0" type="stmt"/>
        <line num="537" count="0" type="stmt"/>
        <line num="538" count="0" type="stmt"/>
        <line num="539" count="0" type="stmt"/>
        <line num="545" count="0" type="stmt"/>
        <line num="547" count="0" type="stmt"/>
        <line num="548" count="0" type="stmt"/>
        <line num="549" count="0" type="stmt"/>
        <line num="550" count="0" type="stmt"/>
        <line num="551" count="0" type="stmt"/>
        <line num="552" count="0" type="stmt"/>
        <line num="554" count="0" type="stmt"/>
        <line num="555" count="0" type="stmt"/>
        <line num="556" count="0" type="stmt"/>
        <line num="557" count="0" type="stmt"/>
        <line num="558" count="0" type="stmt"/>
        <line num="560" count="0" type="stmt"/>
        <line num="562" count="0" type="stmt"/>
        <line num="563" count="0" type="stmt"/>
        <line num="564" count="0" type="stmt"/>
        <line num="565" count="0" type="stmt"/>
        <line num="566" count="0" type="stmt"/>
        <line num="568" count="0" type="stmt"/>
        <line num="574" count="6" type="stmt"/>
      </file>
      <file name="events.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/models/events.ts">
        <metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
        <line num="9" count="1" type="stmt"/>
        <line num="10" count="1" type="stmt"/>
        <line num="11" count="2" type="stmt"/>
        <line num="12" count="2" type="stmt"/>
        <line num="14" count="2" type="stmt"/>
        <line num="16" count="1" type="stmt"/>
      </file>
      <file name="petri.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/models/petri.ts">
        <metrics statements="200" coveredstatements="142" conditionals="63" coveredconditionals="29" methods="24" coveredmethods="18"/>
        <line num="11" count="44" type="stmt"/>
        <line num="15" count="84" type="stmt"/>
        <line num="16" count="84" type="stmt"/>
        <line num="17" count="84" type="stmt"/>
        <line num="18" count="84" type="stmt"/>
        <line num="19" count="84" type="stmt"/>
        <line num="29" count="52" type="stmt"/>
        <line num="33" count="102" type="stmt"/>
        <line num="34" count="102" type="stmt"/>
        <line num="35" count="102" type="stmt"/>
        <line num="36" count="102" type="stmt"/>
        <line num="37" count="102" type="stmt"/>
        <line num="38" count="102" type="stmt"/>
        <line num="47" count="212" type="stmt"/>
        <line num="48" count="212" type="stmt"/>
        <line num="49" count="212" type="stmt"/>
        <line num="50" count="212" type="stmt"/>
        <line num="51" count="212" type="stmt"/>
        <line num="52" count="212" type="stmt"/>
        <line num="53" count="212" type="stmt"/>
        <line num="54" count="212" type="cond" truecount="2" falsecount="0"/>
        <line num="56" count="188" type="cond" truecount="2" falsecount="0"/>
        <line num="57" count="104" type="stmt"/>
        <line num="58" count="104" type="stmt"/>
        <line num="61" count="84" type="stmt"/>
        <line num="62" count="84" type="stmt"/>
        <line num="64" count="188" type="stmt"/>
        <line num="69" count="24" type="stmt"/>
        <line num="70" count="24" type="stmt"/>
        <line num="71" count="24" type="stmt"/>
        <line num="72" count="24" type="stmt"/>
        <line num="74" count="24" type="stmt"/>
        <line num="75" count="24" type="stmt"/>
        <line num="76" count="24" type="cond" truecount="2" falsecount="0"/>
        <line num="77" count="24" type="stmt"/>
        <line num="78" count="24" type="stmt"/>
        <line num="79" count="24" type="stmt"/>
        <line num="81" count="24" type="stmt"/>
        <line num="82" count="24" type="stmt"/>
        <line num="83" count="24" type="stmt"/>
        <line num="94" count="53" type="stmt"/>
        <line num="95" count="53" type="stmt"/>
        <line num="96" count="53" type="stmt"/>
        <line num="105" count="53" type="stmt"/>
        <line num="106" count="53" type="stmt"/>
        <line num="107" count="53" type="stmt"/>
        <line num="134" count="212" type="stmt"/>
        <line num="149" count="1" type="stmt"/>
        <line num="150" count="1" type="stmt"/>
        <line num="151" count="1" type="stmt"/>
        <line num="152" count="1" type="stmt"/>
        <line num="153" count="1" type="stmt"/>
        <line num="155" count="1" type="stmt"/>
        <line num="157" count="1" type="stmt"/>
        <line num="158" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="159" count="0" type="stmt"/>
        <line num="161" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="162" count="0" type="stmt"/>
        <line num="171" count="1" type="stmt"/>
        <line num="172" count="1" type="stmt"/>
        <line num="173" count="44" type="stmt"/>
        <line num="176" count="1" type="stmt"/>
        <line num="178" count="1" type="stmt"/>
        <line num="179" count="52" type="stmt"/>
        <line num="182" count="1" type="stmt"/>
        <line num="183" count="1" type="stmt"/>
        <line num="184" count="53" type="stmt"/>
        <line num="185" count="53" type="stmt"/>
        <line num="186" count="53" type="stmt"/>
        <line num="188" count="1" type="stmt"/>
        <line num="189" count="1" type="stmt"/>
        <line num="190" count="53" type="stmt"/>
        <line num="191" count="53" type="stmt"/>
        <line num="192" count="53" type="stmt"/>
        <line num="195" count="1" type="stmt"/>
        <line num="201" count="0" type="stmt"/>
        <line num="206" count="93" type="cond" truecount="2" falsecount="0"/>
        <line num="207" count="51" type="stmt"/>
        <line num="210" count="42" type="stmt"/>
        <line num="212" count="93" type="stmt"/>
        <line num="213" count="93" type="stmt"/>
        <line num="214" count="4929" type="cond" truecount="2" falsecount="0"/>
        <line num="215" count="106" type="stmt"/>
        <line num="218" count="93" type="stmt"/>
        <line num="223" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="224" count="0" type="stmt"/>
        <line num="227" count="0" type="stmt"/>
        <line num="229" count="0" type="stmt"/>
        <line num="230" count="0" type="stmt"/>
        <line num="231" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="232" count="0" type="stmt"/>
        <line num="235" count="0" type="stmt"/>
        <line num="239" count="0" type="stmt"/>
        <line num="245" count="1" type="stmt"/>
        <line num="246" count="1" type="stmt"/>
        <line num="247" count="1" type="stmt"/>
        <line num="248" count="1" type="stmt"/>
        <line num="249" count="1" type="stmt"/>
        <line num="250" count="1" type="stmt"/>
        <line num="251" count="1" type="stmt"/>
        <line num="252" count="1" type="cond" truecount="2" falsecount="0"/>
        <line num="253" count="480" type="stmt"/>
        <line num="254" count="480" type="stmt"/>
        <line num="255" count="93" type="stmt"/>
        <line num="256" count="106" type="cond" truecount="2" falsecount="0"/>
        <line num="257" count="92" type="stmt"/>
        <line num="258" count="92" type="stmt"/>
        <line num="262" count="480" type="stmt"/>
        <line num="263" count="480" type="stmt"/>
        <line num="265" count="480" type="stmt"/>
        <line num="267" count="1" type="stmt"/>
        <line num="274" count="1" type="stmt"/>
        <line num="276" count="1" type="stmt"/>
        <line num="277" count="1" type="stmt"/>
        <line num="280" count="1" type="stmt"/>
        <line num="282" count="1" type="stmt"/>
        <line num="285" count="1" type="stmt"/>
        <line num="286" count="93" type="cond" truecount="2" falsecount="0"/>
        <line num="287" count="58" type="stmt"/>
        <line num="289" count="93" type="stmt"/>
        <line num="293" count="1" type="stmt"/>
        <line num="294" count="58" type="stmt"/>
        <line num="295" count="93" type="stmt"/>
        <line num="300" count="1" type="stmt"/>
        <line num="306" count="0" type="stmt"/>
        <line num="307" count="0" type="stmt"/>
        <line num="308" count="0" type="stmt"/>
        <line num="309" count="0" type="stmt"/>
        <line num="310" count="0" type="stmt"/>
        <line num="312" count="0" type="stmt"/>
        <line num="313" count="0" type="stmt"/>
        <line num="314" count="0" type="stmt"/>
        <line num="315" count="0" type="stmt"/>
        <line num="316" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="317" count="0" type="stmt"/>
        <line num="320" count="0" type="stmt"/>
        <line num="321" count="0" type="stmt"/>
        <line num="322" count="0" type="stmt"/>
        <line num="324" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="328" count="0" type="stmt"/>
        <line num="329" count="0" type="stmt"/>
        <line num="330" count="0" type="stmt"/>
        <line num="332" count="0" type="stmt"/>
        <line num="333" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="334" count="0" type="stmt"/>
        <line num="335" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="336" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="337" count="0" type="stmt"/>
        <line num="338" count="0" type="stmt"/>
        <line num="345" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="346" count="0" type="stmt"/>
        <line num="347" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="348" count="0" type="stmt"/>
        <line num="349" count="0" type="stmt"/>
        <line num="350" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="351" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="352" count="0" type="stmt"/>
        <line num="355" count="0" type="stmt"/>
        <line num="362" count="0" type="stmt"/>
        <line num="363" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="364" count="0" type="stmt"/>
        <line num="365" count="0" type="stmt"/>
        <line num="366" count="0" type="stmt"/>
        <line num="367" count="0" type="stmt"/>
        <line num="372" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="373" count="0" type="stmt"/>
        <line num="377" count="0" type="stmt"/>
        <line num="381" count="1" type="stmt"/>
        <line num="382" count="1" type="stmt"/>
        <line num="383" count="93" type="stmt"/>
        <line num="385" count="1" type="stmt"/>
        <line num="390" count="2" type="cond" truecount="2" falsecount="0"/>
        <line num="393" count="2" type="stmt"/>
        <line num="394" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="395" count="0" type="stmt"/>
        <line num="399" count="2" type="stmt"/>
        <line num="400" count="2" type="stmt"/>
        <line num="401" count="2" type="stmt"/>
        <line num="403" count="2" type="stmt"/>
        <line num="404" count="2" type="stmt"/>
        <line num="405" count="2" type="stmt"/>
        <line num="406" count="2" type="stmt"/>
        <line num="408" count="2" type="stmt"/>
        <line num="409" count="106" type="stmt"/>
        <line num="410" count="106" type="stmt"/>
        <line num="411" count="106" type="cond" truecount="3" falsecount="1"/>
        <line num="412" count="106" type="stmt"/>
        <line num="416" count="2" type="stmt"/>
        <line num="417" count="106" type="stmt"/>
        <line num="418" count="106" type="stmt"/>
        <line num="419" count="106" type="cond" truecount="3" falsecount="1"/>
        <line num="420" count="106" type="stmt"/>
        <line num="424" count="2" type="stmt"/>
        <line num="425" count="88" type="stmt"/>
        <line num="426" count="88" type="cond" truecount="2" falsecount="0"/>
        <line num="427" count="84" type="stmt"/>
        <line num="432" count="2" type="stmt"/>
        <line num="433" count="104" type="stmt"/>
        <line num="434" count="104" type="cond" truecount="2" falsecount="0"/>
        <line num="435" count="102" type="stmt"/>
      </file>
      <file name="pid.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/models/pid.ts">
        <metrics statements="291" coveredstatements="251" conditionals="53" coveredconditionals="40" methods="25" coveredmethods="21"/>
        <line num="21" count="35" type="stmt"/>
        <line num="27" count="35" type="stmt"/>
        <line num="31" count="175" type="stmt"/>
        <line num="36" count="33" type="stmt"/>
        <line num="37" count="33" type="cond" truecount="1" falsecount="1"/>
        <line num="38" count="0" type="stmt"/>
        <line num="44" count="33" type="stmt"/>
        <line num="45" count="33" type="stmt"/>
        <line num="46" count="33" type="stmt"/>
        <line num="47" count="33" type="stmt"/>
        <line num="48" count="33" type="stmt"/>
        <line num="50" count="33" type="stmt"/>
        <line num="54" count="0" type="stmt"/>
        <line num="55" count="0" type="stmt"/>
        <line num="56" count="0" type="stmt"/>
        <line num="57" count="0" type="stmt"/>
        <line num="58" count="0" type="stmt"/>
        <line num="59" count="0" type="stmt"/>
        <line num="60" count="0" type="stmt"/>
        <line num="72" count="14" type="stmt"/>
        <line num="73" count="14" type="stmt"/>
        <line num="77" count="0" type="stmt"/>
        <line num="78" count="0" type="stmt"/>
        <line num="79" count="0" type="stmt"/>
        <line num="80" count="0" type="stmt"/>
        <line num="85" count="38" type="stmt"/>
        <line num="86" count="38" type="stmt"/>
        <line num="87" count="38" type="stmt"/>
        <line num="88" count="38" type="stmt"/>
        <line num="91" count="38" type="cond" truecount="2" falsecount="0"/>
        <line num="92" count="30" type="stmt"/>
        <line num="93" count="30" type="stmt"/>
        <line num="94" count="30" type="stmt"/>
        <line num="95" count="30" type="stmt"/>
        <line num="96" count="30" type="stmt"/>
        <line num="99" count="8" type="stmt"/>
        <line num="100" count="8" type="stmt"/>
        <line num="101" count="8" type="stmt"/>
        <line num="102" count="8" type="stmt"/>
        <line num="103" count="8" type="stmt"/>
        <line num="105" count="38" type="stmt"/>
        <line num="106" count="38" type="cond" truecount="2" falsecount="0"/>
        <line num="107" count="10" type="cond" truecount="2" falsecount="0"/>
        <line num="109" count="7" type="cond" truecount="2" falsecount="0"/>
        <line num="110" count="3" type="stmt"/>
        <line num="112" count="4" type="cond" truecount="1" falsecount="1"/>
        <line num="113" count="0" type="stmt"/>
        <line num="115" count="4" type="cond" truecount="1" falsecount="1"/>
        <line num="116" count="4" type="stmt"/>
        <line num="118" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="119" count="0" type="stmt"/>
        <line num="122" count="0" type="stmt"/>
        <line num="125" count="3" type="cond" truecount="2" falsecount="0"/>
        <line num="126" count="2" type="stmt"/>
        <line num="127" count="2" type="stmt"/>
        <line num="132" count="38" type="stmt"/>
        <line num="134" count="38" type="cond" truecount="2" falsecount="0"/>
        <line num="135" count="30" type="cond" truecount="2" falsecount="0"/>
        <line num="136" count="24" type="stmt"/>
        <line num="139" count="6" type="stmt"/>
        <line num="149" count="6" type="stmt"/>
        <line num="150" count="6" type="stmt"/>
        <line num="152" count="6" type="stmt"/>
        <line num="153" count="6" type="stmt"/>
        <line num="154" count="6" type="stmt"/>
        <line num="155" count="6" type="stmt"/>
        <line num="156" count="6" type="stmt"/>
        <line num="157" count="6" type="stmt"/>
        <line num="159" count="6" type="stmt"/>
        <line num="161" count="6" type="stmt"/>
        <line num="162" count="6" type="stmt"/>
        <line num="163" count="6" type="stmt"/>
        <line num="164" count="6" type="stmt"/>
        <line num="165" count="6" type="stmt"/>
        <line num="166" count="6" type="stmt"/>
        <line num="169" count="6" type="stmt"/>
        <line num="170" count="6" type="stmt"/>
        <line num="171" count="6" type="stmt"/>
        <line num="180" count="40" type="stmt"/>
        <line num="181" count="40" type="stmt"/>
        <line num="182" count="40" type="stmt"/>
        <line num="183" count="40" type="stmt"/>
        <line num="184" count="40" type="stmt"/>
        <line num="186" count="40" type="stmt"/>
        <line num="187" count="40" type="stmt"/>
        <line num="188" count="40" type="stmt"/>
        <line num="189" count="40" type="stmt"/>
        <line num="191" count="40" type="stmt"/>
        <line num="193" count="40" type="stmt"/>
        <line num="195" count="40" type="stmt"/>
        <line num="196" count="40" type="stmt"/>
        <line num="198" count="40" type="stmt"/>
        <line num="199" count="40" type="stmt"/>
        <line num="201" count="40" type="stmt"/>
        <line num="203" count="40" type="stmt"/>
        <line num="217" count="4" type="stmt"/>
        <line num="218" count="4" type="stmt"/>
        <line num="219" count="4" type="stmt"/>
        <line num="220" count="4" type="stmt"/>
        <line num="222" count="4" type="stmt"/>
        <line num="223" count="4" type="stmt"/>
        <line num="224" count="4" type="stmt"/>
        <line num="225" count="4" type="stmt"/>
        <line num="226" count="4" type="stmt"/>
        <line num="227" count="4" type="stmt"/>
        <line num="228" count="4" type="stmt"/>
        <line num="229" count="4" type="stmt"/>
        <line num="230" count="4" type="stmt"/>
        <line num="231" count="4" type="stmt"/>
        <line num="232" count="4" type="stmt"/>
        <line num="234" count="4" type="stmt"/>
        <line num="235" count="4" type="stmt"/>
        <line num="236" count="4" type="stmt"/>
        <line num="239" count="4" type="cond" truecount="4" falsecount="0"/>
        <line num="240" count="1" type="stmt"/>
        <line num="241" count="1" type="stmt"/>
        <line num="242" count="1" type="stmt"/>
        <line num="259" count="3" type="stmt"/>
        <line num="260" count="3" type="stmt"/>
        <line num="261" count="3" type="stmt"/>
        <line num="262" count="3" type="stmt"/>
        <line num="263" count="3" type="stmt"/>
        <line num="265" count="3" type="stmt"/>
        <line num="266" count="3" type="stmt"/>
        <line num="268" count="3" type="stmt"/>
        <line num="269" count="3" type="stmt"/>
        <line num="271" count="3" type="stmt"/>
        <line num="273" count="3" type="stmt"/>
        <line num="274" count="3" type="stmt"/>
        <line num="277" count="3" type="stmt"/>
        <line num="278" count="3" type="stmt"/>
        <line num="279" count="3" type="stmt"/>
        <line num="280" count="3" type="stmt"/>
        <line num="281" count="3" type="stmt"/>
        <line num="282" count="3" type="stmt"/>
        <line num="284" count="3" type="stmt"/>
        <line num="285" count="3" type="stmt"/>
        <line num="286" count="3" type="stmt"/>
        <line num="288" count="3" type="stmt"/>
        <line num="289" count="3" type="stmt"/>
        <line num="290" count="3" type="stmt"/>
        <line num="293" count="3" type="stmt"/>
        <line num="294" count="3" type="stmt"/>
        <line num="296" count="3" type="stmt"/>
        <line num="297" count="3" type="stmt"/>
        <line num="299" count="3" type="stmt"/>
        <line num="300" count="3" type="stmt"/>
        <line num="302" count="3" type="stmt"/>
        <line num="303" count="3" type="stmt"/>
        <line num="304" count="3" type="stmt"/>
        <line num="307" count="3" type="stmt"/>
        <line num="308" count="3" type="stmt"/>
        <line num="309" count="3" type="stmt"/>
        <line num="313" count="3" type="stmt"/>
        <line num="314" count="3" type="stmt"/>
        <line num="317" count="3" type="stmt"/>
        <line num="318" count="3" type="stmt"/>
        <line num="319" count="3" type="stmt"/>
        <line num="320" count="3" type="stmt"/>
        <line num="321" count="3" type="stmt"/>
        <line num="322" count="3" type="stmt"/>
        <line num="324" count="3" type="stmt"/>
        <line num="333" count="35" type="stmt"/>
        <line num="334" count="35" type="stmt"/>
        <line num="335" count="35" type="stmt"/>
        <line num="336" count="35" type="stmt"/>
        <line num="337" count="35" type="stmt"/>
        <line num="355" count="44" type="stmt"/>
        <line num="356" count="44" type="stmt"/>
        <line num="357" count="44" type="stmt"/>
        <line num="358" count="44" type="stmt"/>
        <line num="359" count="44" type="stmt"/>
        <line num="363" count="44" type="stmt"/>
        <line num="369" count="116" type="stmt"/>
        <line num="370" count="116" type="stmt"/>
        <line num="372" count="116" type="stmt"/>
        <line num="373" count="116" type="stmt"/>
        <line num="374" count="116" type="cond" truecount="2" falsecount="0"/>
        <line num="375" count="112" type="cond" truecount="2" falsecount="0"/>
        <line num="376" count="95" type="stmt"/>
        <line num="377" count="95" type="stmt"/>
        <line num="378" count="95" type="stmt"/>
        <line num="381" count="17" type="stmt"/>
        <line num="385" count="4" type="cond" truecount="1" falsecount="1"/>
        <line num="386" count="0" type="stmt"/>
        <line num="387" count="0" type="stmt"/>
        <line num="388" count="0" type="stmt"/>
        <line num="391" count="4" type="stmt"/>
        <line num="395" count="116" type="stmt"/>
        <line num="396" count="116" type="stmt"/>
        <line num="417" count="17" type="stmt"/>
        <line num="420" count="0" type="stmt"/>
        <line num="421" count="0" type="stmt"/>
        <line num="422" count="0" type="stmt"/>
        <line num="423" count="0" type="stmt"/>
        <line num="427" count="39" type="stmt"/>
        <line num="428" count="39" type="stmt"/>
        <line num="430" count="39" type="stmt"/>
        <line num="431" count="39" type="stmt"/>
        <line num="434" count="39" type="stmt"/>
        <line num="435" count="39" type="stmt"/>
        <line num="438" count="39" type="stmt"/>
        <line num="439" count="39" type="stmt"/>
        <line num="440" count="39" type="stmt"/>
        <line num="442" count="39" type="cond" truecount="2" falsecount="0"/>
        <line num="443" count="11" type="cond" truecount="1" falsecount="1"/>
        <line num="444" count="0" type="stmt"/>
        <line num="445" count="0" type="stmt"/>
        <line num="447" count="11" type="cond" truecount="4" falsecount="0"/>
        <line num="448" count="1" type="stmt"/>
        <line num="451" count="10" type="stmt"/>
        <line num="456" count="39" type="stmt"/>
        <line num="461" count="39" type="stmt"/>
        <line num="466" count="39" type="stmt"/>
        <line num="468" count="39" type="stmt"/>
        <line num="470" count="39" type="stmt"/>
        <line num="471" count="39" type="stmt"/>
        <line num="473" count="39" type="cond" truecount="1" falsecount="1"/>
        <line num="474" count="0" type="stmt"/>
        <line num="475" count="0" type="stmt"/>
        <line num="478" count="39" type="stmt"/>
        <line num="485" count="17" type="stmt"/>
        <line num="489" count="39" type="stmt"/>
        <line num="490" count="39" type="stmt"/>
        <line num="491" count="39" type="stmt"/>
        <line num="493" count="39" type="stmt"/>
        <line num="495" count="39" type="stmt"/>
        <line num="496" count="39" type="stmt"/>
        <line num="497" count="39" type="stmt"/>
        <line num="498" count="39" type="stmt"/>
        <line num="499" count="39" type="stmt"/>
        <line num="500" count="39" type="stmt"/>
        <line num="501" count="39" type="stmt"/>
        <line num="503" count="39" type="stmt"/>
        <line num="505" count="39" type="stmt"/>
        <line num="508" count="39" type="stmt"/>
        <line num="513" count="17" type="stmt"/>
        <line num="514" count="17" type="stmt"/>
        <line num="515" count="17" type="stmt"/>
        <line num="516" count="17" type="stmt"/>
        <line num="517" count="17" type="stmt"/>
        <line num="536" count="2" type="stmt"/>
        <line num="540" count="2" type="stmt"/>
        <line num="541" count="2" type="stmt"/>
        <line num="542" count="2" type="stmt"/>
        <line num="543" count="2" type="stmt"/>
        <line num="544" count="2" type="stmt"/>
        <line num="549" count="0" type="stmt"/>
        <line num="550" count="0" type="stmt"/>
        <line num="551" count="0" type="stmt"/>
        <line num="552" count="0" type="stmt"/>
        <line num="553" count="0" type="stmt"/>
        <line num="554" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="555" count="0" type="stmt"/>
        <line num="556" count="0" type="stmt"/>
        <line num="559" count="0" type="stmt"/>
        <line num="560" count="0" type="stmt"/>
        <line num="564" count="2" type="stmt"/>
        <line num="565" count="2" type="stmt"/>
        <line num="566" count="2" type="stmt"/>
        <line num="567" count="33" type="stmt"/>
        <line num="571" count="2" type="stmt"/>
        <line num="572" count="2" type="stmt"/>
        <line num="573" count="0" type="stmt"/>
        <line num="576" count="2" type="stmt"/>
        <line num="577" count="2" type="stmt"/>
        <line num="578" count="17" type="stmt"/>
        <line num="581" count="2" type="stmt"/>
        <line num="583" count="2" type="stmt"/>
        <line num="584" count="2" type="stmt"/>
        <line num="585" count="44" type="stmt"/>
        <line num="588" count="2" type="stmt"/>
        <line num="596" count="2" type="stmt"/>
        <line num="597" count="2" type="stmt"/>
        <line num="598" count="33" type="stmt"/>
        <line num="600" count="2" type="stmt"/>
        <line num="605" count="4" type="cond" truecount="2" falsecount="0"/>
        <line num="608" count="4" type="stmt"/>
        <line num="609" count="4" type="cond" truecount="1" falsecount="1"/>
        <line num="610" count="0" type="stmt"/>
        <line num="616" count="4" type="stmt"/>
        <line num="617" count="4" type="stmt"/>
        <line num="618" count="4" type="stmt"/>
        <line num="622" count="4" type="stmt"/>
        <line num="623" count="116" type="stmt"/>
        <line num="626" count="4" type="stmt"/>
        <line num="627" count="85" type="stmt"/>
        <line num="630" count="4" type="stmt"/>
        <line num="631" count="0" type="stmt"/>
        <line num="634" count="4" type="stmt"/>
        <line num="635" count="39" type="stmt"/>
      </file>
      <file name="signals.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/models/signals.ts">
        <metrics statements="50" coveredstatements="50" conditionals="6" coveredconditionals="6" methods="15" coveredmethods="15"/>
        <line num="36" count="5890" type="stmt"/>
        <line num="40" count="2353" type="stmt"/>
        <line num="44" count="1276" type="stmt"/>
        <line num="48" count="4" type="stmt"/>
        <line num="52" count="281" type="cond" truecount="2" falsecount="0"/>
        <line num="53" count="78" type="stmt"/>
        <line num="54" count="78" type="stmt"/>
        <line num="55" count="78" type="stmt"/>
        <line num="56" count="300" type="cond" truecount="2" falsecount="0"/>
        <line num="57" count="222" type="stmt"/>
        <line num="60" count="78" type="stmt"/>
        <line num="62" count="203" type="stmt"/>
        <line num="79" count="20" type="stmt"/>
        <line num="80" count="20" type="stmt"/>
        <line num="81" count="20" type="stmt"/>
        <line num="82" count="20" type="stmt"/>
        <line num="83" count="20" type="stmt"/>
        <line num="84" count="20" type="stmt"/>
        <line num="85" count="20" type="stmt"/>
        <line num="89" count="13" type="stmt"/>
        <line num="90" count="13" type="stmt"/>
        <line num="92" count="13" type="stmt"/>
        <line num="93" count="91" type="stmt"/>
        <line num="94" count="91" type="stmt"/>
        <line num="95" count="91" type="stmt"/>
        <line num="97" count="13" type="stmt"/>
        <line num="110" count="8" type="stmt"/>
        <line num="111" count="8" type="stmt"/>
        <line num="112" count="8" type="stmt"/>
        <line num="116" count="5" type="stmt"/>
        <line num="127" count="12" type="stmt"/>
        <line num="128" count="12" type="stmt"/>
        <line num="129" count="12" type="stmt"/>
        <line num="133" count="8" type="stmt"/>
        <line num="143" count="44" type="stmt"/>
        <line num="144" count="44" type="stmt"/>
        <line num="145" count="44" type="stmt"/>
        <line num="149" count="6" type="stmt"/>
        <line num="150" count="6" type="stmt"/>
        <line num="151" count="7" type="cond" truecount="2" falsecount="0"/>
        <line num="152" count="3" type="stmt"/>
        <line num="155" count="3" type="stmt"/>
        <line num="158" count="4" type="stmt"/>
        <line num="161" count="4" type="stmt"/>
        <line num="164" count="6" type="stmt"/>
        <line num="168" count="29" type="stmt"/>
        <line num="169" count="29" type="stmt"/>
        <line num="170" count="13" type="stmt"/>
        <line num="172" count="29" type="stmt"/>
        <line num="184" count="12" type="stmt"/>
      </file>
      <file name="status.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/models/status.ts">
        <metrics statements="3" coveredstatements="2" conditionals="6" coveredconditionals="0" methods="3" coveredmethods="2"/>
        <line num="14" count="111" type="stmt"/>
        <line num="18" count="0" type="cond" truecount="0" falsecount="6"/>
        <line num="26" count="111" type="stmt"/>
      </file>
    </package>
    <package name="src.app.pipes">
      <metrics statements="51" coveredstatements="32" conditionals="51" coveredconditionals="28" methods="8" coveredmethods="8"/>
      <file name="duration.pipe.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/pipes/duration.pipe.ts">
        <metrics statements="23" coveredstatements="13" conditionals="18" coveredconditionals="7" methods="2" coveredmethods="2"/>
        <line num="7" count="43" type="cond" truecount="2" falsecount="0"/>
        <line num="10" count="8" type="stmt"/>
        <line num="12" count="8" type="stmt"/>
        <line num="13" count="8" type="stmt"/>
        <line num="14" count="8" type="stmt"/>
        <line num="15" count="8" type="stmt"/>
        <line num="17" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="18" count="0" type="stmt"/>
        <line num="19" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="20" count="0" type="stmt"/>
        <line num="24" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="25" count="0" type="stmt"/>
        <line num="26" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="27" count="0" type="stmt"/>
        <line num="32" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="33" count="8" type="stmt"/>
        <line num="34" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="35" count="0" type="stmt"/>
        <line num="39" count="8" type="cond" truecount="1" falsecount="1"/>
        <line num="40" count="0" type="stmt"/>
        <line num="41" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="42" count="0" type="stmt"/>
        <line num="46" count="8" type="stmt"/>
      </file>
      <file name="number-suffix.pipe.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/pipes/number-suffix.pipe.ts">
        <metrics statements="19" coveredstatements="12" conditionals="24" coveredconditionals="14" methods="3" coveredmethods="3"/>
        <line num="7" count="52" type="cond" truecount="2" falsecount="0"/>
        <line num="11" count="19" type="stmt"/>
        <line num="12" count="19" type="cond" truecount="7" falsecount="1"/>
        <line num="13" count="7" type="cond" truecount="2" falsecount="4"/>
        <line num="14" count="0" type="stmt"/>
        <line num="16" count="7" type="stmt"/>
        <line num="20" count="12" type="stmt"/>
        <line num="21" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="22" count="12" type="stmt"/>
        <line num="24" count="12" type="stmt"/>
        <line num="26" count="0" type="stmt"/>
        <line num="28" count="0" type="stmt"/>
        <line num="30" count="0" type="stmt"/>
        <line num="36" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="37" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="38" count="12" type="stmt"/>
        <line num="39" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="40" count="0" type="stmt"/>
        <line num="42" count="0" type="stmt"/>
      </file>
      <file name="value.pipe.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/pipes/value.pipe.ts">
        <metrics statements="9" coveredstatements="7" conditionals="9" coveredconditionals="7" methods="3" coveredmethods="3"/>
        <line num="9" count="42" type="cond" truecount="2" falsecount="0"/>
        <line num="11" count="7" type="stmt"/>
        <line num="15" count="11" type="cond" truecount="1" falsecount="1"/>
        <line num="16" count="0" type="stmt"/>
        <line num="19" count="11" type="cond" truecount="2" falsecount="0"/>
        <line num="20" count="3" type="cond" truecount="1" falsecount="1"/>
        <line num="22" count="3" type="stmt"/>
        <line num="24" count="0" type="stmt"/>
        <line num="27" count="8" type="stmt"/>
      </file>
    </package>
    <package name="src.app.services">
      <metrics statements="190" coveredstatements="152" conditionals="77" coveredconditionals="40" methods="85" coveredmethods="70"/>
      <file name="dynamic-component.service.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/services/dynamic-component.service.ts">
        <metrics statements="13" coveredstatements="11" conditionals="4" coveredconditionals="3" methods="8" coveredmethods="7"/>
        <line num="10" count="37" type="cond" truecount="2" falsecount="0"/>
        <line num="12" count="2" type="stmt"/>
        <line num="14" count="2" type="stmt"/>
        <line num="15" count="2" type="cond" truecount="1" falsecount="1"/>
        <line num="16" count="0" type="stmt"/>
        <line num="21" count="0" type="stmt"/>
        <line num="25" count="2" type="stmt"/>
        <line num="29" count="2" type="stmt"/>
        <line num="33" count="1" type="stmt"/>
        <line num="34" count="1" type="stmt"/>
        <line num="38" count="1" type="stmt"/>
        <line num="39" count="1" type="stmt"/>
        <line num="43" count="1" type="stmt"/>
      </file>
      <file name="login.service.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/services/login.service.ts">
        <metrics statements="32" coveredstatements="29" conditionals="12" coveredconditionals="10" methods="12" coveredmethods="11"/>
        <line num="14" count="70" type="cond" truecount="2" falsecount="0"/>
        <line num="16" count="35" type="stmt"/>
        <line num="19" count="35" type="stmt"/>
        <line num="20" count="35" type="cond" truecount="1" falsecount="1"/>
        <line num="21" count="0" type="stmt"/>
        <line num="23" count="35" type="stmt"/>
        <line num="27" count="737" type="stmt"/>
        <line num="31" count="0" type="stmt"/>
        <line num="32" count="0" type="stmt"/>
        <line num="37" count="7" type="stmt"/>
        <line num="38" count="7" type="stmt"/>
        <line num="39" count="7" type="stmt"/>
        <line num="40" count="7" type="stmt"/>
        <line num="41" count="7" type="stmt"/>
        <line num="46" count="1" type="stmt"/>
        <line num="50" count="91" type="stmt"/>
        <line num="51" count="91" type="stmt"/>
        <line num="55" count="39" type="cond" truecount="2" falsecount="0"/>
        <line num="56" count="1" type="stmt"/>
        <line num="58" count="38" type="stmt"/>
        <line num="62" count="1" type="stmt"/>
        <line num="71" count="1" type="stmt"/>
        <line num="72" count="1" type="stmt"/>
        <line num="76" count="3" type="stmt"/>
        <line num="80" count="39" type="stmt"/>
        <line num="85" count="214" type="stmt"/>
        <line num="86" count="214" type="cond" truecount="2" falsecount="0"/>
        <line num="87" count="203" type="stmt"/>
        <line num="88" count="203" type="cond" truecount="3" falsecount="1"/>
        <line num="89" count="203" type="stmt"/>
        <line num="92" count="11" type="stmt"/>
        <line num="93" count="11" type="stmt"/>
      </file>
      <file name="style.service.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/services/style.service.ts">
        <metrics statements="8" coveredstatements="7" conditionals="4" coveredconditionals="3" methods="3" coveredmethods="3"/>
        <line num="6" count="45" type="cond" truecount="2" falsecount="0"/>
        <line num="12" count="10" type="stmt"/>
        <line num="30" count="10" type="stmt"/>
        <line num="35" count="212" type="stmt"/>
        <line num="37" count="212" type="stmt"/>
        <line num="38" count="212" type="cond" truecount="1" falsecount="1"/>
        <line num="39" count="0" type="stmt"/>
        <line num="41" count="212" type="stmt"/>
      </file>
      <file name="twinpad-api.service.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/services/twinpad-api.service.ts">
        <metrics statements="137" coveredstatements="105" conditionals="57" coveredconditionals="24" methods="62" coveredmethods="49"/>
        <line num="20" count="92" type="cond" truecount="2" falsecount="0"/>
        <line num="22" count="57" type="stmt"/>
        <line num="25" count="57" type="stmt"/>
        <line num="26" count="57" type="cond" truecount="1" falsecount="1"/>
        <line num="27" count="0" type="stmt"/>
        <line num="38" count="285" type="stmt"/>
        <line num="39" count="285" type="stmt"/>
        <line num="40" count="242" type="stmt"/>
        <line num="42" count="261" type="stmt"/>
        <line num="44" count="0" type="stmt"/>
        <line num="45" count="0" type="stmt"/>
        <line num="46" count="0" type="stmt"/>
        <line num="52" count="238" type="stmt"/>
        <line num="53" count="0" type="stmt"/>
        <line num="54" count="0" type="stmt"/>
        <line num="57" count="285" type="stmt"/>
        <line num="58" count="204" type="stmt"/>
        <line num="65" count="31" type="stmt"/>
        <line num="70" count="119" type="stmt"/>
        <line num="73" count="111" type="stmt"/>
        <line num="74" count="111" type="stmt"/>
        <line num="75" count="111" type="stmt"/>
        <line num="76" count="111" type="stmt"/>
        <line num="79" count="0" type="stmt"/>
        <line num="81" count="0" type="stmt"/>
        <line num="82" count="0" type="stmt"/>
        <line num="83" count="0" type="stmt"/>
        <line num="89" count="8" type="stmt"/>
        <line num="94" count="102" type="stmt"/>
        <line num="98" count="15" type="stmt"/>
        <line num="102" count="2" type="stmt"/>
        <line num="106" count="0" type="stmt"/>
        <line num="110" count="0" type="stmt"/>
        <line num="114" count="2" type="stmt"/>
        <line num="116" count="2" type="stmt"/>
        <line num="120" count="127" type="stmt"/>
        <line num="122" count="127" type="cond" truecount="2" falsecount="0"/>
        <line num="123" count="9" type="stmt"/>
        <line num="125" count="127" type="cond" truecount="2" falsecount="0"/>
        <line num="126" count="10" type="stmt"/>
        <line num="128" count="127" type="cond" truecount="2" falsecount="0"/>
        <line num="129" count="26" type="stmt"/>
        <line num="131" count="127" type="stmt"/>
        <line num="133" count="119" type="stmt"/>
        <line num="134" count="119" type="stmt"/>
        <line num="135" count="1436" type="stmt"/>
        <line num="136" count="1436" type="stmt"/>
        <line num="137" count="1436" type="stmt"/>
        <line num="138" count="1436" type="stmt"/>
        <line num="140" count="119" type="stmt"/>
        <line num="141" count="119" type="stmt"/>
        <line num="142" count="119" type="stmt"/>
        <line num="149" count="21" type="stmt"/>
        <line num="152" count="21" type="stmt"/>
        <line num="156" count="0" type="stmt"/>
        <line num="160" count="7" type="stmt"/>
        <line num="162" count="7" type="stmt"/>
        <line num="168" count="0" type="stmt"/>
        <line num="169" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="170" count="0" type="stmt"/>
        <line num="172" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="173" count="0" type="stmt"/>
        <line num="175" count="0" type="stmt"/>
        <line num="181" count="12" type="stmt"/>
        <line num="182" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="183" count="12" type="stmt"/>
        <line num="185" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="186" count="12" type="stmt"/>
        <line num="188" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="189" count="12" type="stmt"/>
        <line num="191" count="12" type="cond" truecount="1" falsecount="1"/>
        <line num="192" count="12" type="stmt"/>
        <line num="195" count="12" type="stmt"/>
        <line num="196" count="6" type="stmt"/>
        <line num="201" count="14" type="stmt"/>
        <line num="204" count="14" type="stmt"/>
        <line num="209" count="0" type="stmt"/>
        <line num="212" count="0" type="stmt"/>
        <line num="216" count="2" type="stmt"/>
        <line num="217" count="2" type="stmt"/>
        <line num="220" count="1" type="stmt"/>
        <line num="221" count="1" type="stmt"/>
        <line num="222" count="22" type="stmt"/>
        <line num="223" count="1" type="stmt"/>
        <line num="228" count="11" type="stmt"/>
        <line num="229" count="11" type="stmt"/>
        <line num="232" count="10" type="stmt"/>
        <line num="233" count="10" type="stmt"/>
        <line num="234" count="12" type="stmt"/>
        <line num="235" count="10" type="stmt"/>
        <line num="240" count="1" type="stmt"/>
        <line num="244" count="3" type="stmt"/>
        <line num="248" count="3" type="stmt"/>
        <line num="252" count="0" type="stmt"/>
        <line num="256" count="29" type="stmt"/>
        <line num="257" count="29" type="stmt"/>
        <line num="258" count="29" type="stmt"/>
        <line num="259" count="29" type="cond" truecount="1" falsecount="1"/>
        <line num="260" count="0" type="stmt"/>
        <line num="262" count="29" type="cond" truecount="1" falsecount="1"/>
        <line num="263" count="0" type="stmt"/>
        <line num="265" count="29" type="cond" truecount="1" falsecount="1"/>
        <line num="266" count="0" type="stmt"/>
        <line num="268" count="29" type="cond" truecount="1" falsecount="1"/>
        <line num="269" count="0" type="stmt"/>
        <line num="272" count="29" type="stmt"/>
        <line num="276" count="1" type="stmt"/>
        <line num="279" count="1" type="stmt"/>
        <line num="280" count="1" type="stmt"/>
        <line num="281" count="1" type="stmt"/>
        <line num="282" count="1" type="stmt"/>
        <line num="287" count="3" type="stmt"/>
        <line num="288" count="3" type="stmt"/>
        <line num="290" count="3" type="stmt"/>
        <line num="294" count="1" type="stmt"/>
        <line num="297" count="1" type="stmt"/>
        <line num="298" count="1" type="stmt"/>
        <line num="303" count="0" type="stmt"/>
        <line num="304" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="305" count="0" type="stmt"/>
        <line num="307" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="308" count="0" type="stmt"/>
        <line num="311" count="0" type="stmt"/>
        <line num="315" count="9" type="stmt"/>
        <line num="319" count="9" type="stmt"/>
        <line num="323" count="2" type="stmt"/>
        <line num="324" count="2" type="stmt"/>
        <line num="328" count="1" type="stmt"/>
        <line num="329" count="1" type="stmt"/>
        <line num="333" count="1" type="stmt"/>
        <line num="337" count="9" type="stmt"/>
        <line num="341" count="3" type="stmt"/>
        <line num="345" count="2" type="stmt"/>
        <line num="346" count="2" type="stmt"/>
        <line num="350" count="1" type="stmt"/>
        <line num="351" count="1" type="stmt"/>
        <line num="355" count="1" type="stmt"/>
      </file>
    </package>
    <package name="src.app.services.resolvers">
      <metrics statements="7" coveredstatements="7" conditionals="4" coveredconditionals="3" methods="3" coveredmethods="3"/>
      <file name="images.service.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/services/resolvers/images.service.ts">
        <metrics statements="7" coveredstatements="7" conditionals="4" coveredconditionals="3" methods="3" coveredmethods="3"/>
        <line num="6" count="70" type="cond" truecount="2" falsecount="0"/>
        <line num="7" count="35" type="stmt"/>
        <line num="10" count="35" type="stmt"/>
        <line num="11" count="210" type="cond" truecount="1" falsecount="1"/>
        <line num="12" count="210" type="stmt"/>
        <line num="13" count="210" type="stmt"/>
        <line num="14" count="210" type="stmt"/>
      </file>
    </package>
    <package name="src.app.utils">
      <metrics statements="26" coveredstatements="11" conditionals="16" coveredconditionals="3" methods="5" coveredmethods="4"/>
      <file name="utils.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/app/utils/utils.ts">
        <metrics statements="26" coveredstatements="11" conditionals="16" coveredconditionals="3" methods="5" coveredmethods="4"/>
        <line num="2" count="0" type="cond" truecount="0" falsecount="4"/>
        <line num="3" count="0" type="stmt"/>
        <line num="6" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="7" count="0" type="stmt"/>
        <line num="8" count="0" type="stmt"/>
        <line num="9" count="0" type="stmt"/>
        <line num="11" count="0" type="stmt"/>
        <line num="14" count="0" type="stmt"/>
        <line num="15" count="0" type="stmt"/>
        <line num="16" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="17" count="0" type="stmt"/>
        <line num="20" count="0" type="stmt"/>
        <line num="26" count="525" type="stmt"/>
        <line num="29" count="525" type="cond" truecount="1" falsecount="1"/>
        <line num="32" count="525" type="stmt"/>
        <line num="35" count="525" type="stmt"/>
        <line num="38" count="525" type="stmt"/>
        <line num="40" count="525" type="stmt"/>
        <line num="46" count="3386" type="cond" truecount="1" falsecount="1"/>
        <line num="47" count="3386" type="stmt"/>
        <line num="49" count="0" type="cond" truecount="0" falsecount="2"/>
        <line num="50" count="0" type="stmt"/>
        <line num="52" count="0" type="stmt"/>
        <line num="56" count="6" type="stmt"/>
        <line num="57" count="6" type="cond" truecount="1" falsecount="1"/>
        <line num="61" count="2" type="stmt"/>
      </file>
    </package>
    <package name="src.environments">
      <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
      <file name="environment.ci.ts" path="/woodpecker/src/gitea.spacedreams.com/SpaceDreams/TwinPad/frontend/src/environments/environment.ci.ts">
        <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
        <line num="1" count="35" type="stmt"/>
      </file>
    </package>
  </project>
</coverage>
