<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1790844194">
  <project timestamp="1790844194">
    <file name="/workspace/src/extensions/Cognate/maintenance/populateCognatePages.php">
      <class name="Cognate\PopulateCognatePages" namespace="global">
        <metrics complexity="8" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="69" coveredstatements="65" elements="71" coveredelements="66"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="41" type="method" name="execute" visibility="public" complexity="7" crap="7.01" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="116" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <metrics loc="129" ncloc="113" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="69" coveredstatements="65" elements="71" coveredelements="66"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/maintenance/populateCognateSites.php">
      <class name="Cognate\PopulateCognateSites" namespace="global">
        <metrics complexity="4" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="0" elements="24" coveredelements="0"/>
      </class>
      <line num="25" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="35" type="method" name="execute" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="59" type="method" name="getSiteDetailsFromSiteList" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <metrics loc="74" ncloc="57" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="0" elements="24" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/maintenance/purgeDeletedCognatePages.php">
      <class name="Cognate\PurgeDeletedCognatePages" namespace="global">
        <metrics complexity="17" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="88" elements="96" coveredelements="89"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="38" type="method" name="execute" visibility="public" complexity="5" crap="5.07" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="0"/>
      <line num="43" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="0"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="91" type="method" name="executeMainLoop" visibility="private" complexity="11" crap="11" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="105" type="stmt" count="1"/>
      <line num="106" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="0"/>
      <line num="117" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="125" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="130" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="135" type="stmt" count="1"/>
      <line num="137" type="stmt" count="1"/>
      <line num="138" type="stmt" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="143" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="145" type="stmt" count="1"/>
      <line num="146" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="156" type="stmt" count="1"/>
      <line num="157" type="stmt" count="1"/>
      <line num="158" type="stmt" count="1"/>
      <line num="159" type="stmt" count="1"/>
      <line num="160" type="stmt" count="1"/>
      <line num="161" type="stmt" count="1"/>
      <line num="162" type="stmt" count="1"/>
      <line num="163" type="stmt" count="1"/>
      <line num="164" type="stmt" count="1"/>
      <line num="165" type="stmt" count="1"/>
      <line num="166" type="stmt" count="1"/>
      <line num="167" type="stmt" count="1"/>
      <line num="170" type="stmt" count="1"/>
      <line num="171" type="stmt" count="1"/>
      <line num="172" type="stmt" count="1"/>
      <line num="173" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <metrics loc="187" ncloc="160" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="88" elements="96" coveredelements="89"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/maintenance/recalculateCognateNormalizedHashes.php">
      <class name="Cognate\RecalculateCognateNormalizedHashes" namespace="global">
        <metrics complexity="12" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="72" coveredstatements="69" elements="77" coveredelements="73"/>
      </class>
      <line num="47" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="56" type="method" name="setupServices" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="66" type="method" name="execute" visibility="public" complexity="8" crap="8.01" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="0"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="97" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="116" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="135" type="stmt" count="1"/>
      <line num="137" type="stmt" count="1"/>
      <line num="146" type="method" name="getLowestRawKey" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="159" type="method" name="normalizeAndHash" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="160" type="stmt" count="1"/>
      <line num="161" type="stmt" count="1"/>
      <line num="162" type="stmt" count="1"/>
      <metrics loc="171" ncloc="136" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="72" coveredstatements="69" elements="77" coveredelements="73"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CacheInvalidator.php">
      <class name="Cognate\CacheInvalidator" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="16" type="stmt" count="1"/>
      <line num="22" type="method" name="invalidate" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <metrics loc="29" ncloc="21" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CacheUpdateJob.php">
      <class name="Cognate\CacheUpdateJob" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="14" coveredelements="0"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="31" type="method" name="run" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <metrics loc="48" ncloc="33" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="14" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CognateHooks.php">
      <class name="Cognate\CognateHooks" namespace="global">
        <metrics complexity="6" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="10" elements="17" coveredelements="14"/>
      </class>
      <line num="42" type="method" name="onPageSaveComplete" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="51" type="stmt" count="4"/>
      <line num="52" type="stmt" count="4"/>
      <line num="53" type="stmt" count="4"/>
      <line num="61" type="method" name="onWikiPageDeletionUpdates" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="77" type="method" name="onArticleUndelete" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="96" type="method" name="onPageMoveComplete" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="105" type="stmt" count="1"/>
      <line num="113" type="method" name="onContentAlterParserOutput" visibility="public" complexity="2" crap="2.50" count="4"/>
      <line num="120" type="stmt" count="4"/>
      <line num="121" type="stmt" count="4"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <metrics loc="128" ncloc="87" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="10" elements="17" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CognateInstallerTask.php">
      <class name="Cognate\CognateInstallerTask" namespace="global">
        <metrics complexity="6" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="7" elements="15" coveredelements="8"/>
      </class>
      <line num="15" type="method" name="getName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="16" type="stmt" count="0"/>
      <line num="22" type="method" name="getDescription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="29" type="method" name="getDependencies" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="33" type="method" name="execute" visibility="public" complexity="3" crap="3.14" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <metrics loc="46" ncloc="37" classes="1" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="7" elements="15" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CognateRepo.php">
      <class name="Cognate\CognateRepo" namespace="global">
        <metrics complexity="10" methods="5" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="49" elements="58" coveredelements="52"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="26" type="stmt" count="10"/>
      <line num="35" type="method" name="savePage" visibility="public" complexity="3" crap="3.01" count="6"/>
      <line num="36" type="stmt" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="42" type="stmt" count="6"/>
      <line num="43" type="stmt" count="6"/>
      <line num="44" type="stmt" count="6"/>
      <line num="48" type="stmt" count="6"/>
      <line num="49" type="stmt" count="5"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="63" type="stmt" count="6"/>
      <line num="72" type="method" name="deletePage" visibility="public" complexity="3" crap="3.07" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="75" type="stmt" count="5"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="79" type="stmt" count="5"/>
      <line num="80" type="stmt" count="5"/>
      <line num="81" type="stmt" count="5"/>
      <line num="85" type="stmt" count="5"/>
      <line num="86" type="stmt" count="4"/>
      <line num="90" type="stmt" count="5"/>
      <line num="99" type="method" name="getLinksForPage" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="100" type="stmt" count="6"/>
      <line num="101" type="stmt" count="6"/>
      <line num="102" type="stmt" count="6"/>
      <line num="103" type="stmt" count="6"/>
      <line num="104" type="stmt" count="6"/>
      <line num="106" type="stmt" count="6"/>
      <line num="107" type="stmt" count="6"/>
      <line num="108" type="stmt" count="4"/>
      <line num="109" type="stmt" count="4"/>
      <line num="110" type="stmt" count="4"/>
      <line num="111" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <line num="113" type="stmt" count="4"/>
      <line num="115" type="stmt" count="6"/>
      <line num="122" type="method" name="invalidateAllSitesForPage" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="123" type="stmt" count="6"/>
      <line num="124" type="stmt" count="6"/>
      <line num="125" type="stmt" count="6"/>
      <line num="126" type="stmt" count="6"/>
      <line num="127" type="stmt" count="6"/>
      <line num="131" type="stmt" count="6"/>
      <line num="132" type="stmt" count="6"/>
      <line num="134" type="stmt" count="6"/>
      <metrics loc="138" ncloc="107" classes="1" methods="5" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="49" elements="58" coveredelements="52"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CognateSchemaHooks.php">
      <class name="Cognate\CognateSchemaHooks" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="9" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="onLoadExtensionSchemaUpdates" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <metrics loc="30" ncloc="22" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="9" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CognateServices.php">
      <class name="Cognate\CognateServices" namespace="global">
        <metrics complexity="10" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="10" elements="15" coveredelements="15"/>
      </class>
      <line num="20" type="method" name="getLogger" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="21" type="stmt" count="2"/>
      <line num="22" type="stmt" count="2"/>
      <line num="25" type="method" name="getRepo" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="26" type="stmt" count="2"/>
      <line num="27" type="stmt" count="2"/>
      <line num="30" type="method" name="getStore" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="31" type="stmt" count="2"/>
      <line num="32" type="stmt" count="2"/>
      <line num="35" type="method" name="getPageHookHandler" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="37" type="stmt" count="2"/>
      <line num="40" type="method" name="getCacheInvalidator" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <metrics loc="46" ncloc="42" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="10" elements="15" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/CognateStore.php">
      <class name="Cognate\CognateStore" namespace="global">
        <metrics complexity="26" methods="12" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="153" coveredstatements="141" elements="165" coveredelements="150"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="33" type="stmt" count="19"/>
      <line num="45" type="method" name="insertPage" visibility="public" complexity="5" crap="5" count="10"/>
      <line num="46" type="stmt" count="10"/>
      <line num="47" type="stmt" count="1"/>
      <line num="50" type="stmt" count="9"/>
      <line num="52" type="stmt" count="9"/>
      <line num="53" type="stmt" count="9"/>
      <line num="54" type="stmt" count="9"/>
      <line num="55" type="stmt" count="9"/>
      <line num="57" type="stmt" count="9"/>
      <line num="58" type="stmt" count="9"/>
      <line num="59" type="stmt" count="9"/>
      <line num="60" type="stmt" count="9"/>
      <line num="61" type="stmt" count="9"/>
      <line num="62" type="stmt" count="9"/>
      <line num="64" type="stmt" count="9"/>
      <line num="65" type="stmt" count="0"/>
      <line num="68" type="stmt" count="9"/>
      <line num="70" type="stmt" count="9"/>
      <line num="71" type="stmt" count="9"/>
      <line num="72" type="stmt" count="9"/>
      <line num="73" type="stmt" count="9"/>
      <line num="74" type="stmt" count="9"/>
      <line num="75" type="stmt" count="9"/>
      <line num="76" type="stmt" count="9"/>
      <line num="77" type="stmt" count="9"/>
      <line num="78" type="stmt" count="9"/>
      <line num="81" type="stmt" count="9"/>
      <line num="82" type="stmt" count="9"/>
      <line num="83" type="stmt" count="9"/>
      <line num="84" type="stmt" count="9"/>
      <line num="85" type="stmt" count="9"/>
      <line num="86" type="stmt" count="9"/>
      <line num="87" type="stmt" count="9"/>
      <line num="89" type="stmt" count="9"/>
      <line num="101" type="method" name="deletePage" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="103" type="stmt" count="1"/>
      <line num="106" type="stmt" count="4"/>
      <line num="107" type="stmt" count="4"/>
      <line num="108" type="stmt" count="4"/>
      <line num="109" type="stmt" count="4"/>
      <line num="110" type="stmt" count="4"/>
      <line num="111" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <line num="113" type="stmt" count="4"/>
      <line num="114" type="stmt" count="4"/>
      <line num="115" type="stmt" count="4"/>
      <line num="116" type="stmt" count="4"/>
      <line num="118" type="stmt" count="4"/>
      <line num="128" type="method" name="selectLinkDetailsForPage" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="129" type="stmt" count="6"/>
      <line num="130" type="stmt" count="6"/>
      <line num="131" type="stmt" count="6"/>
      <line num="132" type="stmt" count="6"/>
      <line num="133" type="stmt" count="6"/>
      <line num="134" type="stmt" count="6"/>
      <line num="135" type="stmt" count="6"/>
      <line num="136" type="stmt" count="6"/>
      <line num="137" type="stmt" count="6"/>
      <line num="138" type="stmt" count="6"/>
      <line num="139" type="stmt" count="6"/>
      <line num="140" type="stmt" count="6"/>
      <line num="141" type="stmt" count="6"/>
      <line num="142" type="stmt" count="6"/>
      <line num="143" type="stmt" count="6"/>
      <line num="144" type="stmt" count="6"/>
      <line num="145" type="stmt" count="6"/>
      <line num="147" type="stmt" count="6"/>
      <line num="148" type="stmt" count="6"/>
      <line num="149" type="stmt" count="4"/>
      <line num="150" type="stmt" count="4"/>
      <line num="151" type="stmt" count="4"/>
      <line num="152" type="stmt" count="4"/>
      <line num="153" type="stmt" count="4"/>
      <line num="156" type="stmt" count="6"/>
      <line num="164" type="method" name="selectSitesForPage" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="165" type="stmt" count="6"/>
      <line num="166" type="stmt" count="6"/>
      <line num="167" type="stmt" count="6"/>
      <line num="168" type="stmt" count="6"/>
      <line num="169" type="stmt" count="6"/>
      <line num="170" type="stmt" count="6"/>
      <line num="171" type="stmt" count="6"/>
      <line num="172" type="stmt" count="6"/>
      <line num="173" type="stmt" count="6"/>
      <line num="174" type="stmt" count="6"/>
      <line num="175" type="stmt" count="6"/>
      <line num="176" type="stmt" count="6"/>
      <line num="191" type="method" name="insertPages" visibility="public" complexity="5" crap="5" count="4"/>
      <line num="192" type="stmt" count="4"/>
      <line num="193" type="stmt" count="0"/>
      <line num="196" type="stmt" count="4"/>
      <line num="197" type="stmt" count="1"/>
      <line num="200" type="stmt" count="3"/>
      <line num="201" type="stmt" count="3"/>
      <line num="202" type="stmt" count="3"/>
      <line num="203" type="stmt" count="3"/>
      <line num="204" type="stmt" count="3"/>
      <line num="205" type="stmt" count="3"/>
      <line num="206" type="stmt" count="3"/>
      <line num="207" type="stmt" count="3"/>
      <line num="208" type="stmt" count="3"/>
      <line num="211" type="stmt" count="3"/>
      <line num="212" type="stmt" count="3"/>
      <line num="213" type="stmt" count="3"/>
      <line num="214" type="stmt" count="3"/>
      <line num="215" type="stmt" count="3"/>
      <line num="216" type="stmt" count="3"/>
      <line num="217" type="stmt" count="3"/>
      <line num="219" type="stmt" count="3"/>
      <line num="220" type="stmt" count="3"/>
      <line num="221" type="stmt" count="3"/>
      <line num="222" type="stmt" count="3"/>
      <line num="223" type="stmt" count="3"/>
      <line num="224" type="stmt" count="3"/>
      <line num="235" type="method" name="buildRows" visibility="private" complexity="1" crap="1" count="12"/>
      <line num="241" type="stmt" count="12"/>
      <line num="242" type="stmt" count="12"/>
      <line num="243" type="stmt" count="12"/>
      <line num="244" type="stmt" count="12"/>
      <line num="245" type="stmt" count="12"/>
      <line num="246" type="stmt" count="12"/>
      <line num="247" type="stmt" count="12"/>
      <line num="248" type="stmt" count="12"/>
      <line num="249" type="stmt" count="12"/>
      <line num="250" type="stmt" count="12"/>
      <line num="252" type="stmt" count="12"/>
      <line num="261" type="method" name="insertSites" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="262" type="stmt" count="9"/>
      <line num="263" type="stmt" count="1"/>
      <line num="266" type="stmt" count="8"/>
      <line num="267" type="stmt" count="8"/>
      <line num="268" type="stmt" count="8"/>
      <line num="269" type="stmt" count="8"/>
      <line num="270" type="stmt" count="8"/>
      <line num="271" type="stmt" count="8"/>
      <line num="272" type="stmt" count="8"/>
      <line num="275" type="stmt" count="8"/>
      <line num="276" type="stmt" count="8"/>
      <line num="277" type="stmt" count="8"/>
      <line num="278" type="stmt" count="8"/>
      <line num="279" type="stmt" count="8"/>
      <line num="280" type="stmt" count="8"/>
      <line num="281" type="stmt" count="8"/>
      <line num="291" type="method" name="deletePagesForSite" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="293" type="stmt" count="0"/>
      <line num="296" type="stmt" count="0"/>
      <line num="297" type="stmt" count="0"/>
      <line num="298" type="stmt" count="0"/>
      <line num="299" type="stmt" count="0"/>
      <line num="300" type="stmt" count="0"/>
      <line num="301" type="stmt" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <line num="303" type="stmt" count="0"/>
      <line num="311" type="method" name="getStringHash" visibility="private" complexity="1" crap="1" count="14"/>
      <line num="312" type="stmt" count="14"/>
      <line num="320" type="method" name="getNormalizedStringHash" visibility="private" complexity="1" crap="1" count="14"/>
      <line num="321" type="stmt" count="14"/>
      <line num="322" type="stmt" count="14"/>
      <line num="323" type="stmt" count="14"/>
      <line num="330" type="method" name="throwReadOnlyException" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="331" type="stmt" count="2"/>
      <metrics loc="335" ncloc="247" classes="1" methods="12" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="153" coveredstatements="141" elements="165" coveredelements="150"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/HookHandler/CognatePageHookHandler.php">
      <class name="Cognate\HookHandler\CognatePageHookHandler" namespace="global">
        <metrics complexity="23" methods="12" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="50" coveredstatements="41" elements="62" coveredelements="50"/>
      </class>
      <line num="45" type="method" name="__construct" visibility="public" complexity="1" crap="1.02" count="20"/>
      <line num="46" type="stmt" count="20"/>
      <line num="47" type="stmt" count="20"/>
      <line num="48" type="stmt" count="20"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="20"/>
      <line num="53" type="stmt" count="20"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="20"/>
      <line num="66" type="method" name="overrideRevisionNewFromId" visibility="public" complexity="2" crap="2.86" count="3"/>
      <line num="67" type="stmt" count="3"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="72" type="stmt" count="3"/>
      <line num="81" type="method" name="overridePreviousRevision" visibility="public" complexity="2" crap="2.86" count="7"/>
      <line num="82" type="stmt" count="7"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="87" type="stmt" count="7"/>
      <line num="100" type="method" name="onPageContentSaveComplete" visibility="public" complexity="3" crap="3" count="11"/>
      <line num="105" type="stmt" count="11"/>
      <line num="106" type="stmt" count="1"/>
      <line num="109" type="stmt" count="10"/>
      <line num="110" type="stmt" count="1"/>
      <line num="113" type="stmt" count="9"/>
      <line num="123" type="method" name="onWikiPageDeletionUpdates" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="127" type="stmt" count="4"/>
      <line num="128" type="stmt" count="3"/>
      <line num="138" type="method" name="newDeferrableDelete" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="139" type="stmt" count="3"/>
      <line num="140" type="stmt" count="3"/>
      <line num="141" type="stmt" count="3"/>
      <line num="142" type="stmt" count="3"/>
      <line num="143" type="stmt" count="3"/>
      <line num="144" type="stmt" count="3"/>
      <line num="153" type="method" name="onArticleUndelete" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="156" type="stmt" count="4"/>
      <line num="157" type="stmt" count="4"/>
      <line num="158" type="stmt" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="169" type="method" name="newRevisionRecordFromId" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="170" type="stmt" count="4"/>
      <line num="185" type="method" name="onTitleMoveComplete" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="189" type="stmt" count="5"/>
      <line num="190" type="stmt" count="5"/>
      <line num="191" type="stmt" count="3"/>
      <line num="193" type="stmt" count="5"/>
      <line num="194" type="stmt" count="3"/>
      <line num="205" type="method" name="isActionableTarget" visibility="private" complexity="3" crap="3" count="19"/>
      <line num="206" type="stmt" count="19"/>
      <line num="207" type="stmt" count="19"/>
      <line num="208" type="stmt" count="19"/>
      <line num="214" type="method" name="getRepo" visibility="private" complexity="1" crap="1" count="15"/>
      <line num="215" type="stmt" count="15"/>
      <line num="221" type="method" name="onContentChange" visibility="private" complexity="1" crap="1" count="10"/>
      <line num="222" type="stmt" count="10"/>
      <metrics loc="226" ncloc="134" classes="1" methods="12" coveredmethods="9" conditionals="0" coveredconditionals="0" statements="50" coveredstatements="41" elements="62" coveredelements="50"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/HookHandler/CognateParseHookHandler.php">
      <class name="Cognate\HookHandler\CognateParseHookHandler" namespace="global">
        <metrics complexity="7" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="0" elements="25" coveredelements="0"/>
      </class>
      <line num="33" type="method" name="newFromGlobalState" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="48" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="67" type="method" name="doContentAlterParserOutput" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <metrics loc="93" ncloc="66" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="0" elements="25" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/LocalJobSubmitJob.php">
      <class name="Cognate\LocalJobSubmitJob" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="1" elements="8" coveredelements="2"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="17" type="stmt" count="1"/>
      <line num="21" type="method" name="run" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <metrics loc="33" ncloc="27" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="1" elements="8" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/ServiceWiring.php">
      <line num="14" type="stmt" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="16" type="stmt" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <metrics loc="49" ncloc="46" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="0" elements="31" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/StringHasher.php">
      <class name="Cognate\StringHasher" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="14" elements="20" coveredelements="15"/>
      </class>
      <line num="25" type="method" name="hash" visibility="public" complexity="3" crap="3.21" count="14"/>
      <line num="26" type="stmt" count="14"/>
      <line num="28" type="stmt" count="0"/>
      <line num="30" type="stmt" count="14"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="36" type="stmt" count="14"/>
      <line num="38" type="stmt" count="14"/>
      <line num="39" type="stmt" count="14"/>
      <line num="40" type="stmt" count="14"/>
      <line num="41" type="stmt" count="14"/>
      <line num="42" type="stmt" count="14"/>
      <line num="43" type="stmt" count="14"/>
      <line num="44" type="stmt" count="14"/>
      <line num="57" type="method" name="hex2int" visibility="private" complexity="1" crap="1" count="14"/>
      <line num="58" type="stmt" count="14"/>
      <line num="59" type="stmt" count="14"/>
      <line num="61" type="stmt" count="14"/>
      <line num="62" type="stmt" count="14"/>
      <metrics loc="66" ncloc="41" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="14" elements="20" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/Cognate/src/StringNormalizer.php">
      <class name="Cognate\StringNormalizer" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="6" coveredelements="6"/>
      </class>
      <line num="33" type="method" name="normalize" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="34" type="stmt" count="5"/>
      <line num="35" type="stmt" count="5"/>
      <line num="36" type="stmt" count="5"/>
      <line num="37" type="stmt" count="5"/>
      <line num="38" type="stmt" count="5"/>
      <metrics loc="42" ncloc="23" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="6" coveredelements="6"/>
    </file>
    <metrics files="18" loc="1870" ncloc="1399" classes="17" methods="69" coveredmethods="42" conditionals="0" coveredconditionals="0" statements="650" coveredstatements="504" elements="719" coveredelements="546"/>
  </project>
</coverage>
