<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1792049990">
  <project timestamp="1792049990">
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilter" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="13" coveredelements="13"/>
      </class>
      <line num="35" type="method" name="findInSet" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="39" type="stmt" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <metrics loc="51" ncloc="40" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="13" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilterChangesList.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilterChangesList" namespace="global">
        <metrics complexity="21" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="60" coveredstatements="55" elements="68" coveredelements="61"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="36" type="method" name="insertExtra" visibility="public" complexity="7" crap="7" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="38" type="stmt" count="2"/>
      <line num="39" type="stmt" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="53" type="stmt" count="4"/>
      <line num="54" type="stmt" count="4"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="59" type="stmt" count="4"/>
      <line num="60" type="stmt" count="4"/>
      <line num="62" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="67" type="stmt" count="3"/>
      <line num="68" type="stmt" count="1"/>
      <line num="70" type="stmt" count="4"/>
      <line num="78" type="method" name="recentChangesLine" visibility="public" complexity="4" crap="4.84" count="4"/>
      <line num="79" type="stmt" count="4"/>
      <line num="80" type="stmt" count="4"/>
      <line num="81" type="stmt" count="0"/>
      <line num="83" type="stmt" count="4"/>
      <line num="84" type="stmt" count="4"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="88" type="stmt" count="4"/>
      <line num="98" type="method" name="insertUserRelatedLinks" visibility="public" complexity="3" crap="3.10" 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="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="105" type="stmt" count="1"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="111" type="stmt" count="1"/>
      <line num="120" type="method" name="insertComment" visibility="public" complexity="3" crap="3" 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="124" type="stmt" count="1"/>
      <line num="125" 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="130" 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="145" type="method" name="insertLogEntry" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="146" type="stmt" count="3"/>
      <line num="147" type="stmt" count="3"/>
      <line num="148" type="stmt" count="3"/>
      <line num="149" type="stmt" count="3"/>
      <line num="150" type="stmt" count="3"/>
      <line num="151" type="stmt" count="3"/>
      <line num="158" type="method" name="insertRollback" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="160" type="stmt" count="4"/>
      <line num="162" type="method" name="setRCResult" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="163" type="stmt" count="4"/>
      <line num="164" type="stmt" count="4"/>
      <metrics loc="167" ncloc="123" classes="1" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="60" coveredstatements="55" elements="68" coveredelements="61"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilterLogDetailsLookup.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilterLogDetailsLookup" namespace="global">
        <metrics complexity="12" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="38" elements="42" coveredelements="42"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="24" type="stmt" count="8"/>
      <line num="41" type="method" name="getIPForAbuseFilterLog" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="1"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="1"/>
      <line num="58" type="stmt" count="2"/>
      <line num="81" type="method" name="getIPsForAbuseFilterLogs" visibility="public" complexity="4" crap="4" count="3"/>
      <line num="82" type="stmt" count="3"/>
      <line num="83" type="stmt" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="85" type="stmt" count="3"/>
      <line num="86" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="1"/>
      <line num="95" type="stmt" count="2"/>
      <line num="99" type="stmt" count="3"/>
      <line num="109" type="method" name="groupAbuseFilterLogIdsByPerformer" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="111" 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="115" 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="123" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <metrics loc="129" ncloc="82" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="38" elements="42" coveredelements="42"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilterPermissionManager.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilterPermissionManager" namespace="global">
        <metrics complexity="69" methods="28" coveredmethods="28" conditionals="0" coveredconditionals="0" statements="111" coveredstatements="111" elements="139" coveredelements="139"/>
      </class>
      <line num="33" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="187"/>
      <line num="40" type="stmt" count="187"/>
      <line num="42" type="stmt" count="187"/>
      <line num="45" type="method" name="canEdit" visibility="public" complexity="3" crap="3" count="53"/>
      <line num="46" type="stmt" count="53"/>
      <line num="47" type="stmt" count="53"/>
      <line num="48" type="stmt" count="53"/>
      <line num="49" type="stmt" count="53"/>
      <line num="50" type="stmt" count="53"/>
      <line num="53" type="method" name="canEditGlobal" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="54" type="stmt" count="4"/>
      <line num="64" type="method" name="canEditFilter" visibility="public" complexity="5" crap="5" count="31"/>
      <line num="67" type="stmt" count="31"/>
      <line num="68" type="stmt" count="1"/>
      <line num="71" type="stmt" count="30"/>
      <line num="72" type="stmt" count="30"/>
      <line num="73" type="stmt" count="30"/>
      <line num="74" type="stmt" count="30"/>
      <line num="83" type="method" name="canEditFilterWithRestrictedActions" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="87" type="method" name="canViewPrivateFilters" visibility="public" complexity="3" crap="3" count="77"/>
      <line num="88" type="stmt" count="77"/>
      <line num="89" type="stmt" count="77"/>
      <line num="90" type="stmt" count="77"/>
      <line num="91" type="stmt" count="77"/>
      <line num="92" type="stmt" count="77"/>
      <line num="93" type="stmt" count="77"/>
      <line num="94" type="stmt" count="77"/>
      <line num="95" type="stmt" count="77"/>
      <line num="104" type="method" name="canViewSuppressed" visibility="public" complexity="3" crap="3" count="40"/>
      <line num="105" type="stmt" count="40"/>
      <line num="106" type="stmt" count="40"/>
      <line num="107" type="stmt" count="40"/>
      <line num="108" type="stmt" count="40"/>
      <line num="109" type="stmt" count="40"/>
      <line num="118" type="method" name="canSuppress" visibility="public" complexity="3" crap="3" count="14"/>
      <line num="119" type="stmt" count="14"/>
      <line num="120" type="stmt" count="14"/>
      <line num="121" type="stmt" count="14"/>
      <line num="122" type="stmt" count="14"/>
      <line num="123" type="stmt" count="14"/>
      <line num="135" type="method" name="canViewProtectedVariablesInFilter" visibility="public" complexity="2" crap="2" count="21"/>
      <line num="138" type="stmt" count="21"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="141" type="stmt" count="1"/>
      <line num="143" type="stmt" count="20"/>
      <line num="144" type="stmt" count="20"/>
      <line num="145" type="stmt" count="20"/>
      <line num="156" type="method" name="getCacheKey" visibility="private" complexity="1" crap="1" count="64"/>
      <line num="159" type="stmt" count="64"/>
      <line num="161" type="stmt" count="64"/>
      <line num="171" type="method" name="canViewProtectedVariables" visibility="public" complexity="3" crap="3" count="64"/>
      <line num="172" type="stmt" count="64"/>
      <line num="175" type="stmt" count="64"/>
      <line num="176" type="stmt" count="64"/>
      <line num="177" type="stmt" count="22"/>
      <line num="180" type="stmt" count="64"/>
      <line num="181" type="stmt" count="64"/>
      <line num="182" type="stmt" count="23"/>
      <line num="183" type="stmt" count="23"/>
      <line num="186" type="stmt" count="45"/>
      <line num="188" type="stmt" count="45"/>
      <line num="189" type="stmt" count="45"/>
      <line num="199" type="method" name="checkCanViewProtectedVariables" visibility="private" complexity="4" crap="4" count="64"/>
      <line num="200" type="stmt" count="64"/>
      <line num="201" type="stmt" count="64"/>
      <line num="202" type="stmt" count="2"/>
      <line num="205" type="stmt" count="62"/>
      <line num="206" type="stmt" count="21"/>
      <line num="209" type="stmt" count="45"/>
      <line num="218" type="method" name="getUsedProtectedVariables" visibility="public" complexity="1" crap="1" count="78"/>
      <line num="219" type="stmt" count="78"/>
      <line num="230" type="method" name="getForbiddenVariables" visibility="public" complexity="3" crap="3" count="28"/>
      <line num="231" type="stmt" count="28"/>
      <line num="234" type="stmt" count="28"/>
      <line num="235" type="stmt" count="28"/>
      <line num="237" type="stmt" count="25"/>
      <line num="239" type="stmt" count="4"/>
      <line num="248" type="method" name="getProtectedVariables" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="249" type="stmt" count="18"/>
      <line num="252" type="method" name="canViewPrivateFiltersLogs" visibility="public" complexity="2" crap="2" count="19"/>
      <line num="253" type="stmt" count="19"/>
      <line num="254" type="stmt" count="19"/>
      <line num="257" type="method" name="canViewAbuseLog" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="258" type="stmt" count="2"/>
      <line num="261" type="method" name="canHideAbuseLog" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="262" type="stmt" count="2"/>
      <line num="265" type="method" name="canRevertFilterActions" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="266" type="stmt" count="5"/>
      <line num="274" type="method" name="canViewTemporaryAccountIPs" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="275" type="stmt" count="3"/>
      <line num="276" type="stmt" count="3"/>
      <line num="277" type="stmt" count="3"/>
      <line num="289" type="method" name="canSeeIPForFilterLog" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="294" type="stmt" count="5"/>
      <line num="295" type="stmt" count="1"/>
      <line num="299" type="stmt" count="4"/>
      <line num="300" type="stmt" count="4"/>
      <line num="302" type="stmt" count="1"/>
      <line num="305" type="stmt" count="3"/>
      <line num="318" type="method" name="canSeeLogDetailsForFilter" visibility="public" complexity="8" crap="8" count="64"/>
      <line num="319" type="stmt" count="64"/>
      <line num="320" type="stmt" count="22"/>
      <line num="324" type="stmt" count="42"/>
      <line num="325" type="stmt" count="12"/>
      <line num="328" type="stmt" count="33"/>
      <line num="329" type="stmt" count="4"/>
      <line num="336" type="stmt" count="29"/>
      <line num="337" type="stmt" count="4"/>
      <line num="340" type="stmt" count="26"/>
      <line num="343" type="method" name="canSeeLogDetails" visibility="public" complexity="1" crap="1" count="69"/>
      <line num="344" type="stmt" count="69"/>
      <line num="347" type="method" name="canSeePrivateDetails" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="348" type="stmt" count="2"/>
      <line num="351" type="method" name="canSeeHiddenLogEntries" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="352" type="stmt" count="2"/>
      <line num="355" type="method" name="canUseTestTools" visibility="public" complexity="1" crap="1" count="37"/>
      <line num="357" type="stmt" count="37"/>
      <line num="375" type="method" name="hasRevisionAccess" visibility="public" complexity="7" crap="7" count="4"/>
      <line num="376" type="stmt" count="4"/>
      <line num="377" type="stmt" count="1"/>
      <line num="379" type="stmt" count="4"/>
      <line num="381" type="stmt" count="4"/>
      <line num="383" type="stmt" count="4"/>
      <line num="384" type="stmt" count="3"/>
      <line num="386" type="stmt" count="4"/>
      <line num="387" type="stmt" count="4"/>
      <line num="389" type="stmt" count="3"/>
      <line num="391" type="stmt" count="4"/>
      <line num="414" type="method" name="hasRCEntryAccess" visibility="public" complexity="4" crap="4" count="15"/>
      <line num="415" type="stmt" count="15"/>
      <line num="416" type="stmt" count="15"/>
      <line num="417" type="stmt" count="13"/>
      <line num="419" type="stmt" count="7"/>
      <line num="420" type="stmt" count="4"/>
      <line num="421" type="stmt" count="4"/>
      <line num="423" type="stmt" count="4"/>
      <line num="426" type="stmt" count="3"/>
      <metrics loc="430" ncloc="275" classes="1" methods="28" coveredmethods="28" conditionals="0" coveredconditionals="0" statements="111" coveredstatements="111" elements="139" coveredelements="139"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilterPermissionStatus.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilterPermissionStatus" namespace="global">
        <metrics complexity="7" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="22" coveredelements="22"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="28" type="stmt" count="6"/>
      <line num="36" type="method" name="newBlockedError" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="50" type="method" name="newPermissionError" visibility="public" complexity="1" crap="1" 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="55" type="stmt" count="1"/>
      <line num="63" type="method" name="getBlock" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="64" type="stmt" count="6"/>
      <line num="72" type="method" name="getPermission" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="73" type="stmt" count="6"/>
      <line num="84" type="method" name="setBlock" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="97" type="method" name="setPermission" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <metrics loc="102" ncloc="50" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="22" coveredelements="22"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilterPreAuthenticationProvider.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilterPreAuthenticationProvider" namespace="global">
        <metrics complexity="7" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="16" elements="22" coveredelements="18"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="27" type="stmt" count="10"/>
      <line num="35" type="method" name="testForAccountCreation" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="36" type="stmt" count="8"/>
      <line num="45" type="method" name="testUserForCreation" visibility="public" complexity="3" crap="3.33" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="51" type="stmt" count="0"/>
      <line num="60" type="method" name="testUser" visibility="private" complexity="2" crap="2.00" count="10"/>
      <line num="61" type="stmt" count="10"/>
      <line num="62" type="stmt" count="10"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="10"/>
      <line num="67" type="stmt" count="10"/>
      <line num="68" type="stmt" count="10"/>
      <line num="71" type="stmt" count="10"/>
      <line num="72" type="stmt" count="10"/>
      <line num="74" type="stmt" count="10"/>
      <line num="75" type="stmt" count="10"/>
      <line num="76" type="stmt" count="10"/>
      <line num="77" type="stmt" count="10"/>
      <line num="79" type="stmt" count="10"/>
      <metrics loc="82" ncloc="57" classes="1" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="16" elements="22" coveredelements="18"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseFilterServices.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseFilterServices" namespace="global">
        <metrics complexity="42" methods="42" coveredmethods="42" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="45" elements="87" coveredelements="87"/>
      </class>
      <line num="32" type="method" name="getHookRunner" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="40" type="method" name="getKeywordsManager" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="48" type="method" name="getFilterProfiler" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="56" type="method" name="getPermissionManager" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="64" type="method" name="getChangeTagger" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="72" type="method" name="getChangeTagsManager" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="80" type="method" name="getChangeTagValidator" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="81" type="stmt" count="2"/>
      <line num="88" type="method" name="getBlockAutopromoteStore" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="89" type="stmt" count="2"/>
      <line num="96" type="method" name="getFilterUser" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="104" type="method" name="getCentralDBManager" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="112" type="method" name="getRuleCheckerFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="113" type="stmt" count="2"/>
      <line num="120" type="method" name="getFilterLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="128" type="method" name="getEmergencyCache" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="129" type="stmt" count="2"/>
      <line num="136" type="method" name="getEmergencyWatcher" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="137" type="stmt" count="2"/>
      <line num="144" type="method" name="getEchoNotifier" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="152" type="method" name="getFilterValidator" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="153" type="stmt" count="2"/>
      <line num="160" type="method" name="getFilterCompare" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="168" type="method" name="getFilterImporter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="169" type="stmt" count="2"/>
      <line num="176" type="method" name="getFilterStore" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="177" type="stmt" count="2"/>
      <line num="184" type="method" name="getConsequencesFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="185" type="stmt" count="2"/>
      <line num="192" type="method" name="getEditBoxBuilderFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="193" type="stmt" count="2"/>
      <line num="200" type="method" name="getConsequencesLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="201" type="stmt" count="2"/>
      <line num="208" type="method" name="getConsequencesRegistry" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="209" type="stmt" count="2"/>
      <line num="216" type="method" name="getAbuseLoggerFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="217" type="stmt" count="2"/>
      <line num="224" type="method" name="getUpdateHitCountWatcher" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="225" type="stmt" count="2"/>
      <line num="232" type="method" name="getVariablesBlobStore" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="233" type="stmt" count="2"/>
      <line num="240" type="method" name="getConsequencesExecutorFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="243" type="stmt" count="2"/>
      <line num="250" type="method" name="getFilterRunnerFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="251" type="stmt" count="2"/>
      <line num="258" type="method" name="getSpecsFormatter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="259" type="stmt" count="2"/>
      <line num="266" type="method" name="getVariablesFormatter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="267" type="stmt" count="2"/>
      <line num="274" type="method" name="getLazyVariableComputer" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="275" type="stmt" count="2"/>
      <line num="282" type="method" name="getTextExtractor" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="283" type="stmt" count="2"/>
      <line num="290" type="method" name="getVariablesManager" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="291" type="stmt" count="2"/>
      <line num="298" type="method" name="getVariableGeneratorFactory" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="301" type="stmt" count="2"/>
      <line num="308" type="method" name="getEditRevUpdater" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="309" type="stmt" count="2"/>
      <line num="316" type="method" name="getBlockedDomainStorage" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="317" type="stmt" count="2"/>
      <line num="324" type="method" name="getBlockedDomainFilter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="325" type="stmt" count="2"/>
      <line num="328" type="method" name="getBlockedDomainValidator" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="329" type="stmt" count="2"/>
      <line num="332" type="method" name="getGlobalBlockedDomainLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="335" type="stmt" count="2"/>
      <line num="338" type="method" name="getProtectedVariablesLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="341" type="stmt" count="2"/>
      <line num="342" type="stmt" count="2"/>
      <line num="345" type="method" name="getLogDetailsLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="348" type="stmt" count="2"/>
      <line num="349" type="stmt" count="2"/>
      <line num="352" type="method" name="getAbuseLogLookup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="355" type="stmt" count="2"/>
      <line num="356" type="stmt" count="2"/>
      <metrics loc="359" ncloc="215" classes="1" methods="42" coveredmethods="42" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="45" elements="87" coveredelements="87"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseLogConditionFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseLogConditionFactory" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="38" elements="41" coveredelements="41"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="48"/>
      <line num="25" type="stmt" count="48"/>
      <line num="44" type="method" name="getUserFilterByIPAddress" visibility="public" complexity="3" crap="3" count="12"/>
      <line num="49" type="stmt" count="12"/>
      <line num="51" type="stmt" count="12"/>
      <line num="54" type="stmt" count="1"/>
      <line num="57" type="stmt" count="11"/>
      <line num="58" type="stmt" count="11"/>
      <line num="59" type="stmt" count="11"/>
      <line num="60" type="stmt" count="11"/>
      <line num="61" type="stmt" count="11"/>
      <line num="62" type="stmt" count="11"/>
      <line num="64" type="stmt" count="11"/>
      <line num="67" type="stmt" count="6"/>
      <line num="69" type="stmt" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="6"/>
      <line num="72" type="stmt" count="6"/>
      <line num="73" type="stmt" count="6"/>
      <line num="74" type="stmt" count="6"/>
      <line num="84" type="stmt" count="5"/>
      <line num="85" type="stmt" count="5"/>
      <line num="86" type="stmt" count="5"/>
      <line num="87" type="stmt" count="5"/>
      <line num="101" type="method" name="getUserFilterByUserIdentity" visibility="public" complexity="2" crap="2" count="15"/>
      <line num="104" type="stmt" count="15"/>
      <line num="105" type="stmt" count="9"/>
      <line num="106" type="stmt" count="9"/>
      <line num="107" type="stmt" count="9"/>
      <line num="108" type="stmt" count="9"/>
      <line num="113" type="stmt" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="6"/>
      <line num="116" type="stmt" count="6"/>
      <line num="117" type="stmt" count="6"/>
      <line num="118" type="stmt" count="6"/>
      <line num="119" type="stmt" count="6"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" count="6"/>
      <line num="123" type="stmt" count="6"/>
      <metrics loc="127" ncloc="77" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="38" elements="41" coveredelements="41"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseLogLookup.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseLogLookup" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="23" elements="25" coveredelements="25"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="24" type="stmt" count="4"/>
      <line num="35" type="method" name="getHitCountsForUsers" visibility="public" complexity="6" crap="6" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="1"/>
      <line num="40" type="stmt" count="3"/>
      <line num="42" type="stmt" count="3"/>
      <line num="43" type="stmt" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="2"/>
      <line num="66" type="stmt" count="3"/>
      <line num="67" type="stmt" count="2"/>
      <line num="71" type="stmt" count="3"/>
      <metrics loc="74" ncloc="57" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="23" elements="25" coveredelements="25"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseLogger.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseLogger" namespace="global">
        <metrics complexity="41" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="150" coveredstatements="131" elements="158" coveredelements="137"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="2" crap="2" count="46"/>
      <line num="49" type="stmt" count="46"/>
      <line num="50" type="stmt" count="1"/>
      <line num="52" type="stmt" count="46"/>
      <line num="61" type="method" name="addLogEntries" visibility="public" complexity="6" crap="6" count="45"/>
      <line num="62" type="stmt" count="45"/>
      <line num="63" type="stmt" count="45"/>
      <line num="64" type="stmt" count="45"/>
      <line num="65" type="stmt" count="45"/>
      <line num="66" type="stmt" count="45"/>
      <line num="68" type="stmt" count="45"/>
      <line num="69" type="stmt" count="45"/>
      <line num="70" type="stmt" count="45"/>
      <line num="71" type="stmt" count="45"/>
      <line num="73" type="stmt" count="45"/>
      <line num="74" type="stmt" count="45"/>
      <line num="75" type="stmt" count="45"/>
      <line num="76" type="stmt" count="45"/>
      <line num="77" type="stmt" count="45"/>
      <line num="78" type="stmt" count="45"/>
      <line num="82" type="stmt" count="45"/>
      <line num="83" type="stmt" count="45"/>
      <line num="85" type="stmt" count="45"/>
      <line num="86" type="stmt" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <line num="88" type="stmt" count="6"/>
      <line num="89" type="stmt" count="6"/>
      <line num="90" type="stmt" count="6"/>
      <line num="92" type="stmt" count="6"/>
      <line num="93" type="stmt" count="6"/>
      <line num="95" type="stmt" count="39"/>
      <line num="100" type="stmt" count="45"/>
      <line num="101" type="stmt" count="4"/>
      <line num="104" type="stmt" count="45"/>
      <line num="106" type="stmt" count="45"/>
      <line num="107" type="stmt" count="45"/>
      <line num="108" type="stmt" count="6"/>
      <line num="109" type="stmt" count="6"/>
      <line num="112" type="stmt" count="45"/>
      <line num="113" type="stmt" count="45"/>
      <line num="114" type="stmt" count="45"/>
      <line num="115" type="stmt" count="45"/>
      <line num="117" type="stmt" count="45"/>
      <line num="123" type="method" name="buildLogTemplate" visibility="private" complexity="6" crap="6" count="45"/>
      <line num="126" type="stmt" count="45"/>
      <line num="128" type="stmt" count="45"/>
      <line num="129" type="stmt" count="45"/>
      <line num="130" type="stmt" count="45"/>
      <line num="131" type="stmt" count="45"/>
      <line num="132" type="stmt" count="45"/>
      <line num="133" type="stmt" count="45"/>
      <line num="134" type="stmt" count="45"/>
      <line num="135" type="stmt" count="45"/>
      <line num="136" type="stmt" count="45"/>
      <line num="138" type="stmt" count="45"/>
      <line num="139" type="stmt" count="4"/>
      <line num="141" type="stmt" count="45"/>
      <line num="144" type="method" name="newLocalLogEntryFromData" visibility="private" complexity="1" crap="1" count="45"/>
      <line num="147" type="stmt" count="45"/>
      <line num="148" type="stmt" count="45"/>
      <line num="149" type="stmt" count="45"/>
      <line num="150" type="stmt" count="45"/>
      <line num="151" type="stmt" count="45"/>
      <line num="152" type="stmt" count="45"/>
      <line num="153" type="stmt" count="45"/>
      <line num="154" type="stmt" count="45"/>
      <line num="156" type="stmt" count="45"/>
      <line num="157" type="stmt" count="45"/>
      <line num="158" type="stmt" count="45"/>
      <line num="159" type="stmt" count="45"/>
      <line num="160" type="stmt" count="45"/>
      <line num="161" type="stmt" count="45"/>
      <line num="162" type="stmt" count="45"/>
      <line num="170" type="method" name="insertLocalLogEntries" visibility="private" complexity="11" crap="12.15" count="45"/>
      <line num="171" type="stmt" count="45"/>
      <line num="172" type="stmt" count="45"/>
      <line num="173" type="stmt" count="45"/>
      <line num="174" type="stmt" count="45"/>
      <line num="175" type="stmt" count="45"/>
      <line num="176" type="stmt" count="45"/>
      <line num="177" type="stmt" count="45"/>
      <line num="178" type="stmt" count="45"/>
      <line num="179" type="stmt" count="45"/>
      <line num="183" type="stmt" count="45"/>
      <line num="184" type="stmt" count="45"/>
      <line num="186" type="stmt" count="45"/>
      <line num="187" type="stmt" count="45"/>
      <line num="191" type="stmt" count="45"/>
      <line num="192" type="stmt" count="45"/>
      <line num="194" type="stmt" count="4"/>
      <line num="196" type="stmt" count="45"/>
      <line num="197" type="stmt" count="45"/>
      <line num="200" type="stmt" count="45"/>
      <line num="202" type="stmt" count="45"/>
      <line num="203" type="stmt" count="45"/>
      <line num="205" type="stmt" count="45"/>
      <line num="207" type="stmt" count="45"/>
      <line num="208" type="stmt" count="45"/>
      <line num="211" type="stmt" count="45"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="224" type="stmt" count="45"/>
      <line num="232" type="method" name="insertCentralLogEntries" visibility="private" complexity="3" crap="3" count="6"/>
      <line num="233" type="stmt" count="6"/>
      <line num="234" type="stmt" count="6"/>
      <line num="235" type="stmt" count="6"/>
      <line num="236" type="stmt" count="6"/>
      <line num="240" type="stmt" count="6"/>
      <line num="241" type="stmt" count="6"/>
      <line num="242" type="stmt" count="6"/>
      <line num="245" type="stmt" count="6"/>
      <line num="246" type="stmt" count="6"/>
      <line num="247" type="stmt" count="6"/>
      <line num="248" type="stmt" count="6"/>
      <line num="249" type="stmt" count="6"/>
      <line num="250" type="stmt" count="6"/>
      <line num="251" type="stmt" count="6"/>
      <line num="252" type="stmt" count="6"/>
      <line num="254" type="stmt" count="6"/>
      <line num="270" type="method" name="storeVarDump" visibility="private" complexity="7" crap="7" count="45"/>
      <line num="274" type="stmt" count="45"/>
      <line num="275" type="stmt" count="45"/>
      <line num="276" type="stmt" count="45"/>
      <line num="277" type="stmt" count="45"/>
      <line num="278" type="stmt" count="2"/>
      <line num="279" type="stmt" count="2"/>
      <line num="281" type="stmt" count="44"/>
      <line num="283" type="stmt" count="45"/>
      <line num="287" type="stmt" count="45"/>
      <line num="288" type="stmt" count="45"/>
      <line num="292" type="stmt" count="45"/>
      <line num="293" type="stmt" count="45"/>
      <line num="294" type="stmt" count="45"/>
      <line num="295" type="stmt" count="45"/>
      <line num="296" type="stmt" count="31"/>
      <line num="300" type="stmt" count="45"/>
      <line num="301" type="stmt" count="45"/>
      <line num="302" type="stmt" count="45"/>
      <line num="303" type="stmt" count="45"/>
      <line num="306" type="stmt" count="45"/>
      <line num="316" type="method" name="publishEntry" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="320" type="stmt" count="0"/>
      <line num="322" type="stmt" count="0"/>
      <line num="323" type="stmt" count="0"/>
      <line num="325" type="stmt" count="0"/>
      <line num="326" type="stmt" count="0"/>
      <line num="328" type="stmt" count="0"/>
      <line num="329" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <metrics loc="335" ncloc="266" classes="1" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="150" coveredstatements="131" elements="158" coveredelements="137"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/AbuseLoggerFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\AbuseLoggerFactory" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="29" coveredelements="29"/>
      </class>
      <line num="36" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="61" type="method" name="getProtectedVarsAccessLogger" visibility="public" complexity="1" crap="1" 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="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="80" type="method" name="newLogger" visibility="public" complexity="1" crap="1" 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="97" 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"/>
      <metrics loc="104" ncloc="88" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="29" coveredelements="29"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ActionSpecifier.php">
      <class name="MediaWiki\Extension\AbuseFilter\ActionSpecifier" namespace="global">
        <metrics complexity="8" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="13" coveredelements="13"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="31" type="stmt" count="2"/>
      <line num="32" type="stmt" count="1"/>
      <line num="36" type="method" name="getAction" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="40" type="method" name="getTitle" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="44" type="method" name="getUser" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="52" type="method" name="getIP" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="56" type="method" name="getAccountName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <metrics loc="60" ncloc="43" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="13" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/AbuseLogPrivateDetails.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\AbuseLogPrivateDetails" namespace="global">
        <metrics complexity="14" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="31" elements="40" coveredelements="32"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="46" type="stmt" count="9"/>
      <line num="76" type="method" name="execute" visibility="public" complexity="7" crap="7.33" count="7"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="1"/>
      <line num="80" type="stmt" count="6"/>
      <line num="81" type="stmt" count="6"/>
      <line num="82" type="stmt" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="86" type="stmt" count="0"/>
      <line num="89" type="stmt" count="6"/>
      <line num="90" type="stmt" count="6"/>
      <line num="91" type="stmt" count="6"/>
      <line num="92" type="stmt" count="6"/>
      <line num="93" type="stmt" count="2"/>
      <line num="96" type="stmt" count="4"/>
      <line num="97" type="stmt" count="4"/>
      <line num="98" type="stmt" count="4"/>
      <line num="99" type="stmt" count="4"/>
      <line num="100" type="stmt" count="4"/>
      <line num="101" type="stmt" count="4"/>
      <line num="102" type="stmt" count="4"/>
      <line num="104" type="stmt" count="4"/>
      <line num="105" type="stmt" count="0"/>
      <line num="108" type="stmt" count="4"/>
      <line num="109" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="120" type="stmt" count="4"/>
      <line num="121" type="stmt" count="4"/>
      <line num="122" type="stmt" count="4"/>
      <line num="123" type="stmt" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="125" type="stmt" count="4"/>
      <line num="126" type="stmt" count="4"/>
      <line num="127" type="stmt" count="4"/>
      <metrics loc="162" ncloc="115" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="31" elements="40" coveredelements="32"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/CheckMatch.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\CheckMatch" namespace="global">
        <metrics complexity="26" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="74" coveredstatements="69" elements="76" coveredelements="70"/>
      </class>
      <line num="25" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="13"/>
      <line num="37" type="stmt" count="13"/>
      <line num="43" type="method" name="execute" visibility="public" complexity="23" crap="23.17" count="13"/>
      <line num="44" type="stmt" count="13"/>
      <line num="45" type="stmt" count="13"/>
      <line num="46" type="stmt" count="13"/>
      <line num="49" type="stmt" count="13"/>
      <line num="50" type="stmt" count="1"/>
      <line num="53" type="stmt" count="12"/>
      <line num="54" type="stmt" count="12"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="9"/>
      <line num="58" type="stmt" count="7"/>
      <line num="60" type="stmt" count="7"/>
      <line num="61" type="stmt" count="0"/>
      <line num="64" type="stmt" count="7"/>
      <line num="66" type="stmt" count="2"/>
      <line num="69" type="stmt" count="7"/>
      <line num="70" type="stmt" count="7"/>
      <line num="71" type="stmt" count="7"/>
      <line num="72" type="stmt" count="0"/>
      <line num="74" type="stmt" count="2"/>
      <line num="75" type="stmt" count="2"/>
      <line num="76" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="79" type="stmt" count="2"/>
      <line num="80" type="stmt" count="2"/>
      <line num="82" type="stmt" count="2"/>
      <line num="83" type="stmt" count="0"/>
      <line num="86" type="stmt" count="2"/>
      <line num="87" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="89" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="96" type="stmt" count="0"/>
      <line num="99" 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="111" type="stmt" count="10"/>
      <line num="117" type="stmt" count="10"/>
      <line num="118" type="stmt" count="10"/>
      <line num="119" type="stmt" count="1"/>
      <line num="125" type="stmt" count="9"/>
      <line num="126" type="stmt" count="9"/>
      <line num="127" type="stmt" count="2"/>
      <line num="130" type="stmt" count="7"/>
      <line num="131" type="stmt" count="7"/>
      <line num="132" type="stmt" count="7"/>
      <line num="133" type="stmt" count="7"/>
      <line num="139" type="stmt" count="7"/>
      <line num="140" type="stmt" count="7"/>
      <line num="141" type="stmt" count="3"/>
      <line num="142" type="stmt" count="3"/>
      <line num="144" type="stmt" count="3"/>
      <line num="145" type="stmt" count="3"/>
      <line num="147" type="stmt" count="2"/>
      <line num="152" type="stmt" count="7"/>
      <line num="153" type="stmt" count="2"/>
      <line num="154" type="stmt" count="1"/>
      <line num="159" type="stmt" count="1"/>
      <line num="160" type="stmt" count="1"/>
      <line num="162" type="stmt" count="0"/>
      <line num="164" type="stmt" count="1"/>
      <line num="165" type="stmt" count="1"/>
      <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"/>
      <metrics loc="205" ncloc="178" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="74" coveredstatements="69" elements="76" coveredelements="70"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/CheckSyntax.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\CheckSyntax" namespace="global">
        <metrics complexity="10" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="25" elements="30" coveredelements="26"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="20" type="stmt" count="4"/>
      <line num="26" type="method" name="execute" visibility="public" complexity="7" crap="7.07" count="4"/>
      <line num="28" type="stmt" count="4"/>
      <line num="29" type="stmt" count="4"/>
      <line num="31" type="stmt" count="1"/>
      <line num="34" type="stmt" count="3"/>
      <line num="35" type="stmt" count="3"/>
      <line num="37" type="stmt" count="3"/>
      <line num="38" type="stmt" count="3"/>
      <line num="39" type="stmt" count="3"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="1"/>
      <line num="49" type="stmt" count="3"/>
      <line num="51" type="stmt" count="2"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <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="66" type="stmt" count="3"/>
      <metrics loc="94" ncloc="81" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="25" elements="30" coveredelements="26"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/EvalExpression.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\EvalExpression" namespace="global">
        <metrics complexity="9" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="24" coveredelements="24"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="24" type="stmt" count="4"/>
      <line num="30" type="method" name="execute" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="32" type="stmt" count="4"/>
      <line num="33" type="stmt" count="1"/>
      <line num="36" type="stmt" count="3"/>
      <line num="38" type="stmt" count="3"/>
      <line num="39" type="stmt" count="3"/>
      <line num="40" type="stmt" count="1"/>
      <line num="42" type="stmt" count="2"/>
      <line num="43" type="stmt" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="52" type="method" name="evaluateExpression" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="1"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <metrics loc="94" ncloc="81" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="24" coveredelements="24"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/QueryAbuseFilters.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\QueryAbuseFilters" namespace="global">
        <metrics complexity="37" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="117" coveredstatements="115" elements="119" coveredelements="116"/>
      </class>
      <line num="44" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="40"/>
      <line num="50" type="stmt" count="40"/>
      <line num="56" type="method" name="execute" visibility="public" complexity="34" crap="34" count="40"/>
      <line num="57" type="stmt" count="40"/>
      <line num="59" type="stmt" count="39"/>
      <line num="61" type="stmt" count="39"/>
      <line num="62" type="stmt" count="39"/>
      <line num="63" type="stmt" count="39"/>
      <line num="64" type="stmt" count="39"/>
      <line num="65" type="stmt" count="39"/>
      <line num="66" type="stmt" count="39"/>
      <line num="67" type="stmt" count="39"/>
      <line num="68" type="stmt" count="39"/>
      <line num="69" type="stmt" count="39"/>
      <line num="70" type="stmt" count="39"/>
      <line num="71" type="stmt" count="39"/>
      <line num="72" type="stmt" count="39"/>
      <line num="74" type="stmt" count="39"/>
      <line num="78" type="stmt" count="39"/>
      <line num="79" type="stmt" count="39"/>
      <line num="80" type="stmt" count="39"/>
      <line num="82" type="stmt" count="39"/>
      <line num="84" type="stmt" count="39"/>
      <line num="85" type="stmt" count="39"/>
      <line num="86" type="stmt" count="39"/>
      <line num="87" type="stmt" count="39"/>
      <line num="88" type="stmt" count="39"/>
      <line num="89" type="stmt" count="39"/>
      <line num="91" type="stmt" count="39"/>
      <line num="92" type="stmt" count="15"/>
      <line num="95" type="stmt" count="15"/>
      <line num="96" type="stmt" count="15"/>
      <line num="97" type="stmt" count="15"/>
      <line num="98" type="stmt" count="15"/>
      <line num="99" type="stmt" count="15"/>
      <line num="101" type="stmt" count="5"/>
      <line num="104" type="stmt" count="10"/>
      <line num="105" type="stmt" count="10"/>
      <line num="106" type="stmt" count="10"/>
      <line num="107" type="stmt" count="10"/>
      <line num="108" type="stmt" count="10"/>
      <line num="109" type="stmt" count="10"/>
      <line num="110" type="stmt" count="10"/>
      <line num="111" type="stmt" count="10"/>
      <line num="112" type="stmt" count="10"/>
      <line num="113" type="stmt" count="10"/>
      <line num="114" type="stmt" count="10"/>
      <line num="115" type="stmt" count="10"/>
      <line num="116" type="stmt" count="10"/>
      <line num="117" type="stmt" count="10"/>
      <line num="118" type="stmt" count="10"/>
      <line num="119" type="stmt" count="10"/>
      <line num="120" type="stmt" count="10"/>
      <line num="121" type="stmt" count="10"/>
      <line num="122" type="stmt" count="10"/>
      <line num="123" type="stmt" count="10"/>
      <line num="124" type="stmt" count="10"/>
      <line num="125" type="stmt" count="10"/>
      <line num="126" type="stmt" count="10"/>
      <line num="127" type="stmt" count="10"/>
      <line num="128" type="stmt" count="10"/>
      <line num="129" type="stmt" count="10"/>
      <line num="130" type="stmt" count="10"/>
      <line num="131" type="stmt" count="10"/>
      <line num="132" type="stmt" count="10"/>
      <line num="135" type="stmt" count="34"/>
      <line num="137" type="stmt" count="34"/>
      <line num="138" type="stmt" count="34"/>
      <line num="140" type="stmt" count="34"/>
      <line num="141" type="stmt" count="34"/>
      <line num="145" type="stmt" count="34"/>
      <line num="146" type="stmt" count="34"/>
      <line num="147" type="stmt" count="34"/>
      <line num="149" type="stmt" count="1"/>
      <line num="150" type="stmt" count="1"/>
      <line num="155" type="stmt" count="34"/>
      <line num="156" type="stmt" count="34"/>
      <line num="157" type="stmt" count="34"/>
      <line num="159" type="stmt" count="34"/>
      <line num="160" type="stmt" count="27"/>
      <line num="161" type="stmt" count="27"/>
      <line num="162" type="stmt" count="27"/>
      <line num="165" type="stmt" count="34"/>
      <line num="166" type="stmt" count="34"/>
      <line num="167" type="stmt" count="34"/>
      <line num="169" type="stmt" count="34"/>
      <line num="170" type="stmt" count="1"/>
      <line num="172" type="stmt" count="34"/>
      <line num="173" type="stmt" count="5"/>
      <line num="174" type="stmt" count="5"/>
      <line num="176" type="stmt" count="4"/>
      <line num="179" type="stmt" count="34"/>
      <line num="180" type="stmt" count="1"/>
      <line num="182" type="stmt" count="34"/>
      <line num="183" type="stmt" count="5"/>
      <line num="184" type="stmt" count="4"/>
      <line num="186" type="stmt" count="4"/>
      <line num="189" type="stmt" count="34"/>
      <line num="190" type="stmt" count="5"/>
      <line num="191" type="stmt" count="5"/>
      <line num="193" type="stmt" count="4"/>
      <line num="196" type="stmt" count="34"/>
      <line num="197" type="stmt" count="1"/>
      <line num="199" type="stmt" count="34"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="1"/>
      <line num="204" type="stmt" count="34"/>
      <line num="205" type="stmt" count="1"/>
      <line num="206" type="stmt" count="1"/>
      <line num="207" type="stmt" count="1"/>
      <line num="208" type="stmt" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="211" type="stmt" count="34"/>
      <line num="212" type="stmt" count="34"/>
      <line num="213" type="stmt" count="34"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="219" type="stmt" count="34"/>
      <metrics loc="312" ncloc="265" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="117" coveredstatements="115" elements="119" coveredelements="116"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/QueryAbuseLog.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\QueryAbuseLog" namespace="global">
        <metrics complexity="68" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="217" coveredstatements="190" elements="220" coveredelements="192"/>
      </class>
      <line num="59" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="73" type="stmt" count="16"/>
      <line num="79" type="method" name="execute" visibility="public" complexity="58" crap="66.93" count="16"/>
      <line num="80" type="stmt" count="16"/>
      <line num="83" type="stmt" count="16"/>
      <line num="85" type="stmt" count="16"/>
      <line num="86" type="stmt" count="16"/>
      <line num="88" type="stmt" count="16"/>
      <line num="89" type="stmt" count="16"/>
      <line num="90" type="stmt" count="16"/>
      <line num="91" type="stmt" count="16"/>
      <line num="92" type="stmt" count="16"/>
      <line num="93" type="stmt" count="16"/>
      <line num="94" type="stmt" count="16"/>
      <line num="95" type="stmt" count="16"/>
      <line num="96" type="stmt" count="16"/>
      <line num="97" type="stmt" count="16"/>
      <line num="98" type="stmt" count="16"/>
      <line num="99" type="stmt" count="16"/>
      <line num="100" type="stmt" count="16"/>
      <line num="102" type="stmt" count="16"/>
      <line num="103" type="stmt" count="7"/>
      <line num="106" type="stmt" count="16"/>
      <line num="107" type="stmt" count="16"/>
      <line num="110" type="stmt" count="16"/>
      <line num="114" type="stmt" count="16"/>
      <line num="115" type="stmt" count="8"/>
      <line num="116" type="stmt" count="0"/>
      <line num="118" type="stmt" count="8"/>
      <line num="119" type="stmt" count="8"/>
      <line num="121" type="stmt" count="8"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="128" type="stmt" count="8"/>
      <line num="130" type="stmt" count="8"/>
      <line num="131" type="stmt" count="6"/>
      <line num="132" type="stmt" count="6"/>
      <line num="133" type="stmt" count="2"/>
      <line num="137" type="stmt" count="1"/>
      <line num="138" type="stmt" count="1"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="141" type="stmt" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="145" type="stmt" count="1"/>
      <line num="146" type="stmt" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="150" type="stmt" count="8"/>
      <line num="151" type="stmt" count="2"/>
      <line num="152" type="stmt" count="2"/>
      <line num="153" type="stmt" count="2"/>
      <line num="156" type="stmt" count="6"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="162" type="stmt" count="6"/>
      <line num="163" type="stmt" count="4"/>
      <line num="164" type="stmt" count="4"/>
      <line num="165" type="stmt" count="4"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="1"/>
      <line num="169" 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="174" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="179" type="stmt" count="0"/>
      <line num="184" type="stmt" count="4"/>
      <line num="186" type="stmt" count="1"/>
      <line num="190" type="stmt" count="12"/>
      <line num="192" type="stmt" count="12"/>
      <line num="193" type="stmt" count="12"/>
      <line num="194" type="stmt" count="12"/>
      <line num="195" type="stmt" count="12"/>
      <line num="196" type="stmt" count="12"/>
      <line num="197" type="stmt" count="12"/>
      <line num="198" type="stmt" count="12"/>
      <line num="199" type="stmt" count="12"/>
      <line num="200" type="stmt" count="12"/>
      <line num="201" type="stmt" count="12"/>
      <line num="202" type="stmt" count="12"/>
      <line num="203" type="stmt" count="12"/>
      <line num="204" type="stmt" count="12"/>
      <line num="205" type="stmt" count="12"/>
      <line num="207" type="stmt" count="12"/>
      <line num="209" type="stmt" count="12"/>
      <line num="211" type="stmt" count="12"/>
      <line num="213" type="stmt" count="12"/>
      <line num="214" type="stmt" count="6"/>
      <line num="217" type="stmt" count="12"/>
      <line num="219" type="stmt" count="12"/>
      <line num="221" type="stmt" count="4"/>
      <line num="222" type="stmt" count="4"/>
      <line num="223" type="stmt" count="4"/>
      <line num="224" type="stmt" count="4"/>
      <line num="225" type="stmt" count="4"/>
      <line num="227" type="stmt" count="4"/>
      <line num="228" type="stmt" count="4"/>
      <line num="229" type="stmt" count="4"/>
      <line num="230" type="stmt" count="4"/>
      <line num="231" type="stmt" count="4"/>
      <line num="232" type="stmt" count="4"/>
      <line num="233" type="stmt" count="4"/>
      <line num="235" type="stmt" count="4"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="241" type="stmt" count="4"/>
      <line num="244" type="stmt" count="12"/>
      <line num="246" type="stmt" count="0"/>
      <line num="249" type="stmt" count="12"/>
      <line num="250" type="stmt" count="12"/>
      <line num="251" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="258" type="stmt" count="12"/>
      <line num="260" type="stmt" count="12"/>
      <line num="261" type="stmt" count="12"/>
      <line num="262" type="stmt" count="11"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="268" type="stmt" count="11"/>
      <line num="269" type="stmt" count="11"/>
      <line num="270" type="stmt" count="3"/>
      <line num="273" type="stmt" count="11"/>
      <line num="274" type="stmt" count="11"/>
      <line num="275" type="stmt" count="11"/>
      <line num="276" type="stmt" count="11"/>
      <line num="277" type="stmt" count="11"/>
      <line num="279" type="stmt" count="11"/>
      <line num="280" type="stmt" count="11"/>
      <line num="281" type="stmt" count="1"/>
      <line num="282" type="stmt" count="1"/>
      <line num="284" type="stmt" count="11"/>
      <line num="285" type="stmt" count="7"/>
      <line num="287" type="stmt" count="11"/>
      <line num="288" type="stmt" count="7"/>
      <line num="290" type="stmt" count="11"/>
      <line num="291" type="stmt" count="0"/>
      <line num="293" type="stmt" count="11"/>
      <line num="294" type="stmt" count="1"/>
      <line num="295" type="stmt" count="1"/>
      <line num="297" type="stmt" count="11"/>
      <line num="298" type="stmt" count="7"/>
      <line num="300" type="stmt" count="11"/>
      <line num="301" type="stmt" count="1"/>
      <line num="303" type="stmt" count="11"/>
      <line num="304" type="stmt" count="0"/>
      <line num="306" type="stmt" count="11"/>
      <line num="307" type="stmt" count="1"/>
      <line num="308" type="stmt" count="1"/>
      <line num="310" type="stmt" count="11"/>
      <line num="311" type="stmt" count="3"/>
      <line num="312" type="stmt" count="3"/>
      <line num="313" type="stmt" count="3"/>
      <line num="314" type="stmt" count="3"/>
      <line num="315" type="stmt" count="3"/>
      <line num="317" type="stmt" count="3"/>
      <line num="318" type="stmt" count="3"/>
      <line num="319" type="stmt" count="3"/>
      <line num="323" type="stmt" count="2"/>
      <line num="324" type="stmt" count="2"/>
      <line num="325" type="stmt" count="2"/>
      <line num="326" type="stmt" count="2"/>
      <line num="327" type="stmt" count="2"/>
      <line num="328" type="stmt" count="2"/>
      <line num="329" type="stmt" count="2"/>
      <line num="331" type="stmt" count="0"/>
      <line num="336" type="stmt" count="2"/>
      <line num="341" type="stmt" count="2"/>
      <line num="343" type="stmt" count="2"/>
      <line num="344" type="stmt" count="2"/>
      <line num="347" type="stmt" count="1"/>
      <line num="348" type="stmt" count="1"/>
      <line num="349" type="stmt" count="1"/>
      <line num="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="352" type="stmt" count="1"/>
      <line num="354" type="stmt" count="1"/>
      <line num="355" type="stmt" count="1"/>
      <line num="356" type="stmt" count="1"/>
      <line num="366" type="stmt" count="11"/>
      <line num="367" type="stmt" count="1"/>
      <line num="370" type="stmt" count="11"/>
      <line num="371" type="stmt" count="11"/>
      <line num="372" type="stmt" count="11"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="375" type="stmt" count="0"/>
      <line num="379" type="stmt" count="12"/>
      <line num="391" type="method" name="addUserFilter" visibility="private" complexity="6" crap="6" count="6"/>
      <line num="392" type="stmt" count="6"/>
      <line num="393" type="stmt" count="3"/>
      <line num="394" type="stmt" count="3"/>
      <line num="395" type="stmt" count="3"/>
      <line num="396" type="stmt" count="3"/>
      <line num="397" type="stmt" count="3"/>
      <line num="399" type="stmt" count="3"/>
      <line num="402" type="stmt" count="1"/>
      <line num="403" type="stmt" count="1"/>
      <line num="404" type="stmt" count="1"/>
      <line num="405" type="stmt" count="1"/>
      <line num="411" type="stmt" count="3"/>
      <line num="412" type="stmt" count="3"/>
      <line num="415" type="stmt" count="3"/>
      <line num="416" type="stmt" count="3"/>
      <line num="419" type="stmt" count="3"/>
      <line num="421" type="stmt" count="3"/>
      <line num="422" type="stmt" count="3"/>
      <line num="423" type="stmt" count="3"/>
      <line num="425" type="stmt" count="3"/>
      <line num="426" type="stmt" count="3"/>
      <metrics loc="513" ncloc="442" classes="1" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="217" coveredstatements="190" elements="220" coveredelements="192"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Api/UnblockAutopromote.php">
      <class name="MediaWiki\Extension\AbuseFilter\Api\UnblockAutopromote" namespace="global">
        <metrics complexity="10" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="13" elements="15" coveredelements="15"/>
      </class>
      <line num="13" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="18" type="stmt" count="5"/>
      <line num="24" type="method" name="execute" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="25" type="stmt" count="4"/>
      <line num="27" type="stmt" count="3"/>
      <line num="28" type="stmt" count="3"/>
      <line num="30" type="stmt" count="3"/>
      <line num="31" type="stmt" count="3"/>
      <line num="32" type="stmt" count="1"/>
      <line num="35" type="stmt" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="38" type="stmt" count="2"/>
      <line num="39" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <metrics loc="97" ncloc="74" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="13" elements="15" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockAutopromoteStore.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockAutopromoteStore" namespace="global">
        <metrics complexity="9" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="43" elements="48" coveredelements="48"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="62"/>
      <line num="23" type="stmt" count="62"/>
      <line num="31" type="method" name="getAutoPromoteBlockStatus" visibility="public" complexity="1" crap="1" count="54"/>
      <line num="32" type="stmt" count="54"/>
      <line num="43" type="method" name="blockAutoPromote" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="48" type="stmt" count="4"/>
      <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="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="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="67" type="stmt" count="3"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="70" type="stmt" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="78" type="stmt" count="3"/>
      <line num="89" type="method" name="unblockAutopromote" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="3"/>
      <line num="97" type="stmt" count="1"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="119" type="method" name="getAutoPromoteBlockKey" visibility="private" complexity="1" crap="1" count="58"/>
      <line num="121" type="stmt" count="58"/>
      <metrics loc="124" ncloc="87" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="43" elements="48" coveredelements="48"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/BlockedDomainConfigProvider.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\BlockedDomainConfigProvider" namespace="global">
        <metrics complexity="18" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="0" elements="54" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="31" type="method" name="loadConfig" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="39" type="method" name="processStoreStatus" visibility="private" complexity="2" crap="6" 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="46" type="method" name="loadValidConfiguration" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="50" type="method" name="loadValidConfigurationUncached" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="59" type="method" name="loadComputed" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="93" type="method" name="addDomain" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="115" type="method" name="removeDomain" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <metrics loc="134" ncloc="109" classes="1" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="0" elements="54" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/BlockedDomainEditor.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\BlockedDomainEditor" namespace="global">
        <metrics complexity="27" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="193" coveredstatements="0" elements="203" coveredelements="0"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="39" type="method" name="msg" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="43" type="method" name="execute" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="57" type="method" name="showList" visibility="private" complexity="6" crap="42" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" 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="78" type="stmt" count="0"/>
      <line num="79" 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="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="153" type="method" name="doDomainRow" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="189" type="method" name="showRemoveForm" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="219" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="231" type="method" name="processRemoveForm" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="264" type="method" name="showAddForm" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="273" type="stmt" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="277" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="285" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="287" type="stmt" count="0"/>
      <line num="288" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="293" type="stmt" count="0"/>
      <line num="294" type="stmt" count="0"/>
      <line num="295" type="stmt" count="0"/>
      <line num="305" type="method" name="processAddForm" visibility="private" complexity="4" crap="20" count="0"/>
      <line num="306" type="stmt" count="0"/>
      <line num="308" type="stmt" count="0"/>
      <line num="309" type="stmt" count="0"/>
      <line num="310" type="stmt" count="0"/>
      <line num="311" type="stmt" count="0"/>
      <line num="312" type="stmt" count="0"/>
      <line num="313" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="316" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="321" type="stmt" count="0"/>
      <line num="322" type="stmt" count="0"/>
      <line num="323" type="stmt" count="0"/>
      <line num="325" type="stmt" count="0"/>
      <line num="328" type="stmt" count="0"/>
      <line num="329" type="stmt" count="0"/>
      <line num="332" type="method" name="getPageTitle" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="333" type="stmt" count="0"/>
      <line num="334" type="stmt" count="0"/>
      <line num="335" type="stmt" count="0"/>
      <line num="337" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <metrics loc="341" ncloc="295" classes="1" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="193" coveredstatements="0" elements="203" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/BlockedDomainFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\BlockedDomainFilter" namespace="global">
        <metrics complexity="12" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="43" elements="49" coveredelements="44"/>
      </class>
      <line num="41" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="25"/>
      <line num="46" type="stmt" count="25"/>
      <line num="49" type="method" name="filter" visibility="public" complexity="8" crap="8.01" count="25"/>
      <line num="52" type="stmt" count="25"/>
      <line num="54" type="stmt" count="25"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="59" type="stmt" count="25"/>
      <line num="60" type="stmt" count="25"/>
      <line num="61" type="stmt" count="25"/>
      <line num="62" type="stmt" count="25"/>
      <line num="63" type="stmt" count="1"/>
      <line num="65" type="stmt" count="24"/>
      <line num="66" type="stmt" count="24"/>
      <line num="73" type="stmt" count="24"/>
      <line num="75" type="stmt" count="24"/>
      <line num="77" type="stmt" count="21"/>
      <line num="79" type="stmt" count="21"/>
      <line num="82" type="stmt" count="25"/>
      <line num="83" type="stmt" count="1"/>
      <line num="85" type="stmt" count="24"/>
      <line num="86" type="stmt" count="24"/>
      <line num="87" type="stmt" count="13"/>
      <line num="89" type="stmt" count="24"/>
      <line num="90" type="stmt" count="24"/>
      <line num="91" type="stmt" count="7"/>
      <line num="93" type="stmt" count="17"/>
      <line num="94" type="stmt" count="17"/>
      <line num="95" type="stmt" count="17"/>
      <line num="96" type="stmt" count="17"/>
      <line num="97" type="stmt" count="17"/>
      <line num="98" type="stmt" count="17"/>
      <line num="99" type="stmt" count="17"/>
      <line num="100" type="stmt" count="17"/>
      <line num="101" type="stmt" count="17"/>
      <line num="102" type="stmt" count="17"/>
      <line num="112" type="method" name="logFilterHit" visibility="private" complexity="3" crap="3.01" count="17"/>
      <line num="113" type="stmt" count="17"/>
      <line num="114" type="stmt" count="17"/>
      <line num="115" type="stmt" count="17"/>
      <line num="116" type="stmt" count="17"/>
      <line num="117" type="stmt" count="17"/>
      <line num="118" type="stmt" count="17"/>
      <line num="119" type="stmt" count="17"/>
      <line num="122" type="stmt" count="17"/>
      <line num="123" type="stmt" count="17"/>
      <line num="125" type="stmt" count="17"/>
      <line num="126" type="stmt" count="17"/>
      <line num="131" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <metrics loc="138" ncloc="91" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="43" elements="50" coveredelements="44"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/BlockedDomainValidator.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\BlockedDomainValidator" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="0"/>
      </class>
      <line num="12" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="13" type="stmt" count="0"/>
      <line num="21" type="method" name="validateDomain" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <metrics loc="39" ncloc="32" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/CustomBlockedDomainStorage.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\CustomBlockedDomainStorage" namespace="global">
        <metrics complexity="27" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="81" coveredstatements="0" elements="91" coveredelements="0"/>
      </class>
      <line num="46" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="55" type="method" name="loadConfig" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="76" type="method" name="loadComputed" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="109" type="method" name="validateDomain" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="127" type="method" name="fetchConfig" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="144" type="method" name="addDomain" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="158" type="method" name="removeDomain" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="179" type="method" name="fetchLatestConfig" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="202" type="method" name="saveContent" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="221" type="method" name="getBlockedDomainPage" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <metrics loc="228" ncloc="161" classes="1" methods="10" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="82" coveredstatements="0" elements="92" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/EditorCapability.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\EditorCapability" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="14" coveredelements="0"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="28" type="method" name="execute" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" 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="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="41" type="stmt" count="0"/>
      <metrics loc="44" ncloc="41" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="14" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/GlobalBlockedDomainLookup.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\GlobalBlockedDomainLookup" namespace="global">
        <metrics complexity="13" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="35" elements="44" coveredelements="37"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="39" type="stmt" count="4"/>
      <line num="46" type="method" name="loadComputed" visibility="public" complexity="7" crap="7" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="48" type="stmt" count="1"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <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="62" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <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="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="3"/>
      <line num="79" type="stmt" count="3"/>
      <line num="88" type="method" name="fetchConfig" visibility="private" complexity="5" crap="6.32" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="2"/>
      <line num="93" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="97" type="stmt" count="0"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="107" type="stmt" count="1"/>
      <metrics loc="110" ncloc="84" classes="1" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="35" elements="44" coveredelements="37"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/IBlockedDomainFilter.php">
      <metrics loc="27" ncloc="17" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/IBlockedDomainStorage.php">
      <metrics loc="50" ncloc="20" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/BlockedDomains/NoopBlockedDomainFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\BlockedDomains\NoopBlockedDomainFilter" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="0" elements="2" coveredelements="0"/>
      </class>
      <line num="13" type="method" name="filter" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <metrics loc="17" ncloc="16" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="0" elements="2" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/CentralDBManager.php">
      <class name="MediaWiki\Extension\AbuseFilter\CentralDBManager" namespace="global">
        <metrics complexity="7" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="12" coveredelements="12"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="2" crap="2" count="9"/>
      <line num="27" type="stmt" count="9"/>
      <line num="35" type="method" name="getPrimaryDatabase" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="44" type="method" name="getReplicaDatabase" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="52" type="method" name="getCentralDBName" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="53" type="stmt" count="6"/>
      <line num="54" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="65" type="method" name="filterIsCentral" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <metrics loc="69" ncloc="42" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="12" coveredelements="12"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/CentralDBNotAvailableException.php">
      <class name="MediaWiki\Extension\AbuseFilter\CentralDBNotAvailableException" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="9" ncloc="9" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ChangeTags/ChangeTagValidator.php">
      <class name="MediaWiki\Extension\AbuseFilter\ChangeTags\ChangeTagValidator" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="14" elements="18" coveredelements="15"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="19" type="stmt" count="4"/>
      <line num="27" type="method" name="validateTag" visibility="public" complexity="6" crap="6.09" count="4"/>
      <line num="28" type="stmt" count="4"/>
      <line num="30" type="stmt" count="4"/>
      <line num="31" type="stmt" count="1"/>
      <line num="34" type="stmt" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="37" type="stmt" count="0"/>
      <line num="40" type="stmt" count="3"/>
      <line num="41" type="stmt" count="1"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="0"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="54" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <metrics loc="60" ncloc="46" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="14" elements="18" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ChangeTags/ChangeTagger.php">
      <class name="MediaWiki\Extension\AbuseFilter\ChangeTags\ChangeTagger" namespace="global">
        <metrics complexity="16" methods="9" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="52" elements="64" coveredelements="60"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="75"/>
      <line num="22" type="stmt" count="75"/>
      <line num="27" type="method" name="clearBuffer" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="28" type="stmt" count="18"/>
      <line num="31" type="method" name="addConditionsLimitTag" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="32" type="stmt" count="3"/>
      <line num="35" type="method" name="addTags" visibility="public" complexity="1" crap="1" count="32"/>
      <line num="36" type="stmt" count="32"/>
      <line num="37" type="stmt" count="32"/>
      <line num="43" type="method" name="bufferTagsToSetByAction" visibility="private" complexity="2" crap="2" count="32"/>
      <line num="44" type="stmt" count="32"/>
      <line num="45" type="stmt" count="32"/>
      <line num="46" type="stmt" count="32"/>
      <line num="47" type="stmt" count="32"/>
      <line num="56" type="method" name="getTagsForID" visibility="private" complexity="2" crap="2" count="66"/>
      <line num="57" type="stmt" count="66"/>
      <line num="58" type="stmt" count="66"/>
      <line num="59" type="stmt" count="66"/>
      <line num="61" type="stmt" count="66"/>
      <line num="69" type="method" name="getTagsForRecentChange" visibility="public" complexity="1" crap="1" count="66"/>
      <line num="70" type="stmt" count="66"/>
      <line num="71" type="stmt" count="66"/>
      <line num="74" type="method" name="getIDFromRecentChange" visibility="private" complexity="4" crap="4" count="66"/>
      <line num="75" type="stmt" count="66"/>
      <line num="76" type="stmt" count="66"/>
      <line num="77" type="stmt" count="66"/>
      <line num="78" type="stmt" count="66"/>
      <line num="80" type="stmt" count="66"/>
      <line num="81" type="stmt" count="66"/>
      <line num="83" type="stmt" count="14"/>
      <line num="84" type="stmt" count="6"/>
      <line num="85" type="stmt" count="8"/>
      <line num="87" type="stmt" count="52"/>
      <line num="89" type="stmt" count="66"/>
      <line num="90" type="stmt" count="66"/>
      <line num="91" type="stmt" count="66"/>
      <line num="92" type="stmt" count="66"/>
      <line num="93" type="stmt" count="66"/>
      <line num="94" type="stmt" count="66"/>
      <line num="95" type="stmt" count="66"/>
      <line num="96" type="stmt" count="66"/>
      <line num="97" type="stmt" count="66"/>
      <line num="98" type="stmt" count="66"/>
      <line num="99" type="stmt" count="66"/>
      <line num="100" type="stmt" count="66"/>
      <line num="109" type="method" name="getActionID" visibility="private" complexity="3" crap="3.04" count="67"/>
      <line num="110" type="stmt" count="67"/>
      <line num="111" type="stmt" count="67"/>
      <line num="112" type="stmt" count="67"/>
      <line num="114" type="stmt" count="14"/>
      <line num="115" type="stmt" count="14"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="14"/>
      <line num="124" type="stmt" count="67"/>
      <line num="125" type="stmt" count="67"/>
      <line num="126" type="stmt" count="67"/>
      <line num="127" type="stmt" count="67"/>
      <line num="128" type="stmt" count="67"/>
      <line num="129" type="stmt" count="67"/>
      <line num="130" type="stmt" count="67"/>
      <line num="131" type="stmt" count="67"/>
      <line num="132" type="stmt" count="67"/>
      <metrics loc="135" ncloc="105" classes="1" methods="9" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="52" elements="64" coveredelements="60"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ChangeTags/ChangeTagsManager.php">
      <class name="MediaWiki\Extension\AbuseFilter\ChangeTags\ChangeTagsManager" namespace="global">
        <metrics complexity="14" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="0" elements="55" coveredelements="0"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="34" type="method" name="purgeTagCache" visibility="public" complexity="1" crap="2" 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="45" type="method" name="getTagsDefinedByActiveFilters" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="53" type="method" name="getTagsDefinedByFilters" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="63" type="method" name="loadTagsFromDb" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <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="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="98" type="method" name="loadTags" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="124" type="method" name="getCacheKeyForStatus" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="131" type="method" name="getCondsLimitTag" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <metrics loc="135" ncloc="104" classes="1" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="0" elements="55" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Block.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Block" namespace="global">
        <metrics complexity="8" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="27" elements="32" coveredelements="32"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="28"/>
      <line num="31" type="stmt" count="28"/>
      <line num="37" type="method" name="execute" visibility="public" complexity="2" crap="2" count="22"/>
      <line num="38" type="stmt" count="22"/>
      <line num="39" type="stmt" count="22"/>
      <line num="40" type="stmt" count="22"/>
      <line num="41" type="stmt" count="22"/>
      <line num="42" type="stmt" count="22"/>
      <line num="43" type="stmt" count="22"/>
      <line num="44" type="stmt" count="22"/>
      <line num="45" type="stmt" count="22"/>
      <line num="48" type="stmt" count="22"/>
      <line num="54" type="method" name="revert" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="55" type="stmt" count="9"/>
      <line num="56" type="stmt" count="9"/>
      <line num="57" type="stmt" count="9"/>
      <line num="58" type="stmt" count="8"/>
      <line num="59" type="stmt" count="7"/>
      <line num="60" type="stmt" count="7"/>
      <line num="61" type="stmt" count="7"/>
      <line num="62" type="stmt" count="7"/>
      <line num="63" type="stmt" count="7"/>
      <line num="66" type="stmt" count="2"/>
      <line num="72" type="method" name="getMessage" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="73" type="stmt" count="18"/>
      <line num="74" type="stmt" count="18"/>
      <line num="75" type="stmt" count="18"/>
      <line num="76" type="stmt" count="18"/>
      <line num="77" type="stmt" count="18"/>
      <line num="78" type="stmt" count="18"/>
      <line num="85" type="method" name="getExpiry" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="86" type="stmt" count="16"/>
      <metrics loc="89" ncloc="71" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="27" elements="32" coveredelements="32"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/BlockAutopromote.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\BlockAutopromote" namespace="global">
        <metrics complexity="5" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="25" elements="29" coveredelements="29"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="23" type="stmt" count="10"/>
      <line num="29" type="method" name="execute" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="30" type="stmt" count="5"/>
      <line num="31" type="stmt" count="5"/>
      <line num="32" type="stmt" count="1"/>
      <line num="35" type="stmt" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="39" type="stmt" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="49" type="method" name="revert" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="60" type="method" name="getMessage" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="61" type="stmt" count="4"/>
      <line num="62" type="stmt" count="4"/>
      <line num="63" type="stmt" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="67" type="stmt" count="4"/>
      <metrics loc="70" ncloc="58" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="25" elements="29" coveredelements="29"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/BlockingConsequence.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\BlockingConsequence" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="27" elements="30" coveredelements="28"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="30"/>
      <line num="27" type="stmt" count="30"/>
      <line num="40" type="method" name="doBlockInternal" visibility="protected" complexity="4" crap="4" count="22"/>
      <line num="48" type="stmt" count="22"/>
      <line num="49" type="stmt" count="22"/>
      <line num="50" type="stmt" count="22"/>
      <line num="51" type="stmt" count="22"/>
      <line num="52" type="stmt" count="22"/>
      <line num="54" type="stmt" count="22"/>
      <line num="55" type="stmt" count="22"/>
      <line num="56" type="stmt" count="22"/>
      <line num="57" type="stmt" count="22"/>
      <line num="58" type="stmt" count="22"/>
      <line num="59" type="stmt" count="22"/>
      <line num="60" type="stmt" count="22"/>
      <line num="61" type="stmt" count="22"/>
      <line num="62" type="stmt" count="22"/>
      <line num="63" type="stmt" count="22"/>
      <line num="64" type="stmt" count="22"/>
      <line num="65" type="stmt" count="22"/>
      <line num="67" type="stmt" count="22"/>
      <line num="68" type="stmt" count="22"/>
      <line num="70" type="stmt" count="0"/>
      <line num="72" type="stmt" count="22"/>
      <line num="73" type="stmt" count="22"/>
      <line num="74" type="stmt" count="4"/>
      <line num="75" type="stmt" count="4"/>
      <line num="76" type="stmt" count="4"/>
      <line num="77" type="stmt" count="4"/>
      <line num="79" type="stmt" count="22"/>
      <metrics loc="82" ncloc="69" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="27" elements="30" coveredelements="28"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Consequence.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Consequence" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
      </class>
      <line num="12" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="50"/>
      <line num="13" type="stmt" count="50"/>
      <metrics loc="20" ncloc="14" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/ConsequencesDisablerConsequence.php">
      <metrics loc="25" ncloc="10" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Degroup.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Degroup" namespace="global">
        <metrics complexity="13" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="63" coveredstatements="62" elements="67" coveredelements="65"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="20"/>
      <line num="30" type="stmt" count="20"/>
      <line num="36" type="method" name="execute" visibility="public" complexity="7" crap="7" count="14"/>
      <line num="37" type="stmt" count="14"/>
      <line num="39" type="stmt" count="14"/>
      <line num="40" type="stmt" count="3"/>
      <line num="48" type="stmt" count="11"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="52" type="stmt" count="11"/>
      <line num="54" type="stmt" count="10"/>
      <line num="55" type="stmt" count="10"/>
      <line num="57" type="stmt" count="4"/>
      <line num="60" type="stmt" count="11"/>
      <line num="61" type="stmt" count="11"/>
      <line num="62" type="stmt" count="11"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="11"/>
      <line num="67" type="stmt" count="11"/>
      <line num="71" type="stmt" count="11"/>
      <line num="72" type="stmt" count="11"/>
      <line num="73" type="stmt" count="11"/>
      <line num="74" type="stmt" count="11"/>
      <line num="75" type="stmt" count="11"/>
      <line num="76" type="stmt" count="11"/>
      <line num="77" type="stmt" count="11"/>
      <line num="78" type="stmt" count="11"/>
      <line num="79" type="stmt" count="11"/>
      <line num="80" type="stmt" count="11"/>
      <line num="81" type="stmt" count="11"/>
      <line num="82" type="stmt" count="11"/>
      <line num="83" type="stmt" count="11"/>
      <line num="84" type="stmt" count="11"/>
      <line num="85" type="stmt" count="11"/>
      <line num="86" type="stmt" count="11"/>
      <line num="92" type="method" name="revert" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="98" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="107" type="stmt" count="4"/>
      <line num="108" type="stmt" count="3"/>
      <line num="113" type="stmt" count="5"/>
      <line num="114" type="stmt" count="2"/>
      <line num="118" type="stmt" count="3"/>
      <line num="119" type="stmt" count="3"/>
      <line num="120" type="stmt" count="3"/>
      <line num="121" type="stmt" count="3"/>
      <line num="122" type="stmt" count="3"/>
      <line num="123" type="stmt" count="3"/>
      <line num="124" type="stmt" count="3"/>
      <line num="125" type="stmt" count="3"/>
      <line num="126" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="134" type="method" name="getMessage" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="135" type="stmt" count="11"/>
      <line num="136" type="stmt" count="11"/>
      <line num="137" type="stmt" count="11"/>
      <line num="138" type="stmt" count="11"/>
      <line num="139" type="stmt" count="11"/>
      <line num="140" type="stmt" count="11"/>
      <metrics loc="143" ncloc="120" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="63" coveredstatements="62" elements="67" coveredelements="65"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Disallow.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Disallow" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="11" coveredelements="11"/>
      </class>
      <line num="13" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="30"/>
      <line num="17" type="stmt" count="30"/>
      <line num="23" type="method" name="execute" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="24" type="stmt" count="16"/>
      <line num="30" type="method" name="getMessage" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="31" type="stmt" count="17"/>
      <line num="32" type="stmt" count="17"/>
      <line num="33" type="stmt" count="17"/>
      <line num="34" type="stmt" count="17"/>
      <line num="35" type="stmt" count="17"/>
      <line num="36" type="stmt" count="17"/>
      <metrics loc="39" ncloc="30" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="11" coveredelements="11"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/HookAborterConsequence.php">
      <metrics loc="15" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/RangeBlock.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\RangeBlock" namespace="global">
        <metrics complexity="4" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="24" coveredelements="24"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="28" type="stmt" count="7"/>
      <line num="34" type="method" name="execute" visibility="public" complexity="2" crap="2" 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"/>
      <line num="40" type="stmt" count="5"/>
      <line num="41" type="stmt" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="55" type="method" name="getMessage" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <metrics loc="64" ncloc="55" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="21" elements="24" coveredelements="24"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/ReversibleConsequence.php">
      <metrics loc="20" ncloc="12" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Tag.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Tag" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="5" coveredelements="5"/>
      </class>
      <line num="13" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="21"/>
      <line num="18" type="stmt" count="21"/>
      <line num="24" type="method" name="execute" visibility="public" complexity="1" crap="1" count="15"/>
      <line num="25" type="stmt" count="15"/>
      <line num="26" type="stmt" count="15"/>
      <metrics loc="29" ncloc="23" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="5" coveredelements="5"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Throttle.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Throttle" namespace="global">
        <metrics complexity="25" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="66" coveredstatements="66" elements="74" coveredelements="74"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="58"/>
      <line num="40" type="stmt" count="58"/>
      <line num="47" type="method" name="execute" visibility="public" complexity="3" crap="3" count="23"/>
      <line num="48" type="stmt" count="23"/>
      <line num="49" type="stmt" count="1"/>
      <line num="51" type="stmt" count="22"/>
      <line num="52" type="stmt" count="20"/>
      <line num="54" type="stmt" count="22"/>
      <line num="60" type="method" name="shouldDisableOtherConsequences" visibility="public" complexity="3" crap="3" count="40"/>
      <line num="61" type="stmt" count="40"/>
      <line num="62" type="stmt" count="40"/>
      <line num="63" type="stmt" count="36"/>
      <line num="65" type="stmt" count="40"/>
      <line num="71" type="method" name="getSort" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="83" type="method" name="isThrottled" visibility="private" complexity="1" crap="1" count="36"/>
      <line num="84" type="stmt" count="36"/>
      <line num="85" type="stmt" count="36"/>
      <line num="87" type="stmt" count="36"/>
      <line num="88" type="stmt" count="36"/>
      <line num="89" type="stmt" count="36"/>
      <line num="90" type="stmt" count="36"/>
      <line num="91" type="stmt" count="36"/>
      <line num="92" type="stmt" count="36"/>
      <line num="93" type="stmt" count="36"/>
      <line num="94" type="stmt" count="36"/>
      <line num="96" type="stmt" count="36"/>
      <line num="102" type="method" name="setThrottled" visibility="private" complexity="1" crap="1" count="34"/>
      <line num="103" type="stmt" count="34"/>
      <line num="104" type="stmt" count="34"/>
      <line num="105" type="stmt" count="34"/>
      <line num="106" type="stmt" count="34"/>
      <line num="107" type="stmt" count="34"/>
      <line num="108" type="stmt" count="34"/>
      <line num="111" type="method" name="throttleKey" visibility="private" complexity="4" crap="4" count="36"/>
      <line num="112" type="stmt" count="36"/>
      <line num="114" type="stmt" count="36"/>
      <line num="116" type="stmt" count="36"/>
      <line num="117" type="stmt" count="36"/>
      <line num="120" type="stmt" count="36"/>
      <line num="123" type="stmt" count="36"/>
      <line num="124" type="stmt" count="16"/>
      <line num="125" type="stmt" count="16"/>
      <line num="126" type="stmt" count="16"/>
      <line num="129" type="stmt" count="20"/>
      <line num="132" type="method" name="throttleIdentifier" visibility="private" complexity="11" crap="11" count="52"/>
      <line num="133" type="stmt" count="52"/>
      <line num="135" type="stmt" count="52"/>
      <line num="136" type="stmt" count="5"/>
      <line num="137" type="stmt" count="5"/>
      <line num="138" type="stmt" count="47"/>
      <line num="140" type="stmt" count="10"/>
      <line num="141" type="stmt" count="10"/>
      <line num="142" type="stmt" count="37"/>
      <line num="143" type="stmt" count="13"/>
      <line num="144" type="stmt" count="13"/>
      <line num="145" type="stmt" count="13"/>
      <line num="146" type="stmt" count="13"/>
      <line num="147" type="stmt" count="24"/>
      <line num="148" type="stmt" count="4"/>
      <line num="149" type="stmt" count="4"/>
      <line num="150" type="stmt" count="4"/>
      <line num="151" type="stmt" count="20"/>
      <line num="153" type="stmt" count="5"/>
      <line num="154" type="stmt" count="5"/>
      <line num="155" type="stmt" count="15"/>
      <line num="156" type="stmt" count="9"/>
      <line num="157" type="stmt" count="9"/>
      <line num="158" type="stmt" count="6"/>
      <line num="159" type="stmt" count="5"/>
      <line num="161" type="stmt" count="5"/>
      <line num="162" type="stmt" count="5"/>
      <line num="165" type="stmt" count="1"/>
      <line num="168" type="stmt" count="51"/>
      <metrics loc="171" ncloc="137" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="66" coveredstatements="66" elements="74" coveredelements="74"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Consequence/Warn.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Consequence\Warn" namespace="global">
        <metrics complexity="10" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="27" elements="35" coveredelements="35"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="23"/>
      <line num="22" type="stmt" count="23"/>
      <line num="29" type="method" name="execute" visibility="public" complexity="2" crap="2" count="18"/>
      <line num="30" type="stmt" count="18"/>
      <line num="31" type="stmt" count="1"/>
      <line num="33" type="stmt" count="17"/>
      <line num="34" type="stmt" count="17"/>
      <line num="40" type="method" name="shouldDisableOtherConsequences" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="41" type="stmt" count="19"/>
      <line num="42" type="stmt" count="19"/>
      <line num="48" type="method" name="getSort" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="55" type="method" name="getMessage" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="56" type="stmt" count="17"/>
      <line num="57" type="stmt" count="17"/>
      <line num="58" type="stmt" count="17"/>
      <line num="59" type="stmt" count="17"/>
      <line num="60" type="stmt" count="17"/>
      <line num="61" type="stmt" count="17"/>
      <line num="64" type="method" name="shouldBeWarned" visibility="private" complexity="2" crap="2" count="19"/>
      <line num="66" type="stmt" count="19"/>
      <line num="67" type="stmt" count="19"/>
      <line num="68" type="stmt" count="19"/>
      <line num="74" type="method" name="setWarn" visibility="private" complexity="1" crap="1" count="17"/>
      <line num="75" type="stmt" count="17"/>
      <line num="76" type="stmt" count="17"/>
      <line num="83" type="method" name="getWarnKey" visibility="private" complexity="1" crap="1" count="19"/>
      <line num="84" type="stmt" count="19"/>
      <line num="85" type="stmt" count="19"/>
      <line num="86" type="stmt" count="19"/>
      <line num="87" type="stmt" count="19"/>
      <line num="88" type="stmt" count="19"/>
      <line num="89" type="stmt" count="19"/>
      <line num="90" type="stmt" count="19"/>
      <line num="91" type="stmt" count="19"/>
      <metrics loc="94" ncloc="69" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="27" elements="35" coveredelements="35"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/ConsequenceNotPrecheckedException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\ConsequenceNotPrecheckedException" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="18" ncloc="15" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/ConsequencesExecutor.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\ConsequencesExecutor" namespace="global">
        <metrics complexity="56" methods="12" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="147" coveredstatements="131" elements="159" coveredelements="139"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="55"/>
      <line num="39" type="stmt" count="55"/>
      <line num="51" type="method" name="executeFilterActions" visibility="public" complexity="5" crap="5" count="51"/>
      <line num="52" type="stmt" count="51"/>
      <line num="53" type="stmt" count="51"/>
      <line num="55" type="stmt" count="51"/>
      <line num="56" type="stmt" count="51"/>
      <line num="57" type="stmt" count="51"/>
      <line num="58" type="stmt" count="50"/>
      <line num="59" type="stmt" count="50"/>
      <line num="60" type="stmt" count="50"/>
      <line num="61" type="stmt" count="38"/>
      <line num="67" type="stmt" count="51"/>
      <line num="75" type="method" name="getActualConsequencesToExecute" visibility="public" complexity="1" crap="1" count="55"/>
      <line num="76" type="stmt" count="55"/>
      <line num="77" type="stmt" count="55"/>
      <line num="78" type="stmt" count="55"/>
      <line num="79" type="stmt" count="55"/>
      <line num="81" type="stmt" count="55"/>
      <line num="82" type="stmt" count="55"/>
      <line num="83" type="stmt" count="55"/>
      <line num="84" type="stmt" count="55"/>
      <line num="94" type="method" name="replaceLegacyParameters" visibility="private" complexity="6" crap="10.50" count="55"/>
      <line num="95" type="stmt" count="55"/>
      <line num="96" type="stmt" count="55"/>
      <line num="97" type="stmt" count="55"/>
      <line num="98" type="stmt" count="55"/>
      <line num="99" type="stmt" count="54"/>
      <line num="101" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="112" type="stmt" count="55"/>
      <line num="122" type="method" name="specializeParameters" visibility="private" complexity="5" crap="5" count="55"/>
      <line num="123" type="stmt" count="55"/>
      <line num="124" type="stmt" count="55"/>
      <line num="125" type="stmt" count="55"/>
      <line num="126" type="stmt" count="55"/>
      <line num="127" type="stmt" count="54"/>
      <line num="128" type="stmt" count="14"/>
      <line num="129" type="stmt" count="14"/>
      <line num="130" type="stmt" count="14"/>
      <line num="131" type="stmt" count="14"/>
      <line num="136" type="stmt" count="55"/>
      <line num="146" type="method" name="removeForbiddenConsequences" visibility="private" complexity="3" crap="3" count="55"/>
      <line num="147" type="stmt" count="55"/>
      <line num="148" type="stmt" count="55"/>
      <line num="149" type="stmt" count="55"/>
      <line num="150" type="stmt" count="55"/>
      <line num="151" type="stmt" count="8"/>
      <line num="152" type="stmt" count="8"/>
      <line num="153" type="stmt" count="8"/>
      <line num="154" type="stmt" count="8"/>
      <line num="158" type="stmt" count="55"/>
      <line num="167" type="method" name="replaceArraysWithConsequences" visibility="private" complexity="4" crap="4" count="55"/>
      <line num="168" type="stmt" count="55"/>
      <line num="169" type="stmt" count="55"/>
      <line num="170" type="stmt" count="55"/>
      <line num="171" type="stmt" count="55"/>
      <line num="172" type="stmt" count="54"/>
      <line num="173" type="stmt" count="54"/>
      <line num="174" type="stmt" count="54"/>
      <line num="179" type="stmt" count="55"/>
      <line num="190" type="method" name="applyConsequenceDisablers" visibility="private" complexity="6" crap="6.01" count="55"/>
      <line num="191" type="stmt" count="55"/>
      <line num="192" type="stmt" count="55"/>
      <line num="193" type="stmt" count="55"/>
      <line num="194" type="stmt" count="54"/>
      <line num="195" type="stmt" count="22"/>
      <line num="198" type="stmt" count="55"/>
      <line num="199" type="stmt" count="55"/>
      <line num="200" type="stmt" count="55"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="55"/>
      <line num="203" type="stmt" count="55"/>
      <line num="204" type="stmt" count="55"/>
      <line num="205" type="stmt" count="22"/>
      <line num="206" type="stmt" count="22"/>
      <line num="207" type="stmt" count="22"/>
      <line num="212" type="stmt" count="55"/>
      <line num="221" type="method" name="deduplicateConsequences" visibility="private" complexity="8" crap="8.19" count="55"/>
      <line num="223" type="stmt" count="55"/>
      <line num="225" type="stmt" count="55"/>
      <line num="226" type="stmt" count="55"/>
      <line num="227" type="stmt" count="54"/>
      <line num="228" type="stmt" count="14"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="233" type="stmt" count="14"/>
      <line num="234" type="stmt" count="14"/>
      <line num="236" type="stmt" count="14"/>
      <line num="237" type="stmt" count="14"/>
      <line num="239" type="stmt" count="14"/>
      <line num="240" type="stmt" count="14"/>
      <line num="241" type="stmt" count="14"/>
      <line num="242" type="stmt" count="14"/>
      <line num="243" type="stmt" count="14"/>
      <line num="246" type="stmt" count="14"/>
      <line num="251" type="stmt" count="55"/>
      <line num="252" type="stmt" count="14"/>
      <line num="255" type="stmt" count="55"/>
      <line num="265" type="method" name="removeRedundantConsequences" visibility="private" complexity="4" crap="4" count="55"/>
      <line num="266" type="stmt" count="55"/>
      <line num="268" type="stmt" count="55"/>
      <line num="271" type="stmt" count="55"/>
      <line num="272" type="stmt" count="55"/>
      <line num="274" type="stmt" count="12"/>
      <line num="278" type="stmt" count="55"/>
      <line num="287" type="method" name="actionsParamsToConsequence" visibility="private" complexity="11" crap="11.35" count="54"/>
      <line num="288" type="stmt" count="54"/>
      <line num="289" type="stmt" count="54"/>
      <line num="291" type="stmt" count="54"/>
      <line num="292" type="stmt" count="54"/>
      <line num="293" type="stmt" count="54"/>
      <line num="294" type="stmt" count="54"/>
      <line num="295" type="stmt" count="54"/>
      <line num="298" type="stmt" count="54"/>
      <line num="299" type="stmt" count="5"/>
      <line num="300" type="stmt" count="5"/>
      <line num="302" type="stmt" count="5"/>
      <line num="303" type="stmt" count="5"/>
      <line num="304" type="stmt" count="5"/>
      <line num="305" type="stmt" count="5"/>
      <line num="306" type="stmt" count="5"/>
      <line num="307" type="stmt" count="5"/>
      <line num="308" type="stmt" count="5"/>
      <line num="309" type="stmt" count="5"/>
      <line num="310" type="stmt" count="54"/>
      <line num="311" type="stmt" count="18"/>
      <line num="312" type="stmt" count="54"/>
      <line num="313" type="stmt" count="29"/>
      <line num="314" type="stmt" count="39"/>
      <line num="315" type="stmt" count="0"/>
      <line num="316" type="stmt" count="39"/>
      <line num="317" type="stmt" count="10"/>
      <line num="318" type="stmt" count="37"/>
      <line num="319" type="stmt" count="2"/>
      <line num="320" type="stmt" count="2"/>
      <line num="321" type="stmt" count="35"/>
      <line num="322" type="stmt" count="14"/>
      <line num="323" type="stmt" count="14"/>
      <line num="324" type="stmt" count="14"/>
      <line num="325" type="stmt" count="14"/>
      <line num="326" type="stmt" count="14"/>
      <line num="327" type="stmt" count="22"/>
      <line num="328" type="stmt" count="22"/>
      <line num="330" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <line num="332" type="stmt" count="0"/>
      <line num="334" type="stmt" count="0"/>
      <line num="335" type="stmt" count="0"/>
      <line num="350" type="method" name="buildStatus" visibility="private" complexity="2" crap="2" count="51"/>
      <line num="351" type="stmt" count="51"/>
      <line num="353" type="stmt" count="51"/>
      <line num="354" type="stmt" count="38"/>
      <line num="357" type="stmt" count="51"/>
      <metrics loc="360" ncloc="278" classes="1" methods="12" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="147" coveredstatements="131" elements="159" coveredelements="139"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/ConsequencesExecutorFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\ConsequencesExecutorFactory" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="14" coveredelements="14"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="33" type="method" name="newExecutor" visibility="public" complexity="1" crap="1" 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="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <metrics loc="47" ncloc="42" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="14" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/ConsequencesFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\ConsequencesFactory" namespace="global">
        <metrics complexity="12" methods="11" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="49" coveredstatements="48" elements="60" coveredelements="58"/>
      </class>
      <line num="49" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="24"/>
      <line num="65" type="stmt" count="24"/>
      <line num="76" type="method" name="newBlock" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="77" type="stmt" count="6"/>
      <line num="78" type="stmt" count="6"/>
      <line num="79" type="stmt" count="6"/>
      <line num="80" type="stmt" count="6"/>
      <line num="81" type="stmt" count="6"/>
      <line num="82" type="stmt" count="6"/>
      <line num="83" type="stmt" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="85" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <line num="95" type="method" name="newRangeBlock" visibility="public" complexity="1" crap="1" 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="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="113" type="method" name="newDegroup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="129" type="method" name="newBlockAutopromote" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="130" type="stmt" count="2"/>
      <line num="131" type="stmt" count="2"/>
      <line num="139" type="method" name="newThrottle" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="141" 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="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" type="stmt" count="1"/>
      <line num="157" type="method" name="newWarn" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="158" type="stmt" count="1"/>
      <line num="166" type="method" name="newDisallow" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="167" type="stmt" count="8"/>
      <line num="175" type="method" name="newTag" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="179" type="method" name="setSession" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="180" type="stmt" count="8"/>
      <line num="183" type="method" name="getSession" visibility="private" complexity="2" crap="2.15" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="0"/>
      <line num="188" type="stmt" count="1"/>
      <metrics loc="191" ncloc="144" classes="1" methods="11" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="49" coveredstatements="48" elements="60" coveredelements="58"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/ConsequencesLookup.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\ConsequencesLookup" namespace="global">
        <metrics complexity="13" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="44" elements="48" coveredelements="46"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="57"/>
      <line num="25" type="stmt" count="57"/>
      <line num="31" type="method" name="getConsequencesForFilters" visibility="public" complexity="5" crap="5" count="51"/>
      <line num="32" type="stmt" count="51"/>
      <line num="33" type="stmt" count="51"/>
      <line num="35" type="stmt" count="51"/>
      <line num="36" type="stmt" count="51"/>
      <line num="38" type="stmt" count="51"/>
      <line num="39" type="stmt" count="6"/>
      <line num="41" type="stmt" count="45"/>
      <line num="46" type="stmt" count="51"/>
      <line num="48" type="stmt" count="51"/>
      <line num="50" type="stmt" count="51"/>
      <line num="51" type="stmt" count="45"/>
      <line num="54" type="stmt" count="51"/>
      <line num="55" type="stmt" count="6"/>
      <line num="56" type="stmt" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="62" type="stmt" count="51"/>
      <line num="71" type="method" name="loadConsequencesFromDB" visibility="private" complexity="7" crap="7" count="51"/>
      <line num="72" type="stmt" count="51"/>
      <line num="73" type="stmt" count="51"/>
      <line num="74" type="stmt" count="51"/>
      <line num="77" type="stmt" count="51"/>
      <line num="78" type="stmt" count="51"/>
      <line num="79" type="stmt" count="51"/>
      <line num="80" type="stmt" count="51"/>
      <line num="81" type="stmt" count="51"/>
      <line num="82" type="stmt" count="51"/>
      <line num="83" type="stmt" count="51"/>
      <line num="85" type="stmt" count="51"/>
      <line num="87" type="stmt" count="51"/>
      <line num="88" type="stmt" count="50"/>
      <line num="89" type="stmt" count="50"/>
      <line num="92" type="stmt" count="6"/>
      <line num="93" type="stmt" count="6"/>
      <line num="94" type="stmt" count="6"/>
      <line num="95" type="stmt" count="6"/>
      <line num="96" type="stmt" count="6"/>
      <line num="97" type="stmt" count="6"/>
      <line num="98" type="stmt" count="6"/>
      <line num="99" type="stmt" count="50"/>
      <line num="101" type="stmt" count="0"/>
      <line num="103" type="stmt" count="50"/>
      <line num="104" type="stmt" count="50"/>
      <line num="108" type="stmt" count="51"/>
      <metrics loc="112" ncloc="93" classes="1" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="44" elements="48" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/ConsequencesRegistry.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\ConsequencesRegistry" namespace="global">
        <metrics complexity="11" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="32" coveredelements="32"/>
      </class>
      <line num="29" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="33" type="stmt" count="8"/>
      <line num="40" type="method" name="getDangerousActionNames" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <line num="43" type="stmt" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="54" type="method" name="getAllActionNames" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="55" type="stmt" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="66" type="method" name="getCustomActions" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="5"/>
      <line num="69" type="stmt" count="5"/>
      <line num="70" type="stmt" count="5"/>
      <line num="72" type="stmt" count="3"/>
      <line num="78" type="method" name="validateCustomActions" visibility="private" complexity="4" crap="4" count="5"/>
      <line num="79" type="stmt" count="5"/>
      <line num="80" type="stmt" count="5"/>
      <line num="81" type="stmt" count="1"/>
      <line num="84" type="stmt" count="4"/>
      <line num="85" type="stmt" count="1"/>
      <line num="93" type="method" name="getAllEnabledActionNames" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <metrics loc="98" ncloc="74" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="32" coveredelements="32"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Consequences/Parameters.php">
      <class name="MediaWiki\Extension\AbuseFilter\Consequences\Parameters" namespace="global">
        <metrics complexity="7" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="14" coveredelements="14"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="27" type="method" name="getFilter" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="31" type="method" name="getIsGlobalFilter" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="35" type="method" name="getActionSpecifier" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="39" type="method" name="getUser" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="43" type="method" name="getTarget" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="47" type="method" name="getAction" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <metrics loc="51" ncloc="43" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="14" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EchoNotifier.php">
      <class name="MediaWiki\Extension\AbuseFilter\EchoNotifier" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="21" coveredelements="21"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <line num="27" type="method" name="getTitleForFilter" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="28" type="stmt" count="2"/>
      <line num="31" type="method" name="getFilterObject" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="32" type="stmt" count="2"/>
      <line num="35" type="method" name="getThrottledActionNames" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="37" type="stmt" count="2"/>
      <line num="38" type="stmt" count="2"/>
      <line num="39" type="stmt" count="2"/>
      <line num="45" type="method" name="notifyForFilter" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="54" type="stmt" count="2"/>
      <metrics loc="58" ncloc="52" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="21" coveredelements="21"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditBox/AceEditBoxBuilder.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditBox\AceEditBoxBuilder" namespace="global">
        <metrics complexity="4" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="0" elements="47" coveredelements="0"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="40" type="method" name="getEditBox" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="41" 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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="59" type="method" name="getEditorControls" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="80" type="method" name="getAceConfig" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <metrics loc="107" ncloc="84" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="43" coveredstatements="0" elements="47" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditBox/CodeMirrorEditBoxBuilder.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditBox\CodeMirrorEditBoxBuilder" namespace="global">
        <metrics complexity="4" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="0" elements="44" coveredelements="0"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="40" type="method" name="getEditBox" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="41" 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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="59" type="method" name="getEditorControls" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="80" type="method" name="getCodeMirrorConfig" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <metrics loc="103" ncloc="81" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="0" elements="44" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditBox/EditBoxBuilder.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditBox\EditBoxBuilder" namespace="global">
        <metrics complexity="11" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="81" coveredstatements="80" elements="86" coveredelements="84"/>
      </class>
      <line num="49" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="56" type="stmt" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="71" type="method" name="buildEditBox" visibility="public" complexity="5" crap="5" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="80" type="stmt" count="2"/>
      <line num="81" type="stmt" count="2"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="2"/>
      <line num="84" type="stmt" count="1"/>
      <line num="87" type="stmt" count="2"/>
      <line num="89" type="stmt" count="2"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" 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="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="107" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="111" 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="115" 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="122" type="stmt" count="1"/>
      <line num="125" type="stmt" count="2"/>
      <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="132" type="stmt" count="2"/>
      <line num="135" type="method" name="getDropdownOptions" visibility="protected" complexity="3" crap="3" count="1"/>
      <line num="136" type="stmt" count="1"/>
      <line num="137" type="stmt" count="1"/>
      <line num="143" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="155" 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="168" type="stmt" count="1"/>
      <line num="169" 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="174" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="180" type="stmt" count="1"/>
      <line num="183" type="method" name="getSuggestionsDropdown" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="1"/>
      <line num="186" type="stmt" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="188" type="stmt" count="1"/>
      <line num="189" type="stmt" count="1"/>
      <line num="196" type="method" name="getEditorControls" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="1"/>
      <metrics loc="216" ncloc="160" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="81" coveredstatements="80" elements="86" coveredelements="84"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditBox/EditBoxBuilderFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditBox\EditBoxBuilderFactory" namespace="global">
        <metrics complexity="9" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="41" elements="46" coveredelements="46"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="26" type="stmt" count="9"/>
      <line num="35" type="method" name="newEditBoxBuilder" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="2"/>
      <line num="43" type="stmt" count="2"/>
      <line num="44" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="55" type="method" name="newPlainBoxBuilder" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="60" type="stmt" count="7"/>
      <line num="61" type="stmt" count="7"/>
      <line num="62" type="stmt" count="7"/>
      <line num="63" type="stmt" count="7"/>
      <line num="64" type="stmt" count="7"/>
      <line num="65" type="stmt" count="7"/>
      <line num="66" type="stmt" count="7"/>
      <line num="75" type="method" name="newAceBoxBuilder" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="80" type="stmt" count="4"/>
      <line num="81" type="stmt" count="1"/>
      <line num="83" type="stmt" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="85" type="stmt" count="3"/>
      <line num="86" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="88" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="103" type="method" name="newCodeMirrorBoxBuilder" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="108" type="stmt" count="3"/>
      <line num="109" type="stmt" count="1"/>
      <line num="111" type="stmt" count="2"/>
      <line num="112" type="stmt" count="2"/>
      <line num="113" type="stmt" count="2"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="122" type="stmt" count="2"/>
      <metrics loc="126" ncloc="98" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="41" elements="46" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditBox/EditBoxField.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditBox\EditBoxField" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="5" coveredelements="0"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="24" type="method" name="getInputHTML" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <metrics loc="28" ncloc="19" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="5" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditBox/PlainEditBoxBuilder.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditBox\PlainEditBoxBuilder" namespace="global">
        <metrics complexity="3" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="12" elements="14" coveredelements="12"/>
      </class>
      <line num="14" type="method" name="getEditBox" visibility="public" complexity="3" crap="3.00" count="2"/>
      <line num="15" type="stmt" count="2"/>
      <line num="16" type="stmt" count="2"/>
      <line num="17" type="stmt" count="2"/>
      <line num="18" type="stmt" count="2"/>
      <line num="20" type="stmt" count="2"/>
      <line num="21" type="stmt" count="2"/>
      <line num="22" type="stmt" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="1"/>
      <line num="27" type="stmt" count="2"/>
      <line num="28" type="stmt" count="0"/>
      <line num="30" type="stmt" count="2"/>
      <metrics loc="34" ncloc="27" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="12" elements="14" coveredelements="12"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditRevUpdater.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditRevUpdater" namespace="global">
        <metrics complexity="16" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="42" elements="48" coveredelements="48"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="32" type="stmt" count="12"/>
      <line num="37" type="method" name="setLastEditPage" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="38" type="stmt" count="7"/>
      <line num="44" type="method" name="clearLastEditPage" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="45" type="stmt" count="5"/>
      <line num="52" type="method" name="setLogIdsForTarget" visibility="public" complexity="3" crap="3" count="10"/>
      <line num="53" type="stmt" count="10"/>
      <line num="54" type="stmt" count="3"/>
      <line num="56" type="stmt" count="7"/>
      <line num="57" type="stmt" count="7"/>
      <line num="65" type="method" name="updateRev" visibility="public" complexity="9" crap="9" count="8"/>
      <line num="66" type="stmt" count="8"/>
      <line num="68" type="stmt" count="8"/>
      <line num="69" type="stmt" count="8"/>
      <line num="70" type="stmt" count="8"/>
      <line num="73" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="78" type="stmt" count="5"/>
      <line num="79" type="stmt" count="5"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="87" type="stmt" count="4"/>
      <line num="89" type="stmt" count="4"/>
      <line num="90" type="stmt" count="4"/>
      <line num="91" type="stmt" count="4"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="3"/>
      <line num="96" type="stmt" count="3"/>
      <line num="97" type="stmt" count="3"/>
      <line num="98" type="stmt" count="3"/>
      <line num="99" type="stmt" count="3"/>
      <line num="102" type="stmt" count="4"/>
      <line num="103" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="112" type="stmt" count="4"/>
      <line num="115" type="method" name="getCacheKey" visibility="private" complexity="1" crap="1" count="8"/>
      <line num="116" type="stmt" count="8"/>
      <metrics loc="119" ncloc="94" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="42" elements="48" coveredelements="48"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EditStashCache.php">
      <class name="MediaWiki\Extension\AbuseFilter\EditStashCache" namespace="global">
        <metrics complexity="7" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="36" elements="41" coveredelements="41"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="34" type="method" name="store" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="35" type="stmt" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="46" type="method" name="seek" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="48" type="stmt" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="51" type="stmt" count="4"/>
      <line num="61" type="method" name="logCache" visibility="private" complexity="2" crap="2" count="5"/>
      <line num="62" type="stmt" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="5"/>
      <line num="69" type="stmt" count="5"/>
      <line num="70" type="stmt" count="5"/>
      <line num="71" type="stmt" count="5"/>
      <line num="72" type="stmt" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="5"/>
      <line num="83" type="method" name="getStashKey" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="84" type="stmt" count="5"/>
      <line num="86" type="stmt" count="5"/>
      <line num="87" type="stmt" count="5"/>
      <line num="88" type="stmt" count="5"/>
      <line num="89" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <metrics loc="108" ncloc="79" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="36" elements="41" coveredelements="41"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/EmergencyCache.php">
      <class name="MediaWiki\Extension\AbuseFilter\EmergencyCache" namespace="global">
        <metrics complexity="12" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="44" elements="51" coveredelements="51"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="19" type="stmt" count="4"/>
      <line num="28" type="method" name="getFiltersToCheckInGroup" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="29" type="stmt" count="3"/>
      <line num="30" type="stmt" count="3"/>
      <line num="31" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="34" type="stmt" count="2"/>
      <line num="35" type="stmt" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="37" type="stmt" count="2"/>
      <line num="48" type="method" name="setNewForFilter" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <line num="67" type="stmt" count="3"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="79" type="method" name="incrementForFilter" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" 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="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="105" type="method" name="getForFilter" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="106" type="stmt" count="3"/>
      <line num="107" type="stmt" count="3"/>
      <line num="108" type="stmt" count="2"/>
      <line num="110" type="stmt" count="3"/>
      <line num="113" type="method" name="createGroupKey" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="114" type="stmt" count="4"/>
      <line num="117" type="method" name="createFilterKey" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="118" type="stmt" count="4"/>
      <metrics loc="122" ncloc="84" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="44" elements="51" coveredelements="51"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/AbstractFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\AbstractFilter" namespace="global">
        <metrics complexity="21" methods="18" coveredmethods="18" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="29" elements="47" coveredelements="47"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="3" crap="3" count="7"/>
      <line num="37" type="stmt" count="7"/>
      <line num="38" type="stmt" count="7"/>
      <line num="39" type="stmt" count="7"/>
      <line num="40" type="stmt" count="6"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="5"/>
      <line num="47" type="method" name="getSpecs" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="51" type="method" name="getFlags" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="55" type="method" name="getRules" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="59" type="method" name="getComments" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="63" type="method" name="getName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="71" type="method" name="getActionsNames" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="75" type="method" name="getGroup" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="76" type="stmt" count="1"/>
      <line num="79" type="method" name="isEnabled" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="80" type="stmt" count="2"/>
      <line num="83" type="method" name="isDeleted" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="87" type="method" name="isHidden" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="91" type="method" name="isProtected" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="95" type="method" name="isSuppressed" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="99" type="method" name="getPrivacyLevel" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="103" type="method" name="isGlobal" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="110" type="method" name="getActions" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="111" type="stmt" count="2"/>
      <line num="112" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="116" type="stmt" count="2"/>
      <line num="119" type="method" name="setActions" visibility="protected" complexity="1" crap="1" count="6"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="127" type="method" name="__clone" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <metrics loc="133" ncloc="103" classes="1" methods="18" coveredmethods="18" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="29" elements="47" coveredelements="47"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/ClosestFilterVersionNotFoundException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\ClosestFilterVersionNotFoundException" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="16" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/ExistingFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\ExistingFilter" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="2" elements="4" coveredelements="4"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="30" type="method" name="getID" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <metrics loc="34" ncloc="22" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="2" elements="4" coveredelements="4"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/Filter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\Filter" namespace="global">
        <metrics complexity="10" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="25" coveredelements="25"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="39" type="stmt" count="3"/>
      <line num="40" type="stmt" count="3"/>
      <line num="41" type="stmt" count="3"/>
      <line num="42" type="stmt" count="3"/>
      <line num="43" type="stmt" count="3"/>
      <line num="46" type="method" name="getLastEditInfo" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="50" type="method" name="getID" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="57" type="method" name="getUserID" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="64" type="method" name="getUserName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="68" type="method" name="getUserIdentity" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="72" type="method" name="getTimestamp" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="76" type="method" name="getHitCount" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <line num="80" type="method" name="isThrottled" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="87" type="method" name="__clone" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <metrics loc="92" ncloc="66" classes="1" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="25" coveredelements="25"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/FilterNotFoundException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\FilterNotFoundException" namespace="global">
        <metrics complexity="2" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="24" ncloc="21" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/FilterVersionNotFoundException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\FilterVersionNotFoundException" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="16" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/Flags.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\Flags" namespace="global">
        <metrics complexity="18" methods="15" coveredmethods="15" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="23" elements="38" coveredelements="38"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="26" type="stmt" count="7"/>
      <line num="27" type="stmt" count="7"/>
      <line num="28" type="stmt" count="7"/>
      <line num="31" type="method" name="getEnabled" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="32" type="stmt" count="2"/>
      <line num="35" type="method" name="setEnabled" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="39" type="method" name="getDeleted" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="40" type="stmt" count="2"/>
      <line num="43" type="method" name="setDeleted" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="47" type="method" name="getSuppressed" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="51" type="method" name="setSuppressed" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="56" type="method" name="getHidden" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="60" type="method" name="setHidden" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="65" type="method" name="getProtected" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="69" type="method" name="setProtected" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="74" type="method" name="updatePrivacyLevel" visibility="private" complexity="4" crap="4" count="3"/>
      <line num="75" type="stmt" count="3"/>
      <line num="76" type="stmt" count="3"/>
      <line num="77" type="stmt" count="3"/>
      <line num="78" type="stmt" count="3"/>
      <line num="81" type="method" name="getPrivacyLevel" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="85" type="method" name="getGlobal" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="86" type="stmt" count="2"/>
      <line num="89" type="method" name="setGlobal" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <metrics loc="93" ncloc="90" classes="1" methods="15" coveredmethods="15" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="23" elements="38" coveredelements="38"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/HistoryFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\HistoryFilter" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="5" coveredelements="5"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="32" type="method" name="getHistoryID" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <metrics loc="36" ncloc="24" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="5" coveredelements="5"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/LastEditInfo.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\LastEditInfo" namespace="global">
        <metrics complexity="7" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="15" coveredelements="15"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="22" type="stmt" count="3"/>
      <line num="23" type="stmt" count="3"/>
      <line num="31" type="method" name="setUserIdentity" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="40" type="method" name="getUserIdentity" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="44" type="method" name="getUserName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="48" type="method" name="getUserID" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="52" type="method" name="getTimestamp" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="56" type="method" name="setTimestamp" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <metrics loc="60" ncloc="41" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="15" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/MutableFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\MutableFilter" namespace="global">
        <metrics complexity="20" methods="18" coveredmethods="18" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="28" elements="46" coveredelements="46"/>
      </class>
      <line num="43" type="method" name="newFromParentFilter" visibility="public" complexity="1" crap="1" 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="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="55" type="method" name="setRules" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="method" name="setComments" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="63" type="method" name="setName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="64" type="stmt" count="1"/>
      <line num="71" type="method" name="setActionsNames" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="78" type="method" name="setGroup" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="82" type="method" name="setEnabled" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="86" type="method" name="setDeleted" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="90" type="method" name="setSuppressed" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="94" type="method" name="setHidden" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="98" type="method" name="setProtected" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="102" type="method" name="setGlobal" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="110" type="method" name="setActions" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="111" type="stmt" count="3"/>
      <line num="114" type="method" name="setUserIdentity" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="118" type="method" name="setTimestamp" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="122" type="method" name="setID" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="126" type="method" name="setHitCount" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="130" type="method" name="setThrottled" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <metrics loc="134" ncloc="116" classes="1" methods="18" coveredmethods="18" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="28" elements="46" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Filter/Specs.php">
      <class name="MediaWiki\Extension\AbuseFilter\Filter\Specs" namespace="global">
        <metrics complexity="11" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="26" coveredelements="26"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="28" type="stmt" count="6"/>
      <line num="29" type="stmt" count="6"/>
      <line num="30" type="stmt" count="6"/>
      <line num="31" type="stmt" count="6"/>
      <line num="32" type="stmt" count="6"/>
      <line num="35" type="method" name="getRules" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="36" type="stmt" count="2"/>
      <line num="39" type="method" name="setRules" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="43" type="method" name="getComments" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="47" type="method" name="setComments" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="51" type="method" name="getName" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="55" type="method" name="setName" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="62" type="method" name="getActionsNames" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="69" type="method" name="setActionsNames" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="73" type="method" name="getGroup" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="77" type="method" name="setGroup" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <metrics loc="81" ncloc="60" classes="1" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="15" elements="26" coveredelements="26"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterCompare.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterCompare" namespace="global">
        <metrics complexity="10" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="25" elements="27" coveredelements="27"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="17" type="stmt" count="10"/>
      <line num="24" type="method" name="compareVersions" visibility="public" complexity="9" crap="9" count="9"/>
      <line num="26" type="stmt" count="9"/>
      <line num="27" type="stmt" count="9"/>
      <line num="28" type="stmt" count="9"/>
      <line num="29" type="stmt" count="9"/>
      <line num="30" type="stmt" count="9"/>
      <line num="31" type="stmt" count="9"/>
      <line num="32" type="stmt" count="9"/>
      <line num="33" type="stmt" count="9"/>
      <line num="34" type="stmt" count="9"/>
      <line num="35" type="stmt" count="9"/>
      <line num="37" type="stmt" count="9"/>
      <line num="39" type="stmt" count="9"/>
      <line num="40" type="stmt" count="9"/>
      <line num="41" type="stmt" count="4"/>
      <line num="45" type="stmt" count="9"/>
      <line num="46" type="stmt" count="9"/>
      <line num="47" type="stmt" count="9"/>
      <line num="48" type="stmt" count="9"/>
      <line num="50" type="stmt" count="5"/>
      <line num="51" type="stmt" count="5"/>
      <line num="53" type="stmt" count="3"/>
      <line num="55" type="stmt" count="9"/>
      <line num="57" type="stmt" count="5"/>
      <line num="61" type="stmt" count="9"/>
      <metrics loc="64" ncloc="50" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="25" elements="27" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterImporter.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterImporter" namespace="global">
        <metrics complexity="18" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="53" elements="58" coveredelements="56"/>
      </class>
      <line num="43" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="47" type="stmt" count="12"/>
      <line num="55" type="method" name="encodeData" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="59" type="stmt" count="4"/>
      <line num="60" type="stmt" count="4"/>
      <line num="61" type="stmt" count="4"/>
      <line num="62" type="stmt" count="4"/>
      <line num="63" type="stmt" count="4"/>
      <line num="64" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="73" type="stmt" count="4"/>
      <line num="81" type="method" name="decodeData" visibility="public" complexity="4" crap="4" count="10"/>
      <line num="82" type="stmt" count="10"/>
      <line num="83" type="stmt" count="10"/>
      <line num="85" type="stmt" count="10"/>
      <line num="86" type="stmt" count="10"/>
      <line num="87" type="stmt" count="7"/>
      <line num="89" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="3"/>
      <line num="96" type="stmt" count="3"/>
      <line num="98" type="stmt" count="3"/>
      <line num="99" type="stmt" count="3"/>
      <line num="100" type="stmt" count="3"/>
      <line num="101" type="stmt" count="3"/>
      <line num="102" type="stmt" count="3"/>
      <line num="103" type="stmt" count="3"/>
      <line num="105" type="stmt" count="3"/>
      <line num="106" type="stmt" count="3"/>
      <line num="107" type="stmt" count="3"/>
      <line num="108" type="stmt" count="3"/>
      <line num="109" type="stmt" count="3"/>
      <line num="110" type="stmt" count="3"/>
      <line num="111" type="stmt" count="3"/>
      <line num="112" type="stmt" count="3"/>
      <line num="121" type="method" name="isValidImportData" visibility="private" complexity="11" crap="11.04" count="10"/>
      <line num="122" type="stmt" count="10"/>
      <line num="123" type="stmt" count="1"/>
      <line num="126" type="stmt" count="9"/>
      <line num="128" type="stmt" count="9"/>
      <line num="129" type="stmt" count="9"/>
      <line num="130" type="stmt" count="2"/>
      <line num="133" type="stmt" count="7"/>
      <line num="134" type="stmt" count="1"/>
      <line num="137" type="stmt" count="6"/>
      <line num="138" 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="0"/>
      <line num="148" type="stmt" count="3"/>
      <metrics loc="151" ncloc="123" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="53" elements="58" coveredelements="56"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterLookup.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterLookup" namespace="global">
        <metrics complexity="62" methods="20" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="244" coveredstatements="233" elements="264" coveredelements="247"/>
      </class>
      <line num="69" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="30"/>
      <line num="74" type="stmt" count="30"/>
      <line num="84" type="method" name="getFilter" visibility="public" complexity="5" crap="5.01" count="14"/>
      <line num="87" type="stmt" count="14"/>
      <line num="88" type="stmt" count="14"/>
      <line num="89" type="stmt" count="14"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="14"/>
      <line num="92" type="stmt" count="13"/>
      <line num="93" type="stmt" count="13"/>
      <line num="94" type="stmt" count="13"/>
      <line num="95" type="stmt" count="13"/>
      <line num="97" type="stmt" count="13"/>
      <line num="98" type="stmt" count="1"/>
      <line num="100" type="stmt" count="12"/>
      <line num="101" type="stmt" count="12"/>
      <line num="102" type="stmt" count="10"/>
      <line num="103" type="stmt" count="12"/>
      <line num="104" type="stmt" count="12"/>
      <line num="107" type="stmt" count="12"/>
      <line num="118" type="method" name="getAllActiveFiltersInGroup" visibility="public" complexity="6" crap="6" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" count="6"/>
      <line num="123" type="stmt" count="6"/>
      <line num="124" type="stmt" count="5"/>
      <line num="125" type="stmt" count="5"/>
      <line num="126" type="stmt" count="5"/>
      <line num="127" type="stmt" count="5"/>
      <line num="128" type="stmt" count="5"/>
      <line num="129" type="stmt" count="5"/>
      <line num="130" type="stmt" count="5"/>
      <line num="131" type="stmt" count="5"/>
      <line num="132" type="stmt" count="5"/>
      <line num="133" type="stmt" count="5"/>
      <line num="134" type="stmt" count="5"/>
      <line num="135" type="stmt" count="5"/>
      <line num="136" type="stmt" count="5"/>
      <line num="138" type="stmt" count="1"/>
      <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="147" type="stmt" count="6"/>
      <line num="156" type="method" name="getAllActiveFiltersInGroupFromDB" visibility="private" complexity="7" crap="7.03" count="6"/>
      <line num="157" type="stmt" count="6"/>
      <line num="158" type="stmt" count="0"/>
      <line num="160" type="stmt" count="6"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="6"/>
      <line num="163" type="stmt" count="6"/>
      <line num="164" type="stmt" count="6"/>
      <line num="165" type="stmt" count="6"/>
      <line num="167" type="stmt" count="6"/>
      <line num="168" type="stmt" count="5"/>
      <line num="173" type="stmt" count="6"/>
      <line num="175" type="stmt" count="6"/>
      <line num="176" type="stmt" count="6"/>
      <line num="177" type="stmt" count="6"/>
      <line num="178" type="stmt" count="6"/>
      <line num="179" type="stmt" count="6"/>
      <line num="180" type="stmt" count="6"/>
      <line num="181" type="stmt" count="6"/>
      <line num="182" type="stmt" count="6"/>
      <line num="183" type="stmt" count="6"/>
      <line num="185" type="stmt" count="6"/>
      <line num="186" type="stmt" count="6"/>
      <line num="188" type="stmt" count="6"/>
      <line num="196" type="method" name="getPrimaryDatabase" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="209" type="method" name="getReplicaDatabase" visibility="private" complexity="2" crap="2" count="20"/>
      <line num="210" type="stmt" count="20"/>
      <line num="211" type="stmt" count="11"/>
      <line num="213" type="stmt" count="9"/>
      <line num="223" type="method" name="getActionsFromDB" visibility="private" complexity="3" crap="3.01" count="16"/>
      <line num="224" type="stmt" count="16"/>
      <line num="225" type="stmt" count="16"/>
      <line num="226" type="stmt" count="16"/>
      <line num="227" type="stmt" count="16"/>
      <line num="228" type="stmt" count="16"/>
      <line num="229" type="stmt" count="16"/>
      <line num="231" type="stmt" count="16"/>
      <line num="232" type="stmt" count="16"/>
      <line num="233" type="stmt" count="7"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="7"/>
      <line num="237" type="stmt" count="16"/>
      <line num="248" type="method" name="getFilterVersion" visibility="public" complexity="5" crap="5.01" count="3"/>
      <line num="252" type="stmt" count="3"/>
      <line num="253" type="stmt" count="3"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" type="stmt" count="3"/>
      <line num="256" type="stmt" count="3"/>
      <line num="257" type="stmt" count="3"/>
      <line num="258" type="stmt" count="3"/>
      <line num="259" type="stmt" count="3"/>
      <line num="260" type="stmt" count="3"/>
      <line num="261" type="stmt" count="1"/>
      <line num="263" type="stmt" count="2"/>
      <line num="266" type="stmt" count="2"/>
      <line num="274" type="method" name="getLastHistoryVersion" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="275" type="stmt" count="2"/>
      <line num="276" type="stmt" count="2"/>
      <line num="277" type="stmt" count="2"/>
      <line num="278" type="stmt" count="2"/>
      <line num="279" type="stmt" count="2"/>
      <line num="280" type="stmt" count="2"/>
      <line num="281" type="stmt" count="2"/>
      <line num="282" type="stmt" count="1"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="286" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="298" type="method" name="getClosestVersion" visibility="public" complexity="5" crap="5" count="2"/>
      <line num="299" type="stmt" count="2"/>
      <line num="300" type="stmt" count="2"/>
      <line num="301" type="stmt" count="2"/>
      <line num="302" type="stmt" count="2"/>
      <line num="303" type="stmt" count="2"/>
      <line num="304" type="stmt" count="2"/>
      <line num="305" type="stmt" count="2"/>
      <line num="306" type="stmt" count="2"/>
      <line num="307" type="stmt" count="2"/>
      <line num="308" type="stmt" count="2"/>
      <line num="309" type="stmt" count="1"/>
      <line num="311" type="stmt" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="313" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="316" type="stmt" count="1"/>
      <line num="326" type="method" name="getFirstFilterVersionID" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="327" type="stmt" count="2"/>
      <line num="328" type="stmt" count="2"/>
      <line num="329" type="stmt" count="2"/>
      <line num="330" type="stmt" count="2"/>
      <line num="331" type="stmt" count="2"/>
      <line num="332" type="stmt" count="2"/>
      <line num="333" type="stmt" count="2"/>
      <line num="334" type="stmt" count="2"/>
      <line num="335" type="stmt" count="2"/>
      <line num="336" type="stmt" count="1"/>
      <line num="338" type="stmt" count="1"/>
      <line num="341" type="stmt" count="1"/>
      <line num="347" type="method" name="clearLocalCache" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="348" type="stmt" count="4"/>
      <line num="349" type="stmt" count="4"/>
      <line num="350" type="stmt" count="4"/>
      <line num="351" type="stmt" count="4"/>
      <line num="352" type="stmt" count="4"/>
      <line num="353" type="stmt" count="4"/>
      <line num="361" type="method" name="purgeGroupWANCache" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="362" type="stmt" count="1"/>
      <line num="369" type="method" name="getGlobalRulesKey" visibility="private" complexity="2" crap="2" count="5"/>
      <line num="370" type="stmt" count="5"/>
      <line num="371" type="stmt" count="3"/>
      <line num="372" type="stmt" count="3"/>
      <line num="373" type="stmt" count="3"/>
      <line num="374" type="stmt" count="3"/>
      <line num="375" type="stmt" count="3"/>
      <line num="378" type="stmt" count="2"/>
      <line num="385" type="method" name="getPrivacyLevelFromFlags" visibility="private" complexity="4" crap="4.43" count="4"/>
      <line num="386" type="stmt" count="4"/>
      <line num="387" type="stmt" count="4"/>
      <line num="388" type="stmt" count="0"/>
      <line num="389" type="stmt" count="4"/>
      <line num="390" type="stmt" count="0"/>
      <line num="391" type="stmt" count="4"/>
      <line num="392" type="stmt" count="4"/>
      <line num="393" type="stmt" count="0"/>
      <line num="394" type="stmt" count="4"/>
      <line num="395" type="stmt" count="4"/>
      <line num="406" type="method" name="filterFromHistoryRow" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="407" type="stmt" count="4"/>
      <line num="408" type="stmt" count="4"/>
      <line num="409" type="stmt" count="4"/>
      <line num="411" type="stmt" count="4"/>
      <line num="412" type="stmt" count="4"/>
      <line num="413" type="stmt" count="4"/>
      <line num="414" type="stmt" count="4"/>
      <line num="416" type="stmt" count="4"/>
      <line num="417" type="stmt" count="4"/>
      <line num="419" type="stmt" count="4"/>
      <line num="420" type="stmt" count="4"/>
      <line num="421" type="stmt" count="4"/>
      <line num="422" type="stmt" count="4"/>
      <line num="423" type="stmt" count="4"/>
      <line num="424" type="stmt" count="4"/>
      <line num="425" type="stmt" count="4"/>
      <line num="426" type="stmt" count="4"/>
      <line num="427" type="stmt" count="4"/>
      <line num="428" type="stmt" count="4"/>
      <line num="429" type="stmt" count="4"/>
      <line num="430" type="stmt" count="4"/>
      <line num="431" type="stmt" count="4"/>
      <line num="432" type="stmt" count="4"/>
      <line num="433" type="stmt" count="4"/>
      <line num="434" type="stmt" count="4"/>
      <line num="446" type="method" name="filterFromRow" visibility="public" complexity="4" crap="4" count="18"/>
      <line num="447" type="stmt" count="18"/>
      <line num="448" type="stmt" count="18"/>
      <line num="449" type="stmt" count="18"/>
      <line num="451" type="stmt" count="18"/>
      <line num="452" type="stmt" count="18"/>
      <line num="453" type="stmt" count="18"/>
      <line num="454" type="stmt" count="18"/>
      <line num="455" type="stmt" count="18"/>
      <line num="456" type="stmt" count="18"/>
      <line num="457" type="stmt" count="18"/>
      <line num="458" type="stmt" count="18"/>
      <line num="459" type="stmt" count="18"/>
      <line num="460" type="stmt" count="18"/>
      <line num="461" type="stmt" count="18"/>
      <line num="462" type="stmt" count="18"/>
      <line num="463" type="stmt" count="18"/>
      <line num="464" type="stmt" count="18"/>
      <line num="465" type="stmt" count="18"/>
      <line num="466" type="stmt" count="18"/>
      <line num="467" type="stmt" count="18"/>
      <line num="468" type="stmt" count="18"/>
      <line num="469" type="stmt" count="18"/>
      <line num="470" type="stmt" count="18"/>
      <line num="483" type="method" name="getAbuseFilterQueryBuilder" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="484" type="stmt" count="19"/>
      <line num="485" type="stmt" count="19"/>
      <line num="486" type="stmt" count="19"/>
      <line num="487" type="stmt" count="19"/>
      <line num="488" type="stmt" count="19"/>
      <line num="489" type="stmt" count="19"/>
      <line num="490" type="stmt" count="19"/>
      <line num="491" type="stmt" count="19"/>
      <line num="492" type="stmt" count="19"/>
      <line num="493" type="stmt" count="19"/>
      <line num="494" type="stmt" count="19"/>
      <line num="495" type="stmt" count="19"/>
      <line num="496" type="stmt" count="19"/>
      <line num="497" type="stmt" count="19"/>
      <line num="498" type="stmt" count="19"/>
      <line num="499" type="stmt" count="19"/>
      <line num="500" type="stmt" count="19"/>
      <line num="501" type="stmt" count="19"/>
      <line num="502" type="stmt" count="19"/>
      <line num="503" type="stmt" count="19"/>
      <line num="504" type="stmt" count="19"/>
      <line num="517" type="method" name="getAbuseFilterHistoryQueryBuilder" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="518" type="stmt" count="7"/>
      <line num="519" type="stmt" count="7"/>
      <line num="520" type="stmt" count="7"/>
      <line num="521" type="stmt" count="7"/>
      <line num="522" type="stmt" count="7"/>
      <line num="523" type="stmt" count="7"/>
      <line num="524" type="stmt" count="7"/>
      <line num="525" type="stmt" count="7"/>
      <line num="526" type="stmt" count="7"/>
      <line num="527" type="stmt" count="7"/>
      <line num="528" type="stmt" count="7"/>
      <line num="529" type="stmt" count="7"/>
      <line num="530" type="stmt" count="7"/>
      <line num="531" type="stmt" count="7"/>
      <line num="532" type="stmt" count="7"/>
      <line num="533" type="stmt" count="7"/>
      <line num="534" type="stmt" count="7"/>
      <line num="542" type="method" name="getCacheKey" visibility="private" complexity="1" crap="1" count="20"/>
      <line num="543" type="stmt" count="20"/>
      <metrics loc="558" ncloc="398" classes="1" methods="20" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="244" coveredstatements="233" elements="264" coveredelements="247"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterProfiler.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterProfiler" namespace="global">
        <metrics complexity="17" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="98" coveredstatements="98" elements="109" coveredelements="109"/>
      </class>
      <line num="48" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="55" type="stmt" count="10"/>
      <line num="56" type="stmt" count="10"/>
      <line num="57" type="stmt" count="10"/>
      <line num="58" type="stmt" count="10"/>
      <line num="59" type="stmt" count="10"/>
      <line num="60" type="stmt" count="10"/>
      <line num="61" type="stmt" count="10"/>
      <line num="62" type="stmt" count="10"/>
      <line num="65" type="method" name="resetFilterProfile" visibility="public" complexity="1" crap="1" 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="70" type="stmt" count="1"/>
      <line num="80" type="method" name="getFilterProfile" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="81" type="stmt" count="4"/>
      <line num="82" type="stmt" count="4"/>
      <line num="83" type="stmt" count="4"/>
      <line num="84" type="stmt" count="4"/>
      <line num="85" type="stmt" count="4"/>
      <line num="86" type="stmt" count="4"/>
      <line num="87" type="stmt" count="4"/>
      <line num="88" type="stmt" count="4"/>
      <line num="89" type="stmt" count="4"/>
      <line num="99" type="method" name="getGroupProfile" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="100" type="stmt" count="4"/>
      <line num="101" type="stmt" count="4"/>
      <line num="102" type="stmt" count="4"/>
      <line num="103" type="stmt" count="4"/>
      <line num="104" type="stmt" count="4"/>
      <line num="105" type="stmt" count="4"/>
      <line num="106" type="stmt" count="4"/>
      <line num="107" type="stmt" count="4"/>
      <line num="108" type="stmt" count="4"/>
      <line num="119" type="method" name="recordProfilingResult" visibility="private" complexity="2" crap="2" count="4"/>
      <line num="120" type="stmt" count="4"/>
      <line num="121" type="stmt" count="4"/>
      <line num="122" type="stmt" count="4"/>
      <line num="123" type="stmt" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="125" type="stmt" count="4"/>
      <line num="126" type="stmt" count="4"/>
      <line num="127" type="stmt" count="2"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="142" type="method" name="recordStats" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="143" type="stmt" count="3"/>
      <line num="144" type="stmt" count="3"/>
      <line num="145" type="stmt" count="3"/>
      <line num="146" type="stmt" count="3"/>
      <line num="147" type="stmt" count="3"/>
      <line num="149" type="stmt" count="3"/>
      <line num="150" type="stmt" count="3"/>
      <line num="151" type="stmt" count="3"/>
      <line num="154" type="stmt" count="3"/>
      <line num="155" type="stmt" count="1"/>
      <line num="159" type="stmt" count="3"/>
      <line num="160" type="stmt" count="3"/>
      <line num="162" type="stmt" count="3"/>
      <line num="172" type="method" name="recordRuntimeProfilingResult" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="173" type="stmt" count="1"/>
      <line num="174" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="177" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="179" type="stmt" count="1"/>
      <line num="180" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="191" type="method" name="recordPerFilterProfiling" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="192" type="stmt" count="4"/>
      <line num="194" type="stmt" count="4"/>
      <line num="195" type="stmt" count="4"/>
      <line num="198" type="stmt" count="4"/>
      <line num="199" type="stmt" count="4"/>
      <line num="200" type="stmt" count="4"/>
      <line num="201" type="stmt" count="4"/>
      <line num="202" type="stmt" count="4"/>
      <line num="203" type="stmt" count="4"/>
      <line num="204" type="stmt" count="4"/>
      <line num="207" type="stmt" count="4"/>
      <line num="208" type="stmt" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="210" type="stmt" count="1"/>
      <line num="211" type="stmt" count="1"/>
      <line num="212" type="stmt" count="1"/>
      <line num="213" type="stmt" count="1"/>
      <line num="214" type="stmt" count="1"/>
      <line num="215" type="stmt" count="1"/>
      <line num="230" type="method" name="recordSlowFilter" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="238" type="stmt" count="1"/>
      <line num="239" type="stmt" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="241" type="stmt" count="1"/>
      <line num="242" type="stmt" count="1"/>
      <line num="243" type="stmt" count="1"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="246" type="stmt" count="1"/>
      <line num="247" type="stmt" count="1"/>
      <line num="248" type="stmt" count="1"/>
      <line num="249" type="stmt" count="1"/>
      <line num="258" type="method" name="filterProfileKey" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="259" type="stmt" count="5"/>
      <line num="268" type="method" name="filterProfileGroupKey" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="269" type="stmt" count="4"/>
      <metrics loc="272" ncloc="191" classes="1" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="98" coveredstatements="98" elements="109" coveredelements="109"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterRunner.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterRunner" namespace="global">
        <metrics complexity="26" methods="9" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="119" coveredstatements="106" elements="128" coveredelements="111"/>
      </class>
      <line num="48" type="method" name="__construct" visibility="public" complexity="3" crap="3" count="59"/>
      <line num="67" type="stmt" count="59"/>
      <line num="68" type="stmt" count="59"/>
      <line num="69" type="stmt" count="1"/>
      <line num="72" type="stmt" count="58"/>
      <line num="73" type="stmt" count="1"/>
      <line num="76" type="stmt" count="57"/>
      <line num="82" type="method" name="init" visibility="private" complexity="1" crap="1" count="57"/>
      <line num="84" type="stmt" count="57"/>
      <line num="85" type="stmt" count="57"/>
      <line num="86" type="stmt" count="57"/>
      <line num="87" type="stmt" count="57"/>
      <line num="88" type="stmt" count="57"/>
      <line num="89" type="stmt" count="57"/>
      <line num="99" type="method" name="run" visibility="public" complexity="8" crap="8.06" count="57"/>
      <line num="100" type="stmt" count="57"/>
      <line num="102" type="stmt" count="57"/>
      <line num="103" type="stmt" count="57"/>
      <line num="104" type="stmt" count="57"/>
      <line num="105" type="stmt" count="57"/>
      <line num="106" type="stmt" count="57"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="114" type="stmt" count="57"/>
      <line num="116" type="stmt" count="57"/>
      <line num="117" type="stmt" count="57"/>
      <line num="118" type="stmt" count="39"/>
      <line num="119" type="stmt" count="39"/>
      <line num="121" type="stmt" count="12"/>
      <line num="122" type="stmt" count="12"/>
      <line num="126" type="stmt" count="57"/>
      <line num="128" type="stmt" count="57"/>
      <line num="129" type="stmt" count="57"/>
      <line num="130" type="stmt" count="57"/>
      <line num="131" type="stmt" count="57"/>
      <line num="134" type="stmt" count="57"/>
      <line num="135" type="stmt" count="57"/>
      <line num="136" type="stmt" count="57"/>
      <line num="137" type="stmt" count="57"/>
      <line num="138" type="stmt" count="57"/>
      <line num="139" type="stmt" count="57"/>
      <line num="140" type="stmt" count="57"/>
      <line num="141" type="stmt" count="57"/>
      <line num="142" type="stmt" count="57"/>
      <line num="143" type="stmt" count="57"/>
      <line num="144" type="stmt" count="57"/>
      <line num="145" type="stmt" count="57"/>
      <line num="148" type="stmt" count="57"/>
      <line num="149" type="stmt" count="1"/>
      <line num="152" type="stmt" count="57"/>
      <line num="154" type="stmt" count="57"/>
      <line num="155" type="stmt" count="6"/>
      <line num="158" type="stmt" count="51"/>
      <line num="159" type="stmt" count="51"/>
      <line num="160" type="stmt" count="51"/>
      <line num="164" type="stmt" count="51"/>
      <line num="165" type="stmt" count="51"/>
      <line num="166" type="stmt" count="51"/>
      <line num="167" type="stmt" count="51"/>
      <line num="168" type="stmt" count="51"/>
      <line num="170" type="stmt" count="51"/>
      <line num="171" type="stmt" count="51"/>
      <line num="174" type="stmt" count="51"/>
      <line num="185" type="method" name="runForStash" visibility="public" complexity="3" crap="3.08" count="21"/>
      <line num="186" type="stmt" count="21"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="192" type="stmt" count="21"/>
      <line num="194" type="stmt" count="21"/>
      <line num="195" type="stmt" count="21"/>
      <line num="196" type="stmt" count="21"/>
      <line num="197" type="stmt" count="21"/>
      <line num="198" type="stmt" count="21"/>
      <line num="200" type="stmt" count="0"/>
      <line num="208" type="stmt" count="21"/>
      <line num="210" type="stmt" count="21"/>
      <line num="212" type="stmt" count="21"/>
      <line num="213" type="stmt" count="21"/>
      <line num="214" type="stmt" count="21"/>
      <line num="215" type="stmt" count="21"/>
      <line num="217" type="stmt" count="21"/>
      <line num="219" type="stmt" count="21"/>
      <line num="225" type="method" name="checkAllFiltersInternal" visibility="private" complexity="5" crap="5" count="56"/>
      <line num="227" type="stmt" count="56"/>
      <line num="229" type="stmt" count="56"/>
      <line num="231" type="stmt" count="56"/>
      <line num="232" type="stmt" count="50"/>
      <line num="233" type="stmt" count="50"/>
      <line num="236" type="stmt" count="56"/>
      <line num="237" type="stmt" count="6"/>
      <line num="238" type="stmt" count="6"/>
      <line num="239" type="stmt" count="6"/>
      <line num="243" type="stmt" count="56"/>
      <line num="252" type="method" name="checkAllFilters" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="264" type="method" name="checkFilter" visibility="private" complexity="1" crap="1" count="56"/>
      <line num="265" type="stmt" count="56"/>
      <line num="267" type="stmt" count="56"/>
      <line num="268" type="stmt" count="56"/>
      <line num="270" type="stmt" count="56"/>
      <line num="272" type="stmt" count="56"/>
      <line num="273" type="stmt" count="56"/>
      <line num="275" type="stmt" count="56"/>
      <line num="278" type="method" name="profileExecution" visibility="private" complexity="1" crap="1" count="57"/>
      <line num="279" type="stmt" count="57"/>
      <line num="280" type="stmt" count="57"/>
      <line num="281" type="stmt" count="57"/>
      <line num="282" type="stmt" count="57"/>
      <line num="283" type="stmt" count="57"/>
      <line num="284" type="stmt" count="57"/>
      <line num="285" type="stmt" count="57"/>
      <line num="286" type="stmt" count="57"/>
      <line num="287" type="stmt" count="57"/>
      <line num="288" type="stmt" count="57"/>
      <line num="289" type="stmt" count="57"/>
      <line num="290" type="stmt" count="57"/>
      <line num="291" type="stmt" count="57"/>
      <line num="292" type="stmt" count="57"/>
      <line num="298" type="method" name="updateEmergencyCache" visibility="private" complexity="3" crap="4.12" count="57"/>
      <line num="299" type="stmt" count="57"/>
      <line num="300" type="stmt" count="57"/>
      <line num="301" type="stmt" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <metrics loc="307" ncloc="242" classes="1" methods="9" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="119" coveredstatements="106" elements="128" coveredelements="111"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterRunnerFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterRunnerFactory" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="28" elements="30" coveredelements="30"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="50" type="method" name="newRunner" visibility="public" complexity="2" crap="2" 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="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="70" type="stmt" count="1"/>
      <line num="72" 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="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="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <metrics loc="87" ncloc="78" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="28" elements="30" coveredelements="30"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterStore.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterStore" namespace="global">
        <metrics complexity="28" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="121" coveredstatements="103" elements="125" coveredelements="106"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="34" type="stmt" count="8"/>
      <line num="50" type="method" name="saveFilter" visibility="public" complexity="3" crap="3" count="7"/>
      <line num="56" type="stmt" count="7"/>
      <line num="57" type="stmt" count="7"/>
      <line num="58" type="stmt" count="3"/>
      <line num="62" type="stmt" count="4"/>
      <line num="63" type="stmt" count="4"/>
      <line num="64" type="stmt" count="1"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="70" type="stmt" count="3"/>
      <line num="83" type="method" name="doSaveFilter" visibility="private" complexity="22" crap="25.51" count="3"/>
      <line num="90" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="95" type="stmt" count="3"/>
      <line num="97" type="stmt" count="3"/>
      <line num="101" type="stmt" count="3"/>
      <line num="103" type="stmt" count="3"/>
      <line num="104" type="stmt" count="3"/>
      <line num="106" type="stmt" count="3"/>
      <line num="107" type="stmt" count="3"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="111" type="stmt" count="2"/>
      <line num="112" type="stmt" count="2"/>
      <line num="113" type="stmt" count="2"/>
      <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="122" type="stmt" count="3"/>
      <line num="124" type="stmt" count="3"/>
      <line num="125" type="stmt" count="3"/>
      <line num="126" type="stmt" count="3"/>
      <line num="127" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="147" type="stmt" count="3"/>
      <line num="149" type="stmt" count="3"/>
      <line num="151" type="stmt" count="3"/>
      <line num="152" type="stmt" count="3"/>
      <line num="156" type="stmt" count="3"/>
      <line num="158" type="stmt" count="3"/>
      <line num="160" type="stmt" count="3"/>
      <line num="161" type="stmt" count="3"/>
      <line num="162" type="stmt" count="0"/>
      <line num="164" type="stmt" count="3"/>
      <line num="165" type="stmt" count="0"/>
      <line num="167" type="stmt" count="3"/>
      <line num="168" type="stmt" count="2"/>
      <line num="170" type="stmt" count="3"/>
      <line num="171" type="stmt" count="2"/>
      <line num="173" type="stmt" count="3"/>
      <line num="174" type="stmt" count="1"/>
      <line num="176" type="stmt" count="3"/>
      <line num="177" type="stmt" count="0"/>
      <line num="180" type="stmt" count="3"/>
      <line num="182" type="stmt" count="3"/>
      <line num="185" type="stmt" count="3"/>
      <line num="186" type="stmt" count="3"/>
      <line num="187" type="stmt" count="3"/>
      <line num="188" type="stmt" count="3"/>
      <line num="189" type="stmt" count="3"/>
      <line num="190" type="stmt" count="3"/>
      <line num="191" type="stmt" count="3"/>
      <line num="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="194" type="stmt" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="1"/>
      <line num="198" type="stmt" count="3"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="206" type="stmt" count="3"/>
      <line num="209" type="stmt" count="3"/>
      <line num="210" type="stmt" count="0"/>
      <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="218" 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="225" type="stmt" count="3"/>
      <line num="226" type="stmt" count="0"/>
      <line num="229" type="stmt" count="3"/>
      <line num="230" type="stmt" count="3"/>
      <line num="231" type="stmt" count="2"/>
      <line num="233" type="stmt" count="3"/>
      <line num="242" type="method" name="filterToDatabaseRow" visibility="private" complexity="2" crap="2" count="4"/>
      <line num="250" type="stmt" count="4"/>
      <line num="251" type="stmt" count="4"/>
      <line num="252" type="stmt" count="1"/>
      <line num="255" type="stmt" count="4"/>
      <line num="256" type="stmt" count="4"/>
      <line num="257" type="stmt" count="4"/>
      <line num="258" type="stmt" count="4"/>
      <line num="259" type="stmt" count="4"/>
      <line num="260" type="stmt" count="4"/>
      <line num="261" type="stmt" count="4"/>
      <line num="262" type="stmt" count="4"/>
      <line num="263" type="stmt" count="4"/>
      <line num="264" type="stmt" count="4"/>
      <line num="265" type="stmt" count="4"/>
      <line num="266" type="stmt" count="4"/>
      <line num="267" type="stmt" count="4"/>
      <line num="268" type="stmt" count="4"/>
      <line num="269" type="stmt" count="4"/>
      <metrics loc="272" ncloc="218" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="121" coveredstatements="103" elements="125" coveredelements="106"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterUser.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterUser" namespace="global">
        <metrics complexity="9" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="20" elements="27" coveredelements="25"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="22" type="stmt" count="3"/>
      <line num="24" type="method" name="getAuthority" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="28" type="method" name="getUserIdentity" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="29" type="stmt" count="3"/>
      <line num="37" type="method" name="isSameUserAs" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="47" type="method" name="getUser" visibility="private" complexity="3" crap="3.04" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="0"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="65" type="method" name="getFilterUserName" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <line num="67" type="stmt" count="3"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" 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="3"/>
      <metrics loc="85" ncloc="64" classes="1" methods="6" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="21" coveredstatements="20" elements="27" coveredelements="25"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterUtils.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterUtils" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="6" coveredelements="0"/>
      </class>
      <line num="17" type="method" name="isHidden" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="27" type="method" name="isProtected" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="37" type="method" name="isSuppressed" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <metrics loc="41" ncloc="20" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="6" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/FilterValidator.php">
      <class name="MediaWiki\Extension\AbuseFilter\FilterValidator" namespace="global">
        <metrics complexity="69" methods="14" coveredmethods="13" conditionals="0" coveredconditionals="0" statements="170" coveredstatements="168" elements="184" coveredelements="181"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="66"/>
      <line num="38" type="stmt" count="66"/>
      <line num="39" type="stmt" count="66"/>
      <line num="40" type="stmt" count="66"/>
      <line num="49" type="method" name="checkAll" visibility="public" complexity="15" crap="15" count="11"/>
      <line num="54" type="stmt" count="11"/>
      <line num="55" type="stmt" count="11"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="stmt" count="10"/>
      <line num="60" type="stmt" count="10"/>
      <line num="61" type="stmt" count="1"/>
      <line num="64" type="stmt" count="9"/>
      <line num="65" type="stmt" count="9"/>
      <line num="66" type="stmt" count="1"/>
      <line num="69" type="stmt" count="8"/>
      <line num="70" type="stmt" count="8"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="7"/>
      <line num="79" type="stmt" count="1"/>
      <line num="82" type="stmt" count="6"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="89" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="0"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="0"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="1"/>
      <line num="104" type="stmt" count="4"/>
      <line num="105" type="stmt" count="4"/>
      <line num="106" type="stmt" count="1"/>
      <line num="109" type="stmt" count="3"/>
      <line num="110" type="stmt" count="3"/>
      <line num="111" type="stmt" count="1"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="122" type="method" name="checkValidSyntax" visibility="public" complexity="3" crap="3" count="14"/>
      <line num="123" type="stmt" count="14"/>
      <line num="124" type="stmt" count="14"/>
      <line num="125" type="stmt" count="14"/>
      <line num="126" type="stmt" count="14"/>
      <line num="127" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="129" type="stmt" count="2"/>
      <line num="130" type="stmt" count="1"/>
      <line num="131" type="stmt" count="3"/>
      <line num="133" type="stmt" count="14"/>
      <line num="136" type="method" name="checkRequiredFields" visibility="public" complexity="4" crap="4" count="14"/>
      <line num="137" type="stmt" count="14"/>
      <line num="138" type="stmt" count="14"/>
      <line num="139" type="stmt" count="14"/>
      <line num="140" type="stmt" count="3"/>
      <line num="142" type="stmt" count="14"/>
      <line num="143" type="stmt" count="3"/>
      <line num="145" type="stmt" count="14"/>
      <line num="146" type="stmt" count="4"/>
      <line num="147" type="stmt" count="4"/>
      <line num="148" type="stmt" count="4"/>
      <line num="149" type="stmt" count="4"/>
      <line num="151" type="stmt" count="14"/>
      <line num="154" type="method" name="checkConflictingFields" visibility="public" complexity="3" crap="3" count="11"/>
      <line num="155" type="stmt" count="11"/>
      <line num="157" type="stmt" count="11"/>
      <line num="158" type="stmt" count="2"/>
      <line num="160" type="stmt" count="11"/>
      <line num="167" type="method" name="checkAllTags" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="168" type="stmt" count="4"/>
      <line num="169" type="stmt" count="4"/>
      <line num="170" type="stmt" count="2"/>
      <line num="171" type="stmt" count="2"/>
      <line num="173" type="stmt" count="2"/>
      <line num="174" type="stmt" count="2"/>
      <line num="176" type="stmt" count="2"/>
      <line num="178" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="189" type="method" name="checkEmptyMessages" visibility="public" complexity="5" crap="5" count="11"/>
      <line num="190" type="stmt" count="11"/>
      <line num="191" type="stmt" count="11"/>
      <line num="193" type="stmt" count="11"/>
      <line num="194" type="stmt" count="3"/>
      <line num="195" type="stmt" count="8"/>
      <line num="196" type="stmt" count="1"/>
      <line num="198" type="stmt" count="11"/>
      <line num="207" type="method" name="checkThrottleParameters" visibility="public" complexity="13" crap="13" count="15"/>
      <line num="208" type="stmt" count="15"/>
      <line num="209" type="stmt" count="15"/>
      <line num="210" type="stmt" count="15"/>
      <line num="211" type="stmt" count="15"/>
      <line num="212" type="stmt" count="15"/>
      <line num="213" type="stmt" count="15"/>
      <line num="214" type="stmt" count="15"/>
      <line num="215" type="stmt" count="15"/>
      <line num="216" type="stmt" count="15"/>
      <line num="217" type="stmt" count="15"/>
      <line num="218" type="stmt" count="15"/>
      <line num="220" type="stmt" count="15"/>
      <line num="221" type="stmt" count="15"/>
      <line num="222" type="stmt" count="3"/>
      <line num="223" type="stmt" count="12"/>
      <line num="224" type="stmt" count="3"/>
      <line num="225" type="stmt" count="9"/>
      <line num="226" type="stmt" count="1"/>
      <line num="228" type="stmt" count="8"/>
      <line num="232" type="stmt" count="8"/>
      <line num="233" type="stmt" count="8"/>
      <line num="235" type="stmt" count="8"/>
      <line num="236" type="stmt" count="8"/>
      <line num="237" type="stmt" count="6"/>
      <line num="238" type="stmt" count="6"/>
      <line num="239" type="stmt" count="2"/>
      <line num="240" type="stmt" count="2"/>
      <line num="242" type="stmt" count="5"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="248" type="stmt" count="4"/>
      <line num="249" type="stmt" count="4"/>
      <line num="251" type="stmt" count="6"/>
      <line num="252" type="stmt" count="2"/>
      <line num="253" type="stmt" count="2"/>
      <line num="255" type="stmt" count="4"/>
      <line num="259" type="stmt" count="8"/>
      <line num="260" type="stmt" count="3"/>
      <line num="261" type="stmt" count="5"/>
      <line num="262" type="stmt" count="3"/>
      <line num="266" type="stmt" count="15"/>
      <line num="275" type="method" name="checkGlobalFilterEditPermission" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="281" type="stmt" count="9"/>
      <line num="282" type="stmt" count="9"/>
      <line num="284" type="stmt" count="4"/>
      <line num="286" type="stmt" count="5"/>
      <line num="289" type="method" name="checkMessagesOnGlobalFilters" visibility="public" complexity="6" crap="6" count="9"/>
      <line num="290" type="stmt" count="9"/>
      <line num="291" type="stmt" count="9"/>
      <line num="293" type="stmt" count="9"/>
      <line num="294" type="stmt" count="9"/>
      <line num="295" type="stmt" count="9"/>
      <line num="298" type="stmt" count="4"/>
      <line num="300" type="stmt" count="9"/>
      <line num="309" type="method" name="checkRestrictedActions" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="314" type="stmt" count="9"/>
      <line num="315" type="stmt" count="9"/>
      <line num="317" type="stmt" count="9"/>
      <line num="318" type="stmt" count="9"/>
      <line num="320" type="stmt" count="3"/>
      <line num="322" type="stmt" count="9"/>
      <line num="330" type="method" name="checkProtectedVariables" visibility="public" complexity="5" crap="5" count="8"/>
      <line num="331" type="stmt" count="8"/>
      <line num="338" type="stmt" count="8"/>
      <line num="339" type="stmt" count="1"/>
      <line num="342" type="stmt" count="8"/>
      <line num="343" type="stmt" count="8"/>
      <line num="344" type="stmt" count="8"/>
      <line num="347" type="stmt" count="8"/>
      <line num="348" type="stmt" count="8"/>
      <line num="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="352" type="stmt" count="1"/>
      <line num="353" type="stmt" count="1"/>
      <line num="354" type="stmt" count="1"/>
      <line num="357" type="stmt" count="8"/>
      <line num="365" type="method" name="checkCanViewProtectedVariables" visibility="public" complexity="2" crap="2" count="9"/>
      <line num="366" type="stmt" count="9"/>
      <line num="367" type="stmt" count="9"/>
      <line num="368" type="stmt" count="9"/>
      <line num="369" type="stmt" count="9"/>
      <line num="370" type="stmt" count="9"/>
      <line num="371" type="stmt" count="1"/>
      <line num="373" type="stmt" count="9"/>
      <line num="376" type="method" name="checkGroup" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="377" type="stmt" count="5"/>
      <line num="378" type="stmt" count="5"/>
      <line num="379" type="stmt" count="5"/>
      <line num="380" type="stmt" count="2"/>
      <line num="382" type="stmt" count="5"/>
      <metrics loc="385" ncloc="324" classes="1" methods="14" coveredmethods="13" conditionals="0" coveredconditionals="0" statements="170" coveredstatements="168" elements="184" coveredelements="181"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/GlobalNameUtils.php">
      <class name="MediaWiki\Extension\AbuseFilter\GlobalNameUtils" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="10" coveredelements="10"/>
      </class>
      <line num="24" type="method" name="buildGlobalName" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <line num="26" type="stmt" count="2"/>
      <line num="41" type="method" name="splitGlobalName" visibility="public" complexity="3" crap="3" count="13"/>
      <line num="42" type="stmt" count="13"/>
      <line num="43" type="stmt" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="11"/>
      <line num="46" type="stmt" count="4"/>
      <line num="48" type="stmt" count="7"/>
      <metrics loc="52" ncloc="26" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="10" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterAlterVariablesHook.php">
      <metrics loc="28" ncloc="16" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterBuilderHook.php">
      <metrics loc="17" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterCanViewProtectedVariablesHook.php">
      <metrics loc="26" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterComputeVariableHook.php">
      <metrics loc="27" ncloc="15" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterContentToStringHook.php">
      <metrics loc="24" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterCustomActionsHook.php">
      <metrics loc="19" ncloc="11" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterCustomProtectedVariablesHook.php">
      <metrics loc="22" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterDeprecatedVariablesHook.php">
      <metrics loc="17" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterGenerateAccountCreationVarsHook.php">
      <metrics loc="31" ncloc="18" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterGenerateGenericVarsHook.php">
      <metrics loc="24" ncloc="14" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterGenerateTitleVarsHook.php">
      <metrics loc="29" ncloc="17" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterGenerateUserVarsHook.php">
      <metrics loc="27" ncloc="16" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterGenerateVarsForRecentChangeHook.php">
      <metrics loc="31" ncloc="18" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterGetDangerousActionsHook.php">
      <metrics loc="16" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterHookRunner.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\AbuseFilterHookRunner" namespace="global">
        <metrics complexity="18" methods="18" coveredmethods="18" conditionals="0" coveredconditionals="0" statements="74" coveredstatements="74" elements="92" coveredelements="92"/>
      </class>
      <line num="44" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="45" type="stmt" count="17"/>
      <line num="51" type="method" name="onAbuseFilter_builder" visibility="public" complexity="1" crap="1" 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="61" type="method" name="onAbuseFilter_deprecatedVariables" visibility="public" complexity="1" crap="1" 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="71" type="method" name="onAbuseFilter_computeVariable" visibility="public" complexity="1" crap="1" 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="86" type="method" name="onAbuseFilter_contentToString" visibility="public" complexity="1" crap="1" 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="99" type="method" name="onAbuseFilterAlterVariables" visibility="public" complexity="1" crap="1" 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="113" type="method" name="onAbuseFilter_generateTitleVars" visibility="public" complexity="1" crap="1" 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="128" type="method" name="onAbuseFilter_generateUserVars" visibility="public" complexity="1" crap="1" 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="136" type="stmt" count="1"/>
      <line num="140" type="method" name="onAbuseFilterGenerateAccountCreationVars" visibility="public" 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="156" type="method" name="onAbuseFilter_generateGenericVars" visibility="public" 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"/>
      <line num="163" type="stmt" count="1"/>
      <line num="169" type="method" name="onAbuseFilterGenerateVarsForRecentChange" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="177" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="184" type="method" name="onAbuseFilter_interceptVariable" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="190" type="stmt" count="1"/>
      <line num="191" type="stmt" count="1"/>
      <line num="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="199" type="method" name="onAbuseFilterShouldFilterAction" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="205" type="stmt" count="1"/>
      <line num="206" type="stmt" count="1"/>
      <line num="207" type="stmt" count="1"/>
      <line num="208" type="stmt" count="1"/>
      <line num="214" type="method" name="onAbuseFilterGetDangerousActions" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="215" type="stmt" count="1"/>
      <line num="216" type="stmt" count="1"/>
      <line num="217" type="stmt" count="1"/>
      <line num="218" type="stmt" count="1"/>
      <line num="219" type="stmt" count="1"/>
      <line num="225" type="method" name="onAbuseFilterCustomActions" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="226" type="stmt" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="228" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="236" type="method" name="onAbuseFilterCustomProtectedVariables" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="237" type="stmt" count="1"/>
      <line num="238" type="stmt" count="1"/>
      <line num="239" type="stmt" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="241" type="stmt" count="1"/>
      <line num="247" type="method" name="onAbuseFilterLogProtectedVariableValueAccess" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="255" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="257" type="stmt" count="1"/>
      <line num="258" type="stmt" count="1"/>
      <line num="259" type="stmt" count="1"/>
      <line num="263" type="method" name="onAbuseFilterCanViewProtectedVariables" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="266" type="stmt" count="1"/>
      <line num="267" type="stmt" count="1"/>
      <line num="268" type="stmt" count="1"/>
      <line num="269" type="stmt" count="1"/>
      <line num="270" type="stmt" count="1"/>
      <metrics loc="273" ncloc="222" classes="1" methods="18" coveredmethods="18" conditionals="0" coveredconditionals="0" statements="74" coveredstatements="74" elements="92" coveredelements="92"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterInterceptVariableHook.php">
      <metrics loc="27" ncloc="15" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterProtectedVarsAccessLoggerHook.php">
      <metrics loc="35" ncloc="17" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/AbuseFilterShouldFilterActionHook.php">
      <metrics loc="29" ncloc="17" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/AutoPromoteGroupsHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\AutoPromoteGroupsHandler" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="17" elements="19" coveredelements="19"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="22" type="stmt" count="7"/>
      <line num="29" type="method" name="onGetAutoPromoteGroups" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="31" type="stmt" count="7"/>
      <line num="35" type="stmt" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="39" type="stmt" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="2"/>
      <metrics loc="55" ncloc="49" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="17" elements="19" coveredelements="19"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/ChangeTagsHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\ChangeTagsHandler" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="14" coveredelements="14"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="15" type="stmt" count="2"/>
      <line num="20" type="method" name="onListDefinedTags" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="31" type="method" name="onChangeTagsListActive" visibility="public" complexity="1" crap="1" 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"/>
      <metrics loc="39" ncloc="33" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="14" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/CheckUserHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\CheckUserHandler" namespace="global">
        <metrics complexity="10" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="20" coveredelements="20"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="23" type="stmt" count="12"/>
      <line num="31" type="method" name="onCheckUserInsertChangesRow" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="35" type="stmt" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="50" type="method" name="onCheckUserInsertLogEventRow" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="54" type="stmt" count="4"/>
      <line num="55" type="stmt" count="4"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="69" type="method" name="onCheckUserInsertPrivateEventRow" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="73" type="stmt" count="4"/>
      <line num="74" type="stmt" count="4"/>
      <line num="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <metrics loc="82" ncloc="64" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="20" coveredelements="20"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/ConfirmEditHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\ConfirmEditHandler" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="15" elements="18" coveredelements="16"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <line num="23" type="method" name="onEditFilterMergedContent" visibility="public" complexity="5" crap="5.01" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="27" type="stmt" count="0"/>
      <line num="29" 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="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="56" type="stmt" count="1"/>
      <metrics loc="60" ncloc="42" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="15" elements="18" coveredelements="16"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/EditPermissionHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\EditPermissionHandler" namespace="global">
        <metrics complexity="26" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="0" elements="45" coveredelements="0"/>
      </class>
      <line num="33" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="48" type="method" name="onGetUserPermissionsErrors" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="79" type="method" name="onJsonValidateSave" visibility="public" complexity="18" crap="342" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <metrics loc="138" ncloc="112" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="42" coveredstatements="0" elements="45" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/FilteredActionsHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\FilteredActionsHandler" namespace="global">
        <metrics complexity="28" methods="10" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="118" coveredstatements="99" elements="128" coveredelements="103"/>
      </class>
      <line num="47" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="72"/>
      <line num="58" type="stmt" count="72"/>
      <line num="64" type="method" name="onEditFilterMergedContent" visibility="public" complexity="2" crap="2.15" count="56"/>
      <line num="73" type="stmt" count="56"/>
      <line num="74" type="stmt" count="56"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="82" type="stmt" count="56"/>
      <line num="84" type="stmt" count="56"/>
      <line num="85" type="stmt" count="56"/>
      <line num="86" type="stmt" count="56"/>
      <line num="87" type="stmt" count="56"/>
      <line num="89" type="stmt" count="56"/>
      <line num="102" type="method" name="filterEdit" visibility="private" complexity="7" crap="7.35" count="56"/>
      <line num="110" type="stmt" count="56"/>
      <line num="112" type="stmt" count="56"/>
      <line num="113" type="stmt" count="56"/>
      <line num="114" type="stmt" count="56"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="119" type="stmt" count="56"/>
      <line num="121" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="126" type="stmt" count="56"/>
      <line num="128" type="stmt" count="56"/>
      <line num="129" type="stmt" count="56"/>
      <line num="130" type="stmt" count="56"/>
      <line num="132" type="stmt" count="1"/>
      <line num="134" type="stmt" count="55"/>
      <line num="135" type="stmt" count="55"/>
      <line num="136" type="stmt" count="55"/>
      <line num="138" type="stmt" count="28"/>
      <line num="139" type="stmt" count="28"/>
      <line num="140" type="stmt" count="28"/>
      <line num="143" type="stmt" count="29"/>
      <line num="145" type="stmt" count="29"/>
      <line num="146" type="stmt" count="0"/>
      <line num="148" type="stmt" count="29"/>
      <line num="149" type="stmt" count="29"/>
      <line num="150" type="stmt" count="9"/>
      <line num="158" type="method" name="getApiStatus" visibility="private" complexity="3" crap="3" count="29"/>
      <line num="159" type="stmt" count="29"/>
      <line num="160" type="stmt" count="29"/>
      <line num="162" type="stmt" count="29"/>
      <line num="163" type="stmt" count="29"/>
      <line num="164" type="stmt" count="29"/>
      <line num="166" type="stmt" count="29"/>
      <line num="167" type="stmt" count="29"/>
      <line num="168" type="stmt" count="29"/>
      <line num="169" type="stmt" count="29"/>
      <line num="170" type="stmt" count="29"/>
      <line num="171" type="stmt" count="29"/>
      <line num="172" type="stmt" count="29"/>
      <line num="173" type="stmt" count="29"/>
      <line num="175" type="stmt" count="29"/>
      <line num="176" type="stmt" count="29"/>
      <line num="179" type="stmt" count="29"/>
      <line num="185" type="method" name="onTitleMove" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="186" type="stmt" count="5"/>
      <line num="187" type="stmt" count="5"/>
      <line num="188" type="stmt" count="5"/>
      <line num="189" type="stmt" count="5"/>
      <line num="190" type="stmt" count="5"/>
      <line num="196" type="method" name="onPageDelete" visibility="public" complexity="2" crap="2.00" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="201" type="stmt" count="0"/>
      <line num="203" type="stmt" count="5"/>
      <line num="204" type="stmt" count="5"/>
      <line num="205" type="stmt" count="5"/>
      <line num="206" type="stmt" count="5"/>
      <line num="207" type="stmt" count="5"/>
      <line num="208" type="stmt" count="5"/>
      <line num="210" type="stmt" count="5"/>
      <line num="212" type="stmt" count="5"/>
      <line num="218" type="method" name="onUploadVerifyUpload" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="226" type="stmt" count="2"/>
      <line num="236" type="method" name="onUploadStashFile" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="252" type="method" name="filterUpload" visibility="private" complexity="6" crap="7.33" count="2"/>
      <line num="261" type="stmt" count="2"/>
      <line num="262" type="stmt" count="2"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="270" type="stmt" count="2"/>
      <line num="271" type="stmt" count="2"/>
      <line num="272" type="stmt" count="2"/>
      <line num="273" type="stmt" count="0"/>
      <line num="275" type="stmt" count="2"/>
      <line num="276" type="stmt" count="2"/>
      <line num="278" type="stmt" count="2"/>
      <line num="280" type="stmt" count="1"/>
      <line num="282" type="stmt" count="1"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="0"/>
      <line num="287" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="289" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="294" type="stmt" count="2"/>
      <line num="300" type="method" name="onParserOutputStashForEdit" visibility="public" complexity="4" crap="4" count="25"/>
      <line num="305" type="stmt" count="25"/>
      <line num="306" type="stmt" count="1"/>
      <line num="311" type="stmt" count="24"/>
      <line num="315" type="stmt" count="24"/>
      <line num="316" type="stmt" count="24"/>
      <line num="317" type="stmt" count="24"/>
      <line num="318" type="stmt" count="24"/>
      <line num="319" type="stmt" count="24"/>
      <line num="320" type="stmt" count="24"/>
      <line num="321" type="stmt" count="24"/>
      <line num="322" type="stmt" count="24"/>
      <line num="323" type="stmt" count="24"/>
      <line num="324" type="stmt" count="24"/>
      <line num="325" type="stmt" count="24"/>
      <line num="326" type="stmt" count="24"/>
      <line num="327" type="stmt" count="0"/>
      <line num="329" type="stmt" count="24"/>
      <line num="330" type="stmt" count="24"/>
      <line num="331" type="stmt" count="24"/>
      <line num="332" type="stmt" count="24"/>
      <line num="333" type="stmt" count="24"/>
      <line num="334" type="stmt" count="24"/>
      <line num="335" type="stmt" count="24"/>
      <line num="336" type="stmt" count="24"/>
      <line num="337" type="stmt" count="24"/>
      <metrics loc="340" ncloc="269" classes="1" methods="10" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="118" coveredstatements="99" elements="128" coveredelements="103"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/RecentChangeSaveHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\RecentChangeSaveHandler" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="0" elements="6" coveredelements="0"/>
      </class>
      <line num="10" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="11" type="stmt" count="0"/>
      <line num="16" type="method" name="onRecentChange_save" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <metrics loc="23" ncloc="20" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="0" elements="6" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/RegistrationCallback.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\RegistrationCallback" namespace="global">
        <metrics complexity="12" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="93" ncloc="85" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/ResourceLoaderHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\ResourceLoaderHandler" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="0" elements="8" coveredelements="0"/>
      </class>
      <line num="14" type="method" name="onResourceLoaderRegisterModules" visibility="public" complexity="2" crap="6" 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="18" 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"/>
      <metrics loc="26" ncloc="23" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="0" elements="8" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/SchemaChangesHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\SchemaChangesHandler" namespace="global">
        <metrics complexity="12" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="9" elements="11" coveredelements="11"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="22" type="stmt" count="4"/>
      <line num="232" type="method" name="createAbuseFilterUser" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="233" type="stmt" count="3"/>
      <line num="234" type="stmt" count="3"/>
      <line num="236" type="stmt" count="3"/>
      <line num="237" type="stmt" count="1"/>
      <line num="238" type="stmt" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="241" type="stmt" count="1"/>
      <line num="243" type="stmt" count="2"/>
      <metrics loc="246" ncloc="212" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="9" elements="11" coveredelements="11"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/ToolLinksHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\ToolLinksHandler" namespace="global">
        <metrics complexity="12" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="33" elements="38" coveredelements="38"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="25" type="stmt" count="19"/>
      <line num="33" type="method" name="onContributionsToolLinks" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="34" type="stmt" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="37" type="stmt" count="2"/>
      <line num="38" type="stmt" count="2"/>
      <line num="39" type="stmt" count="2"/>
      <line num="40" type="stmt" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <line num="43" type="stmt" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="53" type="method" name="onHistoryPageToolLinks" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="54" type="stmt" count="2"/>
      <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="69" type="method" name="onUndeletePageToolLinks" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="70" type="stmt" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="75" type="stmt" count="1"/>
      <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="95" type="method" name="onHtmlPageLinkRendererEnd" visibility="public" complexity="2" crap="2" count="11"/>
      <line num="96" type="stmt" count="11"/>
      <line num="97" 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="102" type="stmt" count="11"/>
      <metrics loc="106" ncloc="84" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="33" elements="38" coveredelements="38"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Hooks/Handlers/UserMergeHandler.php">
      <class name="MediaWiki\Extension\AbuseFilter\Hooks\Handlers\UserMergeHandler" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="19" coveredelements="0"/>
      </class>
      <line num="14" type="method" name="onUserMergeAccountFields" visibility="public" complexity="1" crap="2" 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="18" 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="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="32" type="stmt" count="0"/>
      <metrics loc="36" ncloc="31" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="19" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/InvalidImportDataException.php">
      <class name="MediaWiki\Extension\AbuseFilter\InvalidImportDataException" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="18" ncloc="12" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/KeywordsManager.php">
      <class name="MediaWiki\Extension\AbuseFilter\KeywordsManager" namespace="global">
        <metrics complexity="17" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="25" elements="36" coveredelements="36"/>
      </class>
      <line num="346" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="20"/>
      <line num="347" type="stmt" count="20"/>
      <line num="349" type="method" name="getDisabledVariables" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="350" type="stmt" count="2"/>
      <line num="353" type="method" name="getDeprecatedVariables" visibility="public" complexity="2" crap="2" count="9"/>
      <line num="354" type="stmt" count="9"/>
      <line num="355" type="stmt" count="9"/>
      <line num="356" type="stmt" count="9"/>
      <line num="358" type="stmt" count="9"/>
      <line num="361" type="method" name="getBuilderValues" visibility="public" complexity="2" crap="2" count="10"/>
      <line num="362" type="stmt" count="10"/>
      <line num="363" type="stmt" count="10"/>
      <line num="364" type="stmt" count="10"/>
      <line num="366" type="stmt" count="10"/>
      <line num="369" type="method" name="isVarDisabled" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="370" type="stmt" count="9"/>
      <line num="373" type="method" name="isVarDeprecated" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="374" type="stmt" count="8"/>
      <line num="377" type="method" name="isVarInUse" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="378" type="stmt" count="7"/>
      <line num="386" type="method" name="varExists" visibility="public" complexity="3" crap="3" count="6"/>
      <line num="387" type="stmt" count="6"/>
      <line num="388" type="stmt" count="6"/>
      <line num="389" type="stmt" count="6"/>
      <line num="399" type="method" name="getMessageKeyForVar" visibility="public" complexity="3" crap="3" count="3"/>
      <line num="400" type="stmt" count="3"/>
      <line num="401" type="stmt" count="1"/>
      <line num="403" type="stmt" count="2"/>
      <line num="404" type="stmt" count="1"/>
      <line num="407" type="stmt" count="2"/>
      <line num="408" type="stmt" count="1"/>
      <line num="409" type="stmt" count="2"/>
      <line num="412" type="method" name="getVarsMappings" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="413" type="stmt" count="8"/>
      <line num="421" type="method" name="getCoreVariables" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="422" type="stmt" count="1"/>
      <metrics loc="425" ncloc="249" classes="1" methods="11" coveredmethods="11" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="25" elements="36" coveredelements="36"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/LogFormatter/AbuseFilterBlockedDomainHitLogFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\LogFormatter\AbuseFilterBlockedDomainHitLogFormatter" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="4" coveredelements="0"/>
      </class>
      <line num="13" type="method" name="getMessageParameters" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="16" type="stmt" count="0"/>
      <metrics loc="20" ncloc="16" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="4" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/LogFormatter/AbuseFilterModifyLogFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\LogFormatter\AbuseFilterModifyLogFormatter" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="0" elements="30" coveredelements="0"/>
      </class>
      <line num="14" type="method" name="getMessageKey" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="25" type="method" name="extractParameters" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" 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="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="44" 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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <metrics loc="60" ncloc="51" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="0" elements="30" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/LogFormatter/AbuseFilterRightsLogFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\LogFormatter\AbuseFilterRightsLogFormatter" namespace="global">
        <metrics complexity="4" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="15" coveredelements="0"/>
      </class>
      <line num="14" type="method" name="getMessageKey" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="25" type="method" name="extractParameters" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" 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="33" type="stmt" count="0"/>
      <line num="39" type="method" name="getMessageParameters" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <metrics loc="47" ncloc="32" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="0" elements="15" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/LogFormatter/AbuseFilterSuppressLogFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\LogFormatter\AbuseFilterSuppressLogFormatter" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="4" coveredelements="0"/>
      </class>
      <line num="12" type="method" name="getMessageKey" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="13" type="stmt" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <line num="16" type="stmt" count="0"/>
      <metrics loc="21" ncloc="18" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="0" elements="4" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/LogFormatter/AbuseLogHitFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\LogFormatter\AbuseLogHitFormatter" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="0" elements="35" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="28" type="method" name="getMessageParameters" visibility="protected" complexity="4" crap="20" 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="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="37" 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="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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <metrics loc="76" ncloc="67" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="0" elements="35" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/LogFormatter/ProtectedVarsAccessLogFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\LogFormatter\ProtectedVarsAccessLogFormatter" namespace="global">
        <metrics complexity="8" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="17" elements="20" coveredelements="20"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="18" type="stmt" count="4"/>
      <line num="24" type="method" name="getMessageKey" visibility="protected" complexity="3" crap="3" count="4"/>
      <line num="25" type="stmt" count="4"/>
      <line num="26" type="stmt" count="4"/>
      <line num="27" type="stmt" count="4"/>
      <line num="28" type="stmt" count="2"/>
      <line num="31" type="stmt" count="2"/>
      <line num="37" type="method" name="getMessageParameters" visibility="protected" complexity="4" crap="4" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="51" type="stmt" count="4"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="56" type="stmt" count="4"/>
      <metrics loc="59" ncloc="51" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="17" elements="20" coveredelements="20"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/MediaWikiEventIngress/PageEventIngress.php">
      <class name="MediaWiki\Extension\AbuseFilter\MediaWikiEventIngress\PageEventIngress" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="8" coveredelements="0"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="23" type="method" name="handlePageLatestRevisionChangedEvent" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" 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"/>
      <metrics loc="33" ncloc="29" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="8" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Pager/AbuseFilterExaminePager.php">
      <class name="MediaWiki\Extension\AbuseFilter\Pager\AbuseFilterExaminePager" namespace="global">
        <metrics complexity="6" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="0" elements="18" coveredelements="0"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="2" 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="37" type="method" name="getQueryInfo" visibility="public" complexity="1" crap="2" 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="44" type="stmt" count="0"/>
      <line num="51" type="method" name="formatRow" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="76" type="method" name="getEmptyBody" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <metrics loc="80" ncloc="58" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="0" elements="18" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Pager/AbuseFilterHistoryPager.php">
      <class name="MediaWiki\Extension\AbuseFilter\Pager\AbuseFilterHistoryPager" namespace="global">
        <metrics complexity="52" methods="9" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="146" coveredstatements="142" elements="155" coveredelements="149"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="39" type="stmt" count="6"/>
      <line num="47" type="method" name="getFieldNames" visibility="public" complexity="4" crap="4" count="6"/>
      <line num="48" type="stmt" count="6"/>
      <line num="50" type="stmt" count="6"/>
      <line num="51" type="stmt" count="6"/>
      <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="61" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="80" type="method" name="formatValue" visibility="public" complexity="22" crap="22" count="5"/>
      <line num="81" type="stmt" count="5"/>
      <line num="82" type="stmt" count="5"/>
      <line num="84" type="stmt" count="5"/>
      <line num="87" type="stmt" count="5"/>
      <line num="88" type="stmt" count="5"/>
      <line num="89" type="stmt" count="5"/>
      <line num="90" type="stmt" count="5"/>
      <line num="91" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="93" type="stmt" count="5"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="5"/>
      <line num="96" type="stmt" count="5"/>
      <line num="97" type="stmt" count="5"/>
      <line num="98" type="stmt" count="5"/>
      <line num="99" type="stmt" count="5"/>
      <line num="100" type="stmt" count="5"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="106" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="108" type="stmt" count="5"/>
      <line num="109" type="stmt" count="5"/>
      <line num="110" type="stmt" count="5"/>
      <line num="111" type="stmt" count="5"/>
      <line num="112" type="stmt" count="5"/>
      <line num="113" type="stmt" count="5"/>
      <line num="115" type="stmt" count="5"/>
      <line num="117" type="stmt" count="5"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="121" type="stmt" count="5"/>
      <line num="123" type="stmt" count="5"/>
      <line num="124" type="stmt" count="5"/>
      <line num="125" type="stmt" count="5"/>
      <line num="130" type="stmt" count="5"/>
      <line num="131" type="stmt" count="5"/>
      <line num="133" type="stmt" count="2"/>
      <line num="134" type="stmt" count="2"/>
      <line num="135" type="stmt" count="2"/>
      <line num="136" type="stmt" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="141" type="stmt" count="2"/>
      <line num="142" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="146" type="stmt" count="1"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="1"/>
      <line num="152" type="stmt" count="2"/>
      <line num="153" type="stmt" count="0"/>
      <line num="157" type="stmt" count="2"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="0"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="168" type="stmt" count="2"/>
      <line num="169" type="stmt" count="2"/>
      <line num="170" type="stmt" count="2"/>
      <line num="173" type="stmt" count="5"/>
      <line num="175" type="stmt" count="0"/>
      <line num="178" type="stmt" count="5"/>
      <line num="184" type="method" name="getQueryInfo" visibility="public" complexity="6" crap="6.01" count="6"/>
      <line num="185" type="stmt" count="6"/>
      <line num="186" type="stmt" count="6"/>
      <line num="187" type="stmt" count="6"/>
      <line num="189" type="stmt" count="6"/>
      <line num="190" type="stmt" count="1"/>
      <line num="193" type="stmt" count="6"/>
      <line num="194" type="stmt" count="1"/>
      <line num="198" type="stmt" count="6"/>
      <line num="199" type="stmt" count="6"/>
      <line num="201" type="stmt" count="6"/>
      <line num="202" type="stmt" count="0"/>
      <line num="208" type="stmt" count="6"/>
      <line num="210" type="stmt" count="2"/>
      <line num="213" type="stmt" count="6"/>
      <line num="226" type="method" name="reallyDoQuery" visibility="public" complexity="6" crap="6" count="6"/>
      <line num="227" type="stmt" count="6"/>
      <line num="228" type="stmt" count="6"/>
      <line num="231" type="stmt" count="6"/>
      <line num="235" type="stmt" count="6"/>
      <line num="236" type="stmt" count="5"/>
      <line num="237" type="stmt" count="5"/>
      <line num="238" type="stmt" count="5"/>
      <line num="239" type="stmt" count="5"/>
      <line num="241" type="stmt" count="5"/>
      <line num="242" type="stmt" count="5"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="5"/>
      <line num="246" type="stmt" count="5"/>
      <line num="255" type="stmt" count="6"/>
      <line num="257" type="stmt" count="6"/>
      <line num="258" type="stmt" count="5"/>
      <line num="259" type="stmt" count="5"/>
      <line num="260" type="stmt" count="5"/>
      <line num="262" type="stmt" count="6"/>
      <line num="264" type="stmt" count="6"/>
      <line num="265" type="stmt" count="6"/>
      <line num="271" type="method" name="preprocessResults" visibility="protected" complexity="3" crap="3" count="6"/>
      <line num="272" type="stmt" count="6"/>
      <line num="273" type="stmt" count="1"/>
      <line num="276" type="stmt" count="5"/>
      <line num="277" type="stmt" count="5"/>
      <line num="278" type="stmt" count="5"/>
      <line num="279" type="stmt" count="5"/>
      <line num="281" type="stmt" count="5"/>
      <line num="282" type="stmt" count="5"/>
      <line num="307" type="method" name="getCellAttrs" visibility="public" complexity="5" crap="5" count="5"/>
      <line num="308" type="stmt" count="5"/>
      <line num="309" type="stmt" count="5"/>
      <line num="310" type="stmt" count="5"/>
      <line num="311" type="stmt" count="5"/>
      <line num="313" type="stmt" count="5"/>
      <line num="314" type="stmt" count="5"/>
      <line num="316" type="stmt" count="5"/>
      <line num="317" type="stmt" count="5"/>
      <line num="318" type="stmt" count="4"/>
      <line num="320" type="stmt" count="5"/>
      <line num="321" type="stmt" count="5"/>
      <line num="324" type="stmt" count="5"/>
      <line num="325" type="stmt" count="5"/>
      <line num="326" type="stmt" count="5"/>
      <line num="327" type="stmt" count="5"/>
      <line num="331" type="method" name="getRowClass" visibility="protected" complexity="1" crap="1" count="5"/>
      <line num="332" type="stmt" count="5"/>
      <line num="340" type="method" name="getTitle" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="341" type="stmt" count="6"/>
      <line num="342" type="stmt" count="6"/>
      <metrics loc="345" ncloc="276" classes="1" methods="9" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="146" coveredstatements="142" elements="155" coveredelements="149"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Pager/AbuseFilterPager.php">
      <class name="MediaWiki\Extension\AbuseFilter\Pager\AbuseFilterPager" namespace="global">
        <metrics complexity="64" methods="11" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="211" coveredstatements="181" elements="222" coveredelements="186"/>
      </class>
      <line num="42" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="53" type="stmt" count="14"/>
      <line num="59" type="method" name="getQueryInfo" visibility="public" complexity="6" crap="6" count="14"/>
      <line num="60" type="stmt" count="14"/>
      <line num="63" type="stmt" count="14"/>
      <line num="64" type="stmt" count="9"/>
      <line num="65" type="stmt" count="9"/>
      <line num="69" type="stmt" count="9"/>
      <line num="70" type="stmt" count="4"/>
      <line num="72" type="stmt" count="9"/>
      <line num="73" type="stmt" count="4"/>
      <line num="75" type="stmt" count="9"/>
      <line num="76" type="stmt" count="5"/>
      <line num="79" type="stmt" count="9"/>
      <line num="80" type="stmt" count="8"/>
      <line num="84" type="stmt" count="14"/>
      <line num="85" type="stmt" count="14"/>
      <line num="86" type="stmt" count="14"/>
      <line num="92" type="method" name="preprocessResults" visibility="protected" complexity="4" crap="4" count="14"/>
      <line num="94" type="stmt" count="14"/>
      <line num="95" type="stmt" count="1"/>
      <line num="98" type="stmt" count="14"/>
      <line num="99" type="stmt" count="14"/>
      <line num="100" type="stmt" count="14"/>
      <line num="101" type="stmt" count="14"/>
      <line num="103" type="stmt" count="14"/>
      <line num="104" type="stmt" count="14"/>
      <line num="112" type="method" name="reallyDoQuery" visibility="public" complexity="6" crap="6" count="14"/>
      <line num="113" type="stmt" count="14"/>
      <line num="114" type="stmt" count="12"/>
      <line num="117" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="122" type="stmt" count="2"/>
      <line num="123" type="stmt" count="2"/>
      <line num="124" type="stmt" count="2"/>
      <line num="125" type="stmt" count="2"/>
      <line num="126" type="stmt" count="2"/>
      <line num="127" type="stmt" count="2"/>
      <line num="128" type="stmt" count="2"/>
      <line num="130" type="stmt" count="2"/>
      <line num="131" type="stmt" count="2"/>
      <line num="133" type="stmt" count="2"/>
      <line num="138" type="stmt" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="141" type="stmt" count="0"/>
      <line num="144" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="150" type="stmt" count="2"/>
      <line num="151" type="stmt" count="2"/>
      <line num="161" type="method" name="matchesPattern" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="162" type="stmt" count="2"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="168" type="stmt" count="2"/>
      <line num="176" type="method" name="getFieldNames" visibility="public" complexity="6" crap="6.01" count="14"/>
      <line num="177" type="stmt" count="14"/>
      <line num="178" type="stmt" count="14"/>
      <line num="179" type="stmt" count="14"/>
      <line num="180" type="stmt" count="14"/>
      <line num="181" type="stmt" count="14"/>
      <line num="182" type="stmt" count="14"/>
      <line num="183" type="stmt" count="14"/>
      <line num="184" type="stmt" count="14"/>
      <line num="186" type="stmt" count="14"/>
      <line num="187" type="stmt" count="14"/>
      <line num="188" type="stmt" count="14"/>
      <line num="192" type="stmt" count="14"/>
      <line num="193" type="stmt" count="14"/>
      <line num="196" type="stmt" count="2"/>
      <line num="199" type="stmt" count="14"/>
      <line num="200" type="stmt" count="0"/>
      <line num="203" type="stmt" count="14"/>
      <line num="204" type="stmt" count="14"/>
      <line num="207" type="stmt" count="14"/>
      <line num="215" type="method" name="formatValue" visibility="public" complexity="22" crap="22.24" count="14"/>
      <line num="216" type="stmt" count="14"/>
      <line num="217" type="stmt" count="14"/>
      <line num="218" type="stmt" count="14"/>
      <line num="219" type="stmt" count="14"/>
      <line num="222" type="stmt" count="14"/>
      <line num="223" type="stmt" count="14"/>
      <line num="224" type="stmt" count="14"/>
      <line num="225" type="stmt" count="14"/>
      <line num="226" type="stmt" count="14"/>
      <line num="227" type="stmt" count="14"/>
      <line num="228" type="stmt" count="2"/>
      <line num="229" type="stmt" count="14"/>
      <line num="230" type="stmt" count="14"/>
      <line num="231" type="stmt" count="14"/>
      <line num="232" type="stmt" count="14"/>
      <line num="233" type="stmt" count="14"/>
      <line num="234" type="stmt" count="14"/>
      <line num="235" type="stmt" count="14"/>
      <line num="236" type="stmt" count="14"/>
      <line num="237" type="stmt" count="14"/>
      <line num="238" type="stmt" count="14"/>
      <line num="240" type="stmt" count="14"/>
      <line num="241" type="stmt" count="14"/>
      <line num="242" type="stmt" count="14"/>
      <line num="243" type="stmt" count="14"/>
      <line num="244" type="stmt" count="0"/>
      <line num="245" type="stmt" count="14"/>
      <line num="246" type="stmt" count="14"/>
      <line num="247" type="stmt" count="14"/>
      <line num="248" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="254" type="stmt" count="14"/>
      <line num="255" type="stmt" count="0"/>
      <line num="258" type="stmt" count="14"/>
      <line num="259" type="stmt" count="14"/>
      <line num="260" type="stmt" count="14"/>
      <line num="261" type="stmt" count="14"/>
      <line num="262" type="stmt" count="7"/>
      <line num="264" type="stmt" count="14"/>
      <line num="265" type="stmt" count="7"/>
      <line num="267" type="stmt" count="14"/>
      <line num="268" type="stmt" count="10"/>
      <line num="270" type="stmt" count="14"/>
      <line num="271" type="stmt" count="12"/>
      <line num="273" type="stmt" count="13"/>
      <line num="274" type="stmt" count="14"/>
      <line num="276" type="stmt" count="14"/>
      <line num="277" type="stmt" count="14"/>
      <line num="278" type="stmt" count="14"/>
      <line num="279" type="stmt" count="14"/>
      <line num="280" type="stmt" count="14"/>
      <line num="281" type="stmt" count="14"/>
      <line num="282" type="stmt" count="14"/>
      <line num="283" type="stmt" count="14"/>
      <line num="284" type="stmt" count="14"/>
      <line num="285" type="stmt" count="14"/>
      <line num="287" type="stmt" count="3"/>
      <line num="289" type="stmt" count="14"/>
      <line num="290" type="stmt" count="14"/>
      <line num="291" type="stmt" count="14"/>
      <line num="292" type="stmt" count="14"/>
      <line num="293" type="stmt" count="14"/>
      <line num="294" type="stmt" count="14"/>
      <line num="295" type="stmt" count="14"/>
      <line num="296" type="stmt" count="14"/>
      <line num="297" type="stmt" count="14"/>
      <line num="298" type="stmt" count="14"/>
      <line num="299" type="stmt" count="14"/>
      <line num="301" type="stmt" count="14"/>
      <line num="302" type="stmt" count="14"/>
      <line num="303" type="stmt" count="14"/>
      <line num="304" type="stmt" count="14"/>
      <line num="305" type="stmt" count="14"/>
      <line num="306" type="stmt" count="14"/>
      <line num="307" type="stmt" count="14"/>
      <line num="308" type="stmt" count="14"/>
      <line num="309" type="stmt" count="14"/>
      <line num="310" type="stmt" count="14"/>
      <line num="311" type="stmt" count="14"/>
      <line num="312" type="stmt" count="14"/>
      <line num="313" type="stmt" count="14"/>
      <line num="314" type="stmt" count="14"/>
      <line num="315" type="stmt" count="14"/>
      <line num="316" type="stmt" count="14"/>
      <line num="317" type="stmt" count="14"/>
      <line num="318" type="stmt" count="14"/>
      <line num="319" type="stmt" count="0"/>
      <line num="320" type="stmt" count="0"/>
      <line num="322" type="stmt" count="0"/>
      <line num="332" type="method" name="getHighlightedPattern" visibility="private" complexity="7" crap="11.06" count="2"/>
      <line num="333" type="stmt" count="2"/>
      <line num="334" type="stmt" count="0"/>
      <line num="336" type="stmt" count="2"/>
      <line num="337" type="stmt" count="2"/>
      <line num="338" type="stmt" count="2"/>
      <line num="339" type="stmt" count="2"/>
      <line num="340" type="stmt" count="2"/>
      <line num="342" type="stmt" count="0"/>
      <line num="343" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="346" type="stmt" count="0"/>
      <line num="348" type="stmt" count="0"/>
      <line num="349" type="stmt" count="0"/>
      <line num="350" type="stmt" count="0"/>
      <line num="351" type="stmt" count="0"/>
      <line num="352" type="stmt" count="0"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="360" type="stmt" count="0"/>
      <line num="363" type="stmt" count="2"/>
      <line num="364" type="stmt" count="2"/>
      <line num="365" type="stmt" count="0"/>
      <line num="366" type="stmt" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="370" type="stmt" count="2"/>
      <line num="371" type="stmt" count="2"/>
      <line num="372" type="stmt" count="2"/>
      <line num="373" type="stmt" count="2"/>
      <line num="374" type="stmt" count="2"/>
      <line num="375" type="stmt" count="2"/>
      <line num="376" type="stmt" count="2"/>
      <line num="377" type="stmt" count="2"/>
      <line num="378" type="stmt" count="2"/>
      <line num="379" type="stmt" count="2"/>
      <line num="380" type="stmt" count="2"/>
      <line num="381" type="stmt" count="2"/>
      <line num="382" type="stmt" count="2"/>
      <line num="384" type="stmt" count="2"/>
      <line num="408" type="method" name="getRowClass" visibility="public" complexity="4" crap="7.46" count="14"/>
      <line num="409" type="stmt" count="14"/>
      <line num="410" type="stmt" count="14"/>
      <line num="411" type="stmt" count="0"/>
      <line num="412" type="stmt" count="0"/>
      <line num="414" type="stmt" count="0"/>
      <line num="421" type="method" name="getIndexField" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="422" type="stmt" count="14"/>
      <line num="430" type="method" name="isFieldSortable" visibility="public" complexity="4" crap="4.25" count="14"/>
      <line num="431" type="stmt" count="14"/>
      <line num="432" type="stmt" count="14"/>
      <line num="434" type="stmt" count="0"/>
      <line num="436" type="stmt" count="14"/>
      <metrics loc="439" ncloc="364" classes="1" methods="11" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="211" coveredstatements="181" elements="222" coveredelements="186"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Pager/AbuseLogPager.php">
      <class name="MediaWiki\Extension\AbuseFilter\Pager\AbuseLogPager" namespace="global">
        <metrics complexity="61" methods="10" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="278" coveredstatements="199" elements="288" coveredelements="205"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="26"/>
      <line num="44" type="stmt" count="26"/>
      <line num="51" type="method" name="formatRow" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="52" type="stmt" count="12"/>
      <line num="60" type="method" name="doFormatRow" visibility="public" complexity="36" crap="111.84" count="12"/>
      <line num="61" type="stmt" count="12"/>
      <line num="62" type="stmt" count="12"/>
      <line num="64" type="stmt" count="12"/>
      <line num="65" type="stmt" count="0"/>
      <line num="68" type="stmt" count="12"/>
      <line num="69" type="stmt" count="12"/>
      <line num="71" type="stmt" count="12"/>
      <line num="72" type="stmt" count="12"/>
      <line num="74" type="stmt" count="12"/>
      <line num="75" type="stmt" count="12"/>
      <line num="76" type="stmt" count="12"/>
      <line num="77" type="stmt" count="12"/>
      <line num="78" type="stmt" count="12"/>
      <line num="79" type="stmt" count="12"/>
      <line num="80" type="stmt" count="12"/>
      <line num="81" 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="86" type="stmt" count="0"/>
      <line num="88" type="stmt" count="12"/>
      <line num="89" type="stmt" count="12"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="118" type="stmt" count="12"/>
      <line num="120" type="stmt" count="12"/>
      <line num="121" type="stmt" count="12"/>
      <line num="122" type="stmt" count="12"/>
      <line num="123" type="stmt" count="12"/>
      <line num="124" type="stmt" count="12"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="130" type="stmt" count="12"/>
      <line num="131" type="stmt" count="12"/>
      <line num="133" type="stmt" count="12"/>
      <line num="134" type="stmt" count="12"/>
      <line num="135" type="stmt" count="9"/>
      <line num="137" type="stmt" count="3"/>
      <line num="138" 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="145" type="stmt" count="3"/>
      <line num="148" type="stmt" count="12"/>
      <line num="149" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="154" type="stmt" count="12"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="166" type="stmt" count="12"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="176" type="stmt" count="12"/>
      <line num="177" type="stmt" count="12"/>
      <line num="178" type="stmt" count="12"/>
      <line num="179" type="stmt" count="5"/>
      <line num="180" type="stmt" count="5"/>
      <line num="182" type="stmt" count="5"/>
      <line num="183" type="stmt" count="2"/>
      <line num="184" type="stmt" count="2"/>
      <line num="185" type="stmt" count="2"/>
      <line num="186" type="stmt" count="2"/>
      <line num="190" type="stmt" count="12"/>
      <line num="191" type="stmt" count="5"/>
      <line num="193" type="stmt" count="5"/>
      <line num="194" type="stmt" count="5"/>
      <line num="195" type="stmt" count="5"/>
      <line num="196" type="stmt" count="5"/>
      <line num="197" type="stmt" count="5"/>
      <line num="198" type="stmt" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="202" type="stmt" count="5"/>
      <line num="203" type="stmt" count="5"/>
      <line num="204" type="stmt" count="5"/>
      <line num="205" type="stmt" count="5"/>
      <line num="206" type="stmt" count="5"/>
      <line num="207" type="stmt" count="5"/>
      <line num="210" type="stmt" count="5"/>
      <line num="211" type="stmt" count="0"/>
      <line num="214" type="stmt" count="5"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="219" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="223" type="stmt" count="0"/>
      <line num="226" type="stmt" count="5"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="5"/>
      <line num="245" type="stmt" count="5"/>
      <line num="246" type="stmt" count="5"/>
      <line num="249" type="stmt" count="5"/>
      <line num="250" type="stmt" count="5"/>
      <line num="252" type="stmt" count="1"/>
      <line num="254" type="stmt" count="5"/>
      <line num="255" type="stmt" count="5"/>
      <line num="256" type="stmt" count="5"/>
      <line num="257" type="stmt" count="5"/>
      <line num="258" type="stmt" count="5"/>
      <line num="259" type="stmt" count="5"/>
      <line num="260" type="stmt" count="5"/>
      <line num="261" type="stmt" count="5"/>
      <line num="264" type="stmt" count="5"/>
      <line num="265" type="stmt" count="5"/>
      <line num="267" type="stmt" count="8"/>
      <line num="268" type="stmt" count="0"/>
      <line num="270" type="stmt" count="8"/>
      <line num="272" type="stmt" count="8"/>
      <line num="273" type="stmt" count="8"/>
      <line num="274" 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="280" type="stmt" count="8"/>
      <line num="281" type="stmt" count="8"/>
      <line num="284" type="stmt" count="12"/>
      <line num="286" type="stmt" count="12"/>
      <line num="288" type="stmt" count="12"/>
      <line num="290" type="stmt" count="0"/>
      <line num="292" type="stmt" count="12"/>
      <line num="294" type="stmt" count="12"/>
      <line num="295" type="stmt" count="0"/>
      <line num="296" type="stmt" count="0"/>
      <line num="299" type="stmt" count="12"/>
      <line num="301" type="stmt" count="1"/>
      <line num="304" type="stmt" count="12"/>
      <line num="305" type="stmt" count="12"/>
      <line num="307" type="stmt" count="0"/>
      <line num="318" type="method" name="canSeeUndeleteDiffForPage" visibility="private" complexity="4" crap="20" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="320" type="stmt" count="0"/>
      <line num="323" type="stmt" count="0"/>
      <line num="324" type="stmt" count="0"/>
      <line num="325" type="stmt" count="0"/>
      <line num="326" type="stmt" count="0"/>
      <line num="327" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <line num="340" type="method" name="canSeeUndeleteDiffs" visibility="private" complexity="2" crap="2" count="26"/>
      <line num="341" type="stmt" count="26"/>
      <line num="342" type="stmt" count="24"/>
      <line num="345" type="stmt" count="2"/>
      <line num="346" type="stmt" count="2"/>
      <line num="356" type="method" name="getUserLinks" visibility="private" complexity="4" crap="4" count="12"/>
      <line num="357" type="stmt" count="12"/>
      <line num="360" type="stmt" count="12"/>
      <line num="361" type="stmt" count="12"/>
      <line num="362" type="stmt" count="9"/>
      <line num="365" type="stmt" count="4"/>
      <line num="366" type="stmt" count="4"/>
      <line num="370" type="stmt" count="4"/>
      <line num="371" type="stmt" count="1"/>
      <line num="372" type="stmt" count="1"/>
      <line num="373" type="stmt" count="1"/>
      <line num="376" type="stmt" count="4"/>
      <line num="377" type="stmt" count="4"/>
      <line num="378" type="stmt" count="4"/>
      <line num="379" type="stmt" count="4"/>
      <line num="380" type="stmt" count="4"/>
      <line num="381" type="stmt" count="4"/>
      <line num="382" type="stmt" count="4"/>
      <line num="384" type="stmt" count="4"/>
      <line num="385" type="stmt" count="4"/>
      <line num="391" type="method" name="getQueryInfo" visibility="public" complexity="3" crap="3" count="26"/>
      <line num="392" type="stmt" count="26"/>
      <line num="393" type="stmt" count="26"/>
      <line num="394" type="stmt" count="26"/>
      <line num="395" type="stmt" count="26"/>
      <line num="396" type="stmt" count="26"/>
      <line num="397" type="stmt" count="26"/>
      <line num="398" type="stmt" count="26"/>
      <line num="399" type="stmt" count="26"/>
      <line num="400" type="stmt" count="26"/>
      <line num="401" type="stmt" count="26"/>
      <line num="402" type="stmt" count="26"/>
      <line num="403" type="stmt" count="26"/>
      <line num="404" type="stmt" count="26"/>
      <line num="405" type="stmt" count="26"/>
      <line num="406" type="stmt" count="26"/>
      <line num="407" type="stmt" count="26"/>
      <line num="408" type="stmt" count="26"/>
      <line num="409" type="stmt" count="26"/>
      <line num="410" type="stmt" count="26"/>
      <line num="411" type="stmt" count="26"/>
      <line num="412" type="stmt" count="26"/>
      <line num="413" type="stmt" count="26"/>
      <line num="414" type="stmt" count="26"/>
      <line num="415" type="stmt" count="26"/>
      <line num="416" type="stmt" count="26"/>
      <line num="417" type="stmt" count="26"/>
      <line num="418" type="stmt" count="26"/>
      <line num="419" type="stmt" count="26"/>
      <line num="420" type="stmt" count="26"/>
      <line num="421" type="stmt" count="26"/>
      <line num="422" type="stmt" count="26"/>
      <line num="423" type="stmt" count="26"/>
      <line num="424" type="stmt" count="26"/>
      <line num="425" type="stmt" count="26"/>
      <line num="426" type="stmt" count="26"/>
      <line num="427" type="stmt" count="26"/>
      <line num="428" type="stmt" count="26"/>
      <line num="429" type="stmt" count="26"/>
      <line num="430" type="stmt" count="26"/>
      <line num="431" type="stmt" count="26"/>
      <line num="432" type="stmt" count="26"/>
      <line num="434" type="stmt" count="26"/>
      <line num="435" type="stmt" count="2"/>
      <line num="436" type="stmt" count="2"/>
      <line num="437" type="stmt" count="2"/>
      <line num="438" type="stmt" count="2"/>
      <line num="439" type="stmt" count="2"/>
      <line num="440" type="stmt" count="2"/>
      <line num="441" type="stmt" count="2"/>
      <line num="442" type="stmt" count="2"/>
      <line num="443" type="stmt" count="2"/>
      <line num="444" type="stmt" count="2"/>
      <line num="445" type="stmt" count="2"/>
      <line num="448" type="stmt" count="26"/>
      <line num="449" type="stmt" count="25"/>
      <line num="452" type="stmt" count="26"/>
      <line num="458" type="method" name="preprocessResults" visibility="protected" complexity="4" crap="4" count="20"/>
      <line num="459" type="stmt" count="20"/>
      <line num="460" type="stmt" count="8"/>
      <line num="463" type="stmt" count="12"/>
      <line num="464" type="stmt" count="12"/>
      <line num="465" type="stmt" count="12"/>
      <line num="467" type="stmt" count="12"/>
      <line num="468" type="stmt" count="12"/>
      <line num="469" type="stmt" count="12"/>
      <line num="472" type="stmt" count="12"/>
      <line num="473" type="stmt" count="12"/>
      <line num="481" type="method" name="entryHasAssociatedDeletedRev" visibility="private" complexity="3" crap="5.67" count="12"/>
      <line num="482" type="stmt" count="12"/>
      <line num="483" type="stmt" count="12"/>
      <line num="485" type="stmt" count="0"/>
      <line num="486" type="stmt" count="0"/>
      <line num="487" type="stmt" count="0"/>
      <line num="488" type="stmt" count="0"/>
      <line num="499" type="method" name="isHidingEntry" visibility="private" complexity="2" crap="2.15" count="12"/>
      <line num="500" type="stmt" count="12"/>
      <line num="501" type="stmt" count="0"/>
      <line num="503" type="stmt" count="12"/>
      <metrics loc="514" ncloc="446" classes="1" methods="10" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="278" coveredstatements="199" elements="288" coveredelements="205"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Pager/GlobalAbuseFilterPager.php">
      <class name="MediaWiki\Extension\AbuseFilter\Pager\GlobalAbuseFilterPager" namespace="global">
        <metrics complexity="15" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="0" elements="42" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="2" 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="32" type="stmt" count="0"/>
      <line num="40" type="method" name="formatValue" visibility="public" complexity="14" crap="210" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" 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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" 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="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <metrics loc="91" ncloc="80" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="0" elements="42" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AFPData.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AFPData" namespace="global">
        <metrics complexity="120" methods="23" coveredmethods="22" conditionals="0" coveredconditionals="0" statements="186" coveredstatements="185" elements="209" coveredelements="207"/>
      </class>
      <line num="52" type="method" name="getType" visibility="public" complexity="1" crap="1" count="234"/>
      <line num="53" type="stmt" count="234"/>
      <line num="59" type="method" name="getData" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="67" type="method" name="__construct" visibility="public" complexity="3" crap="3" count="277"/>
      <line num="68" type="stmt" count="277"/>
      <line num="70" type="stmt" count="1"/>
      <line num="72" type="stmt" count="276"/>
      <line num="73" type="stmt" count="276"/>
      <line num="81" type="method" name="newFromPHPVar" visibility="public" complexity="9" crap="9" count="29"/>
      <line num="82" type="stmt" count="29"/>
      <line num="83" type="stmt" count="29"/>
      <line num="84" type="stmt" count="22"/>
      <line num="85" type="stmt" count="10"/>
      <line num="86" type="stmt" count="2"/>
      <line num="87" type="stmt" count="9"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="8"/>
      <line num="90" type="stmt" count="4"/>
      <line num="91" type="stmt" count="6"/>
      <line num="92" type="stmt" count="3"/>
      <line num="93" type="stmt" count="3"/>
      <line num="94" type="stmt" count="3"/>
      <line num="96" type="stmt" count="3"/>
      <line num="97" type="stmt" count="4"/>
      <line num="98" type="stmt" count="2"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="111" type="method" name="castTypes" visibility="public" complexity="15" crap="15" count="267"/>
      <line num="112" type="stmt" count="267"/>
      <line num="113" type="stmt" count="245"/>
      <line num="115" type="stmt" count="154"/>
      <line num="118" type="stmt" count="1"/>
      <line num="120" type="stmt" count="153"/>
      <line num="122" type="stmt" count="5"/>
      <line num="125" type="stmt" count="148"/>
      <line num="126" type="stmt" count="17"/>
      <line num="127" type="stmt" count="1"/>
      <line num="128" type="stmt" count="17"/>
      <line num="129" type="stmt" count="2"/>
      <line num="130" type="stmt" count="17"/>
      <line num="131" type="stmt" count="2"/>
      <line num="132" type="stmt" count="16"/>
      <line num="133" type="stmt" count="16"/>
      <line num="134" type="stmt" count="16"/>
      <line num="135" type="stmt" count="16"/>
      <line num="138" type="stmt" count="16"/>
      <line num="142" type="stmt" count="146"/>
      <line num="143" type="stmt" count="14"/>
      <line num="144" type="stmt" count="137"/>
      <line num="145" type="stmt" count="3"/>
      <line num="146" type="stmt" count="136"/>
      <line num="147" type="stmt" count="5"/>
      <line num="148" type="stmt" count="133"/>
      <line num="149" type="stmt" count="126"/>
      <line num="150" type="stmt" count="7"/>
      <line num="152" type="stmt" count="5"/>
      <line num="154" type="stmt" count="2"/>
      <line num="160" type="method" name="boolInvert" visibility="public" complexity="2" crap="2" count="15"/>
      <line num="161" type="stmt" count="15"/>
      <line num="162" type="stmt" count="2"/>
      <line num="164" type="stmt" count="13"/>
      <line num="171" type="method" name="pow" visibility="public" complexity="4" crap="4" count="6"/>
      <line num="172" type="stmt" count="6"/>
      <line num="173" type="stmt" count="1"/>
      <line num="175" type="stmt" count="5"/>
      <line num="176" type="stmt" count="5"/>
      <line num="178" type="stmt" count="5"/>
      <line num="190" type="method" name="equals" visibility="public" complexity="21" crap="21" count="138"/>
      <line num="191" type="stmt" count="138"/>
      <line num="192" type="stmt" count="3"/>
      <line num="193" type="stmt" count="3"/>
      <line num="194" type="stmt" count="3"/>
      <line num="195" type="stmt" count="135"/>
      <line num="196" type="stmt" count="135"/>
      <line num="197" type="stmt" count="135"/>
      <line num="198" type="stmt" count="10"/>
      <line num="199" type="stmt" count="10"/>
      <line num="200" type="stmt" count="10"/>
      <line num="201" type="stmt" count="10"/>
      <line num="202" type="stmt" count="2"/>
      <line num="204" type="stmt" count="10"/>
      <line num="205" type="stmt" count="10"/>
      <line num="207" type="stmt" count="10"/>
      <line num="208" type="stmt" count="4"/>
      <line num="211" type="stmt" count="10"/>
      <line num="214" type="stmt" count="4"/>
      <line num="215" type="stmt" count="3"/>
      <line num="217" type="stmt" count="3"/>
      <line num="218" type="stmt" count="3"/>
      <line num="219" type="stmt" count="3"/>
      <line num="220" type="stmt" count="2"/>
      <line num="221" type="stmt" count="2"/>
      <line num="223" type="stmt" count="2"/>
      <line num="231" type="method" name="unaryMinus" visibility="public" complexity="1" crap="1" count="55"/>
      <line num="232" type="stmt" count="55"/>
      <line num="233" type="stmt" count="55"/>
      <line num="234" type="stmt" count="55"/>
      <line num="235" type="stmt" count="55"/>
      <line num="236" type="stmt" count="55"/>
      <line num="245" type="method" name="boolOp" visibility="public" complexity="5" crap="5" count="54"/>
      <line num="246" type="stmt" count="54"/>
      <line num="247" type="stmt" count="54"/>
      <line num="249" type="stmt" count="54"/>
      <line num="250" type="stmt" count="54"/>
      <line num="251" type="stmt" count="54"/>
      <line num="252" type="stmt" count="54"/>
      <line num="257" type="stmt" count="54"/>
      <line num="266" type="method" name="compareOp" visibility="public" complexity="8" crap="8" count="160"/>
      <line num="267" type="stmt" count="160"/>
      <line num="268" type="stmt" count="29"/>
      <line num="270" type="stmt" count="133"/>
      <line num="271" type="stmt" count="46"/>
      <line num="272" type="stmt" count="115"/>
      <line num="273" type="stmt" count="14"/>
      <line num="274" type="stmt" count="114"/>
      <line num="275" type="stmt" count="77"/>
      <line num="276" type="stmt" count="51"/>
      <line num="277" type="stmt" count="13"/>
      <line num="280" type="stmt" count="46"/>
      <line num="281" type="stmt" count="46"/>
      <line num="282" type="stmt" count="46"/>
      <line num="283" type="stmt" count="46"/>
      <line num="284" type="stmt" count="46"/>
      <line num="285" type="stmt" count="46"/>
      <line num="286" type="stmt" count="46"/>
      <line num="291" type="stmt" count="46"/>
      <line num="302" type="method" name="mulRel" visibility="public" complexity="12" crap="12" count="26"/>
      <line num="303" type="stmt" count="26"/>
      <line num="307" type="stmt" count="4"/>
      <line num="310" type="stmt" count="22"/>
      <line num="313" type="stmt" count="22"/>
      <line num="314" type="stmt" count="22"/>
      <line num="316" type="stmt" count="12"/>
      <line num="317" type="stmt" count="12"/>
      <line num="320" type="stmt" count="10"/>
      <line num="321" type="stmt" count="2"/>
      <line num="323" type="stmt" count="8"/>
      <line num="325" type="stmt" count="8"/>
      <line num="326" type="stmt" count="7"/>
      <line num="327" type="stmt" count="5"/>
      <line num="328" type="stmt" count="4"/>
      <line num="329" type="stmt" count="3"/>
      <line num="330" type="stmt" count="3"/>
      <line num="338" type="stmt" count="8"/>
      <line num="340" type="stmt" count="8"/>
      <line num="347" type="method" name="sum" visibility="public" complexity="8" crap="8" count="11"/>
      <line num="348" type="stmt" count="11"/>
      <line num="349" type="stmt" count="2"/>
      <line num="350" type="stmt" count="9"/>
      <line num="351" type="stmt" count="2"/>
      <line num="352" type="stmt" count="7"/>
      <line num="353" type="stmt" count="1"/>
      <line num="355" type="stmt" count="6"/>
      <line num="356" type="stmt" count="6"/>
      <line num="358" type="stmt" count="6"/>
      <line num="366" type="method" name="sub" visibility="public" complexity="4" crap="4" count="6"/>
      <line num="367" type="stmt" count="6"/>
      <line num="368" type="stmt" count="2"/>
      <line num="370" type="stmt" count="4"/>
      <line num="371" type="stmt" count="4"/>
      <line num="373" type="stmt" count="4"/>
      <line num="379" type="method" name="hasUndefined" visibility="public" complexity="5" crap="5" count="96"/>
      <line num="380" type="stmt" count="96"/>
      <line num="381" type="stmt" count="26"/>
      <line num="383" type="stmt" count="92"/>
      <line num="384" type="stmt" count="21"/>
      <line num="385" type="stmt" count="21"/>
      <line num="386" type="stmt" count="5"/>
      <line num="390" type="stmt" count="88"/>
      <line num="397" type="method" name="cloneAsUndefinedReplacedWithNull" visibility="public" complexity="4" crap="4" count="29"/>
      <line num="398" type="stmt" count="29"/>
      <line num="399" type="stmt" count="26"/>
      <line num="401" type="stmt" count="8"/>
      <line num="402" type="stmt" count="6"/>
      <line num="403" type="stmt" count="6"/>
      <line num="404" type="stmt" count="6"/>
      <line num="406" type="stmt" count="6"/>
      <line num="408" type="stmt" count="3"/>
      <line num="417" type="method" name="toNative" visibility="public" complexity="10" crap="10" count="16"/>
      <line num="418" type="stmt" count="16"/>
      <line num="420" type="stmt" count="3"/>
      <line num="422" type="stmt" count="9"/>
      <line num="424" type="stmt" count="2"/>
      <line num="426" type="stmt" count="1"/>
      <line num="428" type="stmt" count="1"/>
      <line num="429" type="stmt" count="1"/>
      <line num="430" type="stmt" count="1"/>
      <line num="431" type="stmt" count="1"/>
      <line num="434" type="stmt" count="1"/>
      <line num="437" type="stmt" count="2"/>
      <line num="448" type="method" name="toBool" visibility="public" complexity="1" crap="1" count="220"/>
      <line num="449" type="stmt" count="220"/>
      <line num="455" type="method" name="toString" visibility="public" complexity="1" crap="1" count="191"/>
      <line num="456" type="stmt" count="191"/>
      <line num="462" type="method" name="toFloat" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="463" type="stmt" count="12"/>
      <line num="469" type="method" name="toInt" visibility="public" complexity="1" crap="1" count="96"/>
      <line num="470" type="stmt" count="96"/>
      <line num="476" type="method" name="toNumber" visibility="public" complexity="2" crap="2" count="24"/>
      <line num="478" type="stmt" count="24"/>
      <line num="479" type="stmt" count="24"/>
      <line num="480" type="stmt" count="24"/>
      <line num="481" type="stmt" count="24"/>
      <line num="482" type="stmt" count="24"/>
      <line num="483" type="stmt" count="24"/>
      <line num="489" type="method" name="toArray" visibility="public" complexity="1" crap="1" count="20"/>
      <line num="490" type="stmt" count="20"/>
      <metrics loc="493" ncloc="362" classes="1" methods="23" coveredmethods="22" conditionals="0" coveredconditionals="0" statements="186" coveredstatements="185" elements="209" coveredelements="207"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AFPParserState.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AFPParserState" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
      </class>
      <line num="6" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="289"/>
      <line num="10" type="stmt" count="289"/>
      <metrics loc="12" ncloc="12" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AFPSyntaxTree.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AFPSyntaxTree" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="2" elements="4" coveredelements="4"/>
      </class>
      <line num="11" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="375"/>
      <line num="12" type="stmt" count="375"/>
      <line num="14" type="method" name="getRoot" visibility="public" complexity="1" crap="1" count="375"/>
      <line num="15" type="stmt" count="375"/>
      <metrics loc="18" ncloc="13" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="2" elements="4" coveredelements="4"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AFPToken.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AFPToken" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
      </class>
      <line num="54" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="476"/>
      <line num="59" type="stmt" count="476"/>
      <metrics loc="61" ncloc="25" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AFPTreeNode.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AFPTreeNode" namespace="global">
        <metrics complexity="7" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="4" coveredelements="4"/>
      </class>
      <line num="111" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="466"/>
      <line num="112" type="stmt" count="466"/>
      <line num="113" type="stmt" count="466"/>
      <line num="114" type="stmt" count="466"/>
      <metrics loc="152" ncloc="82" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="4" coveredelements="4"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AFPTreeParser.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AFPTreeParser" namespace="global">
        <metrics complexity="111" methods="26" coveredmethods="26" conditionals="0" coveredconditionals="0" statements="340" coveredstatements="340" elements="366" coveredelements="366"/>
      </class>
      <line num="41" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="485"/>
      <line num="46" type="stmt" count="485"/>
      <line num="52" type="method" name="setFilter" visibility="public" complexity="1" crap="1" count="425"/>
      <line num="53" type="stmt" count="425"/>
      <line num="59" type="method" name="resetState" visibility="private" complexity="1" crap="1" count="485"/>
      <line num="60" type="stmt" count="485"/>
      <line num="61" type="stmt" count="485"/>
      <line num="62" type="stmt" count="485"/>
      <line num="68" type="method" name="move" visibility="private" complexity="1" crap="1" count="485"/>
      <line num="69" type="stmt" count="485"/>
      <line num="78" type="method" name="getNextToken" visibility="private" complexity="1" crap="1" count="483"/>
      <line num="79" type="stmt" count="483"/>
      <line num="88" type="method" name="getState" visibility="private" complexity="1" crap="1" count="291"/>
      <line num="89" type="stmt" count="291"/>
      <line num="96" type="method" name="setState" visibility="private" complexity="1" crap="1" count="264"/>
      <line num="97" type="stmt" count="264"/>
      <line num="98" type="stmt" count="264"/>
      <line num="108" type="method" name="parse" visibility="public" complexity="1" crap="1" count="485"/>
      <line num="109" type="stmt" count="485"/>
      <line num="110" type="stmt" count="485"/>
      <line num="112" type="stmt" count="485"/>
      <line num="115" type="method" name="buildSyntaxTree" visibility="private" complexity="1" crap="1" count="485"/>
      <line num="116" type="stmt" count="485"/>
      <line num="117" type="stmt" count="485"/>
      <line num="118" type="stmt" count="384"/>
      <line num="119" type="stmt" count="384"/>
      <line num="120" type="stmt" count="384"/>
      <line num="121" type="stmt" count="384"/>
      <line num="122" type="stmt" count="384"/>
      <line num="132" type="method" name="doLevelEntry" visibility="private" complexity="2" crap="2" count="485"/>
      <line num="133" type="stmt" count="485"/>
      <line num="135" type="stmt" count="431"/>
      <line num="136" type="stmt" count="47"/>
      <line num="137" type="stmt" count="47"/>
      <line num="138" type="stmt" count="47"/>
      <line num="139" type="stmt" count="47"/>
      <line num="142" type="stmt" count="384"/>
      <line num="150" type="method" name="doLevelSemicolon" visibility="private" complexity="7" crap="7" count="485"/>
      <line num="151" type="stmt" count="485"/>
      <line num="154" type="stmt" count="485"/>
      <line num="155" type="stmt" count="485"/>
      <line num="158" type="stmt" count="485"/>
      <line num="159" type="stmt" count="485"/>
      <line num="162" type="stmt" count="25"/>
      <line num="166" type="stmt" count="484"/>
      <line num="167" type="stmt" count="1"/>
      <line num="170" type="stmt" count="483"/>
      <line num="171" type="stmt" count="447"/>
      <line num="172" type="stmt" count="448"/>
      <line num="175" type="stmt" count="448"/>
      <line num="176" type="stmt" count="9"/>
      <line num="177" type="stmt" count="446"/>
      <line num="178" type="stmt" count="436"/>
      <line num="180" type="stmt" count="81"/>
      <line num="190" type="method" name="doLevelSet" visibility="private" complexity="13" crap="13" count="483"/>
      <line num="191" type="stmt" count="483"/>
      <line num="192" type="stmt" count="291"/>
      <line num="197" type="stmt" count="291"/>
      <line num="198" type="stmt" count="291"/>
      <line num="200" type="stmt" count="291"/>
      <line num="201" type="stmt" count="94"/>
      <line num="202" type="stmt" count="94"/>
      <line num="203" type="stmt" count="94"/>
      <line num="205" type="stmt" count="91"/>
      <line num="208" type="stmt" count="274"/>
      <line num="209" type="stmt" count="53"/>
      <line num="211" type="stmt" count="53"/>
      <line num="212" type="stmt" count="16"/>
      <line num="215" type="stmt" count="41"/>
      <line num="216" type="stmt" count="41"/>
      <line num="217" type="stmt" count="41"/>
      <line num="218" type="stmt" count="41"/>
      <line num="219" type="stmt" count="1"/>
      <line num="220" type="stmt" count="1"/>
      <line num="224" type="stmt" count="52"/>
      <line num="225" type="stmt" count="52"/>
      <line num="226" type="stmt" count="37"/>
      <line num="227" type="stmt" count="37"/>
      <line num="228" type="stmt" count="37"/>
      <line num="229" type="stmt" count="35"/>
      <line num="230" type="stmt" count="15"/>
      <line num="231" type="stmt" count="15"/>
      <line num="233" type="stmt" count="23"/>
      <line num="234" type="stmt" count="23"/>
      <line num="235" type="stmt" count="23"/>
      <line num="236" type="stmt" count="23"/>
      <line num="237" type="stmt" count="23"/>
      <line num="244" type="stmt" count="250"/>
      <line num="247" type="stmt" count="483"/>
      <line num="256" type="method" name="doLevelConditions" visibility="private" complexity="13" crap="13" count="483"/>
      <line num="257" type="stmt" count="483"/>
      <line num="258" type="stmt" count="40"/>
      <line num="259" type="stmt" count="40"/>
      <line num="260" type="stmt" count="40"/>
      <line num="262" type="stmt" count="38"/>
      <line num="263" type="stmt" count="2"/>
      <line num="264" type="stmt" count="2"/>
      <line num="265" type="stmt" count="2"/>
      <line num="266" type="stmt" count="2"/>
      <line num="267" type="stmt" count="2"/>
      <line num="268" type="stmt" count="2"/>
      <line num="269" type="stmt" count="2"/>
      <line num="270" type="stmt" count="2"/>
      <line num="272" type="stmt" count="36"/>
      <line num="274" type="stmt" count="36"/>
      <line num="276" type="stmt" count="32"/>
      <line num="277" type="stmt" count="31"/>
      <line num="278" type="stmt" count="31"/>
      <line num="280" type="stmt" count="3"/>
      <line num="283" type="stmt" count="30"/>
      <line num="284" type="stmt" count="2"/>
      <line num="285" type="stmt" count="2"/>
      <line num="286" type="stmt" count="2"/>
      <line num="287" type="stmt" count="2"/>
      <line num="288" type="stmt" count="2"/>
      <line num="289" type="stmt" count="2"/>
      <line num="290" type="stmt" count="2"/>
      <line num="291" type="stmt" count="2"/>
      <line num="293" type="stmt" count="28"/>
      <line num="295" type="stmt" count="28"/>
      <line num="296" type="stmt" count="28"/>
      <line num="297" type="stmt" count="28"/>
      <line num="298" type="stmt" count="28"/>
      <line num="299" type="stmt" count="28"/>
      <line num="302" type="stmt" count="481"/>
      <line num="303" type="stmt" count="454"/>
      <line num="304" type="stmt" count="9"/>
      <line num="305" type="stmt" count="9"/>
      <line num="307" type="stmt" count="9"/>
      <line num="308" type="stmt" count="9"/>
      <line num="309" type="stmt" count="1"/>
      <line num="310" type="stmt" count="1"/>
      <line num="311" type="stmt" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="313" type="stmt" count="1"/>
      <line num="314" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="316" type="stmt" count="1"/>
      <line num="318" type="stmt" count="8"/>
      <line num="320" type="stmt" count="8"/>
      <line num="321" type="stmt" count="6"/>
      <line num="322" type="stmt" count="6"/>
      <line num="323" type="stmt" count="6"/>
      <line num="324" type="stmt" count="6"/>
      <line num="325" type="stmt" count="6"/>
      <line num="328" type="stmt" count="454"/>
      <line num="336" type="method" name="doLevelBoolOps" visibility="private" complexity="3" crap="3" count="483"/>
      <line num="337" type="stmt" count="483"/>
      <line num="338" type="stmt" count="467"/>
      <line num="339" type="stmt" count="467"/>
      <line num="340" type="stmt" count="236"/>
      <line num="341" type="stmt" count="236"/>
      <line num="342" type="stmt" count="236"/>
      <line num="344" type="stmt" count="236"/>
      <line num="346" type="stmt" count="211"/>
      <line num="347" type="stmt" count="211"/>
      <line num="348" type="stmt" count="211"/>
      <line num="349" type="stmt" count="211"/>
      <line num="350" type="stmt" count="211"/>
      <line num="352" type="stmt" count="455"/>
      <line num="360" type="method" name="doLevelCompares" visibility="private" complexity="4" crap="4" count="483"/>
      <line num="361" type="stmt" count="483"/>
      <line num="362" type="stmt" count="469"/>
      <line num="363" type="stmt" count="469"/>
      <line num="366" type="stmt" count="469"/>
      <line num="367" type="stmt" count="469"/>
      <line num="368" type="stmt" count="236"/>
      <line num="369" type="stmt" count="236"/>
      <line num="370" type="stmt" count="217"/>
      <line num="371" type="stmt" count="73"/>
      <line num="372" type="stmt" count="236"/>
      <line num="373" type="stmt" count="236"/>
      <line num="374" type="stmt" count="236"/>
      <line num="375" type="stmt" count="231"/>
      <line num="376" type="stmt" count="231"/>
      <line num="377" type="stmt" count="231"/>
      <line num="378" type="stmt" count="231"/>
      <line num="379" type="stmt" count="231"/>
      <line num="381" type="stmt" count="467"/>
      <line num="389" type="method" name="doLevelSumRels" visibility="private" complexity="3" crap="3" count="483"/>
      <line num="390" type="stmt" count="483"/>
      <line num="391" type="stmt" count="471"/>
      <line num="392" type="stmt" count="471"/>
      <line num="393" type="stmt" count="23"/>
      <line num="394" type="stmt" count="23"/>
      <line num="395" type="stmt" count="23"/>
      <line num="396" type="stmt" count="23"/>
      <line num="397" type="stmt" count="21"/>
      <line num="398" type="stmt" count="21"/>
      <line num="399" type="stmt" count="21"/>
      <line num="400" type="stmt" count="21"/>
      <line num="401" type="stmt" count="21"/>
      <line num="403" type="stmt" count="469"/>
      <line num="411" type="method" name="doLevelMulRels" visibility="private" complexity="3" crap="3" count="483"/>
      <line num="412" type="stmt" count="483"/>
      <line num="413" type="stmt" count="472"/>
      <line num="414" type="stmt" count="472"/>
      <line num="415" type="stmt" count="33"/>
      <line num="416" type="stmt" count="33"/>
      <line num="417" type="stmt" count="33"/>
      <line num="418" type="stmt" count="33"/>
      <line num="419" type="stmt" count="32"/>
      <line num="420" type="stmt" count="32"/>
      <line num="421" type="stmt" count="32"/>
      <line num="422" type="stmt" count="32"/>
      <line num="423" type="stmt" count="32"/>
      <line num="425" type="stmt" count="471"/>
      <line num="433" type="method" name="doLevelPow" visibility="private" complexity="3" crap="3" count="483"/>
      <line num="434" type="stmt" count="483"/>
      <line num="435" type="stmt" count="473"/>
      <line num="436" type="stmt" count="11"/>
      <line num="437" type="stmt" count="11"/>
      <line num="438" type="stmt" count="11"/>
      <line num="439" type="stmt" count="10"/>
      <line num="441" type="stmt" count="472"/>
      <line num="449" type="method" name="doLevelBoolInvert" visibility="private" complexity="3" crap="3" count="483"/>
      <line num="450" type="stmt" count="483"/>
      <line num="451" type="stmt" count="17"/>
      <line num="452" type="stmt" count="17"/>
      <line num="453" type="stmt" count="17"/>
      <line num="454" type="stmt" count="16"/>
      <line num="457" type="stmt" count="483"/>
      <line num="465" type="method" name="doLevelKeywordOperators" visibility="private" complexity="3" crap="3" count="483"/>
      <line num="466" type="stmt" count="483"/>
      <line num="467" type="stmt" count="475"/>
      <line num="468" type="stmt" count="475"/>
      <line num="469" type="stmt" count="475"/>
      <line num="471" type="stmt" count="32"/>
      <line num="472" type="stmt" count="32"/>
      <line num="473" type="stmt" count="32"/>
      <line num="475" type="stmt" count="30"/>
      <line num="476" type="stmt" count="30"/>
      <line num="477" type="stmt" count="30"/>
      <line num="478" type="stmt" count="30"/>
      <line num="479" type="stmt" count="30"/>
      <line num="482" type="stmt" count="470"/>
      <line num="490" type="method" name="doLevelUnarys" visibility="private" complexity="4" crap="4" count="483"/>
      <line num="491" type="stmt" count="483"/>
      <line num="492" type="stmt" count="483"/>
      <line num="493" type="stmt" count="58"/>
      <line num="494" type="stmt" count="58"/>
      <line num="495" type="stmt" count="58"/>
      <line num="496" type="stmt" count="56"/>
      <line num="498" type="stmt" count="480"/>
      <line num="507" type="method" name="doLevelArrayElements" visibility="private" complexity="5" crap="5" count="483"/>
      <line num="508" type="stmt" count="483"/>
      <line num="509" type="stmt" count="475"/>
      <line num="510" type="stmt" count="28"/>
      <line num="511" type="stmt" count="28"/>
      <line num="512" type="stmt" count="28"/>
      <line num="514" type="stmt" count="28"/>
      <line num="515" type="stmt" count="1"/>
      <line num="516" type="stmt" count="1"/>
      <line num="518" type="stmt" count="27"/>
      <line num="521" type="stmt" count="475"/>
      <line num="530" type="method" name="doLevelParenthesis" visibility="private" complexity="7" crap="7" count="483"/>
      <line num="531" type="stmt" count="483"/>
      <line num="532" type="stmt" count="220"/>
      <line num="533" type="stmt" count="220"/>
      <line num="535" type="stmt" count="10"/>
      <line num="536" type="stmt" count="10"/>
      <line num="537" type="stmt" count="10"/>
      <line num="538" type="stmt" count="10"/>
      <line num="539" type="stmt" count="10"/>
      <line num="540" type="stmt" count="10"/>
      <line num="541" type="stmt" count="10"/>
      <line num="542" type="stmt" count="10"/>
      <line num="544" type="stmt" count="216"/>
      <line num="546" type="stmt" count="193"/>
      <line num="547" type="stmt" count="4"/>
      <line num="548" type="stmt" count="4"/>
      <line num="549" type="stmt" count="4"/>
      <line num="550" type="stmt" count="4"/>
      <line num="551" type="stmt" count="4"/>
      <line num="553" type="stmt" count="192"/>
      <line num="555" type="stmt" count="192"/>
      <line num="558" type="stmt" count="479"/>
      <line num="567" type="method" name="doLevelFunction" visibility="private" complexity="11" crap="11" count="479"/>
      <line num="568" type="stmt" count="479"/>
      <line num="569" type="stmt" count="479"/>
      <line num="570" type="stmt" count="479"/>
      <line num="571" type="stmt" count="479"/>
      <line num="573" type="stmt" count="155"/>
      <line num="574" type="stmt" count="155"/>
      <line num="575" type="stmt" count="155"/>
      <line num="577" type="stmt" count="155"/>
      <line num="578" type="stmt" count="155"/>
      <line num="579" type="stmt" count="155"/>
      <line num="581" type="stmt" count="134"/>
      <line num="582" type="stmt" count="129"/>
      <line num="583" type="stmt" count="129"/>
      <line num="585" type="stmt" count="7"/>
      <line num="586" type="stmt" count="7"/>
      <line num="591" type="stmt" count="2"/>
      <line num="592" type="stmt" count="2"/>
      <line num="593" type="stmt" count="2"/>
      <line num="594" type="stmt" count="2"/>
      <line num="595" type="stmt" count="2"/>
      <line num="596" type="stmt" count="2"/>
      <line num="597" type="stmt" count="2"/>
      <line num="598" type="stmt" count="2"/>
      <line num="600" type="stmt" count="129"/>
      <line num="602" type="stmt" count="21"/>
      <line num="605" type="stmt" count="146"/>
      <line num="606" type="stmt" count="2"/>
      <line num="607" type="stmt" count="2"/>
      <line num="608" type="stmt" count="2"/>
      <line num="609" type="stmt" count="2"/>
      <line num="610" type="stmt" count="2"/>
      <line num="611" type="stmt" count="2"/>
      <line num="612" type="stmt" count="2"/>
      <line num="613" type="stmt" count="2"/>
      <line num="615" type="stmt" count="146"/>
      <line num="617" type="stmt" count="146"/>
      <line num="618" type="stmt" count="146"/>
      <line num="621" type="stmt" count="478"/>
      <line num="629" type="method" name="doLevelAtom" visibility="private" complexity="16" crap="16" count="478"/>
      <line num="630" type="stmt" count="478"/>
      <line num="631" type="stmt" count="478"/>
      <line num="632" type="stmt" count="478"/>
      <line num="633" type="stmt" count="150"/>
      <line num="635" type="stmt" count="455"/>
      <line num="636" type="stmt" count="415"/>
      <line num="637" type="stmt" count="414"/>
      <line num="638" type="stmt" count="441"/>
      <line num="639" type="stmt" count="441"/>
      <line num="640" type="stmt" count="232"/>
      <line num="641" type="stmt" count="198"/>
      <line num="642" type="stmt" count="198"/>
      <line num="643" type="stmt" count="198"/>
      <line num="646" type="stmt" count="2"/>
      <line num="647" type="stmt" count="2"/>
      <line num="648" type="stmt" count="2"/>
      <line num="649" type="stmt" count="2"/>
      <line num="650" type="stmt" count="2"/>
      <line num="652" type="stmt" count="82"/>
      <line num="653" type="stmt" count="56"/>
      <line num="654" type="stmt" count="56"/>
      <line num="655" type="stmt" count="56"/>
      <line num="656" type="stmt" count="56"/>
      <line num="657" type="stmt" count="56"/>
      <line num="658" type="stmt" count="10"/>
      <line num="661" type="stmt" count="53"/>
      <line num="663" type="stmt" count="53"/>
      <line num="664" type="stmt" count="52"/>
      <line num="666" type="stmt" count="27"/>
      <line num="667" type="stmt" count="1"/>
      <line num="668" type="stmt" count="1"/>
      <line num="669" type="stmt" count="1"/>
      <line num="670" type="stmt" count="1"/>
      <line num="671" type="stmt" count="1"/>
      <line num="675" type="stmt" count="55"/>
      <line num="676" type="stmt" count="55"/>
      <line num="681" type="stmt" count="28"/>
      <line num="682" type="stmt" count="28"/>
      <line num="683" type="stmt" count="28"/>
      <line num="684" type="stmt" count="28"/>
      <line num="685" type="stmt" count="28"/>
      <line num="686" type="stmt" count="28"/>
      <line num="687" type="stmt" count="28"/>
      <line num="688" type="stmt" count="28"/>
      <line num="691" type="stmt" count="474"/>
      <line num="693" type="stmt" count="474"/>
      <line num="702" type="method" name="checkLogDeprecatedVar" visibility="private" complexity="2" crap="2" count="150"/>
      <line num="703" type="stmt" count="150"/>
      <line num="704" type="stmt" count="18"/>
      <metrics loc="708" ncloc="545" classes="1" methods="26" coveredmethods="26" conditionals="0" coveredconditionals="0" statements="340" coveredstatements="340" elements="366" coveredelements="366"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/AbuseFilterTokenizer.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\AbuseFilterTokenizer" namespace="global">
        <metrics complexity="33" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="101" coveredstatements="101" elements="107" coveredelements="107"/>
      </class>
      <line num="75" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="484"/>
      <line num="76" type="stmt" count="484"/>
      <line num="85" type="method" name="getCacheKey" visibility="public" complexity="1" crap="1" count="484"/>
      <line num="86" type="stmt" count="484"/>
      <line num="87" type="stmt" count="484"/>
      <line num="88" type="stmt" count="484"/>
      <line num="97" type="method" name="getTokens" visibility="public" complexity="1" crap="1" count="484"/>
      <line num="98" type="stmt" count="484"/>
      <line num="99" type="stmt" count="484"/>
      <line num="100" type="stmt" count="484"/>
      <line num="101" type="stmt" count="484"/>
      <line num="102" type="stmt" count="484"/>
      <line num="103" type="stmt" count="484"/>
      <line num="104" type="stmt" count="484"/>
      <line num="111" type="method" name="tokenize" visibility="private" complexity="1" crap="1" count="484"/>
      <line num="112" type="stmt" count="484"/>
      <line num="113" type="stmt" count="484"/>
      <line num="116" type="stmt" count="484"/>
      <line num="117" type="stmt" count="484"/>
      <line num="118" type="stmt" count="480"/>
      <line num="119" type="stmt" count="480"/>
      <line num="121" type="stmt" count="480"/>
      <line num="130" type="method" name="nextToken" visibility="private" complexity="15" crap="15" count="484"/>
      <line num="131" type="stmt" count="484"/>
      <line num="132" type="stmt" count="484"/>
      <line num="135" type="stmt" count="484"/>
      <line num="136" type="stmt" count="24"/>
      <line num="137" type="stmt" count="24"/>
      <line num="138" type="stmt" count="1"/>
      <line num="140" type="stmt" count="23"/>
      <line num="144" type="stmt" count="483"/>
      <line num="145" type="stmt" count="483"/>
      <line num="146" type="stmt" count="480"/>
      <line num="149" type="stmt" count="482"/>
      <line num="152" type="stmt" count="482"/>
      <line num="153" type="stmt" count="308"/>
      <line num="154" type="stmt" count="308"/>
      <line num="158" type="stmt" count="479"/>
      <line num="159" type="stmt" count="172"/>
      <line num="162" type="stmt" count="477"/>
      <line num="165" type="stmt" count="477"/>
      <line num="166" type="stmt" count="420"/>
      <line num="167" type="stmt" count="420"/>
      <line num="168" type="stmt" count="420"/>
      <line num="172" type="stmt" count="469"/>
      <line num="173" type="stmt" count="469"/>
      <line num="174" type="stmt" count="319"/>
      <line num="175" type="stmt" count="319"/>
      <line num="176" type="stmt" count="319"/>
      <line num="177" type="stmt" count="319"/>
      <line num="178" type="stmt" count="319"/>
      <line num="179" type="stmt" count="313"/>
      <line num="180" type="stmt" count="313"/>
      <line num="181" type="stmt" count="313"/>
      <line num="182" type="stmt" count="93"/>
      <line num="183" type="stmt" count="313"/>
      <line num="189" type="stmt" count="352"/>
      <line num="190" type="stmt" count="351"/>
      <line num="191" type="stmt" count="351"/>
      <line num="192" type="stmt" count="351"/>
      <line num="193" type="stmt" count="231"/>
      <line num="194" type="stmt" count="310"/>
      <line num="195" type="stmt" count="351"/>
      <line num="198" type="stmt" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="209" type="method" name="readStringLiteral" visibility="private" complexity="14" crap="14" count="172"/>
      <line num="210" type="stmt" count="172"/>
      <line num="211" type="stmt" count="172"/>
      <line num="212" type="stmt" count="172"/>
      <line num="213" type="stmt" count="172"/>
      <line num="214" type="stmt" count="172"/>
      <line num="215" type="stmt" count="171"/>
      <line num="216" type="stmt" count="170"/>
      <line num="217" type="stmt" count="170"/>
      <line num="222" type="stmt" count="169"/>
      <line num="223" type="stmt" count="169"/>
      <line num="224" type="stmt" count="168"/>
      <line num="225" type="stmt" count="168"/>
      <line num="226" type="stmt" count="12"/>
      <line num="227" type="stmt" count="12"/>
      <line num="229" type="stmt" count="1"/>
      <line num="232" type="stmt" count="11"/>
      <line num="233" type="stmt" count="11"/>
      <line num="234" type="stmt" count="3"/>
      <line num="235" type="stmt" count="3"/>
      <line num="236" type="stmt" count="10"/>
      <line num="237" type="stmt" count="2"/>
      <line num="238" type="stmt" count="2"/>
      <line num="239" type="stmt" count="10"/>
      <line num="240" type="stmt" count="4"/>
      <line num="241" type="stmt" count="4"/>
      <line num="242" type="stmt" count="7"/>
      <line num="243" type="stmt" count="1"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="7"/>
      <line num="246" type="stmt" count="1"/>
      <line num="247" type="stmt" count="1"/>
      <line num="248" type="stmt" count="7"/>
      <line num="249" type="stmt" count="2"/>
      <line num="251" type="stmt" count="2"/>
      <line num="252" type="stmt" count="2"/>
      <line num="254" type="stmt" count="2"/>
      <line num="256" type="stmt" count="1"/>
      <line num="258" type="stmt" count="2"/>
      <line num="260" type="stmt" count="7"/>
      <line num="263" type="stmt" count="11"/>
      <line num="273" type="stmt" count="1"/>
      <metrics loc="276" ncloc="216" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="101" coveredstatements="101" elements="107" coveredelements="107"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/Exception/ConditionLimitException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\Exception\ConditionLimitException" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="0" elements="2" coveredelements="0"/>
      </class>
      <line num="9" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="10" type="stmt" count="0"/>
      <metrics loc="13" ncloc="10" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="0" elements="2" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/Exception/ExceptionBase.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\Exception\ExceptionBase" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
      </class>
      <line num="12" type="method" name="toArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="13" type="stmt" count="1"/>
      <line num="14" type="stmt" count="1"/>
      <line num="15" type="stmt" count="1"/>
      <line num="16" type="stmt" count="1"/>
      <line num="24" type="method" name="fromArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <metrics loc="30" ncloc="22" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/Exception/InternalException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\Exception\InternalException" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="11" ncloc="7" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/Exception/UserVisibleException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\Exception\UserVisibleException" namespace="global">
        <metrics complexity="6" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="24" coveredelements="24"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="202"/>
      <line num="25" type="stmt" count="202"/>
      <line num="26" type="stmt" count="202"/>
      <line num="27" type="stmt" count="202"/>
      <line num="29" type="stmt" count="202"/>
      <line num="32" type="method" name="getPosition" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="39" type="method" name="getMessageForLogs" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="43" type="method" name="getMessageObj" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="66" type="method" name="toArray" visibility="public" complexity="1" crap="1" 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="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="80" type="method" name="fromArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <metrics loc="86" ncloc="50" classes="1" methods="6" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="24" coveredelements="24"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/Exception/UserVisibleWarning.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\Exception\UserVisibleWarning" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
      </class>
      <line num="12" type="method" name="getMessageObj" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="15" type="stmt" count="1"/>
      <line num="16" type="stmt" count="1"/>
      <line num="17" type="stmt" count="1"/>
      <line num="18" type="stmt" count="1"/>
      <metrics loc="21" ncloc="16" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/FilterEvaluator.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\FilterEvaluator" namespace="global">
        <metrics complexity="177" methods="64" coveredmethods="57" conditionals="0" coveredconditionals="0" statements="529" coveredstatements="500" elements="593" coveredelements="557"/>
      </class>
      <line num="182" type="method" name="__construct" visibility="public" complexity="2" crap="2.15" count="427"/>
      <line num="193" type="stmt" count="427"/>
      <line num="194" type="stmt" count="427"/>
      <line num="195" type="stmt" count="0"/>
      <line num="204" type="method" name="toggleConditionLimit" visibility="public" complexity="1" crap="1" count="427"/>
      <line num="205" type="stmt" count="427"/>
      <line num="211" type="method" name="raiseCondCount" visibility="private" complexity="3" crap="3.33" count="211"/>
      <line num="212" type="stmt" count="211"/>
      <line num="213" type="stmt" count="211"/>
      <line num="214" type="stmt" count="0"/>
      <line num="218" type="method" name="setVariables" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="219" type="stmt" count="19"/>
      <line num="228" type="method" name="getCacheVersion" visibility="private" complexity="2" crap="3.82" count="425"/>
      <line num="229" type="stmt" count="425"/>
      <line num="230" type="stmt" count="425"/>
      <line num="231" type="stmt" count="425"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="250" type="method" name="resetState" visibility="private" complexity="1" crap="1" count="427"/>
      <line num="251" type="stmt" count="427"/>
      <line num="252" type="stmt" count="427"/>
      <line num="253" type="stmt" count="427"/>
      <line num="254" type="stmt" count="427"/>
      <line num="255" type="stmt" count="427"/>
      <line num="256" type="stmt" count="427"/>
      <line num="265" type="method" name="checkSyntaxThrow" visibility="public" complexity="1" crap="1" count="157"/>
      <line num="266" type="stmt" count="157"/>
      <line num="267" type="stmt" count="157"/>
      <line num="269" type="stmt" count="157"/>
      <line num="270" type="stmt" count="157"/>
      <line num="272" type="stmt" count="157"/>
      <line num="273" type="stmt" count="157"/>
      <line num="276" type="stmt" count="35"/>
      <line num="285" type="method" name="checkSyntax" visibility="public" complexity="2" crap="2.01" count="35"/>
      <line num="286" type="stmt" count="35"/>
      <line num="288" type="stmt" count="35"/>
      <line num="289" type="stmt" count="0"/>
      <line num="292" type="stmt" count="35"/>
      <line num="293" type="stmt" count="35"/>
      <line num="294" type="stmt" count="35"/>
      <line num="295" type="stmt" count="35"/>
      <line num="296" type="stmt" count="35"/>
      <line num="307" type="method" name="checkConditions" visibility="public" complexity="5" crap="5.93" count="13"/>
      <line num="308" type="stmt" count="13"/>
      <line num="309" type="stmt" count="13"/>
      <line num="310" type="stmt" count="13"/>
      <line num="311" type="stmt" count="13"/>
      <line num="313" type="stmt" count="13"/>
      <line num="314" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="317" type="stmt" count="13"/>
      <line num="318" type="stmt" count="13"/>
      <line num="319" type="stmt" count="13"/>
      <line num="320" type="stmt" count="13"/>
      <line num="321" type="stmt" count="13"/>
      <line num="322" type="stmt" count="13"/>
      <line num="323" type="stmt" count="13"/>
      <line num="324" type="stmt" count="13"/>
      <line num="325" type="stmt" count="13"/>
      <line num="326" type="stmt" count="13"/>
      <line num="327" type="stmt" count="13"/>
      <line num="329" type="stmt" count="13"/>
      <line num="330" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <line num="333" type="stmt" count="0"/>
      <line num="336" type="stmt" count="0"/>
      <line num="337" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="339" type="stmt" count="0"/>
      <line num="342" type="stmt" count="13"/>
      <line num="349" type="method" name="parse" visibility="public" complexity="2" crap="2" count="385"/>
      <line num="350" type="stmt" count="385"/>
      <line num="351" type="stmt" count="176"/>
      <line num="358" type="method" name="evaluateExpression" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="359" type="stmt" count="8"/>
      <line num="366" type="method" name="getTree" visibility="private" complexity="1" crap="1" count="425"/>
      <line num="367" type="stmt" count="425"/>
      <line num="368" type="stmt" count="425"/>
      <line num="369" type="stmt" count="425"/>
      <line num="370" type="stmt" count="425"/>
      <line num="371" type="stmt" count="425"/>
      <line num="372" type="stmt" count="425"/>
      <line num="373" type="stmt" count="425"/>
      <line num="374" type="stmt" count="425"/>
      <line num="375" type="stmt" count="425"/>
      <line num="376" type="stmt" count="425"/>
      <line num="377" type="stmt" count="425"/>
      <line num="378" type="stmt" count="425"/>
      <line num="379" type="stmt" count="425"/>
      <line num="380" type="stmt" count="425"/>
      <line num="381" type="stmt" count="425"/>
      <line num="382" type="stmt" count="425"/>
      <line num="383" type="stmt" count="324"/>
      <line num="384" type="stmt" count="324"/>
      <line num="385" type="stmt" count="324"/>
      <line num="386" type="stmt" count="324"/>
      <line num="387" type="stmt" count="324"/>
      <line num="388" type="stmt" count="324"/>
      <line num="389" type="stmt" count="324"/>
      <line num="390" type="stmt" count="255"/>
      <line num="391" type="stmt" count="425"/>
      <line num="392" type="stmt" count="425"/>
      <line num="395" type="method" name="evalTree" visibility="private" complexity="2" crap="2" count="255"/>
      <line num="396" type="stmt" count="255"/>
      <line num="397" type="stmt" count="255"/>
      <line num="399" type="stmt" count="255"/>
      <line num="400" type="stmt" count="2"/>
      <line num="403" type="stmt" count="253"/>
      <line num="404" type="stmt" count="217"/>
      <line num="405" type="stmt" count="217"/>
      <line num="406" type="stmt" count="217"/>
      <line num="407" type="stmt" count="217"/>
      <line num="408" type="stmt" count="217"/>
      <line num="419" type="method" name="getUsedVars" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="420" type="stmt" count="4"/>
      <line num="421" type="stmt" count="4"/>
      <line num="432" type="method" name="evalNode" visibility="private" complexity="55" crap="55" count="253"/>
      <line num="433" type="stmt" count="253"/>
      <line num="434" type="stmt" count="253"/>
      <line num="435" type="stmt" count="253"/>
      <line num="436" type="stmt" count="253"/>
      <line num="437" type="stmt" count="253"/>
      <line num="438" type="stmt" count="97"/>
      <line num="439" type="stmt" count="230"/>
      <line num="440" type="stmt" count="111"/>
      <line num="441" type="stmt" count="188"/>
      <line num="442" type="stmt" count="58"/>
      <line num="443" type="stmt" count="187"/>
      <line num="444" type="stmt" count="150"/>
      <line num="446" type="stmt" count="86"/>
      <line num="447" type="stmt" count="86"/>
      <line num="448" type="stmt" count="86"/>
      <line num="449" type="stmt" count="22"/>
      <line num="450" type="stmt" count="77"/>
      <line num="451" type="stmt" count="76"/>
      <line num="452" type="stmt" count="9"/>
      <line num="453" type="stmt" count="9"/>
      <line num="462" type="stmt" count="251"/>
      <line num="463" type="stmt" count="46"/>
      <line num="466" type="stmt" count="46"/>
      <line num="467" type="stmt" count="45"/>
      <line num="469" type="stmt" count="45"/>
      <line num="471" type="stmt" count="251"/>
      <line num="472" type="stmt" count="77"/>
      <line num="473" type="stmt" count="77"/>
      <line num="475" type="stmt" count="77"/>
      <line num="477" type="stmt" count="77"/>
      <line num="478" type="stmt" count="77"/>
      <line num="481" type="stmt" count="74"/>
      <line num="482" type="stmt" count="233"/>
      <line num="483" type="stmt" count="23"/>
      <line num="485" type="stmt" count="23"/>
      <line num="488" type="stmt" count="23"/>
      <line num="491" type="stmt" count="23"/>
      <line num="492" type="stmt" count="1"/>
      <line num="494" type="stmt" count="22"/>
      <line num="496" type="stmt" count="22"/>
      <line num="497" type="stmt" count="8"/>
      <line num="500" type="stmt" count="17"/>
      <line num="501" type="stmt" count="5"/>
      <line num="504" type="stmt" count="12"/>
      <line num="505" type="stmt" count="12"/>
      <line num="506" type="stmt" count="2"/>
      <line num="507" type="stmt" count="2"/>
      <line num="508" type="stmt" count="10"/>
      <line num="509" type="stmt" count="2"/>
      <line num="512" type="stmt" count="8"/>
      <line num="514" type="stmt" count="233"/>
      <line num="515" type="stmt" count="55"/>
      <line num="516" type="stmt" count="55"/>
      <line num="517" type="stmt" count="55"/>
      <line num="518" type="stmt" count="55"/>
      <line num="520" type="stmt" count="1"/>
      <line num="522" type="stmt" count="232"/>
      <line num="523" type="stmt" count="27"/>
      <line num="524" type="stmt" count="27"/>
      <line num="525" type="stmt" count="27"/>
      <line num="527" type="stmt" count="26"/>
      <line num="528" type="stmt" count="227"/>
      <line num="529" type="stmt" count="15"/>
      <line num="530" type="stmt" count="15"/>
      <line num="531" type="stmt" count="15"/>
      <line num="533" type="stmt" count="225"/>
      <line num="534" type="stmt" count="6"/>
      <line num="535" type="stmt" count="6"/>
      <line num="536" type="stmt" count="6"/>
      <line num="537" type="stmt" count="6"/>
      <line num="539" type="stmt" count="225"/>
      <line num="540" type="stmt" count="26"/>
      <line num="541" type="stmt" count="26"/>
      <line num="542" type="stmt" count="26"/>
      <line num="543" type="stmt" count="26"/>
      <line num="545" type="stmt" count="225"/>
      <line num="546" type="stmt" count="13"/>
      <line num="547" type="stmt" count="13"/>
      <line num="548" type="stmt" count="13"/>
      <line num="549" type="stmt" count="13"/>
      <line num="550" type="stmt" count="13"/>
      <line num="551" type="stmt" count="13"/>
      <line num="555" type="stmt" count="13"/>
      <line num="557" type="stmt" count="224"/>
      <line num="558" type="stmt" count="164"/>
      <line num="559" type="stmt" count="164"/>
      <line num="560" type="stmt" count="162"/>
      <line num="561" type="stmt" count="160"/>
      <line num="562" type="stmt" count="160"/>
      <line num="564" type="stmt" count="142"/>
      <line num="565" type="stmt" count="129"/>
      <line num="566" type="stmt" count="129"/>
      <line num="567" type="stmt" count="129"/>
      <line num="569" type="stmt" count="129"/>
      <line num="570" type="stmt" count="81"/>
      <line num="571" type="stmt" count="81"/>
      <line num="573" type="stmt" count="45"/>
      <line num="575" type="stmt" count="54"/>
      <line num="576" type="stmt" count="54"/>
      <line num="578" type="stmt" count="54"/>
      <line num="579" type="stmt" count="9"/>
      <line num="580" type="stmt" count="9"/>
      <line num="581" type="stmt" count="9"/>
      <line num="582" type="stmt" count="9"/>
      <line num="583" type="stmt" count="8"/>
      <line num="584" type="stmt" count="8"/>
      <line num="586" type="stmt" count="8"/>
      <line num="588" type="stmt" count="3"/>
      <line num="589" type="stmt" count="3"/>
      <line num="590" type="stmt" count="3"/>
      <line num="591" type="stmt" count="3"/>
      <line num="592" type="stmt" count="3"/>
      <line num="595" type="stmt" count="50"/>
      <line num="596" type="stmt" count="37"/>
      <line num="597" type="stmt" count="37"/>
      <line num="598" type="stmt" count="37"/>
      <line num="599" type="stmt" count="37"/>
      <line num="601" type="stmt" count="49"/>
      <line num="602" type="stmt" count="11"/>
      <line num="604" type="stmt" count="11"/>
      <line num="606" type="stmt" count="11"/>
      <line num="607" type="stmt" count="1"/>
      <line num="610" type="stmt" count="10"/>
      <line num="614" type="stmt" count="10"/>
      <line num="616" type="stmt" count="10"/>
      <line num="617" type="stmt" count="9"/>
      <line num="618" type="stmt" count="9"/>
      <line num="619" type="stmt" count="9"/>
      <line num="620" type="stmt" count="1"/>
      <line num="621" type="stmt" count="1"/>
      <line num="622" type="stmt" count="8"/>
      <line num="623" type="stmt" count="2"/>
      <line num="626" type="stmt" count="6"/>
      <line num="627" type="stmt" count="6"/>
      <line num="628" type="stmt" count="6"/>
      <line num="630" type="stmt" count="1"/>
      <line num="631" type="stmt" count="1"/>
      <line num="633" type="stmt" count="7"/>
      <line num="635" type="stmt" count="0"/>
      <line num="638" type="stmt" count="7"/>
      <line num="640" type="stmt" count="49"/>
      <line num="641" type="stmt" count="6"/>
      <line num="643" type="stmt" count="6"/>
      <line num="644" type="stmt" count="6"/>
      <line num="645" type="stmt" count="6"/>
      <line num="647" type="stmt" count="6"/>
      <line num="648" type="stmt" count="1"/>
      <line num="651" type="stmt" count="5"/>
      <line num="652" type="stmt" count="5"/>
      <line num="653" type="stmt" count="5"/>
      <line num="655" type="stmt" count="5"/>
      <line num="657" type="stmt" count="49"/>
      <line num="658" type="stmt" count="49"/>
      <line num="660" type="stmt" count="49"/>
      <line num="661" type="stmt" count="49"/>
      <line num="666" type="stmt" count="39"/>
      <line num="683" type="method" name="callFunc" visibility="private" complexity="8" crap="8" count="74"/>
      <line num="684" type="stmt" count="74"/>
      <line num="690" type="stmt" count="74"/>
      <line num="691" type="stmt" count="74"/>
      <line num="693" type="stmt" count="74"/>
      <line num="694" type="stmt" count="74"/>
      <line num="696" type="stmt" count="1"/>
      <line num="698" type="stmt" count="74"/>
      <line num="704" type="stmt" count="74"/>
      <line num="705" type="stmt" count="74"/>
      <line num="706" type="stmt" count="74"/>
      <line num="707" type="stmt" count="15"/>
      <line num="708" type="stmt" count="15"/>
      <line num="711" type="stmt" count="74"/>
      <line num="713" type="stmt" count="15"/>
      <line num="714" type="stmt" count="11"/>
      <line num="717" type="stmt" count="65"/>
      <line num="719" type="stmt" count="64"/>
      <line num="722" type="stmt" count="64"/>
      <line num="727" type="stmt" count="64"/>
      <line num="740" type="method" name="callKeyword" visibility="private" complexity="4" crap="4" count="26"/>
      <line num="741" type="stmt" count="26"/>
      <line num="742" type="stmt" count="26"/>
      <line num="744" type="stmt" count="26"/>
      <line num="745" type="stmt" count="26"/>
      <line num="746" type="stmt" count="10"/>
      <line num="747" type="stmt" count="10"/>
      <line num="749" type="stmt" count="26"/>
      <line num="750" type="stmt" count="4"/>
      <line num="751" type="stmt" count="4"/>
      <line num="753" type="stmt" count="26"/>
      <line num="757" type="stmt" count="12"/>
      <line num="758" type="stmt" count="10"/>
      <line num="761" type="stmt" count="16"/>
      <line num="763" type="stmt" count="23"/>
      <line num="773" type="method" name="varExists" visibility="private" complexity="2" crap="2" count="105"/>
      <line num="774" type="stmt" count="105"/>
      <line num="775" type="stmt" count="105"/>
      <line num="783" type="method" name="getVarValue" visibility="private" complexity="4" crap="4" count="105"/>
      <line num="784" type="stmt" count="105"/>
      <line num="785" type="stmt" count="105"/>
      <line num="787" type="stmt" count="105"/>
      <line num="788" type="stmt" count="18"/>
      <line num="793" type="stmt" count="105"/>
      <line num="795" type="stmt" count="105"/>
      <line num="798" type="stmt" count="105"/>
      <line num="799" type="stmt" count="70"/>
      <line num="800" type="stmt" count="105"/>
      <line num="801" type="stmt" count="59"/>
      <line num="802" type="stmt" count="105"/>
      <line num="810" type="method" name="setUserVariable" visibility="private" complexity="1" crap="1" count="37"/>
      <line num="811" type="stmt" count="37"/>
      <line num="820" type="method" name="funcLc" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="821" type="stmt" count="5"/>
      <line num="823" type="stmt" count="5"/>
      <line num="830" type="method" name="funcUc" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="831" type="stmt" count="1"/>
      <line num="833" type="stmt" count="1"/>
      <line num="840" type="method" name="funcLen" visibility="private" complexity="2" crap="2" count="10"/>
      <line num="841" type="stmt" count="10"/>
      <line num="843" type="stmt" count="3"/>
      <line num="845" type="stmt" count="7"/>
      <line num="848" type="stmt" count="10"/>
      <line num="855" type="method" name="funcSpecialRatio" visibility="private" complexity="2" crap="2" count="2"/>
      <line num="856" type="stmt" count="2"/>
      <line num="858" type="stmt" count="2"/>
      <line num="859" type="stmt" count="1"/>
      <line num="862" type="stmt" count="2"/>
      <line num="864" type="stmt" count="2"/>
      <line num="866" type="stmt" count="2"/>
      <line num="873" type="method" name="funcCount" visibility="private" complexity="5" crap="5" count="3"/>
      <line num="874" type="stmt" count="3"/>
      <line num="875" type="stmt" count="1"/>
      <line num="878" type="stmt" count="3"/>
      <line num="879" type="stmt" count="2"/>
      <line num="881" type="stmt" count="3"/>
      <line num="882" type="stmt" count="3"/>
      <line num="885" type="stmt" count="3"/>
      <line num="886" type="stmt" count="1"/>
      <line num="888" type="stmt" count="3"/>
      <line num="892" type="stmt" count="3"/>
      <line num="901" type="method" name="funcRCount" visibility="private" complexity="3" crap="3" count="5"/>
      <line num="902" type="stmt" count="5"/>
      <line num="903" type="stmt" count="1"/>
      <line num="905" type="stmt" count="5"/>
      <line num="906" type="stmt" count="5"/>
      <line num="908" type="stmt" count="5"/>
      <line num="910" type="stmt" count="5"/>
      <line num="912" type="stmt" count="5"/>
      <line num="914" type="stmt" count="5"/>
      <line num="915" type="stmt" count="2"/>
      <line num="916" type="stmt" count="2"/>
      <line num="917" type="stmt" count="2"/>
      <line num="918" type="stmt" count="2"/>
      <line num="919" type="stmt" count="2"/>
      <line num="923" type="stmt" count="3"/>
      <line num="935" type="method" name="funcGetMatches" visibility="private" complexity="2" crap="2" count="4"/>
      <line num="936" type="stmt" count="4"/>
      <line num="937" type="stmt" count="4"/>
      <line num="943" type="stmt" count="4"/>
      <line num="948" type="stmt" count="4"/>
      <line num="951" type="stmt" count="4"/>
      <line num="955" type="stmt" count="4"/>
      <line num="956" type="stmt" count="4"/>
      <line num="958" type="stmt" count="4"/>
      <line num="960" type="stmt" count="4"/>
      <line num="962" type="stmt" count="4"/>
      <line num="964" type="stmt" count="4"/>
      <line num="965" type="stmt" count="2"/>
      <line num="966" type="stmt" count="2"/>
      <line num="967" type="stmt" count="2"/>
      <line num="968" type="stmt" count="2"/>
      <line num="969" type="stmt" count="2"/>
      <line num="975" type="stmt" count="2"/>
      <line num="980" type="stmt" count="2"/>
      <line num="989" type="method" name="funcIPInRange" visibility="private" complexity="3" crap="3" count="6"/>
      <line num="990" type="stmt" count="6"/>
      <line num="991" type="stmt" count="6"/>
      <line num="993" type="stmt" count="6"/>
      <line num="994" type="stmt" count="2"/>
      <line num="995" type="stmt" count="2"/>
      <line num="996" type="stmt" count="2"/>
      <line num="997" type="stmt" count="2"/>
      <line num="998" type="stmt" count="2"/>
      <line num="1001" type="stmt" count="4"/>
      <line num="1003" type="stmt" count="4"/>
      <line num="1012" type="method" name="funcIPInRanges" visibility="private" complexity="4" crap="4" count="4"/>
      <line num="1013" type="stmt" count="4"/>
      <line num="1015" type="stmt" count="4"/>
      <line num="1016" type="stmt" count="4"/>
      <line num="1017" type="stmt" count="4"/>
      <line num="1019" type="stmt" count="4"/>
      <line num="1020" type="stmt" count="3"/>
      <line num="1021" type="stmt" count="3"/>
      <line num="1022" type="stmt" count="3"/>
      <line num="1023" type="stmt" count="3"/>
      <line num="1024" type="stmt" count="3"/>
      <line num="1027" type="stmt" count="2"/>
      <line num="1030" type="stmt" count="1"/>
      <line num="1037" type="method" name="funcCCNorm" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="1038" type="stmt" count="2"/>
      <line num="1040" type="stmt" count="2"/>
      <line num="1041" type="stmt" count="2"/>
      <line num="1043" type="stmt" count="2"/>
      <line num="1050" type="method" name="funcSanitize" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="1051" type="stmt" count="1"/>
      <line num="1053" type="stmt" count="1"/>
      <line num="1054" type="stmt" count="1"/>
      <line num="1056" type="stmt" count="1"/>
      <line num="1063" type="method" name="funcContainsAny" visibility="private" complexity="1" crap="1" count="7"/>
      <line num="1064" type="stmt" count="7"/>
      <line num="1066" type="stmt" count="7"/>
      <line num="1073" type="method" name="funcContainsAll" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="1074" type="stmt" count="3"/>
      <line num="1076" type="stmt" count="3"/>
      <line num="1085" type="method" name="funcCCNormContainsAny" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="1086" type="stmt" count="3"/>
      <line num="1088" type="stmt" count="3"/>
      <line num="1097" type="method" name="funcCCNormContainsAll" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="1098" type="stmt" count="2"/>
      <line num="1100" type="stmt" count="2"/>
      <line num="1118" type="method" name="contains" visibility="private" complexity="7" crap="7" count="14"/>
      <line num="1119" type="stmt" count="14"/>
      <line num="1121" type="stmt" count="14"/>
      <line num="1122" type="stmt" count="1"/>
      <line num="1125" type="stmt" count="14"/>
      <line num="1126" type="stmt" count="5"/>
      <line num="1129" type="stmt" count="14"/>
      <line num="1130" type="stmt" count="14"/>
      <line num="1131" type="stmt" count="14"/>
      <line num="1132" type="stmt" count="5"/>
      <line num="1134" type="stmt" count="14"/>
      <line num="1136" type="stmt" count="1"/>
      <line num="1139" type="stmt" count="14"/>
      <line num="1140" type="stmt" count="14"/>
      <line num="1144" type="stmt" count="8"/>
      <line num="1150" type="stmt" count="9"/>
      <line num="1157" type="method" name="funcEqualsToAny" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="1158" type="stmt" count="4"/>
      <line num="1160" type="stmt" count="4"/>
      <line num="1171" type="method" name="equalsToAny" visibility="private" complexity="3" crap="3" count="4"/>
      <line num="1172" type="stmt" count="4"/>
      <line num="1173" type="stmt" count="4"/>
      <line num="1174" type="stmt" count="3"/>
      <line num="1178" type="stmt" count="2"/>
      <line num="1185" type="method" name="ccnorm" visibility="private" complexity="1" crap="1" count="9"/>
      <line num="1186" type="stmt" count="9"/>
      <line num="1193" type="method" name="rmspecials" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="1195" type="stmt" count="6"/>
      <line num="1196" type="stmt" count="6"/>
      <line num="1197" type="stmt" count="6"/>
      <line num="1198" type="stmt" count="6"/>
      <line num="1205" type="method" name="rmdoubles" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="1207" type="stmt" count="6"/>
      <line num="1208" type="stmt" count="6"/>
      <line num="1209" type="stmt" count="6"/>
      <line num="1210" type="stmt" count="6"/>
      <line num="1217" type="method" name="rmwhitespace" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="1218" type="stmt" count="5"/>
      <line num="1225" type="method" name="funcRMSpecials" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="1226" type="stmt" count="3"/>
      <line num="1228" type="stmt" count="3"/>
      <line num="1235" type="method" name="funcRMWhitespace" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="1236" type="stmt" count="1"/>
      <line num="1238" type="stmt" count="1"/>
      <line num="1245" type="method" name="funcRMDoubles" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="1246" type="stmt" count="3"/>
      <line num="1248" type="stmt" count="3"/>
      <line num="1255" type="method" name="funcNorm" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="1256" type="stmt" count="4"/>
      <line num="1258" type="stmt" count="4"/>
      <line num="1259" type="stmt" count="4"/>
      <line num="1260" type="stmt" count="4"/>
      <line num="1261" type="stmt" count="4"/>
      <line num="1263" type="stmt" count="4"/>
      <line num="1270" type="method" name="funcSubstr" visibility="private" complexity="2" crap="2" count="2"/>
      <line num="1271" type="stmt" count="2"/>
      <line num="1272" type="stmt" count="2"/>
      <line num="1273" type="stmt" count="2"/>
      <line num="1275" type="stmt" count="2"/>
      <line num="1277" type="stmt" count="2"/>
      <line num="1284" type="method" name="funcStrPos" visibility="private" complexity="5" crap="5" count="1"/>
      <line num="1285" type="stmt" count="1"/>
      <line num="1286" type="stmt" count="1"/>
      <line num="1287" type="stmt" count="1"/>
      <line num="1290" type="stmt" count="1"/>
      <line num="1291" type="stmt" count="1"/>
      <line num="1295" type="stmt" count="1"/>
      <line num="1296" type="stmt" count="1"/>
      <line num="1298" type="stmt" count="1"/>
      <line num="1300" type="stmt" count="1"/>
      <line num="1301" type="stmt" count="1"/>
      <line num="1304" type="stmt" count="1"/>
      <line num="1311" type="method" name="funcStrReplace" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="1312" type="stmt" count="4"/>
      <line num="1313" type="stmt" count="4"/>
      <line num="1314" type="stmt" count="4"/>
      <line num="1316" type="stmt" count="4"/>
      <line num="1324" type="method" name="funcStrReplaceRegexp" visibility="private" complexity="2" crap="2" count="4"/>
      <line num="1325" type="stmt" count="4"/>
      <line num="1326" type="stmt" count="4"/>
      <line num="1327" type="stmt" count="4"/>
      <line num="1329" type="stmt" count="4"/>
      <line num="1331" type="stmt" count="4"/>
      <line num="1332" type="stmt" count="4"/>
      <line num="1333" type="stmt" count="4"/>
      <line num="1334" type="stmt" count="4"/>
      <line num="1335" type="stmt" count="4"/>
      <line num="1337" type="stmt" count="4"/>
      <line num="1338" type="stmt" count="1"/>
      <line num="1339" type="stmt" count="1"/>
      <line num="1340" type="stmt" count="1"/>
      <line num="1341" type="stmt" count="1"/>
      <line num="1342" type="stmt" count="1"/>
      <line num="1345" type="stmt" count="3"/>
      <line num="1352" type="method" name="funcStrRegexEscape" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="1353" type="stmt" count="3"/>
      <line num="1357" type="stmt" count="3"/>
      <line num="1364" type="method" name="funcSetVar" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="1365" type="stmt" count="1"/>
      <line num="1366" type="stmt" count="1"/>
      <line num="1368" type="stmt" count="1"/>
      <line num="1370" type="stmt" count="1"/>
      <line num="1380" type="method" name="containmentKeyword" visibility="private" complexity="3" crap="3" count="19"/>
      <line num="1381" type="stmt" count="19"/>
      <line num="1382" type="stmt" count="19"/>
      <line num="1384" type="stmt" count="19"/>
      <line num="1385" type="stmt" count="9"/>
      <line num="1388" type="stmt" count="12"/>
      <line num="1396" type="method" name="keywordIn" visibility="private" complexity="1" crap="1" count="14"/>
      <line num="1397" type="stmt" count="14"/>
      <line num="1405" type="method" name="keywordContains" visibility="private" complexity="1" crap="1" count="7"/>
      <line num="1406" type="stmt" count="7"/>
      <line num="1414" type="method" name="keywordLike" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="1415" type="stmt" count="2"/>
      <line num="1416" type="stmt" count="2"/>
      <line num="1418" type="stmt" count="2"/>
      <line num="1420" type="stmt" count="2"/>
      <line num="1431" type="method" name="keywordRegex" visibility="private" complexity="2" crap="2" count="7"/>
      <line num="1432" type="stmt" count="7"/>
      <line num="1433" type="stmt" count="7"/>
      <line num="1435" type="stmt" count="7"/>
      <line num="1437" type="stmt" count="7"/>
      <line num="1439" type="stmt" count="7"/>
      <line num="1440" type="stmt" count="7"/>
      <line num="1441" type="stmt" count="3"/>
      <line num="1442" type="stmt" count="3"/>
      <line num="1447" type="stmt" count="3"/>
      <line num="1448" type="stmt" count="3"/>
      <line num="1451" type="stmt" count="4"/>
      <line num="1460" type="method" name="keywordRegexInsensitive" visibility="private" complexity="1" crap="1" count="2"/>
      <line num="1461" type="stmt" count="2"/>
      <line num="1468" type="method" name="castString" visibility="private" complexity="1" crap="1" count="7"/>
      <line num="1469" type="stmt" count="7"/>
      <line num="1476" type="method" name="castInt" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="1477" type="stmt" count="3"/>
      <line num="1484" type="method" name="castFloat" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="1485" type="stmt" count="4"/>
      <line num="1492" type="method" name="castBool" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="1493" type="stmt" count="1"/>
      <line num="1501" type="method" name="maybeDiscardNode" visibility="private" complexity="2" crap="2" count="89"/>
      <line num="1502" type="stmt" count="89"/>
      <line num="1503" type="stmt" count="46"/>
      <line num="1515" type="method" name="checkRegexMatchesEmpty" visibility="private" complexity="3" crap="6.80" count="20"/>
      <line num="1516" type="stmt" count="20"/>
      <line num="1518" type="stmt" count="0"/>
      <line num="1522" type="stmt" count="20"/>
      <line num="1523" type="stmt" count="0"/>
      <line num="1524" type="stmt" count="0"/>
      <line num="1525" type="stmt" count="0"/>
      <line num="1526" type="stmt" count="0"/>
      <line num="1527" type="stmt" count="0"/>
      <metrics loc="1531" ncloc="1069" classes="1" methods="64" coveredmethods="57" conditionals="0" coveredconditionals="0" statements="529" coveredstatements="500" elements="593" coveredelements="557"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/ParserStatus.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\ParserStatus" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="10" coveredelements="10"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="19" type="stmt" count="3"/>
      <line num="21" type="method" name="getException" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="28" type="method" name="getWarnings" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="32" type="method" name="getCondsUsed" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="40" type="method" name="isValid" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <metrics loc="44" ncloc="32" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="10" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/RuleCheckerFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\RuleCheckerFactory" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="14" coveredelements="14"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="34" type="method" name="newRuleChecker" visibility="public" complexity="1" crap="1" 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="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" 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"/>
      <metrics loc="48" ncloc="44" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="14" coveredelements="14"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/RuleCheckerStatus.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\RuleCheckerStatus" namespace="global">
        <metrics complexity="6" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="23" elements="28" coveredelements="28"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="23" type="stmt" count="3"/>
      <line num="26" type="method" name="getResult" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="30" type="method" name="getWarmCache" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="31" type="stmt" count="3"/>
      <line num="37" type="method" name="toArray" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="38" type="stmt" count="2"/>
      <line num="39" type="stmt" count="2"/>
      <line num="40" type="stmt" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="42" type="stmt" count="2"/>
      <line num="43" type="stmt" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="57" type="method" name="fromArray" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <metrics loc="68" ncloc="53" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="23" coveredstatements="23" elements="28" coveredelements="28"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Parser/SyntaxChecker.php">
      <class name="MediaWiki\Extension\AbuseFilter\Parser\SyntaxChecker" namespace="global">
        <metrics complexity="80" methods="17" coveredmethods="17" conditionals="0" coveredconditionals="0" statements="272" coveredstatements="272" elements="289" coveredelements="289"/>
      </class>
      <line num="63" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="375"/>
      <line num="69" type="stmt" count="375"/>
      <line num="70" type="stmt" count="375"/>
      <line num="78" type="method" name="start" visibility="public" complexity="4" crap="4" count="375"/>
      <line num="79" type="stmt" count="375"/>
      <line num="80" type="stmt" count="2"/>
      <line num="82" type="stmt" count="373"/>
      <line num="83" type="stmt" count="273"/>
      <line num="84" type="stmt" count="273"/>
      <line num="85" type="stmt" count="3"/>
      <line num="86" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="88" type="stmt" count="3"/>
      <line num="89" type="stmt" count="3"/>
      <line num="112" type="method" name="desugar" visibility="private" complexity="23" crap="23" count="373"/>
      <line num="113" type="stmt" count="373"/>
      <line num="114" type="stmt" count="373"/>
      <line num="115" type="stmt" count="372"/>
      <line num="117" type="stmt" count="368"/>
      <line num="118" type="stmt" count="144"/>
      <line num="119" type="stmt" count="3"/>
      <line num="121" type="stmt" count="144"/>
      <line num="123" type="stmt" count="342"/>
      <line num="124" type="stmt" count="27"/>
      <line num="126" type="stmt" count="342"/>
      <line num="127" type="stmt" count="10"/>
      <line num="129" type="stmt" count="342"/>
      <line num="130" type="stmt" count="341"/>
      <line num="131" type="stmt" count="338"/>
      <line num="132" type="stmt" count="87"/>
      <line num="134" type="stmt" count="335"/>
      <line num="140" type="stmt" count="16"/>
      <line num="142" type="stmt" count="335"/>
      <line num="143" type="stmt" count="332"/>
      <line num="144" type="stmt" count="332"/>
      <line num="145" type="stmt" count="331"/>
      <line num="146" type="stmt" count="204"/>
      <line num="148" type="stmt" count="249"/>
      <line num="149" type="stmt" count="200"/>
      <line num="150" type="stmt" count="200"/>
      <line num="151" type="stmt" count="200"/>
      <line num="152" type="stmt" count="200"/>
      <line num="154" type="stmt" count="1"/>
      <line num="157" type="stmt" count="127"/>
      <line num="158" type="stmt" count="107"/>
      <line num="159" type="stmt" count="101"/>
      <line num="161" type="stmt" count="104"/>
      <line num="162" type="stmt" count="32"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="168" type="stmt" count="2"/>
      <line num="169" type="stmt" count="2"/>
      <line num="170" type="stmt" count="2"/>
      <line num="171" type="stmt" count="2"/>
      <line num="173" type="stmt" count="32"/>
      <line num="175" type="stmt" count="87"/>
      <line num="176" type="stmt" count="87"/>
      <line num="178" type="stmt" count="87"/>
      <line num="179" type="stmt" count="87"/>
      <line num="180" type="stmt" count="87"/>
      <line num="181" type="stmt" count="87"/>
      <line num="182" type="stmt" count="87"/>
      <line num="183" type="stmt" count="87"/>
      <line num="184" type="stmt" count="87"/>
      <line num="185" type="stmt" count="87"/>
      <line num="186" type="stmt" count="87"/>
      <line num="187" type="stmt" count="87"/>
      <line num="188" type="stmt" count="87"/>
      <line num="189" type="stmt" count="87"/>
      <line num="190" type="stmt" count="87"/>
      <line num="191" type="stmt" count="87"/>
      <line num="192" type="stmt" count="87"/>
      <line num="193" type="stmt" count="87"/>
      <line num="194" type="stmt" count="87"/>
      <line num="210" type="method" name="desugarAndOr" visibility="private" complexity="3" crap="3" count="200"/>
      <line num="216" type="stmt" count="200"/>
      <line num="217" type="stmt" count="200"/>
      <line num="218" type="stmt" count="200"/>
      <line num="219" type="stmt" count="200"/>
      <line num="220" type="stmt" count="200"/>
      <line num="221" type="stmt" count="200"/>
      <line num="222" type="stmt" count="200"/>
      <line num="223" type="stmt" count="200"/>
      <line num="224" type="stmt" count="200"/>
      <line num="225" type="stmt" count="200"/>
      <line num="226" type="stmt" count="200"/>
      <line num="227" type="stmt" count="200"/>
      <line num="228" type="stmt" count="200"/>
      <line num="229" type="stmt" count="200"/>
      <line num="230" type="stmt" count="200"/>
      <line num="231" type="stmt" count="200"/>
      <line num="232" type="stmt" count="200"/>
      <line num="233" type="stmt" count="200"/>
      <line num="234" type="stmt" count="200"/>
      <line num="235" type="stmt" count="200"/>
      <line num="236" type="stmt" count="200"/>
      <line num="237" type="stmt" count="200"/>
      <line num="238" type="stmt" count="200"/>
      <line num="239" type="stmt" count="200"/>
      <line num="240" type="stmt" count="200"/>
      <line num="241" type="stmt" count="200"/>
      <line num="242" type="stmt" count="200"/>
      <line num="244" type="stmt" count="200"/>
      <line num="248" type="stmt" count="178"/>
      <line num="249" type="stmt" count="178"/>
      <line num="250" type="stmt" count="178"/>
      <line num="251" type="stmt" count="178"/>
      <line num="252" type="stmt" count="178"/>
      <line num="253" type="stmt" count="178"/>
      <line num="254" type="stmt" count="178"/>
      <line num="255" type="stmt" count="178"/>
      <line num="256" type="stmt" count="178"/>
      <line num="257" type="stmt" count="31"/>
      <line num="261" type="stmt" count="31"/>
      <line num="262" type="stmt" count="31"/>
      <line num="263" type="stmt" count="31"/>
      <line num="264" type="stmt" count="31"/>
      <line num="265" type="stmt" count="31"/>
      <line num="266" type="stmt" count="31"/>
      <line num="267" type="stmt" count="31"/>
      <line num="268" type="stmt" count="31"/>
      <line num="269" type="stmt" count="31"/>
      <line num="285" type="method" name="newNode" visibility="private" complexity="1" crap="1" count="364"/>
      <line num="286" type="stmt" count="364"/>
      <line num="297" type="method" name="newNodeReplaceType" visibility="private" complexity="1" crap="1" count="305"/>
      <line num="301" type="stmt" count="305"/>
      <line num="310" type="method" name="newNodeMapAll" visibility="private" complexity="2" crap="2" count="138"/>
      <line num="311" type="stmt" count="138"/>
      <line num="312" type="stmt" count="138"/>
      <line num="320" type="stmt" count="138"/>
      <line num="329" type="method" name="newNodeMapExceptFirst" visibility="private" complexity="2" crap="2" count="344"/>
      <line num="330" type="stmt" count="344"/>
      <line num="331" type="stmt" count="344"/>
      <line num="332" type="stmt" count="344"/>
      <line num="333" type="stmt" count="343"/>
      <line num="335" type="stmt" count="344"/>
      <line num="344" type="method" name="newNodeBinop" visibility="private" complexity="1" crap="1" count="305"/>
      <line num="345" type="stmt" count="305"/>
      <line num="346" type="stmt" count="305"/>
      <line num="347" type="stmt" count="305"/>
      <line num="348" type="stmt" count="305"/>
      <line num="358" type="method" name="newNodeNamedBinop" visibility="private" complexity="1" crap="1" count="35"/>
      <line num="362" type="stmt" count="35"/>
      <line num="363" type="stmt" count="35"/>
      <line num="364" type="stmt" count="35"/>
      <line num="365" type="stmt" count="35"/>
      <line num="366" type="stmt" count="35"/>
      <line num="367" type="stmt" count="35"/>
      <line num="397" type="method" name="check" visibility="private" complexity="19" crap="19" count="373"/>
      <line num="398" type="stmt" count="373"/>
      <line num="400" type="stmt" count="373"/>
      <line num="401" type="stmt" count="364"/>
      <line num="402" type="stmt" count="364"/>
      <line num="403" type="stmt" count="364"/>
      <line num="404" type="stmt" count="364"/>
      <line num="408" type="stmt" count="364"/>
      <line num="409" type="stmt" count="368"/>
      <line num="411" type="stmt" count="50"/>
      <line num="412" type="stmt" count="48"/>
      <line num="414" type="stmt" count="50"/>
      <line num="416" type="stmt" count="368"/>
      <line num="417" type="stmt" count="222"/>
      <line num="418" type="stmt" count="222"/>
      <line num="419" type="stmt" count="222"/>
      <line num="420" type="stmt" count="4"/>
      <line num="421" type="stmt" count="4"/>
      <line num="422" type="stmt" count="4"/>
      <line num="423" type="stmt" count="4"/>
      <line num="424" type="stmt" count="4"/>
      <line num="426" type="stmt" count="218"/>
      <line num="428" type="stmt" count="171"/>
      <line num="430" type="stmt" count="97"/>
      <line num="433" type="stmt" count="97"/>
      <line num="434" type="stmt" count="97"/>
      <line num="436" type="stmt" count="4"/>
      <line num="437" type="stmt" count="4"/>
      <line num="438" type="stmt" count="4"/>
      <line num="439" type="stmt" count="4"/>
      <line num="440" type="stmt" count="4"/>
      <line num="443" type="stmt" count="93"/>
      <line num="445" type="stmt" count="93"/>
      <line num="446" type="stmt" count="93"/>
      <line num="447" type="stmt" count="93"/>
      <line num="448" type="stmt" count="93"/>
      <line num="449" type="stmt" count="93"/>
      <line num="451" type="stmt" count="83"/>
      <line num="452" type="stmt" count="83"/>
      <line num="454" type="stmt" count="83"/>
      <line num="457" type="stmt" count="337"/>
      <line num="458" type="stmt" count="207"/>
      <line num="459" type="stmt" count="207"/>
      <line num="461" type="stmt" count="290"/>
      <line num="462" type="stmt" count="54"/>
      <line num="463" type="stmt" count="54"/>
      <line num="465" type="stmt" count="248"/>
      <line num="466" type="stmt" count="16"/>
      <line num="467" type="stmt" count="16"/>
      <line num="469" type="stmt" count="246"/>
      <line num="470" type="stmt" count="225"/>
      <line num="471" type="stmt" count="225"/>
      <line num="472" type="stmt" count="223"/>
      <line num="473" type="stmt" count="158"/>
      <line num="474" type="stmt" count="146"/>
      <line num="475" type="stmt" count="146"/>
      <line num="476" type="stmt" count="146"/>
      <line num="480" type="stmt" count="146"/>
      <line num="482" type="stmt" count="93"/>
      <line num="483" type="stmt" count="23"/>
      <line num="486" type="stmt" count="23"/>
      <line num="487" type="stmt" count="19"/>
      <line num="488" type="stmt" count="17"/>
      <line num="490" type="stmt" count="17"/>
      <line num="492" type="stmt" count="86"/>
      <line num="493" type="stmt" count="15"/>
      <line num="496" type="stmt" count="15"/>
      <line num="497" type="stmt" count="12"/>
      <line num="499" type="stmt" count="12"/>
      <line num="501" type="stmt" count="81"/>
      <line num="503" type="stmt" count="81"/>
      <line num="504" type="stmt" count="81"/>
      <line num="506" type="stmt" count="73"/>
      <line num="520" type="method" name="mapUnion" visibility="private" complexity="4" crap="4" count="136"/>
      <line num="521" type="stmt" count="136"/>
      <line num="522" type="stmt" count="54"/>
      <line num="523" type="stmt" count="52"/>
      <line num="525" type="stmt" count="6"/>
      <line num="528" type="stmt" count="136"/>
      <line num="536" type="method" name="mapIntersect" visibility="private" complexity="3" crap="3" count="10"/>
      <line num="537" type="stmt" count="10"/>
      <line num="538" type="stmt" count="10"/>
      <line num="539" type="stmt" count="10"/>
      <line num="540" type="stmt" count="8"/>
      <line num="542" type="stmt" count="10"/>
      <line num="551" type="method" name="assignVar" visibility="private" complexity="2" crap="2" count="98"/>
      <line num="552" type="stmt" count="98"/>
      <line num="553" type="stmt" count="98"/>
      <line num="554" type="stmt" count="14"/>
      <line num="555" type="stmt" count="14"/>
      <line num="556" type="stmt" count="14"/>
      <line num="557" type="stmt" count="14"/>
      <line num="558" type="stmt" count="14"/>
      <line num="560" type="stmt" count="84"/>
      <line num="561" type="stmt" count="84"/>
      <line num="570" type="method" name="lookupVar" visibility="private" complexity="5" crap="5" count="164"/>
      <line num="571" type="stmt" count="164"/>
      <line num="572" type="stmt" count="164"/>
      <line num="574" type="stmt" count="74"/>
      <line num="575" type="stmt" count="74"/>
      <line num="576" type="stmt" count="98"/>
      <line num="578" type="stmt" count="1"/>
      <line num="579" type="stmt" count="1"/>
      <line num="580" type="stmt" count="1"/>
      <line num="581" type="stmt" count="1"/>
      <line num="582" type="stmt" count="1"/>
      <line num="583" type="stmt" count="97"/>
      <line num="585" type="stmt" count="68"/>
      <line num="586" type="stmt" count="30"/>
      <line num="588" type="stmt" count="5"/>
      <line num="589" type="stmt" count="5"/>
      <line num="590" type="stmt" count="5"/>
      <line num="591" type="stmt" count="5"/>
      <line num="592" type="stmt" count="5"/>
      <line num="595" type="stmt" count="25"/>
      <line num="596" type="stmt" count="25"/>
      <line num="597" type="stmt" count="25"/>
      <line num="598" type="stmt" count="25"/>
      <line num="599" type="stmt" count="25"/>
      <line num="611" type="method" name="checkArgCount" visibility="private" complexity="5" crap="5" count="218"/>
      <line num="612" type="stmt" count="218"/>
      <line num="617" type="stmt" count="218"/>
      <line num="618" type="stmt" count="218"/>
      <line num="619" type="stmt" count="39"/>
      <line num="620" type="stmt" count="39"/>
      <line num="621" type="stmt" count="39"/>
      <line num="622" type="stmt" count="39"/>
      <line num="623" type="stmt" count="39"/>
      <line num="624" type="stmt" count="179"/>
      <line num="625" type="stmt" count="8"/>
      <line num="626" type="stmt" count="8"/>
      <line num="627" type="stmt" count="8"/>
      <line num="628" type="stmt" count="8"/>
      <line num="629" type="stmt" count="8"/>
      <line num="640" type="method" name="isReservedIdentifier" visibility="private" complexity="3" crap="3" count="120"/>
      <line num="641" type="stmt" count="120"/>
      <line num="642" type="stmt" count="120"/>
      <line num="645" type="stmt" count="120"/>
      <metrics loc="648" ncloc="434" classes="1" methods="17" coveredmethods="17" conditionals="0" coveredconditionals="0" statements="272" coveredstatements="272" elements="289" coveredelements="289"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ProtectedVarsAccessLogger.php">
      <class name="MediaWiki\Extension\AbuseFilter\ProtectedVarsAccessLogger" namespace="global">
        <metrics complexity="11" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="64" coveredstatements="64" elements="68" coveredelements="68"/>
      </class>
      <line num="44" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="52" type="stmt" count="9"/>
      <line num="63" type="method" name="logViewProtectedVariableValue" visibility="public" complexity="2" crap="2" count="9"/>
      <line num="69" type="stmt" count="9"/>
      <line num="70" type="stmt" count="9"/>
      <line num="74" type="stmt" count="9"/>
      <line num="77" type="stmt" count="9"/>
      <line num="78" type="stmt" count="9"/>
      <line num="79" type="stmt" count="9"/>
      <line num="80" 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="96" type="method" name="createProtectedVariableValueAccessLog" visibility="private" complexity="7" crap="7" count="9"/>
      <line num="104" type="stmt" count="9"/>
      <line num="105" type="stmt" count="9"/>
      <line num="106" type="stmt" count="9"/>
      <line num="107" type="stmt" count="9"/>
      <line num="108" type="stmt" count="9"/>
      <line num="109" type="stmt" count="9"/>
      <line num="110" type="stmt" count="9"/>
      <line num="111" type="stmt" count="9"/>
      <line num="113" type="stmt" count="1"/>
      <line num="116" type="stmt" count="8"/>
      <line num="117" type="stmt" count="8"/>
      <line num="121" type="stmt" count="8"/>
      <line num="122" type="stmt" count="8"/>
      <line num="123" type="stmt" count="8"/>
      <line num="124" type="stmt" count="8"/>
      <line num="125" type="stmt" count="2"/>
      <line num="127" type="stmt" count="6"/>
      <line num="128" type="stmt" 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="139" type="stmt" count="6"/>
      <line num="140" 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="146" type="stmt" count="6"/>
      <line num="147" type="stmt" count="6"/>
      <line num="148" type="stmt" count="4"/>
      <line num="152" type="stmt" count="6"/>
      <line num="156" type="stmt" count="8"/>
      <line num="157" type="stmt" count="8"/>
      <line num="158" type="stmt" count="8"/>
      <line num="159" type="stmt" count="8"/>
      <line num="160" type="stmt" count="8"/>
      <line num="161" type="stmt" count="8"/>
      <line num="164" type="stmt" count="8"/>
      <line num="165" type="stmt" count="1"/>
      <line num="166" type="stmt" count="1"/>
      <line num="167" type="stmt" count="1"/>
      <line num="168" type="stmt" count="1"/>
      <line num="169" type="stmt" count="1"/>
      <line num="170" type="stmt" count="1"/>
      <line num="172" type="stmt" count="1"/>
      <line num="183" type="method" name="createManualLogEntry" visibility="protected" complexity="1" crap="1" count="7"/>
      <line num="184" type="stmt" count="7"/>
      <metrics loc="187" ncloc="134" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="64" coveredstatements="64" elements="68" coveredelements="68"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/RegexpUtils.php">
      <class name="MediaWiki\Extension\AbuseFilter\RegexpUtils" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="2" elements="3" coveredelements="3"/>
      </class>
      <line num="17" type="method" name="buildPattern" visibility="public" complexity="2" crap="2" count="8"/>
      <line num="18" type="stmt" count="8"/>
      <line num="20" type="stmt" count="8"/>
      <metrics loc="23" ncloc="12" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="2" coveredstatements="2" elements="3" coveredelements="3"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/RunnerData.php">
      <class name="MediaWiki\Extension\AbuseFilter\RunnerData" namespace="global">
        <metrics complexity="11" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="36" elements="46" coveredelements="46"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="25" type="stmt" count="5"/>
      <line num="35" type="method" name="record" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="38" type="stmt" count="1"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="54" type="method" name="getMatchesMap" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="64" type="method" name="getAllFilters" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <line num="71" type="method" name="getMatchedFilters" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="78" type="method" name="getProfilingData" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="79" type="stmt" count="3"/>
      <line num="82" type="method" name="getTotalRuntime" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="83" type="stmt" count="3"/>
      <line num="86" type="method" name="getTotalConditions" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="94" type="method" name="toArray" visibility="public" complexity="1" crap="1" 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="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="111" type="method" name="fromArray" visibility="public" complexity="1" crap="1" 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="115" type="stmt" count="1"/>
      <line num="116" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <metrics loc="121" ncloc="82" classes="1" methods="10" coveredmethods="10" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="36" elements="46" coveredelements="46"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ServiceNames.php">
      <class name="MediaWiki\Extension\AbuseFilter\ServiceNames" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="59" ncloc="54" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ServiceWiring.php">
      <metrics loc="516" ncloc="506" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Special/AbuseFilterSpecialPage.php">
      <class name="MediaWiki\Extension\AbuseFilter\Special\AbuseFilterSpecialPage" namespace="global">
        <metrics complexity="10" methods="5" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="3" elements="53" coveredelements="4"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="24"/>
      <line num="23" type="stmt" count="24"/>
      <line num="29" type="method" name="getShortDescription" visibility="public" complexity="1" crap="2" 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="37" type="stmt" count="0"/>
      <line num="43" type="method" name="getNavigationLinksInternal" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="44" 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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="52" type="stmt" 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="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="73" type="method" name="getAssociatedNavigationLinks" visibility="public" complexity="1" crap="2" 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="85" type="method" name="addNavigationLinks" visibility="protected" complexity="4" crap="15.46" count="13"/>
      <line num="87" type="stmt" count="13"/>
      <line num="88" type="stmt" count="13"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <metrics loc="120" ncloc="93" classes="1" methods="5" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="3" elements="53" coveredelements="4"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Special/BlockedExternalDomains.php">
      <class name="MediaWiki\Extension\AbuseFilter\Special\BlockedExternalDomains" namespace="global">
        <metrics complexity="6" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="0" elements="25" coveredelements="0"/>
      </class>
      <line num="37" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="46" type="method" name="doesWrites" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="51" type="method" name="execute" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="52" type="stmt" 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="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="74" type="method" name="getGroupName" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="79" type="method" name="isListed" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <metrics loc="83" ncloc="56" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="0" elements="25" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Special/SpecialAbuseFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Special\SpecialAbuseFilter" namespace="global">
        <metrics complexity="32" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="68" coveredstatements="68" elements="75" coveredelements="75"/>
      </class>
      <line num="113" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="58"/>
      <line num="117" type="stmt" count="58"/>
      <line num="121" type="method" name="getRestriction" visibility="public" complexity="1" crap="1" count="15"/>
      <line num="122" type="stmt" count="15"/>
      <line num="144" type="method" name="execute" visibility="public" complexity="2" crap="2" count="15"/>
      <line num="145" type="stmt" count="15"/>
      <line num="147" type="stmt" count="15"/>
      <line num="148" type="stmt" count="15"/>
      <line num="149" type="stmt" count="15"/>
      <line num="151" type="stmt" count="15"/>
      <line num="153" type="stmt" count="14"/>
      <line num="154" type="stmt" count="14"/>
      <line num="155" type="stmt" count="14"/>
      <line num="157" type="stmt" count="1"/>
      <line num="159" type="stmt" count="1"/>
      <line num="160" 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="168" type="stmt" count="1"/>
      <line num="169" type="stmt" count="1"/>
      <line num="170" type="stmt" count="1"/>
      <line num="171" type="stmt" count="1"/>
      <line num="174" type="stmt" count="14"/>
      <line num="177" type="stmt" count="14"/>
      <line num="179" type="stmt" count="14"/>
      <line num="180" type="stmt" count="14"/>
      <line num="190" type="method" name="instantiateView" visibility="public" complexity="1" crap="1" count="23"/>
      <line num="191" type="stmt" count="23"/>
      <line num="192" type="stmt" count="23"/>
      <line num="193" type="stmt" count="23"/>
      <line num="194" type="stmt" count="23"/>
      <line num="195" type="stmt" count="23"/>
      <line num="207" type="method" name="getViewClassAndPageType" visibility="public" complexity="21" crap="21" count="48"/>
      <line num="209" type="stmt" count="48"/>
      <line num="211" type="stmt" count="48"/>
      <line num="212" type="stmt" count="1"/>
      <line num="215" type="stmt" count="47"/>
      <line num="216" type="stmt" count="1"/>
      <line num="219" type="stmt" count="46"/>
      <line num="220" type="stmt" count="2"/>
      <line num="221" type="stmt" count="2"/>
      <line num="222" type="stmt" count="2"/>
      <line num="223" type="stmt" count="2"/>
      <line num="224" type="stmt" count="2"/>
      <line num="227" type="stmt" count="44"/>
      <line num="229" type="stmt" count="44"/>
      <line num="230" type="stmt" count="44"/>
      <line num="232" type="stmt" count="1"/>
      <line num="235" type="stmt" count="43"/>
      <line num="236" type="stmt" count="2"/>
      <line num="239" type="stmt" count="41"/>
      <line num="240" type="stmt" count="17"/>
      <line num="243" type="stmt" count="24"/>
      <line num="244" type="stmt" count="14"/>
      <line num="245" type="stmt" count="4"/>
      <line num="246" type="stmt" count="4"/>
      <line num="248" type="stmt" count="10"/>
      <line num="249" type="stmt" count="2"/>
      <line num="250" type="stmt" count="2"/>
      <line num="251" type="stmt" count="2"/>
      <line num="252" type="stmt" count="2"/>
      <line num="253" type="stmt" count="2"/>
      <line num="255" type="stmt" count="8"/>
      <line num="257" type="stmt" count="4"/>
      <line num="262" type="stmt" count="14"/>
      <line num="272" type="method" name="isPositiveInteger" visibility="private" complexity="3" crap="3" count="4"/>
      <line num="273" type="stmt" count="4"/>
      <line num="274" type="stmt" count="2"/>
      <line num="276" type="stmt" count="2"/>
      <line num="285" type="method" name="getTitleForSubpage" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="286" type="stmt" count="1"/>
      <metrics loc="289" ncloc="244" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="68" coveredstatements="68" elements="75" coveredelements="75"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Special/SpecialAbuseLog.php">
      <class name="MediaWiki\Extension\AbuseFilter\Special\SpecialAbuseLog" namespace="global">
        <metrics complexity="131" methods="20" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="684" coveredstatements="331" elements="704" coveredelements="336"/>
      </class>
      <line num="113" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="27"/>
      <line num="130" type="stmt" count="27"/>
      <line num="131" type="stmt" count="27"/>
      <line num="132" type="stmt" count="27"/>
      <line num="136" type="method" name="getRestriction" visibility="public" complexity="1" crap="1" count="27"/>
      <line num="137" type="stmt" count="27"/>
      <line num="178" type="method" name="execute" visibility="public" complexity="8" crap="8.06" count="27"/>
      <line num="179" type="stmt" count="27"/>
      <line num="181" type="stmt" count="27"/>
      <line num="183" type="stmt" count="27"/>
      <line num="184" type="stmt" count="27"/>
      <line num="185" type="stmt" count="27"/>
      <line num="187" type="stmt" count="27"/>
      <line num="189" type="stmt" count="27"/>
      <line num="191" type="stmt" count="27"/>
      <line num="193" type="stmt" count="27"/>
      <line num="195" type="stmt" count="27"/>
      <line num="196" type="stmt" count="0"/>
      <line num="197" type="stmt" count="27"/>
      <line num="198" type="stmt" count="9"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="9"/>
      <line num="201" type="stmt" count="3"/>
      <line num="203" type="stmt" count="6"/>
      <line num="206" type="stmt" count="18"/>
      <line num="207" type="stmt" count="18"/>
      <line num="208" type="stmt" count="18"/>
      <line num="215" type="method" name="getShortDescription" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="222" type="method" name="loadParameters" visibility="public" complexity="4" crap="4.02" count="27"/>
      <line num="223" type="stmt" count="27"/>
      <line num="225" type="stmt" count="27"/>
      <line num="226" type="stmt" count="27"/>
      <line num="227" type="stmt" count="27"/>
      <line num="228" type="stmt" count="27"/>
      <line num="229" type="stmt" count="0"/>
      <line num="232" type="stmt" count="27"/>
      <line num="233" type="stmt" count="27"/>
      <line num="234" type="stmt" count="27"/>
      <line num="236" type="stmt" count="27"/>
      <line num="237" type="stmt" count="27"/>
      <line num="238" type="stmt" count="27"/>
      <line num="239" type="stmt" count="11"/>
      <line num="240" type="stmt" count="11"/>
      <line num="241" type="stmt" count="0"/>
      <line num="245" type="stmt" count="27"/>
      <line num="246" type="stmt" count="27"/>
      <line num="247" type="stmt" count="27"/>
      <line num="248" type="stmt" count="27"/>
      <line num="254" type="method" name="getAllFilterableActions" visibility="private" complexity="1" crap="1" count="18"/>
      <line num="255" type="stmt" count="18"/>
      <line num="256" type="stmt" count="18"/>
      <line num="257" type="stmt" count="18"/>
      <line num="258" type="stmt" count="18"/>
      <line num="259" type="stmt" count="18"/>
      <line num="260" type="stmt" count="18"/>
      <line num="261" type="stmt" count="18"/>
      <line num="262" type="stmt" count="18"/>
      <line num="263" type="stmt" count="18"/>
      <line num="269" type="method" name="searchForm" visibility="public" complexity="7" crap="7.50" count="18"/>
      <line num="270" type="stmt" count="18"/>
      <line num="271" type="stmt" count="18"/>
      <line num="272" type="stmt" count="18"/>
      <line num="273" type="stmt" count="18"/>
      <line num="274" type="stmt" count="18"/>
      <line num="275" type="stmt" count="18"/>
      <line num="276" type="stmt" count="18"/>
      <line num="277" type="stmt" count="18"/>
      <line num="278" type="stmt" count="18"/>
      <line num="279" type="stmt" count="18"/>
      <line num="280" type="stmt" count="18"/>
      <line num="281" type="stmt" count="18"/>
      <line num="282" type="stmt" count="18"/>
      <line num="283" type="stmt" count="18"/>
      <line num="284" type="stmt" count="18"/>
      <line num="285" type="stmt" count="18"/>
      <line num="286" type="stmt" count="18"/>
      <line num="287" type="stmt" count="18"/>
      <line num="288" type="stmt" count="18"/>
      <line num="289" type="stmt" count="18"/>
      <line num="290" type="stmt" count="18"/>
      <line num="291" type="stmt" count="18"/>
      <line num="292" type="stmt" count="18"/>
      <line num="293" type="stmt" count="18"/>
      <line num="294" type="stmt" count="18"/>
      <line num="295" type="stmt" count="18"/>
      <line num="296" type="stmt" count="18"/>
      <line num="297" type="stmt" count="18"/>
      <line num="298" type="stmt" count="18"/>
      <line num="299" type="stmt" count="18"/>
      <line num="300" type="stmt" count="18"/>
      <line num="301" type="stmt" count="18"/>
      <line num="302" type="stmt" count="18"/>
      <line num="303" type="stmt" count="18"/>
      <line num="304" type="stmt" count="18"/>
      <line num="305" type="stmt" count="18"/>
      <line num="306" type="stmt" count="18"/>
      <line num="307" type="stmt" count="18"/>
      <line num="308" type="stmt" count="18"/>
      <line num="309" type="stmt" count="18"/>
      <line num="310" type="stmt" count="18"/>
      <line num="311" type="stmt" count="18"/>
      <line num="312" type="stmt" count="18"/>
      <line num="313" type="stmt" count="18"/>
      <line num="314" type="stmt" count="18"/>
      <line num="315" type="stmt" count="18"/>
      <line num="316" type="stmt" count="18"/>
      <line num="317" type="stmt" count="18"/>
      <line num="318" type="stmt" count="18"/>
      <line num="319" type="stmt" count="18"/>
      <line num="320" type="stmt" count="18"/>
      <line num="321" type="stmt" count="18"/>
      <line num="322" type="stmt" count="18"/>
      <line num="323" type="stmt" count="18"/>
      <line num="325" type="stmt" count="18"/>
      <line num="326" type="stmt" count="18"/>
      <line num="327" type="stmt" count="18"/>
      <line num="328" type="stmt" count="18"/>
      <line num="329" type="stmt" count="18"/>
      <line num="330" type="stmt" count="18"/>
      <line num="331" type="stmt" count="18"/>
      <line num="332" type="stmt" count="18"/>
      <line num="333" type="stmt" count="18"/>
      <line num="334" type="stmt" count="18"/>
      <line num="335" type="stmt" count="18"/>
      <line num="336" type="stmt" count="18"/>
      <line num="337" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="339" type="stmt" count="0"/>
      <line num="340" type="stmt" count="0"/>
      <line num="341" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="343" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="348" type="stmt" count="18"/>
      <line num="349" type="stmt" count="5"/>
      <line num="350" type="stmt" count="5"/>
      <line num="351" type="stmt" count="0"/>
      <line num="352" type="stmt" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="354" type="stmt" count="0"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="361" type="stmt" count="5"/>
      <line num="362" type="stmt" count="0"/>
      <line num="363" type="stmt" count="5"/>
      <line num="364" type="stmt" count="5"/>
      <line num="365" type="stmt" count="5"/>
      <line num="366" type="stmt" count="5"/>
      <line num="367" type="stmt" count="5"/>
      <line num="368" type="stmt" count="5"/>
      <line num="369" type="stmt" count="5"/>
      <line num="370" type="stmt" count="5"/>
      <line num="372" type="stmt" count="18"/>
      <line num="375" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="378" type="stmt" count="0"/>
      <line num="379" type="stmt" count="0"/>
      <line num="382" type="stmt" count="18"/>
      <line num="383" type="stmt" count="18"/>
      <line num="384" type="stmt" count="18"/>
      <line num="385" type="stmt" count="18"/>
      <line num="386" type="stmt" count="18"/>
      <line num="387" type="stmt" count="18"/>
      <line num="388" type="stmt" count="18"/>
      <line num="389" type="stmt" count="18"/>
      <line num="392" type="method" name="showHideView" visibility="private" complexity="1" crap="1" count="3"/>
      <line num="393" type="stmt" count="3"/>
      <line num="394" type="stmt" count="3"/>
      <line num="395" type="stmt" count="3"/>
      <line num="396" type="stmt" count="3"/>
      <line num="397" type="stmt" count="3"/>
      <line num="398" type="stmt" count="3"/>
      <line num="399" type="stmt" count="3"/>
      <line num="400" type="stmt" count="3"/>
      <line num="401" type="stmt" count="3"/>
      <line num="402" type="stmt" count="3"/>
      <line num="403" type="stmt" count="3"/>
      <line num="404" type="stmt" count="3"/>
      <line num="410" type="method" name="showList" visibility="public" complexity="48" crap="646.78" count="18"/>
      <line num="411" type="stmt" count="18"/>
      <line num="412" type="stmt" count="18"/>
      <line num="415" type="stmt" count="18"/>
      <line num="416" type="stmt" count="18"/>
      <line num="418" type="stmt" count="18"/>
      <line num="419" type="stmt" count="0"/>
      <line num="420" type="stmt" count="0"/>
      <line num="423" type="stmt" count="18"/>
      <line num="424" type="stmt" count="0"/>
      <line num="425" type="stmt" count="0"/>
      <line num="428" type="stmt" count="18"/>
      <line num="429" type="stmt" count="0"/>
      <line num="430" type="stmt" count="0"/>
      <line num="432" type="stmt" count="0"/>
      <line num="436" type="stmt" count="18"/>
      <line num="437" type="stmt" count="18"/>
      <line num="438" type="stmt" count="0"/>
      <line num="439" type="stmt" count="0"/>
      <line num="440" type="stmt" count="0"/>
      <line num="441" type="stmt" count="0"/>
      <line num="442" type="stmt" count="0"/>
      <line num="443" type="stmt" count="0"/>
      <line num="446" type="stmt" count="18"/>
      <line num="447" type="stmt" count="18"/>
      <line num="448" type="stmt" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="451" type="stmt" count="0"/>
      <line num="452" type="stmt" count="0"/>
      <line num="454" type="stmt" count="0"/>
      <line num="455" type="stmt" count="0"/>
      <line num="456" type="stmt" count="0"/>
      <line num="457" type="stmt" count="0"/>
      <line num="462" type="stmt" count="0"/>
      <line num="463" type="stmt" count="0"/>
      <line num="464" type="stmt" count="0"/>
      <line num="468" type="stmt" count="0"/>
      <line num="469" type="stmt" count="0"/>
      <line num="474" type="stmt" count="0"/>
      <line num="477" type="stmt" count="0"/>
      <line num="478" type="stmt" count="0"/>
      <line num="480" type="stmt" count="0"/>
      <line num="481" type="stmt" count="0"/>
      <line num="482" type="stmt" count="0"/>
      <line num="486" type="stmt" count="0"/>
      <line num="487" type="stmt" count="0"/>
      <line num="488" type="stmt" count="0"/>
      <line num="489" type="stmt" count="0"/>
      <line num="493" type="stmt" count="0"/>
      <line num="494" type="stmt" count="0"/>
      <line num="495" type="stmt" count="0"/>
      <line num="496" type="stmt" count="0"/>
      <line num="501" type="stmt" count="0"/>
      <line num="502" type="stmt" count="0"/>
      <line num="504" type="stmt" count="0"/>
      <line num="505" type="stmt" count="0"/>
      <line num="506" type="stmt" count="0"/>
      <line num="511" type="stmt" count="0"/>
      <line num="512" type="stmt" count="0"/>
      <line num="515" type="stmt" count="0"/>
      <line num="516" type="stmt" count="0"/>
      <line num="518" type="stmt" count="0"/>
      <line num="519" type="stmt" count="0"/>
      <line num="524" type="stmt" count="0"/>
      <line num="525" type="stmt" count="0"/>
      <line num="527" type="stmt" count="0"/>
      <line num="528" type="stmt" count="0"/>
      <line num="529" type="stmt" count="0"/>
      <line num="530" type="stmt" count="0"/>
      <line num="531" type="stmt" count="0"/>
      <line num="532" type="stmt" count="0"/>
      <line num="533" type="stmt" count="0"/>
      <line num="536" type="stmt" count="0"/>
      <line num="537" type="stmt" count="0"/>
      <line num="541" type="stmt" count="18"/>
      <line num="542" type="stmt" count="18"/>
      <line num="543" type="stmt" count="0"/>
      <line num="544" type="stmt" count="18"/>
      <line num="545" type="stmt" count="0"/>
      <line num="546" type="stmt" count="18"/>
      <line num="547" type="stmt" count="0"/>
      <line num="550" type="stmt" count="18"/>
      <line num="551" type="stmt" count="0"/>
      <line num="552" type="stmt" count="0"/>
      <line num="553" type="stmt" count="0"/>
      <line num="556" type="stmt" count="0"/>
      <line num="557" type="stmt" count="0"/>
      <line num="558" type="stmt" count="0"/>
      <line num="559" type="stmt" count="0"/>
      <line num="560" type="stmt" count="0"/>
      <line num="562" type="stmt" count="0"/>
      <line num="563" type="stmt" count="0"/>
      <line num="564" type="stmt" count="0"/>
      <line num="565" type="stmt" count="0"/>
      <line num="566" type="stmt" count="0"/>
      <line num="567" type="stmt" count="0"/>
      <line num="569" type="stmt" count="0"/>
      <line num="570" type="stmt" count="0"/>
      <line num="571" type="stmt" count="0"/>
      <line num="572" type="stmt" count="0"/>
      <line num="573" type="stmt" count="0"/>
      <line num="575" type="stmt" count="0"/>
      <line num="578" type="stmt" count="18"/>
      <line num="579" type="stmt" count="18"/>
      <line num="580" type="stmt" count="2"/>
      <line num="581" type="stmt" count="2"/>
      <line num="584" type="stmt" count="18"/>
      <line num="585" type="stmt" count="0"/>
      <line num="586" type="stmt" count="0"/>
      <line num="587" type="stmt" count="0"/>
      <line num="588" type="stmt" count="0"/>
      <line num="592" type="stmt" count="18"/>
      <line num="593" type="stmt" count="0"/>
      <line num="594" type="stmt" count="18"/>
      <line num="595" type="stmt" count="0"/>
      <line num="598" type="stmt" count="18"/>
      <line num="599" type="stmt" count="0"/>
      <line num="600" type="stmt" count="0"/>
      <line num="601" type="stmt" count="0"/>
      <line num="602" type="stmt" count="0"/>
      <line num="606" type="stmt" count="18"/>
      <line num="607" type="stmt" count="2"/>
      <line num="608" type="stmt" count="2"/>
      <line num="609" type="stmt" count="2"/>
      <line num="610" type="stmt" count="0"/>
      <line num="611" type="stmt" count="0"/>
      <line num="615" type="stmt" count="18"/>
      <line num="616" type="stmt" count="18"/>
      <line num="617" type="stmt" count="18"/>
      <line num="618" type="stmt" count="18"/>
      <line num="619" type="stmt" count="18"/>
      <line num="620" type="stmt" count="18"/>
      <line num="621" type="stmt" count="18"/>
      <line num="622" type="stmt" count="18"/>
      <line num="623" type="stmt" count="18"/>
      <line num="624" type="stmt" count="18"/>
      <line num="625" type="stmt" count="18"/>
      <line num="626" type="stmt" count="18"/>
      <line num="627" type="stmt" count="18"/>
      <line num="629" type="stmt" count="18"/>
      <line num="630" type="stmt" count="18"/>
      <line num="631" type="stmt" count="18"/>
      <line num="632" type="stmt" count="18"/>
      <line num="633" type="stmt" count="18"/>
      <line num="634" type="stmt" count="18"/>
      <line num="635" type="stmt" count="18"/>
      <line num="636" type="stmt" count="18"/>
      <line num="637" type="stmt" count="18"/>
      <line num="638" type="stmt" count="18"/>
      <line num="640" type="stmt" count="18"/>
      <line num="641" type="stmt" count="11"/>
      <line num="642" type="stmt" count="11"/>
      <line num="644" type="stmt" count="7"/>
      <line num="653" type="method" name="getDeleteButton" visibility="private" complexity="2" crap="3.19" count="18"/>
      <line num="654" type="stmt" count="18"/>
      <line num="655" type="stmt" count="18"/>
      <line num="657" type="stmt" count="0"/>
      <line num="658" type="stmt" count="0"/>
      <line num="659" type="stmt" count="0"/>
      <line num="660" type="stmt" count="0"/>
      <line num="669" type="method" name="getListToggle" visibility="private" complexity="2" crap="2.15" count="18"/>
      <line num="670" type="stmt" count="18"/>
      <line num="671" type="stmt" count="18"/>
      <line num="673" type="stmt" count="0"/>
      <line num="680" type="method" name="showDetails" visibility="public" complexity="19" crap="59.00" count="6"/>
      <line num="681" type="stmt" count="6"/>
      <line num="682" type="stmt" count="6"/>
      <line num="684" type="stmt" count="6"/>
      <line num="685" type="stmt" count="6"/>
      <line num="686" type="stmt" count="6"/>
      <line num="687" type="stmt" count="6"/>
      <line num="688" type="stmt" count="6"/>
      <line num="689" type="stmt" count="6"/>
      <line num="690" type="stmt" count="6"/>
      <line num="691" type="stmt" count="6"/>
      <line num="692" type="stmt" count="6"/>
      <line num="693" type="stmt" count="6"/>
      <line num="694" type="stmt" count="6"/>
      <line num="696" type="stmt" count="6"/>
      <line num="697" type="stmt" count="6"/>
      <line num="698" type="stmt" count="6"/>
      <line num="699" type="stmt" count="6"/>
      <line num="700" type="stmt" count="6"/>
      <line num="702" type="stmt" count="6"/>
      <line num="703" type="stmt" count="6"/>
      <line num="704" type="stmt" count="6"/>
      <line num="705" type="stmt" count="6"/>
      <line num="706" type="stmt" count="6"/>
      <line num="707" type="stmt" count="6"/>
      <line num="708" type="stmt" count="6"/>
      <line num="709" type="stmt" count="6"/>
      <line num="711" type="stmt" count="6"/>
      <line num="712" type="stmt" count="1"/>
      <line num="713" type="stmt" count="1"/>
      <line num="716" type="stmt" count="5"/>
      <line num="717" type="stmt" count="5"/>
      <line num="718" type="stmt" count="5"/>
      <line num="721" type="stmt" count="5"/>
      <line num="722" type="stmt" count="1"/>
      <line num="724" type="stmt" count="1"/>
      <line num="725" type="stmt" count="1"/>
      <line num="726" type="stmt" count="1"/>
      <line num="729" type="stmt" count="5"/>
      <line num="730" type="stmt" count="3"/>
      <line num="732" type="stmt" count="2"/>
      <line num="733" type="stmt" count="2"/>
      <line num="734" type="stmt" count="0"/>
      <line num="735" type="stmt" count="2"/>
      <line num="736" type="stmt" count="0"/>
      <line num="737" type="stmt" count="2"/>
      <line num="738" type="stmt" count="0"/>
      <line num="742" type="stmt" count="5"/>
      <line num="743" type="stmt" count="3"/>
      <line num="744" type="stmt" count="3"/>
      <line num="748" type="stmt" count="2"/>
      <line num="749" type="stmt" count="2"/>
      <line num="752" type="stmt" count="2"/>
      <line num="753" type="stmt" count="2"/>
      <line num="754" type="stmt" count="2"/>
      <line num="755" type="stmt" count="2"/>
      <line num="756" type="stmt" count="2"/>
      <line num="757" type="stmt" count="1"/>
      <line num="758" type="stmt" count="0"/>
      <line num="759" type="stmt" count="0"/>
      <line num="760" type="stmt" count="0"/>
      <line num="761" type="stmt" count="0"/>
      <line num="762" type="stmt" count="0"/>
      <line num="766" type="stmt" count="1"/>
      <line num="767" type="stmt" count="1"/>
      <line num="768" type="stmt" count="1"/>
      <line num="771" type="stmt" count="1"/>
      <line num="772" type="stmt" count="1"/>
      <line num="775" type="stmt" count="1"/>
      <line num="776" type="stmt" count="1"/>
      <line num="777" type="stmt" count="1"/>
      <line num="778" type="stmt" count="1"/>
      <line num="779" type="stmt" count="1"/>
      <line num="783" type="stmt" count="1"/>
      <line num="784" type="stmt" count="1"/>
      <line num="786" type="stmt" count="0"/>
      <line num="787" type="stmt" count="0"/>
      <line num="788" type="stmt" count="0"/>
      <line num="789" type="stmt" count="0"/>
      <line num="790" type="stmt" count="0"/>
      <line num="791" type="stmt" count="0"/>
      <line num="795" type="stmt" count="0"/>
      <line num="796" type="stmt" count="0"/>
      <line num="797" type="stmt" count="0"/>
      <line num="798" type="stmt" count="0"/>
      <line num="799" type="stmt" count="0"/>
      <line num="800" type="stmt" count="0"/>
      <line num="801" type="stmt" count="0"/>
      <line num="802" type="stmt" count="0"/>
      <line num="803" type="stmt" count="0"/>
      <line num="804" type="stmt" count="0"/>
      <line num="807" type="stmt" count="0"/>
      <line num="811" type="stmt" count="0"/>
      <line num="812" type="stmt" count="0"/>
      <line num="813" type="stmt" count="0"/>
      <line num="816" type="stmt" count="0"/>
      <line num="817" type="stmt" count="0"/>
      <line num="818" type="stmt" count="0"/>
      <line num="821" type="stmt" count="0"/>
      <line num="823" type="stmt" count="0"/>
      <line num="825" type="stmt" count="0"/>
      <line num="826" type="stmt" count="0"/>
      <line num="827" type="stmt" count="0"/>
      <line num="828" type="stmt" count="0"/>
      <line num="830" type="stmt" count="0"/>
      <line num="831" type="stmt" count="0"/>
      <line num="832" type="stmt" count="0"/>
      <line num="833" type="stmt" count="0"/>
      <line num="834" type="stmt" count="0"/>
      <line num="835" type="stmt" count="0"/>
      <line num="837" type="stmt" count="0"/>
      <line num="840" type="stmt" count="0"/>
      <line num="843" type="stmt" count="0"/>
      <line num="845" type="stmt" count="0"/>
      <line num="846" type="stmt" count="0"/>
      <line num="847" type="stmt" count="0"/>
      <line num="848" type="stmt" count="0"/>
      <line num="849" type="stmt" count="0"/>
      <line num="850" type="stmt" count="0"/>
      <line num="851" type="stmt" count="0"/>
      <line num="852" type="stmt" count="0"/>
      <line num="854" type="stmt" count="0"/>
      <line num="855" type="stmt" count="0"/>
      <line num="856" type="stmt" count="0"/>
      <line num="857" type="stmt" count="0"/>
      <line num="858" type="stmt" count="0"/>
      <line num="860" type="stmt" count="0"/>
      <line num="863" type="stmt" count="0"/>
      <line num="876" type="method" name="getPrivateDetailsRow" visibility="public" complexity="3" crap="3.00" count="3"/>
      <line num="877" type="stmt" count="3"/>
      <line num="879" type="stmt" count="3"/>
      <line num="880" type="stmt" count="3"/>
      <line num="881" type="stmt" count="2"/>
      <line num="884" type="stmt" count="1"/>
      <line num="885" type="stmt" count="1"/>
      <line num="886" type="stmt" count="1"/>
      <line num="887" type="stmt" count="1"/>
      <line num="888" type="stmt" count="1"/>
      <line num="889" type="stmt" count="1"/>
      <line num="890" type="stmt" count="1"/>
      <line num="892" type="stmt" count="1"/>
      <line num="893" type="stmt" count="0"/>
      <line num="897" type="stmt" count="1"/>
      <line num="900" type="stmt" count="1"/>
      <line num="901" type="stmt" count="1"/>
      <line num="902" type="stmt" count="1"/>
      <line num="903" type="stmt" count="1"/>
      <line num="905" type="stmt" count="1"/>
      <line num="914" type="method" name="buildPrivateDetailsTable" visibility="private" complexity="4" crap="20" count="0"/>
      <line num="915" type="stmt" count="0"/>
      <line num="918" type="stmt" count="0"/>
      <line num="919" type="stmt" count="0"/>
      <line num="920" type="stmt" count="0"/>
      <line num="921" type="stmt" count="0"/>
      <line num="922" type="stmt" count="0"/>
      <line num="923" type="stmt" count="0"/>
      <line num="924" type="stmt" count="0"/>
      <line num="925" type="stmt" count="0"/>
      <line num="926" type="stmt" count="0"/>
      <line num="927" type="stmt" count="0"/>
      <line num="928" type="stmt" count="0"/>
      <line num="929" type="stmt" count="0"/>
      <line num="932" type="stmt" count="0"/>
      <line num="933" type="stmt" count="0"/>
      <line num="934" type="stmt" count="0"/>
      <line num="935" type="stmt" count="0"/>
      <line num="936" type="stmt" count="0"/>
      <line num="937" type="stmt" count="0"/>
      <line num="938" type="stmt" count="0"/>
      <line num="939" type="stmt" count="0"/>
      <line num="940" type="stmt" count="0"/>
      <line num="941" type="stmt" count="0"/>
      <line num="942" type="stmt" count="0"/>
      <line num="945" type="stmt" count="0"/>
      <line num="946" type="stmt" count="0"/>
      <line num="947" type="stmt" count="0"/>
      <line num="948" type="stmt" count="0"/>
      <line num="949" type="stmt" count="0"/>
      <line num="950" type="stmt" count="0"/>
      <line num="951" type="stmt" count="0"/>
      <line num="952" type="stmt" count="0"/>
      <line num="953" type="stmt" count="0"/>
      <line num="954" type="stmt" count="0"/>
      <line num="955" type="stmt" count="0"/>
      <line num="958" type="stmt" count="0"/>
      <line num="959" type="stmt" count="0"/>
      <line num="960" type="stmt" count="0"/>
      <line num="961" type="stmt" count="0"/>
      <line num="962" type="stmt" count="0"/>
      <line num="963" type="stmt" count="0"/>
      <line num="964" type="stmt" count="0"/>
      <line num="965" type="stmt" count="0"/>
      <line num="966" type="stmt" count="0"/>
      <line num="967" type="stmt" count="0"/>
      <line num="968" type="stmt" count="0"/>
      <line num="971" type="stmt" count="0"/>
      <line num="972" type="stmt" count="0"/>
      <line num="973" type="stmt" count="0"/>
      <line num="974" type="stmt" count="0"/>
      <line num="975" type="stmt" count="0"/>
      <line num="976" type="stmt" count="0"/>
      <line num="977" type="stmt" count="0"/>
      <line num="978" type="stmt" count="0"/>
      <line num="979" type="stmt" count="0"/>
      <line num="980" type="stmt" count="0"/>
      <line num="981" type="stmt" count="0"/>
      <line num="984" type="stmt" count="0"/>
      <line num="985" type="stmt" count="0"/>
      <line num="986" type="stmt" count="0"/>
      <line num="988" type="stmt" count="0"/>
      <line num="989" type="stmt" count="0"/>
      <line num="990" type="stmt" count="0"/>
      <line num="991" type="stmt" count="0"/>
      <line num="992" type="stmt" count="0"/>
      <line num="993" type="stmt" count="0"/>
      <line num="994" type="stmt" count="0"/>
      <line num="996" type="stmt" count="0"/>
      <line num="998" type="stmt" count="0"/>
      <line num="999" type="stmt" count="0"/>
      <line num="1000" type="stmt" count="0"/>
      <line num="1001" type="stmt" count="0"/>
      <line num="1002" type="stmt" count="0"/>
      <line num="1003" type="stmt" count="0"/>
      <line num="1004" type="stmt" count="0"/>
      <line num="1005" type="stmt" count="0"/>
      <line num="1006" type="stmt" count="0"/>
      <line num="1007" type="stmt" count="0"/>
      <line num="1008" type="stmt" count="0"/>
      <line num="1009" type="stmt" count="0"/>
      <line num="1010" type="stmt" count="0"/>
      <line num="1011" type="stmt" count="0"/>
      <line num="1013" type="stmt" count="0"/>
      <line num="1014" type="stmt" count="0"/>
      <line num="1015" type="stmt" count="0"/>
      <line num="1016" type="stmt" count="0"/>
      <line num="1017" type="stmt" count="0"/>
      <line num="1018" type="stmt" count="0"/>
      <line num="1019" type="stmt" count="0"/>
      <line num="1020" type="stmt" count="0"/>
      <line num="1021" type="stmt" count="0"/>
      <line num="1022" type="stmt" count="0"/>
      <line num="1023" type="stmt" count="0"/>
      <line num="1024" type="stmt" count="0"/>
      <line num="1027" type="stmt" count="0"/>
      <line num="1028" type="stmt" count="0"/>
      <line num="1029" type="stmt" count="0"/>
      <line num="1030" type="stmt" count="0"/>
      <line num="1031" type="stmt" count="0"/>
      <line num="1032" type="stmt" count="0"/>
      <line num="1033" type="stmt" count="0"/>
      <line num="1034" type="stmt" count="0"/>
      <line num="1035" type="stmt" count="0"/>
      <line num="1036" type="stmt" count="0"/>
      <line num="1037" type="stmt" count="0"/>
      <line num="1038" type="stmt" count="0"/>
      <line num="1039" type="stmt" count="0"/>
      <line num="1040" type="stmt" count="0"/>
      <line num="1041" type="stmt" count="0"/>
      <line num="1042" type="stmt" count="0"/>
      <line num="1043" type="stmt" count="0"/>
      <line num="1044" type="stmt" count="0"/>
      <line num="1045" type="stmt" count="0"/>
      <line num="1046" type="stmt" count="0"/>
      <line num="1047" type="stmt" count="0"/>
      <line num="1048" type="stmt" count="0"/>
      <line num="1055" type="method" name="showPrivateDetails" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="1056" type="stmt" count="0"/>
      <line num="1057" type="stmt" count="0"/>
      <line num="1059" type="stmt" count="0"/>
      <line num="1060" type="stmt" count="0"/>
      <line num="1062" type="stmt" count="0"/>
      <line num="1064" type="stmt" count="0"/>
      <line num="1067" type="stmt" count="0"/>
      <line num="1068" type="stmt" count="0"/>
      <line num="1069" type="stmt" count="0"/>
      <line num="1070" type="stmt" count="0"/>
      <line num="1071" type="stmt" count="0"/>
      <line num="1072" type="stmt" count="0"/>
      <line num="1073" type="stmt" count="0"/>
      <line num="1074" type="stmt" count="0"/>
      <line num="1075" type="stmt" count="0"/>
      <line num="1076" type="stmt" count="0"/>
      <line num="1078" type="stmt" count="0"/>
      <line num="1081" type="stmt" count="0"/>
      <line num="1082" type="stmt" count="0"/>
      <line num="1083" type="stmt" count="0"/>
      <line num="1084" type="stmt" count="0"/>
      <line num="1085" type="stmt" count="0"/>
      <line num="1088" type="stmt" count="0"/>
      <line num="1089" type="stmt" count="0"/>
      <line num="1090" type="stmt" count="0"/>
      <line num="1091" type="stmt" count="0"/>
      <line num="1093" type="stmt" count="0"/>
      <line num="1096" type="stmt" count="0"/>
      <line num="1097" type="stmt" count="0"/>
      <line num="1101" type="stmt" count="0"/>
      <line num="1102" type="stmt" count="0"/>
      <line num="1124" type="method" name="getUserFilter" visibility="private" complexity="7" crap="7" count="18"/>
      <line num="1128" type="stmt" count="18"/>
      <line num="1129" type="stmt" count="3"/>
      <line num="1132" type="stmt" count="15"/>
      <line num="1135" type="stmt" count="15"/>
      <line num="1136" type="stmt" count="15"/>
      <line num="1137" type="stmt" count="15"/>
      <line num="1139" type="stmt" count="6"/>
      <line num="1140" type="stmt" count="6"/>
      <line num="1142" type="stmt" count="6"/>
      <line num="1143" type="stmt" count="6"/>
      <line num="1147" type="stmt" count="9"/>
      <line num="1148" type="stmt" count="9"/>
      <line num="1150" type="stmt" count="9"/>
      <line num="1151" type="stmt" count="6"/>
      <line num="1154" type="stmt" count="9"/>
      <line num="1155" type="stmt" count="9"/>
      <line num="1156" type="stmt" count="9"/>
      <line num="1157" type="stmt" count="9"/>
      <line num="1158" type="stmt" count="9"/>
      <line num="1159" type="stmt" count="9"/>
      <line num="1162" type="stmt" count="15"/>
      <line num="1172" type="method" name="checkPrivateDetailsAccessReason" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="1174" type="stmt" count="0"/>
      <line num="1183" type="method" name="addPrivateDetailsAccessLogEntry" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="1184" type="stmt" count="0"/>
      <line num="1186" type="stmt" count="0"/>
      <line num="1187" type="stmt" count="0"/>
      <line num="1188" type="stmt" count="0"/>
      <line num="1189" type="stmt" count="0"/>
      <line num="1190" type="stmt" count="0"/>
      <line num="1191" type="stmt" count="0"/>
      <line num="1192" type="stmt" count="0"/>
      <line num="1194" type="stmt" count="0"/>
      <line num="1203" type="method" name="getEntryVisibilityForUser" visibility="public" complexity="8" crap="8.10" count="29"/>
      <line num="1210" type="stmt" count="29"/>
      <line num="1211" type="stmt" count="29"/>
      <line num="1212" type="stmt" count="0"/>
      <line num="1213" type="stmt" count="0"/>
      <line num="1217" type="stmt" count="29"/>
      <line num="1218" type="stmt" count="6"/>
      <line num="1220" type="stmt" count="23"/>
      <line num="1221" type="stmt" count="13"/>
      <line num="1223" type="stmt" count="10"/>
      <line num="1224" type="stmt" count="10"/>
      <line num="1225" type="stmt" count="10"/>
      <line num="1226" type="stmt" count="10"/>
      <line num="1227" type="stmt" count="10"/>
      <line num="1228" type="stmt" count="6"/>
      <line num="1232" type="stmt" count="4"/>
      <line num="1233" type="stmt" count="2"/>
      <line num="1234" type="stmt" count="4"/>
      <line num="1237" type="method" name="canAccessTemporaryAccountIPAddresses" visibility="private" complexity="2" crap="2.02" count="11"/>
      <line num="1240" type="stmt" count="11"/>
      <line num="1241" type="stmt" count="0"/>
      <line num="1244" type="stmt" count="11"/>
      <line num="1245" type="stmt" count="11"/>
      <line num="1246" type="stmt" count="11"/>
      <line num="1247" type="stmt" count="11"/>
      <metrics loc="1250" ncloc="1054" classes="1" methods="20" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="684" coveredstatements="331" elements="704" coveredelements="336"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/SpecsFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\SpecsFormatter" namespace="global">
        <metrics complexity="24" methods="8" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="59" elements="69" coveredelements="66"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="18" type="stmt" count="17"/>
      <line num="20" type="method" name="setMessageLocalizer" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="29" type="method" name="getActionDisplay" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="34" type="stmt" count="6"/>
      <line num="35" type="stmt" count="6"/>
      <line num="38" type="method" name="getActionMessage" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="54" type="method" name="formatAction" visibility="public" complexity="12" crap="12" count="6"/>
      <line num="55" type="stmt" count="6"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="4"/>
      <line num="59" type="stmt" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="1"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" 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="103" type="stmt" count="1"/>
      <line num="104" type="stmt" count="1"/>
      <line num="105" type="stmt" count="1"/>
      <line num="108" type="stmt" count="6"/>
      <line num="116" type="method" name="formatFlags" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="117" type="stmt" count="3"/>
      <line num="118" type="stmt" count="3"/>
      <line num="119" type="stmt" count="3"/>
      <line num="120" type="stmt" count="2"/>
      <line num="123" type="stmt" count="3"/>
      <line num="131" type="method" name="formatFilterFlags" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="135" type="stmt" count="3"/>
      <line num="136" type="stmt" count="3"/>
      <line num="137" type="stmt" count="3"/>
      <line num="138" type="stmt" count="3"/>
      <line num="139" type="stmt" count="3"/>
      <line num="140" type="stmt" count="3"/>
      <line num="147" type="stmt" count="2"/>
      <line num="150" type="stmt" count="3"/>
      <line num="159" type="method" name="nameGroup" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="162" type="stmt" count="2"/>
      <metrics loc="165" ncloc="112" classes="1" methods="8" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="61" coveredstatements="59" elements="69" coveredelements="66"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/TableDiffFormatterFullContext.php">
      <class name="MediaWiki\Extension\AbuseFilter\TableDiffFormatterFullContext" namespace="global">
        <metrics complexity="4" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="10" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="format" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" 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"/>
      <metrics loc="41" ncloc="26" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="10" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/TemporaryAccountIPsViewerSpecification.php">
      <class name="MediaWiki\Extension\AbuseFilter\TemporaryAccountIPsViewerSpecification" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
      </class>
      <line num="13" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="17" type="stmt" count="4"/>
      <line num="26" type="method" name="isSatisfiedBy" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="27" type="stmt" count="4"/>
      <line num="28" type="stmt" count="4"/>
      <line num="29" type="stmt" count="4"/>
      <line num="30" type="stmt" count="4"/>
      <line num="31" type="stmt" count="4"/>
      <metrics loc="34" ncloc="27" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/TextExtractor.php">
      <class name="MediaWiki\Extension\AbuseFilter\TextExtractor" namespace="global">
        <metrics complexity="8" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="19" elements="22" coveredelements="22"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="21" type="stmt" count="9"/>
      <line num="43" type="method" name="revisionToString" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="45" type="stmt" count="1"/>
      <line num="48" type="stmt" 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="1"/>
      <line num="55" type="stmt" count="3"/>
      <line num="58" type="stmt" count="4"/>
      <line num="74" type="method" name="contentToString" visibility="public" complexity="3" crap="3" count="7"/>
      <line num="75" type="stmt" count="7"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="7"/>
      <line num="79" type="stmt" count="7"/>
      <line num="80" type="stmt" count="7"/>
      <line num="81" type="stmt" count="6"/>
      <line num="82" type="stmt" count="5"/>
      <line num="83" type="stmt" count="1"/>
      <line num="87" type="stmt" count="7"/>
      <metrics loc="90" ncloc="50" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="19" elements="22" coveredelements="22"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/ThrottleFilterPresentationModel.php">
      <class name="MediaWiki\Extension\AbuseFilter\ThrottleFilterPresentationModel" namespace="global">
        <metrics complexity="7" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="0" elements="32" coveredelements="0"/>
      </class>
      <line num="13" type="method" name="getIconType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <line num="20" type="method" name="getHeaderMessage" visibility="public" complexity="4" crap="20" 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="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" 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="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="41" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="51" type="method" name="getSubjectMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="59" type="method" name="getPrimaryLink" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <metrics loc="66" ncloc="53" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="0" elements="32" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/VariableGenerator/RCVariableGenerator.php">
      <class name="MediaWiki\Extension\AbuseFilter\VariableGenerator\RCVariableGenerator" namespace="global">
        <metrics complexity="26" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="165" coveredstatements="161" elements="173" coveredelements="167"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="10"/>
      <line num="34" type="stmt" count="10"/>
      <line num="37" type="method" name="getVars" visibility="public" complexity="9" crap="9.24" count="10"/>
      <line num="38" type="stmt" count="10"/>
      <line num="39" type="stmt" count="7"/>
      <line num="40" type="stmt" count="7"/>
      <line num="41" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="6"/>
      <line num="44" type="stmt" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="53" type="stmt" count="0"/>
      <line num="55" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="67" type="stmt" count="10"/>
      <line num="69" type="stmt" count="10"/>
      <line num="75" type="method" name="addMoveVars" visibility="private" complexity="2" crap="2" count="1"/>
      <line num="76" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="81" 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="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="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="97" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="107" type="method" name="addCreateAccountVars" visibility="private" complexity="5" crap="5" count="3"/>
      <line num="109" type="stmt" count="3"/>
      <line num="110" type="stmt" count="3"/>
      <line num="112" type="stmt" count="3"/>
      <line num="114" type="stmt" count="3"/>
      <line num="115" type="stmt" count="3"/>
      <line num="116" type="stmt" count="2"/>
      <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="124" type="stmt" count="1"/>
      <line num="129" type="stmt" count="3"/>
      <line num="130" type="stmt" count="3"/>
      <line num="131" type="stmt" count="0"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="135" type="stmt" count="3"/>
      <line num="136" type="stmt" count="3"/>
      <line num="137" type="stmt" count="3"/>
      <line num="138" 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="144" type="stmt" count="3"/>
      <line num="150" type="method" name="addDeleteVars" visibility="private" complexity="2" crap="2" count="1"/>
      <line num="151" type="stmt" count="1"/>
      <line num="152" type="stmt" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="157" type="stmt" count="1"/>
      <line num="158" type="stmt" count="1"/>
      <line num="162" type="stmt" count="1"/>
      <line num="168" type="method" name="addUploadVars" visibility="private" complexity="3" crap="3" count="2"/>
      <line num="169" type="stmt" count="2"/>
      <line num="170" type="stmt" count="2"/>
      <line num="172" type="stmt" count="2"/>
      <line num="173" type="stmt" count="2"/>
      <line num="175" type="stmt" count="2"/>
      <line num="176" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <line num="179" type="stmt" count="2"/>
      <line num="180" type="stmt" count="2"/>
      <line num="181" type="stmt" count="2"/>
      <line num="183" type="stmt" count="2"/>
      <line num="184" type="stmt" count="2"/>
      <line num="185" type="stmt" count="2"/>
      <line num="186" type="stmt" count="2"/>
      <line num="187" type="stmt" count="2"/>
      <line num="189" type="stmt" count="2"/>
      <line num="190" type="stmt" count="2"/>
      <line num="191" type="stmt" count="2"/>
      <line num="192" type="stmt" count="2"/>
      <line num="193" type="stmt" count="2"/>
      <line num="203" type="stmt" count="2"/>
      <line num="204" type="stmt" count="2"/>
      <line num="206" type="stmt" count="2"/>
      <line num="207" type="stmt" count="2"/>
      <line num="208" type="stmt" count="2"/>
      <line num="209" type="stmt" count="2"/>
      <line num="210" type="stmt" count="2"/>
      <line num="211" type="stmt" count="2"/>
      <line num="212" type="stmt" count="2"/>
      <line num="214" type="stmt" count="2"/>
      <line num="215" type="stmt" count="2"/>
      <line num="216" type="stmt" count="2"/>
      <line num="218" type="stmt" count="2"/>
      <line num="219" type="stmt" count="2"/>
      <line num="220" type="stmt" count="2"/>
      <line num="221" type="stmt" count="2"/>
      <line num="223" type="stmt" count="2"/>
      <line num="224" type="stmt" count="2"/>
      <line num="225" type="stmt" count="2"/>
      <line num="226" type="stmt" count="2"/>
      <line num="228" type="stmt" count="2"/>
      <line num="230" type="stmt" count="2"/>
      <line num="233" type="method" name="addDerivedVarsForTitle" visibility="private" complexity="1" crap="1" count="5"/>
      <line num="234" type="stmt" count="5"/>
      <line num="235" type="stmt" count="5"/>
      <line num="238" type="stmt" count="5"/>
      <line num="239" type="stmt" count="5"/>
      <line num="240" type="stmt" count="5"/>
      <line num="241" type="stmt" count="5"/>
      <line num="242" type="stmt" count="5"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="5"/>
      <line num="247" type="stmt" count="5"/>
      <line num="248" type="stmt" count="5"/>
      <line num="249" type="stmt" count="5"/>
      <line num="250" type="stmt" count="5"/>
      <line num="251" type="stmt" count="5"/>
      <line num="252" type="stmt" count="5"/>
      <line num="253" type="stmt" count="5"/>
      <line num="255" type="stmt" count="5"/>
      <line num="256" type="stmt" count="5"/>
      <line num="257" type="stmt" count="5"/>
      <line num="258" type="stmt" count="5"/>
      <line num="259" type="stmt" count="5"/>
      <line num="260" type="stmt" count="5"/>
      <line num="261" type="stmt" count="5"/>
      <line num="263" type="stmt" count="5"/>
      <line num="264" type="stmt" count="5"/>
      <line num="265" type="stmt" count="5"/>
      <line num="266" type="stmt" count="5"/>
      <line num="267" type="stmt" count="5"/>
      <line num="268" type="stmt" count="5"/>
      <line num="274" type="method" name="addEditVarsForRow" visibility="private" complexity="3" crap="3" count="3"/>
      <line num="275" type="stmt" count="3"/>
      <line num="276" type="stmt" count="3"/>
      <line num="278" type="stmt" count="3"/>
      <line num="279" type="stmt" count="3"/>
      <line num="281" type="stmt" count="3"/>
      <line num="282" type="stmt" count="3"/>
      <line num="284" type="stmt" count="3"/>
      <line num="285" type="stmt" count="3"/>
      <line num="286" type="stmt" count="3"/>
      <line num="287" type="stmt" count="3"/>
      <line num="289" type="stmt" count="3"/>
      <line num="290" type="stmt" count="3"/>
      <line num="291" type="stmt" count="2"/>
      <line num="292" type="stmt" count="2"/>
      <line num="293" type="stmt" count="2"/>
      <line num="294" type="stmt" count="2"/>
      <line num="295" type="stmt" count="2"/>
      <line num="296" type="stmt" count="2"/>
      <line num="298" type="stmt" count="1"/>
      <line num="299" type="stmt" count="1"/>
      <line num="300" type="stmt" count="1"/>
      <line num="303" type="stmt" count="3"/>
      <line num="305" type="stmt" count="3"/>
      <metrics loc="308" ncloc="267" classes="1" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="165" coveredstatements="161" elements="173" coveredelements="167"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/VariableGenerator/RunVariableGenerator.php">
      <class name="MediaWiki\Extension\AbuseFilter\VariableGenerator\RunVariableGenerator" namespace="global">
        <metrics complexity="33" methods="10" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="144" coveredstatements="129" elements="154" coveredelements="136"/>
      </class>
      <line num="29" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="67"/>
      <line num="39" type="stmt" count="67"/>
      <line num="51" type="method" name="getStashEditVars" visibility="public" complexity="2" crap="2.01" count="21"/>
      <line num="57" type="stmt" count="21"/>
      <line num="58" type="stmt" count="21"/>
      <line num="59" type="stmt" count="0"/>
      <line num="61" type="stmt" count="21"/>
      <line num="62" type="stmt" count="21"/>
      <line num="63" type="stmt" count="21"/>
      <line num="64" type="stmt" count="21"/>
      <line num="76" type="method" name="getEditTextForFiltering" visibility="private" complexity="6" crap="6.02" count="44"/>
      <line num="77" type="stmt" count="44"/>
      <line num="78" type="stmt" count="44"/>
      <line num="79" type="stmt" count="0"/>
      <line num="82" type="stmt" count="44"/>
      <line num="83" type="stmt" count="44"/>
      <line num="88" type="stmt" count="44"/>
      <line num="92" type="stmt" count="44"/>
      <line num="93" type="stmt" count="44"/>
      <line num="94" type="stmt" count="44"/>
      <line num="100" type="stmt" count="44"/>
      <line num="101" type="stmt" count="44"/>
      <line num="103" type="stmt" count="1"/>
      <line num="106" type="stmt" count="43"/>
      <line num="118" type="method" name="newVariableHolderForEdit" visibility="private" complexity="4" crap="4" count="44"/>
      <line num="126" type="stmt" count="44"/>
      <line num="127" type="stmt" count="44"/>
      <line num="128" type="stmt" count="44"/>
      <line num="129" type="stmt" count="44"/>
      <line num="130" type="stmt" count="44"/>
      <line num="132" type="stmt" count="44"/>
      <line num="133" type="stmt" count="43"/>
      <line num="135" type="stmt" count="1"/>
      <line num="136" type="stmt" count="1"/>
      <line num="138" type="stmt" count="44"/>
      <line num="139" type="stmt" count="44"/>
      <line num="140" type="stmt" count="44"/>
      <line num="141" type="stmt" count="44"/>
      <line num="144" type="stmt" count="44"/>
      <line num="145" type="stmt" count="27"/>
      <line num="146" type="stmt" count="38"/>
      <line num="149" type="stmt" count="38"/>
      <line num="152" type="stmt" count="44"/>
      <line num="153" type="stmt" count="27"/>
      <line num="155" type="stmt" count="38"/>
      <line num="158" type="stmt" count="44"/>
      <line num="159" type="stmt" count="44"/>
      <line num="171" type="method" name="getEditVars" visibility="public" complexity="3" crap="3" count="45"/>
      <line num="177" type="stmt" count="45"/>
      <line num="178" type="stmt" count="44"/>
      <line num="179" type="stmt" count="44"/>
      <line num="180" type="stmt" count="1"/>
      <line num="182" type="stmt" count="43"/>
      <line num="185" type="stmt" count="1"/>
      <line num="186" type="stmt" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="190" type="stmt" count="44"/>
      <line num="191" type="stmt" count="44"/>
      <line num="192" type="stmt" count="44"/>
      <line num="199" type="method" name="setLastEditAge" visibility="private" complexity="3" crap="3" count="56"/>
      <line num="200" type="stmt" count="56"/>
      <line num="201" type="stmt" count="56"/>
      <line num="202" type="stmt" count="43"/>
      <line num="203" type="stmt" count="43"/>
      <line num="204" type="stmt" count="43"/>
      <line num="205" type="stmt" count="43"/>
      <line num="206" type="stmt" count="13"/>
      <line num="207" type="stmt" count="10"/>
      <line num="208" type="stmt" count="10"/>
      <line num="209" type="stmt" count="10"/>
      <line num="210" type="stmt" count="10"/>
      <line num="211" type="stmt" count="10"/>
      <line num="213" type="stmt" count="3"/>
      <line num="224" type="method" name="getMoveVars" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="228" type="stmt" count="5"/>
      <line num="229" type="stmt" count="5"/>
      <line num="230" type="stmt" count="5"/>
      <line num="232" type="stmt" count="5"/>
      <line num="233" type="stmt" count="5"/>
      <line num="234" type="stmt" count="5"/>
      <line num="235" type="stmt" count="5"/>
      <line num="237" type="stmt" count="5"/>
      <line num="238" type="stmt" count="5"/>
      <line num="247" type="method" name="getDeleteVars" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="250" type="stmt" count="5"/>
      <line num="251" type="stmt" count="5"/>
      <line num="253" type="stmt" count="5"/>
      <line num="254" type="stmt" count="5"/>
      <line num="255" type="stmt" count="5"/>
      <line num="257" type="stmt" count="5"/>
      <line num="258" type="stmt" count="5"/>
      <line num="271" type="method" name="getUploadVars" visibility="public" complexity="7" crap="9.31" count="2"/>
      <line num="278" type="stmt" count="2"/>
      <line num="279" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="285" type="stmt" count="2"/>
      <line num="286" type="stmt" count="2"/>
      <line num="287" type="stmt" count="2"/>
      <line num="291" type="stmt" count="2"/>
      <line num="294" type="stmt" count="2"/>
      <line num="295" type="stmt" count="2"/>
      <line num="297" type="stmt" count="2"/>
      <line num="298" type="stmt" count="2"/>
      <line num="299" type="stmt" count="2"/>
      <line num="300" type="stmt" count="2"/>
      <line num="301" type="stmt" count="2"/>
      <line num="304" type="stmt" count="2"/>
      <line num="306" type="stmt" count="2"/>
      <line num="307" type="stmt" count="2"/>
      <line num="308" type="stmt" count="0"/>
      <line num="309" type="stmt" count="0"/>
      <line num="310" type="stmt" count="0"/>
      <line num="313" type="stmt" count="0"/>
      <line num="314" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="316" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <line num="321" type="stmt" count="0"/>
      <line num="323" type="stmt" count="2"/>
      <line num="324" type="stmt" count="2"/>
      <line num="328" type="stmt" count="2"/>
      <line num="329" type="stmt" count="2"/>
      <line num="330" type="stmt" count="2"/>
      <line num="332" type="stmt" count="2"/>
      <line num="334" type="stmt" count="2"/>
      <line num="335" type="stmt" count="2"/>
      <line num="345" type="method" name="getAccountCreationVars" visibility="public" complexity="5" crap="5" count="10"/>
      <line num="350" type="stmt" count="10"/>
      <line num="351" type="stmt" count="1"/>
      <line num="355" type="stmt" count="9"/>
      <line num="356" type="stmt" count="9"/>
      <line num="357" type="stmt" count="9"/>
      <line num="358" type="stmt" count="9"/>
      <line num="359" type="stmt" count="9"/>
      <line num="363" type="stmt" count="9"/>
      <line num="364" type="stmt" count="1"/>
      <line num="365" type="stmt" count="1"/>
      <line num="366" type="stmt" count="1"/>
      <line num="367" type="stmt" count="1"/>
      <line num="368" type="stmt" count="1"/>
      <line num="372" type="stmt" count="10"/>
      <line num="373" type="stmt" count="10"/>
      <line num="374" type="stmt" count="10"/>
      <line num="375" type="stmt" count="10"/>
      <line num="376" type="stmt" count="10"/>
      <line num="377" type="stmt" count="10"/>
      <line num="378" type="stmt" count="10"/>
      <line num="379" type="stmt" count="10"/>
      <line num="381" type="stmt" count="10"/>
      <line num="382" type="stmt" count="10"/>
      <line num="383" type="stmt" count="10"/>
      <line num="384" type="stmt" count="10"/>
      <metrics loc="387" ncloc="288" classes="1" methods="10" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="144" coveredstatements="129" elements="154" coveredelements="136"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/VariableGenerator/VariableGenerator.php">
      <class name="MediaWiki\Extension\AbuseFilter\VariableGenerator\VariableGenerator" namespace="global">
        <metrics complexity="15" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="151" coveredstatements="149" elements="159" coveredelements="155"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="21"/>
      <line num="33" type="stmt" count="21"/>
      <line num="36" type="method" name="getVariableHolder" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="37" type="stmt" count="11"/>
      <line num="48" type="method" name="addGenericVars" visibility="public" complexity="2" crap="2.01" count="11"/>
      <line num="49" type="stmt" count="11"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="11"/>
      <line num="52" type="stmt" count="11"/>
      <line num="55" type="stmt" count="11"/>
      <line num="56" type="stmt" count="11"/>
      <line num="58" type="stmt" count="11"/>
      <line num="59" type="stmt" count="11"/>
      <line num="68" type="method" name="addUserVars" visibility="public" complexity="2" crap="2" count="8"/>
      <line num="69" type="stmt" count="8"/>
      <line num="70" type="stmt" count="8"/>
      <line num="72" type="stmt" count="8"/>
      <line num="73" type="stmt" count="8"/>
      <line num="74" type="stmt" count="8"/>
      <line num="75" type="stmt" count="8"/>
      <line num="76" type="stmt" count="8"/>
      <line num="78" type="stmt" count="8"/>
      <line num="80" type="stmt" count="8"/>
      <line num="81" type="stmt" count="8"/>
      <line num="82" type="stmt" count="8"/>
      <line num="83" type="stmt" count="8"/>
      <line num="84" type="stmt" count="8"/>
      <line num="85" type="stmt" count="8"/>
      <line num="86" type="stmt" count="8"/>
      <line num="87" type="stmt" count="8"/>
      <line num="89" type="stmt" count="8"/>
      <line num="90" type="stmt" count="8"/>
      <line num="91" type="stmt" count="8"/>
      <line num="92" type="stmt" count="8"/>
      <line num="93" type="stmt" count="8"/>
      <line num="95" type="stmt" count="8"/>
      <line num="96" type="stmt" count="8"/>
      <line num="97" type="stmt" count="8"/>
      <line num="98" type="stmt" count="8"/>
      <line num="99" type="stmt" count="8"/>
      <line num="101" type="stmt" count="8"/>
      <line num="102" type="stmt" count="8"/>
      <line num="103" type="stmt" count="8"/>
      <line num="104" type="stmt" count="8"/>
      <line num="105" type="stmt" count="8"/>
      <line num="107" type="stmt" count="8"/>
      <line num="108" type="stmt" count="8"/>
      <line num="109" type="stmt" count="8"/>
      <line num="110" type="stmt" count="8"/>
      <line num="111" type="stmt" count="8"/>
      <line num="113" type="stmt" count="8"/>
      <line num="114" type="stmt" count="8"/>
      <line num="115" type="stmt" count="8"/>
      <line num="116" type="stmt" count="8"/>
      <line num="117" type="stmt" count="8"/>
      <line num="119" type="stmt" count="8"/>
      <line num="120" type="stmt" count="8"/>
      <line num="121" type="stmt" count="8"/>
      <line num="122" type="stmt" count="8"/>
      <line num="123" type="stmt" count="8"/>
      <line num="125" type="stmt" count="8"/>
      <line num="127" type="stmt" count="8"/>
      <line num="137" type="method" name="addTitleVars" visibility="public" complexity="5" crap="5" count="12"/>
      <line num="142" type="stmt" count="12"/>
      <line num="143" type="stmt" count="0"/>
      <line num="145" type="stmt" count="12"/>
      <line num="147" type="stmt" count="12"/>
      <line num="148" type="stmt" count="12"/>
      <line num="149" type="stmt" count="12"/>
      <line num="153" type="stmt" count="12"/>
      <line num="154" type="stmt" count="12"/>
      <line num="155" type="stmt" count="12"/>
      <line num="156" type="stmt" count="12"/>
      <line num="157" type="stmt" count="12"/>
      <line num="158" type="stmt" count="12"/>
      <line num="159" type="stmt" count="12"/>
      <line num="162" type="stmt" count="12"/>
      <line num="165" type="stmt" count="12"/>
      <line num="166" type="stmt" count="12"/>
      <line num="167" type="stmt" count="12"/>
      <line num="168" type="stmt" count="12"/>
      <line num="169" type="stmt" count="12"/>
      <line num="171" type="stmt" count="12"/>
      <line num="172" type="stmt" count="12"/>
      <line num="173" type="stmt" count="12"/>
      <line num="174" type="stmt" count="12"/>
      <line num="175" type="stmt" count="12"/>
      <line num="177" type="stmt" count="12"/>
      <line num="178" type="stmt" count="12"/>
      <line num="179" type="stmt" count="12"/>
      <line num="180" type="stmt" count="12"/>
      <line num="181" type="stmt" count="12"/>
      <line num="183" type="stmt" count="12"/>
      <line num="185" type="stmt" count="12"/>
      <line num="188" type="method" name="addDerivedEditVars" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="189" type="stmt" count="8"/>
      <line num="190" type="stmt" count="8"/>
      <line num="191" type="stmt" count="8"/>
      <line num="192" type="stmt" count="8"/>
      <line num="193" type="stmt" count="8"/>
      <line num="194" type="stmt" count="8"/>
      <line num="195" type="stmt" count="8"/>
      <line num="196" type="stmt" count="8"/>
      <line num="199" type="stmt" count="8"/>
      <line num="200" type="stmt" count="8"/>
      <line num="201" type="stmt" count="8"/>
      <line num="202" type="stmt" count="8"/>
      <line num="203" type="stmt" count="8"/>
      <line num="204" type="stmt" count="8"/>
      <line num="207" type="stmt" count="8"/>
      <line num="208" type="stmt" count="8"/>
      <line num="209" type="stmt" count="8"/>
      <line num="210" type="stmt" count="8"/>
      <line num="213" type="stmt" count="8"/>
      <line num="214" type="stmt" count="8"/>
      <line num="216" type="stmt" count="8"/>
      <line num="227" type="method" name="addEditVarsFromUpdate" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="228" type="stmt" count="6"/>
      <line num="230" type="stmt" count="6"/>
      <line num="231" type="stmt" count="6"/>
      <line num="232" type="stmt" count="6"/>
      <line num="233" type="stmt" count="6"/>
      <line num="234" type="stmt" count="6"/>
      <line num="235" type="stmt" count="6"/>
      <line num="236" type="stmt" count="6"/>
      <line num="237" type="stmt" count="6"/>
      <line num="239" type="stmt" count="6"/>
      <line num="254" type="method" name="addEditVars" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="259" type="stmt" count="2"/>
      <line num="261" type="stmt" count="2"/>
      <line num="262" type="stmt" count="2"/>
      <line num="263" type="stmt" count="2"/>
      <line num="264" type="stmt" count="2"/>
      <line num="266" type="stmt" count="2"/>
      <line num="267" type="stmt" count="2"/>
      <line num="268" type="stmt" count="2"/>
      <line num="270" type="stmt" count="2"/>
      <line num="271" type="stmt" count="1"/>
      <line num="272" type="stmt" count="1"/>
      <line num="275" type="stmt" count="1"/>
      <line num="276" type="stmt" count="1"/>
      <line num="277" type="stmt" count="1"/>
      <line num="278" type="stmt" count="1"/>
      <line num="279" type="stmt" count="1"/>
      <line num="280" type="stmt" count="1"/>
      <line num="283" type="stmt" count="2"/>
      <line num="284" type="stmt" count="2"/>
      <line num="285" type="stmt" count="2"/>
      <line num="286" type="stmt" count="2"/>
      <line num="287" type="stmt" count="2"/>
      <line num="288" type="stmt" count="2"/>
      <line num="289" type="stmt" count="2"/>
      <line num="291" type="stmt" count="2"/>
      <line num="292" type="stmt" count="2"/>
      <line num="293" type="stmt" count="2"/>
      <line num="294" type="stmt" count="2"/>
      <line num="295" type="stmt" count="2"/>
      <line num="296" type="stmt" count="2"/>
      <line num="298" type="stmt" count="2"/>
      <metrics loc="301" ncloc="241" classes="1" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="151" coveredstatements="149" elements="159" coveredelements="155"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/VariableGenerator/VariableGeneratorFactory.php">
      <class name="MediaWiki\Extension\AbuseFilter\VariableGenerator\VariableGeneratorFactory" namespace="global">
        <metrics complexity="4" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="27" elements="31" coveredelements="31"/>
      </class>
      <line num="41" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="61" type="method" name="newGenerator" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="71" type="method" name="newRunGenerator" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="72" 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="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="81" type="stmt" count="1"/>
      <line num="90" type="method" name="newRCGenerator" visibility="public" complexity="1" crap="1" 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="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"/>
      <metrics loc="107" ncloc="77" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="27" elements="31" coveredelements="31"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/AbuseFilterProtectedVariablesLookup.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\AbuseFilterProtectedVariablesLookup" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="32" type="method" name="getAllProtectedVariables" visibility="public" complexity="1" crap="1" 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"/>
      <metrics loc="40" ncloc="31" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="8" coveredelements="8"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/LazyLoadedVariable.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\LazyLoadedVariable" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="6" coveredelements="6"/>
      </class>
      <line num="7" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="11" type="stmt" count="1"/>
      <line num="13" type="method" name="getMethod" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="14" type="stmt" count="1"/>
      <line num="17" type="method" name="getParameters" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="18" type="stmt" count="1"/>
      <metrics loc="21" ncloc="21" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="3" coveredstatements="3" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/LazyVariableComputer.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\LazyVariableComputer" namespace="global">
        <metrics complexity="79" methods="7" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="312" coveredstatements="302" elements="319" coveredelements="306"/>
      </class>
      <line num="59" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="106"/>
      <line num="77" type="stmt" count="106"/>
      <line num="89" type="method" name="compute" visibility="public" complexity="64" crap="64" count="74"/>
      <line num="90" type="stmt" count="74"/>
      <line num="91" type="stmt" count="74"/>
      <line num="92" type="stmt" count="74"/>
      <line num="94" type="stmt" count="74"/>
      <line num="95" type="stmt" count="74"/>
      <line num="96" type="stmt" count="74"/>
      <line num="97" type="stmt" count="74"/>
      <line num="98" type="stmt" count="74"/>
      <line num="99" type="stmt" count="74"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="105" type="stmt" count="73"/>
      <line num="106" type="stmt" count="23"/>
      <line num="107" type="stmt" count="23"/>
      <line num="108" type="stmt" count="23"/>
      <line num="109" type="stmt" count="23"/>
      <line num="111" type="stmt" count="23"/>
      <line num="112" type="stmt" count="23"/>
      <line num="113" type="stmt" count="23"/>
      <line num="114" type="stmt" count="23"/>
      <line num="115" type="stmt" count="23"/>
      <line num="116" type="stmt" count="23"/>
      <line num="117" type="stmt" count="73"/>
      <line num="118" type="stmt" count="23"/>
      <line num="119" type="stmt" count="23"/>
      <line num="120" type="stmt" count="23"/>
      <line num="121" type="stmt" count="23"/>
      <line num="122" type="stmt" count="23"/>
      <line num="123" type="stmt" count="23"/>
      <line num="124" type="stmt" count="23"/>
      <line num="127" type="stmt" count="23"/>
      <line num="128" type="stmt" count="62"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="132" type="stmt" count="4"/>
      <line num="133" type="stmt" count="4"/>
      <line num="135" type="stmt" count="4"/>
      <line num="136" type="stmt" count="4"/>
      <line num="137" type="stmt" count="62"/>
      <line num="141" type="stmt" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="145" type="stmt" 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="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" 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="161" type="stmt" count="62"/>
      <line num="164" type="stmt" count="1"/>
      <line num="168" type="stmt" count="1"/>
      <line num="169" type="stmt" count="1"/>
      <line num="170" type="stmt" count="1"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="1"/>
      <line num="174" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="177" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="179" type="stmt" count="1"/>
      <line num="180" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="182" type="stmt" count="1"/>
      <line num="183" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="189" type="stmt" count="0"/>
      <line num="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="194" type="stmt" count="62"/>
      <line num="196" type="stmt" count="6"/>
      <line num="198" type="stmt" count="6"/>
      <line num="199" type="stmt" count="6"/>
      <line num="200" type="stmt" count="6"/>
      <line num="201" type="stmt" count="6"/>
      <line num="202" type="stmt" count="6"/>
      <line num="203" type="stmt" count="6"/>
      <line num="204" type="stmt" count="62"/>
      <line num="206" type="stmt" count="8"/>
      <line num="207" type="stmt" count="8"/>
      <line num="208" type="stmt" count="8"/>
      <line num="209" type="stmt" count="8"/>
      <line num="210" type="stmt" count="60"/>
      <line num="214" type="stmt" count="5"/>
      <line num="215" type="stmt" count="5"/>
      <line num="217" type="stmt" count="5"/>
      <line num="218" type="stmt" count="5"/>
      <line num="220" type="stmt" count="5"/>
      <line num="221" type="stmt" count="5"/>
      <line num="222" type="stmt" count="5"/>
      <line num="223" type="stmt" count="5"/>
      <line num="224" type="stmt" count="5"/>
      <line num="225" type="stmt" count="5"/>
      <line num="226" type="stmt" count="5"/>
      <line num="227" type="stmt" count="5"/>
      <line num="228" type="stmt" count="5"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="235" type="stmt" count="5"/>
      <line num="237" type="stmt" count="0"/>
      <line num="239" type="stmt" count="5"/>
      <line num="240" type="stmt" count="58"/>
      <line num="242" type="stmt" count="8"/>
      <line num="243" type="stmt" count="8"/>
      <line num="244" type="stmt" count="8"/>
      <line num="245" type="stmt" count="8"/>
      <line num="246" type="stmt" count="8"/>
      <line num="247" type="stmt" count="8"/>
      <line num="248" type="stmt" count="56"/>
      <line num="250" type="stmt" count="4"/>
      <line num="252" type="stmt" count="4"/>
      <line num="253" type="stmt" count="4"/>
      <line num="254" type="stmt" count="4"/>
      <line num="255" type="stmt" count="4"/>
      <line num="256" type="stmt" count="4"/>
      <line num="257" type="stmt" count="56"/>
      <line num="258" type="stmt" count="4"/>
      <line num="259" type="stmt" count="4"/>
      <line num="260" type="stmt" count="4"/>
      <line num="264" type="stmt" count="4"/>
      <line num="265" type="stmt" count="4"/>
      <line num="266" type="stmt" count="56"/>
      <line num="267" type="stmt" count="5"/>
      <line num="268" type="stmt" count="5"/>
      <line num="269" type="stmt" count="55"/>
      <line num="270" type="stmt" count="2"/>
      <line num="271" type="stmt" count="2"/>
      <line num="273" type="stmt" count="1"/>
      <line num="274" type="stmt" count="1"/>
      <line num="276" type="stmt" count="1"/>
      <line num="278" type="stmt" count="2"/>
      <line num="279" type="stmt" count="53"/>
      <line num="280" type="stmt" count="12"/>
      <line num="282" type="stmt" count="12"/>
      <line num="283" type="stmt" count="12"/>
      <line num="284" type="stmt" count="12"/>
      <line num="285" type="stmt" count="45"/>
      <line num="287" type="stmt" count="6"/>
      <line num="288" type="stmt" count="6"/>
      <line num="289" type="stmt" count="6"/>
      <line num="290" type="stmt" count="1"/>
      <line num="291" type="stmt" count="5"/>
      <line num="300" type="stmt" count="2"/>
      <line num="302" type="stmt" count="3"/>
      <line num="304" type="stmt" count="6"/>
      <line num="305" type="stmt" count="39"/>
      <line num="307" type="stmt" count="6"/>
      <line num="308" type="stmt" count="6"/>
      <line num="321" type="stmt" count="6"/>
      <line num="322" type="stmt" count="6"/>
      <line num="325" type="stmt" count="4"/>
      <line num="326" type="stmt" count="4"/>
      <line num="327" type="stmt" count="2"/>
      <line num="329" type="stmt" count="2"/>
      <line num="332" type="stmt" count="6"/>
      <line num="333" type="stmt" count="33"/>
      <line num="335" type="stmt" count="5"/>
      <line num="336" type="stmt" count="5"/>
      <line num="337" type="stmt" count="1"/>
      <line num="338" type="stmt" count="4"/>
      <line num="339" type="stmt" count="1"/>
      <line num="340" type="stmt" count="3"/>
      <line num="341" type="stmt" count="1"/>
      <line num="342" type="stmt" count="2"/>
      <line num="343" type="stmt" count="1"/>
      <line num="345" type="stmt" count="1"/>
      <line num="347" type="stmt" count="5"/>
      <line num="348" type="stmt" count="28"/>
      <line num="350" type="stmt" count="5"/>
      <line num="351" type="stmt" count="5"/>
      <line num="352" type="stmt" count="5"/>
      <line num="353" type="stmt" count="27"/>
      <line num="355" type="stmt" count="5"/>
      <line num="356" type="stmt" count="5"/>
      <line num="357" type="stmt" count="5"/>
      <line num="358" type="stmt" count="26"/>
      <line num="360" type="stmt" count="5"/>
      <line num="361" type="stmt" count="5"/>
      <line num="362" type="stmt" count="5"/>
      <line num="363" type="stmt" count="25"/>
      <line num="365" type="stmt" count="5"/>
      <line num="366" type="stmt" count="5"/>
      <line num="367" type="stmt" count="5"/>
      <line num="368" type="stmt" count="24"/>
      <line num="371" type="stmt" count="5"/>
      <line num="372" type="stmt" count="5"/>
      <line num="373" type="stmt" count="5"/>
      <line num="374" type="stmt" count="23"/>
      <line num="376" type="stmt" count="7"/>
      <line num="377" type="stmt" count="7"/>
      <line num="379" type="stmt" count="7"/>
      <line num="380" type="stmt" count="1"/>
      <line num="384" type="stmt" count="6"/>
      <line num="385" type="stmt" count="6"/>
      <line num="387" type="stmt" count="7"/>
      <line num="388" type="stmt" count="20"/>
      <line num="390" type="stmt" count="6"/>
      <line num="392" type="stmt" count="6"/>
      <line num="393" type="stmt" count="6"/>
      <line num="394" type="stmt" count="6"/>
      <line num="395" type="stmt" count="1"/>
      <line num="396" type="stmt" count="1"/>
      <line num="399" type="stmt" count="6"/>
      <line num="400" type="stmt" count="6"/>
      <line num="401" type="stmt" count="6"/>
      <line num="402" type="stmt" count="17"/>
      <line num="403" type="stmt" count="3"/>
      <line num="404" type="stmt" count="3"/>
      <line num="405" type="stmt" count="1"/>
      <line num="406" type="stmt" count="1"/>
      <line num="408" type="stmt" count="3"/>
      <line num="409" type="stmt" count="3"/>
      <line num="410" type="stmt" count="3"/>
      <line num="411" type="stmt" count="15"/>
      <line num="412" type="stmt" count="11"/>
      <line num="413" type="stmt" count="11"/>
      <line num="414" type="stmt" count="11"/>
      <line num="415" type="stmt" count="12"/>
      <line num="416" type="stmt" count="6"/>
      <line num="417" type="stmt" count="6"/>
      <line num="418" type="stmt" count="6"/>
      <line num="419" type="stmt" count="6"/>
      <line num="420" type="stmt" count="6"/>
      <line num="421" type="stmt" count="1"/>
      <line num="422" type="stmt" count="1"/>
      <line num="423" type="stmt" count="1"/>
      <line num="424" type="stmt" count="6"/>
      <line num="425" type="stmt" count="2"/>
      <line num="426" type="stmt" count="2"/>
      <line num="427" type="stmt" count="2"/>
      <line num="428" type="stmt" count="4"/>
      <line num="429" type="stmt" count="1"/>
      <line num="430" type="stmt" count="1"/>
      <line num="431" type="stmt" count="3"/>
      <line num="432" type="stmt" count="1"/>
      <line num="433" type="stmt" count="1"/>
      <line num="435" type="stmt" count="2"/>
      <line num="436" type="stmt" count="2"/>
      <line num="437" type="stmt" count="2"/>
      <line num="438" type="stmt" count="2"/>
      <line num="439" type="stmt" count="2"/>
      <line num="440" type="stmt" count="2"/>
      <line num="441" type="stmt" count="1"/>
      <line num="445" type="stmt" count="72"/>
      <line num="452" type="method" name="getLinksFromDB" visibility="private" complexity="2" crap="2" count="8"/>
      <line num="453" type="stmt" count="8"/>
      <line num="454" type="stmt" count="8"/>
      <line num="455" type="stmt" count="1"/>
      <line num="458" type="stmt" count="7"/>
      <line num="459" type="stmt" count="7"/>
      <line num="460" type="stmt" count="7"/>
      <line num="461" type="stmt" count="7"/>
      <line num="462" type="stmt" count="7"/>
      <line num="470" type="method" name="getLastPageAuthors" visibility="private" complexity="4" crap="4" count="5"/>
      <line num="471" type="stmt" count="5"/>
      <line num="472" type="stmt" count="1"/>
      <line num="475" type="stmt" count="5"/>
      <line num="477" type="stmt" count="5"/>
      <line num="478" type="stmt" count="5"/>
      <line num="479" type="stmt" count="5"/>
      <line num="480" type="stmt" count="5"/>
      <line num="481" type="stmt" count="5"/>
      <line num="483" type="stmt" count="5"/>
      <line num="484" type="stmt" count="5"/>
      <line num="485" type="stmt" count="5"/>
      <line num="486" type="stmt" count="5"/>
      <line num="487" type="stmt" count="5"/>
      <line num="488" type="stmt" count="5"/>
      <line num="491" type="stmt" count="5"/>
      <line num="492" type="stmt" count="5"/>
      <line num="493" type="stmt" count="5"/>
      <line num="494" type="stmt" count="5"/>
      <line num="495" type="stmt" count="5"/>
      <line num="496" type="stmt" count="5"/>
      <line num="497" type="stmt" count="5"/>
      <line num="498" type="stmt" count="5"/>
      <line num="499" type="stmt" count="5"/>
      <line num="500" type="stmt" count="5"/>
      <line num="502" type="stmt" count="5"/>
      <line num="503" type="stmt" count="5"/>
      <line num="504" type="stmt" count="5"/>
      <line num="505" type="stmt" count="5"/>
      <line num="506" type="stmt" count="0"/>
      <line num="510" type="stmt" count="5"/>
      <line num="511" type="stmt" count="5"/>
      <line num="512" type="stmt" count="5"/>
      <line num="519" type="method" name="getRevisionFromParameters" visibility="private" complexity="5" crap="5.68" count="4"/>
      <line num="520" type="stmt" count="4"/>
      <line num="521" type="stmt" count="2"/>
      <line num="522" type="stmt" count="2"/>
      <line num="523" type="stmt" count="2"/>
      <line num="525" type="stmt" count="0"/>
      <line num="526" type="stmt" count="0"/>
      <line num="527" type="stmt" count="0"/>
      <line num="529" type="stmt" count="4"/>
      <line num="530" type="stmt" count="1"/>
      <line num="532" type="stmt" count="4"/>
      <line num="535" type="method" name="getContentModelFromRevision" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="538" type="stmt" count="1"/>
      <line num="539" type="stmt" count="1"/>
      <line num="551" type="method" name="parseNonEditWikitext" visibility="private" complexity="2" crap="2" count="1"/>
      <line num="552" type="stmt" count="1"/>
      <line num="554" type="stmt" count="1"/>
      <line num="556" type="stmt" count="1"/>
      <line num="557" type="stmt" count="1"/>
      <line num="558" type="stmt" count="1"/>
      <line num="559" type="stmt" count="1"/>
      <line num="560" type="stmt" count="1"/>
      <line num="563" type="stmt" count="1"/>
      <metrics loc="566" ncloc="459" classes="1" methods="7" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="312" coveredstatements="302" elements="319" coveredelements="306"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/UnsetVariableException.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\UnsetVariableException" namespace="global">
        <metrics complexity="1" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="16" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/VariableHolder.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\VariableHolder" namespace="global">
        <metrics complexity="14" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="19" elements="27" coveredelements="27"/>
      </class>
      <line num="22" type="method" name="newFromArray" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="34" type="method" name="setVar" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="35" type="stmt" count="9"/>
      <line num="36" type="stmt" count="9"/>
      <line num="37" type="stmt" count="6"/>
      <line num="40" type="stmt" count="9"/>
      <line num="48" type="method" name="getVars" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="57" type="method" name="setLazyLoadVar" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="68" type="method" name="getVarThrow" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="69" type="stmt" count="4"/>
      <line num="70" type="stmt" count="4"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="3"/>
      <line num="89" type="method" name="addHolders" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="95" type="method" name="varIsSet" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="96" type="stmt" count="5"/>
      <line num="99" type="method" name="removeVar" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <metrics loc="103" ncloc="62" classes="1" methods="8" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="19" coveredstatements="19" elements="27" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/VariablesBlobStore.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\VariablesBlobStore" namespace="global">
        <metrics complexity="15" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="45" elements="48" coveredelements="48"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="22"/>
      <line num="29" type="stmt" count="22"/>
      <line num="39" type="method" name="storeVarDump" visibility="public" complexity="6" crap="6" count="17"/>
      <line num="42" type="stmt" count="17"/>
      <line num="43" type="stmt" count="17"/>
      <line num="47" type="stmt" count="17"/>
      <line num="48" type="stmt" count="17"/>
      <line num="49" type="stmt" count="17"/>
      <line num="50" type="stmt" count="17"/>
      <line num="54" type="stmt" count="17"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="61" type="stmt" count="17"/>
      <line num="62" type="stmt" count="2"/>
      <line num="66" type="stmt" count="17"/>
      <line num="68" type="stmt" count="17"/>
      <line num="69" type="stmt" count="17"/>
      <line num="71" type="stmt" count="17"/>
      <line num="72" type="stmt" count="17"/>
      <line num="73" type="stmt" count="17"/>
      <line num="74" type="stmt" count="17"/>
      <line num="75" type="stmt" count="17"/>
      <line num="77" type="stmt" count="17"/>
      <line num="78" type="stmt" count="16"/>
      <line num="81" type="stmt" count="1"/>
      <line num="95" type="method" name="loadVarDump" visibility="public" complexity="8" crap="8" count="21"/>
      <line num="96" type="stmt" count="21"/>
      <line num="97" type="stmt" count="1"/>
      <line num="99" type="stmt" count="21"/>
      <line num="101" type="stmt" count="21"/>
      <line num="102" type="stmt" count="21"/>
      <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="108" type="stmt" count="20"/>
      <line num="112" type="stmt" count="21"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="117" type="stmt" count="20"/>
      <line num="118" type="stmt" count="20"/>
      <line num="125" type="stmt" count="20"/>
      <line num="127" type="stmt" count="4"/>
      <line num="128" type="stmt" count="4"/>
      <line num="132" type="stmt" count="20"/>
      <line num="133" type="stmt" count="1"/>
      <line num="136" type="stmt" count="20"/>
      <line num="137" type="stmt" count="20"/>
      <metrics loc="140" ncloc="103" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="45" elements="48" coveredelements="48"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/VariablesFormatter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\VariablesFormatter" namespace="global">
        <metrics complexity="13" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="55" elements="60" coveredelements="58"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="21" type="stmt" count="4"/>
      <line num="23" type="method" name="setMessageLocalizer" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="27" type="method" name="buildVarDumpTable" visibility="public" complexity="4" crap="4" count="2"/>
      <line num="28" type="stmt" count="2"/>
      <line num="30" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="34" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="0"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="48" 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="54" type="stmt" count="1"/>
      <line num="55" 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="61" type="stmt" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="75" type="stmt" count="2"/>
      <line num="76" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="86" type="method" name="formatVar" visibility="public" complexity="7" crap="7" count="12"/>
      <line num="87" type="stmt" count="12"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="11"/>
      <line num="90" type="stmt" count="4"/>
      <line num="91" type="stmt" count="4"/>
      <line num="92" type="stmt" count="4"/>
      <line num="93" type="stmt" count="4"/>
      <line num="94" type="stmt" count="4"/>
      <line num="97" type="stmt" count="4"/>
      <line num="98" type="stmt" count="11"/>
      <line num="100" type="stmt" count="7"/>
      <line num="101" type="stmt" count="9"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="8"/>
      <line num="105" type="stmt" count="1"/>
      <line num="107" type="stmt" count="7"/>
      <metrics loc="110" ncloc="97" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="55" elements="60" coveredelements="58"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Variables/VariablesManager.php">
      <class name="MediaWiki\Extension\AbuseFilter\Variables\VariablesManager" namespace="global">
        <metrics complexity="25" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="69" coveredstatements="69" elements="76" coveredelements="76"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="15"/>
      <line num="27" type="stmt" count="15"/>
      <line num="33" type="method" name="translateDeprecatedVars" visibility="public" complexity="3" crap="3" 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="38" type="stmt" count="1"/>
      <line num="54" type="method" name="getVar" visibility="public" complexity="4" crap="4" count="12"/>
      <line num="59" type="stmt" count="12"/>
      <line num="60" type="stmt" count="12"/>
      <line num="62" type="stmt" count="9"/>
      <line num="63" type="stmt" count="9"/>
      <line num="64" type="stmt" count="5"/>
      <line num="65" type="stmt" count="1"/>
      <line num="66" type="stmt" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="5"/>
      <line num="69" type="stmt" count="5"/>
      <line num="70" type="stmt" count="7"/>
      <line num="71" type="stmt" count="7"/>
      <line num="82" type="stmt" count="3"/>
      <line num="83" type="stmt" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="91" type="stmt" count="3"/>
      <line num="105" type="method" name="dumpAllVars" visibility="public" complexity="9" crap="9" count="4"/>
      <line num="110" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <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="122" type="stmt" count="4"/>
      <line num="123" type="stmt" count="4"/>
      <line num="124" type="stmt" count="4"/>
      <line num="126" type="stmt" count="4"/>
      <line num="128" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="134" type="stmt" count="4"/>
      <line num="141" type="method" name="computeDBVars" visibility="public" complexity="3" crap="3" 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="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="152" type="stmt" count="1"/>
      <line num="153" type="stmt" count="1"/>
      <line num="154" 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="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="177" type="method" name="exportAllVars" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="179" type="stmt" count="1"/>
      <line num="180" type="stmt" count="1"/>
      <line num="183" type="stmt" count="1"/>
      <line num="192" type="method" name="exportNonLazyVars" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="194" type="stmt" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="1"/>
      <line num="200" type="stmt" count="1"/>
      <metrics loc="203" ncloc="144" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="69" coveredstatements="69" elements="76" coveredelements="76"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterView.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterView" namespace="global">
        <metrics complexity="15" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="81" coveredstatements="73" elements="88" coveredelements="79"/>
      </class>
      <line num="46" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="68"/>
      <line num="53" type="stmt" count="68"/>
      <line num="54" type="stmt" count="68"/>
      <line num="61" type="method" name="getTitle" visibility="public" complexity="1" crap="1" count="40"/>
      <line num="62" type="stmt" count="40"/>
      <line num="75" type="method" name="buildFilterLoader" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="76" type="stmt" count="11"/>
      <line num="77" type="stmt" count="11"/>
      <line num="78" type="stmt" count="11"/>
      <line num="79" type="stmt" count="11"/>
      <line num="80" type="stmt" count="11"/>
      <line num="81" type="stmt" count="11"/>
      <line num="82" type="stmt" count="11"/>
      <line num="83" type="stmt" count="11"/>
      <line num="84" type="stmt" count="11"/>
      <line num="85" type="stmt" count="11"/>
      <line num="86" type="stmt" count="11"/>
      <line num="87" type="stmt" count="11"/>
      <line num="88" type="stmt" count="11"/>
      <line num="89" type="stmt" count="11"/>
      <line num="90" type="stmt" count="11"/>
      <line num="91" type="stmt" count="11"/>
      <line num="92" type="stmt" count="11"/>
      <line num="93" type="stmt" count="11"/>
      <line num="94" type="stmt" count="11"/>
      <line num="95" type="stmt" count="11"/>
      <line num="96" type="stmt" count="11"/>
      <line num="97" type="stmt" count="11"/>
      <line num="98" type="stmt" count="11"/>
      <line num="99" type="stmt" count="11"/>
      <line num="100" type="stmt" count="11"/>
      <line num="101" type="stmt" count="11"/>
      <line num="103" type="stmt" count="11"/>
      <line num="104" type="stmt" count="11"/>
      <line num="105" type="stmt" count="11"/>
      <line num="106" type="stmt" count="11"/>
      <line num="107" type="stmt" count="11"/>
      <line num="115" type="method" name="buildTestConditions" visibility="public" complexity="6" crap="7.18" count="5"/>
      <line num="116" type="stmt" count="5"/>
      <line num="117" type="stmt" count="5"/>
      <line num="118" type="stmt" count="5"/>
      <line num="119" type="stmt" count="5"/>
      <line num="120" type="stmt" count="5"/>
      <line num="121" type="stmt" count="5"/>
      <line num="125" type="stmt" count="0"/>
      <line num="127" type="stmt" count="5"/>
      <line num="128" type="stmt" count="0"/>
      <line num="130" type="stmt" count="5"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="141" type="stmt" count="5"/>
      <line num="142" type="stmt" count="5"/>
      <line num="143" type="stmt" count="5"/>
      <line num="144" type="stmt" count="5"/>
      <line num="147" type="stmt" count="5"/>
      <line num="148" type="stmt" count="5"/>
      <line num="149" type="stmt" count="5"/>
      <line num="150" type="stmt" count="5"/>
      <line num="151" type="stmt" count="5"/>
      <line num="160" type="method" name="buildVisibilityConditions" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="161" type="stmt" count="5"/>
      <line num="162" type="stmt" count="5"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="168" type="stmt" count="5"/>
      <line num="169" type="stmt" count="5"/>
      <line num="170" type="stmt" count="5"/>
      <line num="178" type="method" name="getLinkToLatestDiff" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="179" type="stmt" count="17"/>
      <line num="180" type="stmt" count="17"/>
      <line num="181" type="stmt" count="17"/>
      <line num="182" type="stmt" count="17"/>
      <line num="190" type="method" name="showUnrecoverableError" visibility="protected" complexity="1" crap="1" count="5"/>
      <line num="191" type="stmt" count="5"/>
      <line num="192" type="stmt" count="5"/>
      <line num="193" type="stmt" count="5"/>
      <line num="194" type="stmt" count="5"/>
      <line num="195" type="stmt" count="5"/>
      <line num="196" type="stmt" count="5"/>
      <line num="197" type="stmt" count="5"/>
      <line num="198" type="stmt" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="200" type="stmt" count="5"/>
      <metrics loc="204" ncloc="155" classes="1" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="81" coveredstatements="73" elements="88" coveredelements="79"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewDiff.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewDiff" namespace="global">
        <metrics complexity="57" methods="9" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="216" coveredstatements="82" elements="225" coveredelements="83"/>
      </class>
      <line num="41" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="50" type="stmt" count="9"/>
      <line num="51" type="stmt" count="9"/>
      <line num="57" type="method" name="show" visibility="public" complexity="7" crap="17.05" count="8"/>
      <line num="58" type="stmt" count="8"/>
      <line num="59" type="stmt" count="8"/>
      <line num="60" type="stmt" count="8"/>
      <line num="61" type="stmt" count="8"/>
      <line num="63" type="stmt" count="8"/>
      <line num="64" type="stmt" count="8"/>
      <line num="65" type="stmt" count="7"/>
      <line num="66" type="stmt" count="7"/>
      <line num="69" type="stmt" count="8"/>
      <line num="70" type="stmt" count="7"/>
      <line num="71" type="stmt" count="7"/>
      <line num="72" type="stmt" count="7"/>
      <line num="73" type="stmt" count="7"/>
      <line num="76" type="stmt" count="8"/>
      <line num="77" type="stmt" count="8"/>
      <line num="79" type="stmt" count="8"/>
      <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="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="117" type="method" name="loadData" visibility="public" complexity="23" crap="27.69" count="8"/>
      <line num="118" type="stmt" count="8"/>
      <line num="119" type="stmt" count="8"/>
      <line num="121" type="stmt" count="8"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="125" type="stmt" count="7"/>
      <line num="127" type="stmt" count="7"/>
      <line num="128" type="stmt" count="7"/>
      <line num="130" type="stmt" count="7"/>
      <line num="131" type="stmt" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="135" type="stmt" count="6"/>
      <line num="136" type="stmt" count="6"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="142" type="stmt" count="6"/>
      <line num="143" type="stmt" count="6"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="149" type="stmt" count="6"/>
      <line num="150" type="stmt" count="6"/>
      <line num="151" type="stmt" count="6"/>
      <line num="152" type="stmt" count="4"/>
      <line num="153" type="stmt" count="4"/>
      <line num="154" type="stmt" count="4"/>
      <line num="157" type="stmt" count="6"/>
      <line num="158" type="stmt" count="6"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="161" type="stmt" count="2"/>
      <line num="164" type="stmt" count="6"/>
      <line num="165" type="stmt" count="6"/>
      <line num="166" type="stmt" count="3"/>
      <line num="167" type="stmt" count="3"/>
      <line num="168" type="stmt" count="1"/>
      <line num="171" type="stmt" count="3"/>
      <line num="172" type="stmt" count="3"/>
      <line num="173" type="stmt" count="3"/>
      <line num="174" type="stmt" count="3"/>
      <line num="175" type="stmt" count="3"/>
      <line num="179" type="stmt" count="3"/>
      <line num="180" type="stmt" count="3"/>
      <line num="181" type="stmt" count="2"/>
      <line num="183" type="stmt" count="3"/>
      <line num="187" type="stmt" count="1"/>
      <line num="188" type="stmt" count="1"/>
      <line num="192" type="stmt" count="3"/>
      <line num="193" type="stmt" count="3"/>
      <line num="194" type="stmt" count="3"/>
      <line num="195" type="stmt" count="3"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="217" type="method" name="loadSpec" visibility="public" complexity="12" crap="13.48" count="7"/>
      <line num="218" type="stmt" count="7"/>
      <line num="219" type="stmt" count="7"/>
      <line num="221" type="stmt" count="7"/>
      <line num="222" type="stmt" count="6"/>
      <line num="225" type="stmt" count="4"/>
      <line num="226" type="stmt" count="4"/>
      <line num="227" type="stmt" count="3"/>
      <line num="229" type="stmt" count="3"/>
      <line num="230" type="stmt" count="1"/>
      <line num="233" type="stmt" count="2"/>
      <line num="235" type="stmt" count="2"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="243" type="stmt" count="4"/>
      <line num="245" type="stmt" count="4"/>
      <line num="246" type="stmt" count="4"/>
      <line num="247" type="stmt" count="0"/>
      <line num="248" type="stmt" count="3"/>
      <line num="250" type="stmt" count="1"/>
      <line num="254" type="stmt" count="4"/>
      <line num="255" type="stmt" count="4"/>
      <line num="262" type="method" name="getVersionHeading" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="272" type="stmt" count="0"/>
      <line num="273" type="stmt" count="0"/>
      <line num="274" type="stmt" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="277" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="289" type="method" name="formatDiff" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <line num="294" type="stmt" count="0"/>
      <line num="295" 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="303" type="stmt" count="0"/>
      <line num="305" type="stmt" count="0"/>
      <line num="306" type="stmt" count="0"/>
      <line num="307" type="stmt" count="0"/>
      <line num="308" type="stmt" count="0"/>
      <line num="309" type="stmt" count="0"/>
      <line num="310" type="stmt" count="0"/>
      <line num="311" type="stmt" count="0"/>
      <line num="312" type="stmt" count="0"/>
      <line num="313" type="stmt" count="0"/>
      <line num="314" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="322" type="stmt" count="0"/>
      <line num="323" type="stmt" count="0"/>
      <line num="324" type="stmt" count="0"/>
      <line num="327" type="stmt" count="0"/>
      <line num="328" type="stmt" count="0"/>
      <line num="329" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <line num="332" type="stmt" count="0"/>
      <line num="333" type="stmt" count="0"/>
      <line num="336" type="stmt" count="0"/>
      <line num="337" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="339" type="stmt" count="0"/>
      <line num="340" type="stmt" count="0"/>
      <line num="341" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="352" type="method" name="stringifyActions" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="361" type="stmt" count="0"/>
      <line num="368" type="method" name="getHeaderRow" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="369" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="371" type="stmt" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="383" type="method" name="getDiffRow" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="385" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="388" type="stmt" count="0"/>
      <line num="391" type="stmt" count="0"/>
      <line num="392" type="stmt" count="0"/>
      <line num="395" type="stmt" count="0"/>
      <line num="397" type="stmt" count="0"/>
      <line num="399" type="stmt" count="0"/>
      <line num="400" type="stmt" count="0"/>
      <line num="401" type="stmt" count="0"/>
      <line num="403" type="stmt" count="0"/>
      <line num="404" type="stmt" count="0"/>
      <line num="405" type="stmt" count="0"/>
      <line num="406" type="stmt" count="0"/>
      <line num="407" type="stmt" count="0"/>
      <line num="408" type="stmt" count="0"/>
      <line num="409" type="stmt" count="0"/>
      <metrics loc="412" ncloc="359" classes="1" methods="9" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="216" coveredstatements="82" elements="225" coveredelements="83"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewEdit.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewEdit" namespace="global">
        <metrics complexity="164" methods="15" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="980" coveredstatements="851" elements="995" coveredelements="857"/>
      </class>
      <line num="50" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="65" type="stmt" count="14"/>
      <line num="66" type="stmt" count="14"/>
      <line num="67" type="stmt" count="14"/>
      <line num="68" type="stmt" count="14"/>
      <line num="74" type="method" name="show" visibility="public" complexity="18" crap="18.10" count="13"/>
      <line num="75" type="stmt" count="13"/>
      <line num="76" type="stmt" count="13"/>
      <line num="77" type="stmt" count="13"/>
      <line num="78" type="stmt" count="13"/>
      <line num="79" type="stmt" count="13"/>
      <line num="81" type="stmt" count="13"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="13"/>
      <line num="86" type="stmt" count="13"/>
      <line num="87" type="stmt" count="13"/>
      <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="97" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="0"/>
      <line num="105" type="stmt" count="13"/>
      <line num="107" type="stmt" count="13"/>
      <line num="109" type="stmt" count="13"/>
      <line num="111" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="115" type="stmt" count="12"/>
      <line num="117" type="stmt" count="12"/>
      <line num="118" type="stmt" count="5"/>
      <line num="119" type="stmt" count="5"/>
      <line num="122" type="stmt" count="7"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="125" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="131" type="stmt" count="6"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="135" type="stmt" count="6"/>
      <line num="136" type="stmt" count="2"/>
      <line num="137" type="stmt" count="2"/>
      <line num="141" type="stmt" count="4"/>
      <line num="148" type="method" name="attemptSave" visibility="private" complexity="9" crap="9.02" count="5"/>
      <line num="149" type="stmt" count="5"/>
      <line num="150" type="stmt" count="5"/>
      <line num="151" type="stmt" count="5"/>
      <line num="153" type="stmt" count="5"/>
      <line num="155" type="stmt" count="5"/>
      <line num="156" type="stmt" count="5"/>
      <line num="157" type="stmt" count="5"/>
      <line num="159" type="stmt" count="5"/>
      <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="167" type="stmt" count="4"/>
      <line num="169" 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="176" type="stmt" count="3"/>
      <line num="178" type="stmt" count="3"/>
      <line num="179" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="183" type="stmt" count="0"/>
      <line num="185" type="stmt" count="2"/>
      <line num="187" type="stmt" count="0"/>
      <line num="190" type="stmt" count="2"/>
      <line num="193" type="stmt" count="2"/>
      <line num="194" type="stmt" count="2"/>
      <line num="195" type="stmt" count="2"/>
      <line num="196" type="stmt" count="2"/>
      <line num="198" type="stmt" count="2"/>
      <line num="216" type="method" name="buildFilterEditor" visibility="private" complexity="58" crap="78.71" count="7"/>
      <line num="222" type="stmt" count="7"/>
      <line num="223" type="stmt" count="7"/>
      <line num="224" type="stmt" count="7"/>
      <line num="225" type="stmt" count="7"/>
      <line num="226" type="stmt" count="7"/>
      <line num="228" type="stmt" count="7"/>
      <line num="229" type="stmt" count="7"/>
      <line num="230" type="stmt" count="7"/>
      <line num="231" type="stmt" count="7"/>
      <line num="232" type="stmt" count="7"/>
      <line num="233" type="stmt" count="7"/>
      <line num="237" type="stmt" count="7"/>
      <line num="238" type="stmt" count="7"/>
      <line num="239" type="stmt" count="7"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="248" type="stmt" count="7"/>
      <line num="249" type="stmt" count="7"/>
      <line num="250" type="stmt" count="7"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="257" type="stmt" count="7"/>
      <line num="258" type="stmt" count="7"/>
      <line num="259" type="stmt" count="3"/>
      <line num="260" type="stmt" count="3"/>
      <line num="263" type="stmt" count="7"/>
      <line num="264" type="stmt" count="3"/>
      <line num="265" type="stmt" count="3"/>
      <line num="266" type="stmt" count="1"/>
      <line num="267" type="stmt" count="1"/>
      <line num="271" type="stmt" count="7"/>
      <line num="272" type="stmt" count="2"/>
      <line num="273" type="stmt" count="1"/>
      <line num="274" type="stmt" count="1"/>
      <line num="275" type="stmt" count="1"/>
      <line num="276" type="stmt" count="1"/>
      <line num="277" type="stmt" count="1"/>
      <line num="278" type="stmt" count="1"/>
      <line num="279" type="stmt" count="1"/>
      <line num="283" type="stmt" count="1"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="289" type="stmt" count="1"/>
      <line num="290" type="stmt" count="1"/>
      <line num="291" type="stmt" count="1"/>
      <line num="294" type="stmt" count="5"/>
      <line num="295" type="stmt" count="2"/>
      <line num="296" type="stmt" count="3"/>
      <line num="297" type="stmt" count="3"/>
      <line num="298" type="stmt" count="3"/>
      <line num="299" type="stmt" count="3"/>
      <line num="301" type="stmt" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <line num="303" type="stmt" count="0"/>
      <line num="305" type="stmt" count="5"/>
      <line num="307" type="stmt" count="5"/>
      <line num="309" type="stmt" count="5"/>
      <line num="310" type="stmt" count="0"/>
      <line num="311" type="stmt" count="0"/>
      <line num="312" type="stmt" count="0"/>
      <line num="313" type="stmt" count="0"/>
      <line num="316" type="stmt" count="5"/>
      <line num="317" type="stmt" count="3"/>
      <line num="318" type="stmt" count="3"/>
      <line num="319" type="stmt" count="1"/>
      <line num="322" type="stmt" count="3"/>
      <line num="323" type="stmt" count="2"/>
      <line num="327" type="stmt" count="5"/>
      <line num="329" type="stmt" count="5"/>
      <line num="330" type="stmt" count="5"/>
      <line num="331" type="stmt" count="5"/>
      <line num="332" type="stmt" count="2"/>
      <line num="333" type="stmt" count="5"/>
      <line num="334" type="stmt" count="5"/>
      <line num="335" type="stmt" count="5"/>
      <line num="336" type="stmt" count="5"/>
      <line num="337" type="stmt" count="5"/>
      <line num="338" type="stmt" count="5"/>
      <line num="339" type="stmt" count="5"/>
      <line num="340" type="stmt" count="5"/>
      <line num="341" type="stmt" count="5"/>
      <line num="342" type="stmt" count="5"/>
      <line num="343" type="stmt" count="5"/>
      <line num="344" type="stmt" count="5"/>
      <line num="345" type="stmt" count="5"/>
      <line num="346" type="stmt" count="5"/>
      <line num="347" type="stmt" count="5"/>
      <line num="348" type="stmt" count="5"/>
      <line num="349" type="stmt" count="5"/>
      <line num="350" type="stmt" count="5"/>
      <line num="352" type="stmt" count="5"/>
      <line num="353" type="stmt" count="5"/>
      <line num="354" type="stmt" count="0"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="360" type="stmt" count="0"/>
      <line num="362" type="stmt" count="0"/>
      <line num="363" type="stmt" count="0"/>
      <line num="364" type="stmt" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="368" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="371" type="stmt" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="375" type="stmt" count="0"/>
      <line num="379" type="stmt" count="5"/>
      <line num="380" type="stmt" count="5"/>
      <line num="381" type="stmt" count="3"/>
      <line num="382" type="stmt" count="3"/>
      <line num="383" type="stmt" count="3"/>
      <line num="384" type="stmt" count="3"/>
      <line num="385" type="stmt" count="3"/>
      <line num="386" type="stmt" count="3"/>
      <line num="387" type="stmt" count="3"/>
      <line num="388" type="stmt" count="3"/>
      <line num="390" type="stmt" count="3"/>
      <line num="391" type="stmt" count="3"/>
      <line num="392" type="stmt" count="3"/>
      <line num="393" type="stmt" count="3"/>
      <line num="394" type="stmt" count="3"/>
      <line num="395" type="stmt" count="3"/>
      <line num="396" type="stmt" count="3"/>
      <line num="397" type="stmt" count="3"/>
      <line num="400" type="stmt" count="5"/>
      <line num="402" type="stmt" count="2"/>
      <line num="403" type="stmt" count="2"/>
      <line num="404" type="stmt" count="2"/>
      <line num="405" type="stmt" count="2"/>
      <line num="406" type="stmt" count="2"/>
      <line num="407" type="stmt" count="2"/>
      <line num="409" type="stmt" count="2"/>
      <line num="410" type="stmt" count="0"/>
      <line num="411" type="stmt" count="0"/>
      <line num="412" type="stmt" count="0"/>
      <line num="414" type="stmt" count="0"/>
      <line num="415" type="stmt" count="0"/>
      <line num="416" type="stmt" count="0"/>
      <line num="417" type="stmt" count="0"/>
      <line num="418" type="stmt" count="0"/>
      <line num="419" type="stmt" count="0"/>
      <line num="420" type="stmt" count="0"/>
      <line num="421" type="stmt" count="0"/>
      <line num="422" type="stmt" count="0"/>
      <line num="423" type="stmt" count="0"/>
      <line num="427" type="stmt" count="5"/>
      <line num="429" type="stmt" count="5"/>
      <line num="430" type="stmt" count="5"/>
      <line num="431" type="stmt" count="5"/>
      <line num="432" type="stmt" count="5"/>
      <line num="433" type="stmt" count="5"/>
      <line num="434" type="stmt" count="5"/>
      <line num="435" type="stmt" count="5"/>
      <line num="436" type="stmt" count="5"/>
      <line num="437" type="stmt" count="5"/>
      <line num="438" type="stmt" count="5"/>
      <line num="439" type="stmt" count="5"/>
      <line num="440" type="stmt" count="5"/>
      <line num="441" type="stmt" count="5"/>
      <line num="442" type="stmt" count="5"/>
      <line num="443" type="stmt" count="5"/>
      <line num="444" type="stmt" count="5"/>
      <line num="445" type="stmt" count="5"/>
      <line num="446" type="stmt" count="5"/>
      <line num="447" type="stmt" count="5"/>
      <line num="448" type="stmt" count="5"/>
      <line num="449" type="stmt" count="5"/>
      <line num="450" type="stmt" count="5"/>
      <line num="451" type="stmt" count="5"/>
      <line num="452" type="stmt" count="5"/>
      <line num="455" type="stmt" count="5"/>
      <line num="456" type="stmt" count="5"/>
      <line num="461" type="stmt" count="5"/>
      <line num="463" type="stmt" count="5"/>
      <line num="464" type="stmt" count="5"/>
      <line num="467" type="stmt" count="2"/>
      <line num="470" type="stmt" count="5"/>
      <line num="471" type="stmt" count="0"/>
      <line num="474" type="stmt" count="5"/>
      <line num="475" type="stmt" count="0"/>
      <line num="476" type="stmt" count="0"/>
      <line num="477" type="stmt" count="0"/>
      <line num="478" type="stmt" count="0"/>
      <line num="480" type="stmt" count="0"/>
      <line num="481" type="stmt" count="0"/>
      <line num="482" type="stmt" count="0"/>
      <line num="483" type="stmt" count="0"/>
      <line num="486" type="stmt" count="0"/>
      <line num="487" type="stmt" count="0"/>
      <line num="488" type="stmt" count="0"/>
      <line num="489" type="stmt" count="0"/>
      <line num="491" type="stmt" count="0"/>
      <line num="492" type="stmt" count="0"/>
      <line num="494" type="stmt" count="0"/>
      <line num="495" type="stmt" count="0"/>
      <line num="496" type="stmt" count="0"/>
      <line num="497" type="stmt" count="0"/>
      <line num="498" type="stmt" count="0"/>
      <line num="499" type="stmt" count="0"/>
      <line num="500" type="stmt" count="0"/>
      <line num="501" type="stmt" count="0"/>
      <line num="502" type="stmt" count="0"/>
      <line num="505" type="stmt" count="5"/>
      <line num="513" type="stmt" count="5"/>
      <line num="515" type="stmt" count="5"/>
      <line num="517" type="stmt" count="5"/>
      <line num="519" type="stmt" count="5"/>
      <line num="520" type="stmt" count="5"/>
      <line num="521" type="stmt" count="5"/>
      <line num="522" type="stmt" count="5"/>
      <line num="523" type="stmt" count="5"/>
      <line num="524" type="stmt" count="5"/>
      <line num="525" type="stmt" count="5"/>
      <line num="526" type="stmt" count="5"/>
      <line num="527" type="stmt" count="5"/>
      <line num="528" type="stmt" count="5"/>
      <line num="530" type="stmt" count="5"/>
      <line num="531" type="stmt" count="0"/>
      <line num="534" type="stmt" count="5"/>
      <line num="535" type="stmt" count="5"/>
      <line num="538" type="stmt" count="5"/>
      <line num="539" type="stmt" count="2"/>
      <line num="540" type="stmt" count="1"/>
      <line num="541" type="stmt" count="1"/>
      <line num="542" type="stmt" count="1"/>
      <line num="543" type="stmt" count="1"/>
      <line num="545" type="stmt" count="1"/>
      <line num="546" type="stmt" count="1"/>
      <line num="547" type="stmt" count="1"/>
      <line num="548" type="stmt" count="1"/>
      <line num="549" type="stmt" count="1"/>
      <line num="554" type="stmt" count="5"/>
      <line num="555" type="stmt" count="2"/>
      <line num="559" type="stmt" count="5"/>
      <line num="561" type="stmt" count="5"/>
      <line num="562" type="stmt" count="5"/>
      <line num="563" type="stmt" count="5"/>
      <line num="564" type="stmt" count="5"/>
      <line num="567" type="stmt" count="5"/>
      <line num="568" type="stmt" count="5"/>
      <line num="569" type="stmt" count="5"/>
      <line num="570" type="stmt" count="5"/>
      <line num="571" type="stmt" count="5"/>
      <line num="572" type="stmt" count="5"/>
      <line num="575" type="stmt" count="5"/>
      <line num="576" type="stmt" count="5"/>
      <line num="577" type="stmt" count="5"/>
      <line num="578" type="stmt" count="5"/>
      <line num="579" type="stmt" count="5"/>
      <line num="580" type="stmt" count="5"/>
      <line num="581" type="stmt" count="5"/>
      <line num="582" type="stmt" count="5"/>
      <line num="584" type="stmt" count="5"/>
      <line num="585" type="stmt" count="3"/>
      <line num="586" type="stmt" count="3"/>
      <line num="587" type="stmt" count="3"/>
      <line num="588" type="stmt" count="3"/>
      <line num="589" type="stmt" count="3"/>
      <line num="590" type="stmt" count="3"/>
      <line num="591" type="stmt" count="3"/>
      <line num="592" type="stmt" count="3"/>
      <line num="593" type="stmt" count="3"/>
      <line num="596" type="stmt" count="3"/>
      <line num="598" type="stmt" count="3"/>
      <line num="599" type="stmt" count="3"/>
      <line num="600" type="stmt" count="3"/>
      <line num="601" type="stmt" count="3"/>
      <line num="602" type="stmt" count="3"/>
      <line num="603" type="stmt" count="3"/>
      <line num="604" type="stmt" count="3"/>
      <line num="608" type="stmt" count="3"/>
      <line num="609" type="stmt" count="3"/>
      <line num="610" type="stmt" count="3"/>
      <line num="611" type="stmt" count="3"/>
      <line num="612" type="stmt" count="3"/>
      <line num="613" type="stmt" count="3"/>
      <line num="614" type="stmt" count="3"/>
      <line num="615" type="stmt" count="3"/>
      <line num="616" type="stmt" count="3"/>
      <line num="617" type="stmt" count="3"/>
      <line num="618" type="stmt" count="3"/>
      <line num="619" type="stmt" count="3"/>
      <line num="620" type="stmt" count="3"/>
      <line num="621" type="stmt" count="3"/>
      <line num="622" type="stmt" count="3"/>
      <line num="623" type="stmt" count="3"/>
      <line num="624" type="stmt" count="3"/>
      <line num="625" type="stmt" count="3"/>
      <line num="626" type="stmt" count="3"/>
      <line num="627" type="stmt" count="3"/>
      <line num="628" type="stmt" count="3"/>
      <line num="629" type="stmt" count="3"/>
      <line num="630" type="stmt" count="3"/>
      <line num="631" type="stmt" count="3"/>
      <line num="632" type="stmt" count="3"/>
      <line num="633" type="stmt" count="3"/>
      <line num="634" type="stmt" count="3"/>
      <line num="635" type="stmt" count="3"/>
      <line num="636" type="stmt" count="3"/>
      <line num="637" type="stmt" count="3"/>
      <line num="638" type="stmt" count="3"/>
      <line num="639" type="stmt" count="3"/>
      <line num="640" type="stmt" count="3"/>
      <line num="641" type="stmt" count="3"/>
      <line num="642" type="stmt" count="3"/>
      <line num="643" type="stmt" count="3"/>
      <line num="644" type="stmt" count="3"/>
      <line num="645" type="stmt" count="3"/>
      <line num="646" type="stmt" count="3"/>
      <line num="647" type="stmt" count="3"/>
      <line num="648" type="stmt" count="3"/>
      <line num="650" type="stmt" count="3"/>
      <line num="651" type="stmt" count="3"/>
      <line num="652" type="stmt" count="3"/>
      <line num="653" type="stmt" count="3"/>
      <line num="654" type="stmt" count="3"/>
      <line num="655" type="stmt" count="3"/>
      <line num="656" type="stmt" count="3"/>
      <line num="657" type="stmt" count="3"/>
      <line num="658" type="stmt" count="3"/>
      <line num="659" type="stmt" count="3"/>
      <line num="661" type="stmt" count="3"/>
      <line num="662" type="stmt" count="3"/>
      <line num="663" type="stmt" count="3"/>
      <line num="664" type="stmt" count="3"/>
      <line num="665" type="stmt" count="3"/>
      <line num="666" type="stmt" count="3"/>
      <line num="667" type="stmt" count="3"/>
      <line num="668" type="stmt" count="3"/>
      <line num="671" type="stmt" count="5"/>
      <line num="672" type="stmt" count="5"/>
      <line num="673" type="stmt" count="5"/>
      <line num="674" type="stmt" count="5"/>
      <line num="675" type="stmt" count="5"/>
      <line num="676" type="stmt" count="5"/>
      <line num="677" type="stmt" count="5"/>
      <line num="678" type="stmt" count="5"/>
      <line num="680" type="stmt" count="5"/>
      <line num="681" type="stmt" count="5"/>
      <line num="682" type="stmt" count="5"/>
      <line num="683" type="stmt" count="5"/>
      <line num="684" type="stmt" count="5"/>
      <line num="685" type="stmt" count="5"/>
      <line num="686" type="stmt" count="5"/>
      <line num="687" type="stmt" count="5"/>
      <line num="688" type="stmt" count="5"/>
      <line num="689" type="stmt" count="5"/>
      <line num="690" type="stmt" count="5"/>
      <line num="691" type="stmt" count="5"/>
      <line num="692" type="stmt" count="5"/>
      <line num="693" type="stmt" count="5"/>
      <line num="695" type="stmt" count="5"/>
      <line num="696" type="stmt" count="5"/>
      <line num="697" type="stmt" count="5"/>
      <line num="698" type="stmt" count="5"/>
      <line num="701" type="stmt" count="5"/>
      <line num="702" type="stmt" count="5"/>
      <line num="703" type="stmt" count="5"/>
      <line num="704" type="stmt" count="5"/>
      <line num="705" type="stmt" count="5"/>
      <line num="706" type="stmt" count="5"/>
      <line num="707" type="stmt" count="5"/>
      <line num="708" type="stmt" count="5"/>
      <line num="710" type="stmt" count="5"/>
      <line num="712" type="stmt" count="5"/>
      <line num="714" type="stmt" count="0"/>
      <line num="725" type="method" name="buildConsequenceEditor" visibility="private" complexity="3" crap="3" count="5"/>
      <line num="726" type="stmt" count="5"/>
      <line num="728" type="stmt" count="5"/>
      <line num="729" type="stmt" count="5"/>
      <line num="730" type="stmt" count="5"/>
      <line num="733" type="stmt" count="5"/>
      <line num="735" type="stmt" count="5"/>
      <line num="736" type="stmt" count="5"/>
      <line num="737" type="stmt" count="5"/>
      <line num="738" type="stmt" count="5"/>
      <line num="741" type="stmt" count="5"/>
      <line num="751" type="method" name="buildConsequenceSelector" visibility="private" complexity="29" crap="29" count="5"/>
      <line num="752" type="stmt" count="5"/>
      <line num="753" type="stmt" count="5"/>
      <line num="754" type="stmt" count="5"/>
      <line num="755" type="stmt" count="5"/>
      <line num="756" type="stmt" count="0"/>
      <line num="759" type="stmt" count="5"/>
      <line num="762" type="stmt" count="5"/>
      <line num="764" type="stmt" count="5"/>
      <line num="765" type="stmt" count="0"/>
      <line num="767" type="stmt" count="5"/>
      <line num="768" type="stmt" count="5"/>
      <line num="769" type="stmt" count="5"/>
      <line num="770" type="stmt" count="5"/>
      <line num="771" type="stmt" count="5"/>
      <line num="772" type="stmt" count="5"/>
      <line num="773" type="stmt" count="5"/>
      <line num="774" type="stmt" count="5"/>
      <line num="775" type="stmt" count="5"/>
      <line num="776" type="stmt" count="5"/>
      <line num="777" type="stmt" count="5"/>
      <line num="778" type="stmt" count="5"/>
      <line num="779" type="stmt" count="5"/>
      <line num="780" type="stmt" count="5"/>
      <line num="781" type="stmt" count="5"/>
      <line num="782" type="stmt" count="5"/>
      <line num="783" type="stmt" count="5"/>
      <line num="784" type="stmt" count="5"/>
      <line num="786" type="stmt" count="5"/>
      <line num="788" type="stmt" count="0"/>
      <line num="790" type="stmt" count="0"/>
      <line num="792" type="stmt" count="5"/>
      <line num="793" type="stmt" count="5"/>
      <line num="795" type="stmt" count="5"/>
      <line num="798" type="stmt" count="5"/>
      <line num="799" type="stmt" count="5"/>
      <line num="800" type="stmt" count="5"/>
      <line num="801" type="stmt" count="5"/>
      <line num="802" type="stmt" count="5"/>
      <line num="803" type="stmt" count="5"/>
      <line num="804" type="stmt" count="5"/>
      <line num="805" type="stmt" count="5"/>
      <line num="806" type="stmt" count="5"/>
      <line num="807" type="stmt" count="5"/>
      <line num="808" type="stmt" count="5"/>
      <line num="809" type="stmt" count="5"/>
      <line num="810" type="stmt" count="5"/>
      <line num="811" type="stmt" count="5"/>
      <line num="812" type="stmt" count="5"/>
      <line num="813" type="stmt" count="5"/>
      <line num="814" type="stmt" count="5"/>
      <line num="815" type="stmt" count="5"/>
      <line num="816" type="stmt" count="5"/>
      <line num="817" type="stmt" count="5"/>
      <line num="818" type="stmt" count="5"/>
      <line num="819" type="stmt" count="5"/>
      <line num="820" type="stmt" count="5"/>
      <line num="821" type="stmt" count="5"/>
      <line num="822" type="stmt" count="5"/>
      <line num="823" type="stmt" count="5"/>
      <line num="825" type="stmt" count="5"/>
      <line num="826" type="stmt" count="5"/>
      <line num="827" type="stmt" count="5"/>
      <line num="828" type="stmt" count="5"/>
      <line num="829" type="stmt" count="5"/>
      <line num="830" type="stmt" count="5"/>
      <line num="831" type="stmt" count="5"/>
      <line num="832" type="stmt" count="5"/>
      <line num="833" type="stmt" count="5"/>
      <line num="834" type="stmt" count="5"/>
      <line num="835" type="stmt" count="5"/>
      <line num="836" type="stmt" count="5"/>
      <line num="837" type="stmt" count="5"/>
      <line num="838" type="stmt" count="5"/>
      <line num="839" type="stmt" count="5"/>
      <line num="840" type="stmt" count="5"/>
      <line num="841" type="stmt" count="5"/>
      <line num="842" type="stmt" count="5"/>
      <line num="843" type="stmt" count="5"/>
      <line num="844" type="stmt" count="5"/>
      <line num="845" type="stmt" count="5"/>
      <line num="846" type="stmt" count="5"/>
      <line num="847" type="stmt" count="5"/>
      <line num="848" type="stmt" count="5"/>
      <line num="849" type="stmt" count="5"/>
      <line num="850" type="stmt" count="5"/>
      <line num="851" type="stmt" count="5"/>
      <line num="852" type="stmt" count="5"/>
      <line num="853" type="stmt" count="5"/>
      <line num="854" type="stmt" count="5"/>
      <line num="855" type="stmt" count="5"/>
      <line num="856" type="stmt" count="5"/>
      <line num="857" type="stmt" count="5"/>
      <line num="859" type="stmt" count="5"/>
      <line num="861" type="stmt" count="5"/>
      <line num="862" type="stmt" count="5"/>
      <line num="863" type="stmt" count="5"/>
      <line num="864" type="stmt" count="5"/>
      <line num="865" type="stmt" count="5"/>
      <line num="866" type="stmt" count="5"/>
      <line num="867" type="stmt" count="5"/>
      <line num="869" type="stmt" count="5"/>
      <line num="870" type="stmt" count="5"/>
      <line num="871" type="stmt" count="5"/>
      <line num="872" type="stmt" count="5"/>
      <line num="873" type="stmt" count="5"/>
      <line num="874" type="stmt" count="5"/>
      <line num="875" type="stmt" count="5"/>
      <line num="876" type="stmt" count="5"/>
      <line num="877" type="stmt" count="5"/>
      <line num="878" type="stmt" count="5"/>
      <line num="879" type="stmt" count="5"/>
      <line num="880" type="stmt" count="5"/>
      <line num="881" type="stmt" count="5"/>
      <line num="882" type="stmt" count="5"/>
      <line num="883" type="stmt" count="5"/>
      <line num="885" type="stmt" count="5"/>
      <line num="886" type="stmt" count="5"/>
      <line num="887" type="stmt" count="5"/>
      <line num="888" type="stmt" count="5"/>
      <line num="889" type="stmt" count="5"/>
      <line num="890" type="stmt" count="5"/>
      <line num="891" type="stmt" count="5"/>
      <line num="893" type="stmt" count="5"/>
      <line num="894" type="stmt" count="5"/>
      <line num="896" type="stmt" count="5"/>
      <line num="897" type="stmt" count="5"/>
      <line num="898" type="stmt" count="5"/>
      <line num="899" type="stmt" count="5"/>
      <line num="900" type="stmt" count="5"/>
      <line num="901" type="stmt" count="5"/>
      <line num="902" type="stmt" count="5"/>
      <line num="904" type="stmt" count="5"/>
      <line num="905" type="stmt" count="0"/>
      <line num="907" type="stmt" count="5"/>
      <line num="908" type="stmt" count="5"/>
      <line num="910" type="stmt" count="5"/>
      <line num="911" type="stmt" count="5"/>
      <line num="913" type="stmt" count="0"/>
      <line num="916" type="stmt" count="5"/>
      <line num="917" type="stmt" count="5"/>
      <line num="918" type="stmt" count="5"/>
      <line num="919" type="stmt" count="5"/>
      <line num="920" type="stmt" count="5"/>
      <line num="922" type="stmt" count="5"/>
      <line num="923" type="stmt" count="5"/>
      <line num="924" type="stmt" count="5"/>
      <line num="925" type="stmt" count="5"/>
      <line num="926" type="stmt" count="5"/>
      <line num="928" type="stmt" count="5"/>
      <line num="929" type="stmt" count="5"/>
      <line num="930" type="stmt" count="5"/>
      <line num="931" type="stmt" count="5"/>
      <line num="932" type="stmt" count="5"/>
      <line num="933" type="stmt" count="5"/>
      <line num="934" type="stmt" count="5"/>
      <line num="936" type="stmt" count="5"/>
      <line num="937" type="stmt" count="5"/>
      <line num="938" type="stmt" count="5"/>
      <line num="939" type="stmt" count="5"/>
      <line num="941" type="stmt" count="5"/>
      <line num="942" type="stmt" count="5"/>
      <line num="944" type="stmt" count="5"/>
      <line num="946" type="stmt" count="5"/>
      <line num="947" type="stmt" count="5"/>
      <line num="948" type="stmt" count="5"/>
      <line num="949" type="stmt" count="5"/>
      <line num="950" type="stmt" count="5"/>
      <line num="952" type="stmt" count="5"/>
      <line num="953" type="stmt" count="5"/>
      <line num="954" type="stmt" count="5"/>
      <line num="955" type="stmt" count="5"/>
      <line num="957" type="stmt" count="5"/>
      <line num="959" type="stmt" count="5"/>
      <line num="960" type="stmt" count="5"/>
      <line num="961" type="stmt" count="5"/>
      <line num="962" type="stmt" count="5"/>
      <line num="963" type="stmt" count="5"/>
      <line num="964" type="stmt" count="5"/>
      <line num="965" type="stmt" count="5"/>
      <line num="966" type="stmt" count="5"/>
      <line num="967" type="stmt" count="5"/>
      <line num="968" type="stmt" count="5"/>
      <line num="969" type="stmt" count="5"/>
      <line num="970" type="stmt" count="5"/>
      <line num="971" type="stmt" count="5"/>
      <line num="972" type="stmt" count="5"/>
      <line num="974" type="stmt" count="5"/>
      <line num="975" type="stmt" count="5"/>
      <line num="976" type="stmt" count="5"/>
      <line num="978" type="stmt" count="5"/>
      <line num="979" type="stmt" count="5"/>
      <line num="980" type="stmt" count="5"/>
      <line num="981" type="stmt" count="5"/>
      <line num="982" type="stmt" count="5"/>
      <line num="983" type="stmt" count="5"/>
      <line num="984" type="stmt" count="5"/>
      <line num="985" type="stmt" count="5"/>
      <line num="986" type="stmt" count="5"/>
      <line num="988" type="stmt" count="5"/>
      <line num="989" type="stmt" count="5"/>
      <line num="990" type="stmt" count="5"/>
      <line num="992" type="stmt" count="5"/>
      <line num="993" type="stmt" count="5"/>
      <line num="994" type="stmt" count="5"/>
      <line num="995" type="stmt" count="5"/>
      <line num="997" type="stmt" count="5"/>
      <line num="998" type="stmt" count="5"/>
      <line num="999" type="stmt" count="5"/>
      <line num="1000" type="stmt" count="5"/>
      <line num="1001" type="stmt" count="5"/>
      <line num="1002" type="stmt" count="5"/>
      <line num="1003" type="stmt" count="5"/>
      <line num="1004" type="stmt" count="5"/>
      <line num="1005" type="stmt" count="5"/>
      <line num="1006" type="stmt" count="5"/>
      <line num="1007" type="stmt" count="5"/>
      <line num="1008" type="stmt" count="5"/>
      <line num="1009" type="stmt" count="5"/>
      <line num="1010" type="stmt" count="5"/>
      <line num="1011" type="stmt" count="5"/>
      <line num="1012" type="stmt" count="5"/>
      <line num="1013" type="stmt" count="5"/>
      <line num="1014" type="stmt" count="5"/>
      <line num="1016" type="stmt" count="5"/>
      <line num="1017" type="stmt" count="5"/>
      <line num="1018" type="stmt" count="5"/>
      <line num="1019" type="stmt" count="5"/>
      <line num="1020" type="stmt" count="5"/>
      <line num="1021" type="stmt" count="5"/>
      <line num="1023" type="stmt" count="5"/>
      <line num="1024" type="stmt" count="5"/>
      <line num="1025" type="stmt" count="5"/>
      <line num="1026" type="stmt" count="5"/>
      <line num="1027" type="stmt" count="5"/>
      <line num="1028" type="stmt" count="5"/>
      <line num="1029" type="stmt" count="5"/>
      <line num="1030" type="stmt" count="5"/>
      <line num="1031" type="stmt" count="5"/>
      <line num="1032" type="stmt" count="5"/>
      <line num="1033" type="stmt" count="5"/>
      <line num="1034" type="stmt" count="5"/>
      <line num="1035" type="stmt" count="5"/>
      <line num="1036" type="stmt" count="5"/>
      <line num="1037" type="stmt" count="5"/>
      <line num="1038" type="stmt" count="5"/>
      <line num="1039" type="stmt" count="5"/>
      <line num="1040" type="stmt" count="5"/>
      <line num="1041" type="stmt" count="5"/>
      <line num="1042" type="stmt" count="5"/>
      <line num="1043" type="stmt" count="5"/>
      <line num="1044" type="stmt" count="5"/>
      <line num="1045" type="stmt" count="5"/>
      <line num="1046" type="stmt" count="5"/>
      <line num="1047" type="stmt" count="5"/>
      <line num="1048" type="stmt" count="5"/>
      <line num="1049" type="stmt" count="5"/>
      <line num="1050" type="stmt" count="5"/>
      <line num="1052" type="stmt" count="0"/>
      <line num="1054" type="stmt" count="5"/>
      <line num="1056" type="stmt" count="0"/>
      <line num="1058" type="stmt" count="5"/>
      <line num="1059" type="stmt" count="5"/>
      <line num="1060" type="stmt" count="5"/>
      <line num="1062" type="stmt" count="5"/>
      <line num="1063" type="stmt" count="5"/>
      <line num="1065" type="stmt" count="5"/>
      <line num="1066" type="stmt" count="5"/>
      <line num="1067" type="stmt" count="5"/>
      <line num="1068" type="stmt" count="5"/>
      <line num="1069" type="stmt" count="5"/>
      <line num="1070" type="stmt" count="5"/>
      <line num="1071" type="stmt" count="5"/>
      <line num="1072" type="stmt" count="5"/>
      <line num="1073" type="stmt" count="5"/>
      <line num="1074" type="stmt" count="5"/>
      <line num="1075" type="stmt" count="5"/>
      <line num="1076" type="stmt" count="5"/>
      <line num="1077" type="stmt" count="5"/>
      <line num="1078" type="stmt" count="5"/>
      <line num="1079" type="stmt" count="5"/>
      <line num="1080" type="stmt" count="5"/>
      <line num="1081" type="stmt" count="5"/>
      <line num="1082" type="stmt" count="5"/>
      <line num="1083" type="stmt" count="5"/>
      <line num="1085" type="stmt" count="5"/>
      <line num="1087" type="stmt" count="5"/>
      <line num="1088" type="stmt" count="5"/>
      <line num="1089" type="stmt" count="5"/>
      <line num="1090" type="stmt" count="5"/>
      <line num="1091" type="stmt" count="5"/>
      <line num="1092" type="stmt" count="5"/>
      <line num="1093" type="stmt" count="5"/>
      <line num="1095" type="stmt" count="5"/>
      <line num="1096" type="stmt" count="5"/>
      <line num="1097" type="stmt" count="5"/>
      <line num="1098" type="stmt" count="5"/>
      <line num="1099" type="stmt" count="5"/>
      <line num="1100" type="stmt" count="5"/>
      <line num="1101" type="stmt" count="5"/>
      <line num="1103" type="stmt" count="5"/>
      <line num="1104" type="stmt" count="5"/>
      <line num="1105" type="stmt" count="5"/>
      <line num="1106" type="stmt" count="5"/>
      <line num="1107" type="stmt" count="5"/>
      <line num="1108" type="stmt" count="5"/>
      <line num="1109" type="stmt" count="5"/>
      <line num="1110" type="stmt" count="5"/>
      <line num="1111" type="stmt" count="5"/>
      <line num="1112" type="stmt" count="5"/>
      <line num="1113" type="stmt" count="5"/>
      <line num="1114" type="stmt" count="5"/>
      <line num="1115" type="stmt" count="5"/>
      <line num="1116" type="stmt" count="5"/>
      <line num="1117" type="stmt" count="5"/>
      <line num="1118" type="stmt" count="5"/>
      <line num="1119" type="stmt" count="5"/>
      <line num="1121" type="stmt" count="5"/>
      <line num="1123" type="stmt" count="5"/>
      <line num="1124" type="stmt" count="5"/>
      <line num="1125" type="stmt" count="5"/>
      <line num="1126" type="stmt" count="5"/>
      <line num="1127" type="stmt" count="5"/>
      <line num="1128" type="stmt" count="5"/>
      <line num="1129" type="stmt" count="5"/>
      <line num="1130" type="stmt" count="5"/>
      <line num="1131" type="stmt" count="5"/>
      <line num="1132" type="stmt" count="5"/>
      <line num="1133" type="stmt" count="5"/>
      <line num="1134" type="stmt" count="5"/>
      <line num="1135" type="stmt" count="5"/>
      <line num="1136" type="stmt" count="5"/>
      <line num="1138" type="stmt" count="5"/>
      <line num="1139" type="stmt" count="5"/>
      <line num="1140" type="stmt" count="5"/>
      <line num="1141" type="stmt" count="5"/>
      <line num="1142" type="stmt" count="5"/>
      <line num="1144" type="stmt" count="5"/>
      <line num="1151" type="stmt" count="5"/>
      <line num="1156" type="stmt" count="5"/>
      <line num="1157" type="stmt" count="5"/>
      <line num="1158" type="stmt" count="5"/>
      <line num="1160" type="stmt" count="5"/>
      <line num="1161" type="stmt" count="5"/>
      <line num="1162" type="stmt" count="5"/>
      <line num="1163" type="stmt" count="5"/>
      <line num="1164" type="stmt" count="5"/>
      <line num="1165" type="stmt" count="5"/>
      <line num="1166" type="stmt" count="5"/>
      <line num="1167" type="stmt" count="5"/>
      <line num="1168" type="stmt" count="5"/>
      <line num="1169" type="stmt" count="5"/>
      <line num="1170" type="stmt" count="5"/>
      <line num="1171" type="stmt" count="5"/>
      <line num="1172" type="stmt" count="5"/>
      <line num="1173" type="stmt" count="5"/>
      <line num="1174" type="stmt" count="5"/>
      <line num="1175" type="stmt" count="5"/>
      <line num="1176" type="stmt" count="5"/>
      <line num="1177" type="stmt" count="5"/>
      <line num="1187" type="method" name="getExistingSelector" visibility="public" complexity="8" crap="8.13" count="5"/>
      <line num="1188" type="stmt" count="5"/>
      <line num="1189" type="stmt" count="5"/>
      <line num="1190" type="stmt" count="5"/>
      <line num="1191" type="stmt" count="5"/>
      <line num="1192" type="stmt" count="5"/>
      <line num="1193" type="stmt" count="5"/>
      <line num="1194" type="stmt" count="5"/>
      <line num="1195" type="stmt" count="5"/>
      <line num="1197" type="stmt" count="0"/>
      <line num="1200" type="stmt" count="5"/>
      <line num="1201" type="stmt" count="5"/>
      <line num="1202" type="stmt" count="5"/>
      <line num="1204" type="stmt" count="5"/>
      <line num="1206" type="stmt" count="5"/>
      <line num="1207" type="stmt" count="5"/>
      <line num="1208" type="stmt" count="5"/>
      <line num="1211" type="stmt" count="5"/>
      <line num="1213" type="stmt" count="5"/>
      <line num="1214" type="stmt" count="0"/>
      <line num="1217" type="stmt" count="5"/>
      <line num="1218" type="stmt" count="5"/>
      <line num="1219" type="stmt" count="5"/>
      <line num="1220" type="stmt" count="5"/>
      <line num="1221" type="stmt" count="5"/>
      <line num="1222" type="stmt" count="5"/>
      <line num="1223" type="stmt" count="5"/>
      <line num="1224" type="stmt" count="5"/>
      <line num="1225" type="stmt" count="5"/>
      <line num="1226" type="stmt" count="5"/>
      <line num="1227" type="stmt" count="5"/>
      <line num="1229" type="stmt" count="5"/>
      <line num="1230" type="stmt" count="5"/>
      <line num="1231" type="stmt" count="0"/>
      <line num="1232" type="stmt" count="0"/>
      <line num="1235" type="stmt" count="0"/>
      <line num="1236" type="stmt" count="0"/>
      <line num="1242" type="stmt" count="5"/>
      <line num="1244" type="stmt" count="5"/>
      <line num="1245" type="stmt" count="5"/>
      <line num="1247" type="stmt" count="5"/>
      <line num="1248" type="stmt" count="5"/>
      <line num="1249" type="stmt" count="5"/>
      <line num="1250" type="stmt" count="5"/>
      <line num="1252" type="stmt" count="5"/>
      <line num="1253" type="stmt" count="5"/>
      <line num="1254" type="stmt" count="5"/>
      <line num="1256" type="stmt" count="5"/>
      <line num="1266" type="method" name="normalizeBlocks" visibility="private" complexity="6" crap="6.17" count="5"/>
      <line num="1272" type="stmt" count="5"/>
      <line num="1273" type="stmt" count="5"/>
      <line num="1274" type="stmt" count="5"/>
      <line num="1275" type="stmt" count="5"/>
      <line num="1276" type="stmt" count="5"/>
      <line num="1278" type="stmt" count="5"/>
      <line num="1279" type="stmt" count="5"/>
      <line num="1280" type="stmt" count="0"/>
      <line num="1282" type="stmt" count="5"/>
      <line num="1283" type="stmt" count="5"/>
      <line num="1284" type="stmt" count="0"/>
      <line num="1288" type="stmt" count="5"/>
      <line num="1300" type="method" name="getAbsoluteBlockDuration" visibility="private" complexity="2" crap="2" count="5"/>
      <line num="1301" type="stmt" count="5"/>
      <line num="1302" type="stmt" count="5"/>
      <line num="1304" type="stmt" count="5"/>
      <line num="1313" type="method" name="loadFilterData" visibility="private" complexity="3" crap="3" count="10"/>
      <line num="1314" type="stmt" count="10"/>
      <line num="1315" type="stmt" count="3"/>
      <line num="1318" type="stmt" count="7"/>
      <line num="1319" type="stmt" count="7"/>
      <line num="1320" type="stmt" count="2"/>
      <line num="1321" type="stmt" count="5"/>
      <line num="1323" type="stmt" count="7"/>
      <line num="1332" type="method" name="loadFromDatabase" visibility="private" complexity="3" crap="3" count="6"/>
      <line num="1333" type="stmt" count="6"/>
      <line num="1335" type="stmt" count="1"/>
      <line num="1336" type="stmt" count="1"/>
      <line num="1337" type="stmt" count="1"/>
      <line num="1340" type="stmt" count="5"/>
      <line num="1349" type="method" name="loadRequest" visibility="private" complexity="6" crap="6" count="5"/>
      <line num="1350" type="stmt" count="5"/>
      <line num="1351" type="stmt" count="5"/>
      <line num="1353" type="stmt" count="0"/>
      <line num="1356" type="stmt" count="5"/>
      <line num="1359" type="stmt" count="5"/>
      <line num="1360" type="stmt" count="3"/>
      <line num="1361" type="stmt" count="2"/>
      <line num="1363" type="stmt" count="5"/>
      <line num="1366" type="stmt" count="2"/>
      <line num="1368" type="stmt" count="2"/>
      <line num="1370" type="stmt" count="2"/>
      <line num="1371" type="stmt" count="2"/>
      <line num="1372" type="stmt" count="2"/>
      <line num="1375" type="stmt" count="5"/>
      <line num="1376" type="stmt" count="5"/>
      <line num="1377" type="stmt" count="5"/>
      <line num="1379" type="stmt" count="5"/>
      <line num="1381" type="stmt" count="5"/>
      <line num="1382" type="stmt" count="5"/>
      <line num="1383" type="stmt" count="5"/>
      <line num="1384" type="stmt" count="5"/>
      <line num="1385" type="stmt" count="5"/>
      <line num="1386" type="stmt" count="5"/>
      <line num="1387" type="stmt" count="5"/>
      <line num="1388" type="stmt" count="5"/>
      <line num="1390" type="stmt" count="5"/>
      <line num="1392" type="stmt" count="5"/>
      <line num="1394" type="stmt" count="5"/>
      <line num="1397" type="method" name="loadImportRequest" visibility="private" complexity="3" crap="3.21" count="1"/>
      <line num="1398" type="stmt" count="1"/>
      <line num="1399" type="stmt" count="1"/>
      <line num="1401" type="stmt" count="0"/>
      <line num="1405" type="stmt" count="1"/>
      <line num="1406" type="stmt" count="1"/>
      <line num="1407" type="stmt" count="1"/>
      <line num="1410" type="stmt" count="0"/>
      <line num="1416" type="method" name="loadActions" visibility="private" complexity="14" crap="130.55" count="5"/>
      <line num="1417" type="stmt" count="5"/>
      <line num="1418" type="stmt" count="5"/>
      <line num="1419" type="stmt" count="5"/>
      <line num="1420" type="stmt" count="5"/>
      <line num="1422" type="stmt" count="5"/>
      <line num="1424" type="stmt" count="5"/>
      <line num="1425" type="stmt" count="0"/>
      <line num="1427" type="stmt" count="0"/>
      <line num="1429" type="stmt" count="0"/>
      <line num="1430" type="stmt" count="0"/>
      <line num="1432" type="stmt" count="0"/>
      <line num="1434" type="stmt" count="0"/>
      <line num="1435" type="stmt" count="0"/>
      <line num="1436" type="stmt" count="0"/>
      <line num="1437" type="stmt" count="0"/>
      <line num="1438" type="stmt" count="0"/>
      <line num="1442" type="stmt" count="0"/>
      <line num="1443" type="stmt" count="0"/>
      <line num="1444" type="stmt" count="0"/>
      <line num="1445" type="stmt" count="0"/>
      <line num="1446" type="stmt" count="0"/>
      <line num="1447" type="stmt" count="0"/>
      <line num="1448" type="stmt" count="0"/>
      <line num="1450" type="stmt" count="0"/>
      <line num="1451" type="stmt" count="0"/>
      <line num="1454" type="stmt" count="0"/>
      <line num="1455" type="stmt" count="0"/>
      <line num="1456" type="stmt" count="0"/>
      <line num="1458" type="stmt" count="0"/>
      <line num="1459" type="stmt" count="0"/>
      <line num="1460" type="stmt" count="0"/>
      <line num="1461" type="stmt" count="0"/>
      <line num="1462" type="stmt" count="0"/>
      <line num="1463" type="stmt" count="0"/>
      <line num="1464" type="stmt" count="0"/>
      <line num="1466" type="stmt" count="0"/>
      <line num="1467" type="stmt" count="0"/>
      <line num="1470" type="stmt" count="0"/>
      <line num="1471" type="stmt" count="0"/>
      <line num="1472" type="stmt" count="0"/>
      <line num="1476" type="stmt" count="0"/>
      <line num="1477" type="stmt" count="0"/>
      <line num="1481" type="stmt" count="0"/>
      <line num="1484" type="stmt" count="5"/>
      <line num="1490" type="method" name="exposeMessages" visibility="private" complexity="1" crap="1" count="13"/>
      <line num="1491" type="stmt" count="13"/>
      <line num="1492" type="stmt" count="13"/>
      <line num="1493" type="stmt" count="13"/>
      <line num="1494" type="stmt" count="13"/>
      <line num="1495" type="stmt" count="13"/>
      <line num="1496" type="stmt" count="13"/>
      <line num="1497" type="stmt" count="13"/>
      <line num="1498" type="stmt" count="13"/>
      <metrics loc="1501" ncloc="1329" classes="1" methods="15" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="980" coveredstatements="851" elements="995" coveredelements="857"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewExamine.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewExamine" namespace="global">
        <metrics complexity="42" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="232" coveredstatements="161" elements="239" coveredelements="163"/>
      </class>
      <line num="37" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="54" type="stmt" count="14"/>
      <line num="55" type="stmt" count="14"/>
      <line num="61" type="method" name="show" visibility="public" complexity="7" crap="7.14" count="13"/>
      <line num="62" type="stmt" count="13"/>
      <line num="63" type="stmt" count="13"/>
      <line num="64" type="stmt" count="13"/>
      <line num="65" type="stmt" count="13"/>
      <line num="66" type="stmt" count="13"/>
      <line num="68" type="stmt" count="0"/>
      <line num="71" type="stmt" count="13"/>
      <line num="74" type="stmt" count="13"/>
      <line num="75" type="stmt" count="6"/>
      <line num="76" type="stmt" count="7"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="7"/>
      <line num="80" type="stmt" count="7"/>
      <line num="82" type="stmt" count="0"/>
      <line num="89" type="method" name="showSearch" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="126" type="method" name="showResults" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="172" type="method" name="showExaminerForRC" visibility="public" complexity="10" crap="10.01" 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="177" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="181" type="stmt" count="5"/>
      <line num="182" type="stmt" count="2"/>
      <line num="183" type="stmt" count="2"/>
      <line num="186" type="stmt" count="5"/>
      <line num="187" type="stmt" count="5"/>
      <line num="188" type="stmt" count="5"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="194" type="stmt" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="200" type="stmt" count="5"/>
      <line num="201" type="stmt" count="5"/>
      <line num="204" type="stmt" count="5"/>
      <line num="205" type="stmt" count="5"/>
      <line num="206" type="stmt" count="5"/>
      <line num="208" type="stmt" count="3"/>
      <line num="212" type="stmt" count="3"/>
      <line num="213" type="stmt" count="2"/>
      <line num="218" type="stmt" count="5"/>
      <line num="220" type="stmt" count="5"/>
      <line num="221" type="stmt" count="2"/>
      <line num="222" type="stmt" count="1"/>
      <line num="223" type="stmt" count="1"/>
      <line num="226" type="stmt" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="228" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="231" type="stmt" count="1"/>
      <line num="234" type="stmt" count="4"/>
      <line num="235" type="stmt" count="4"/>
      <line num="236" type="stmt" count="4"/>
      <line num="238" type="stmt" count="4"/>
      <line num="244" type="method" name="showExaminerForLogEntry" visibility="public" complexity="16" crap="16.36" count="7"/>
      <line num="246" type="stmt" count="7"/>
      <line num="247" type="stmt" count="7"/>
      <line num="248" type="stmt" count="7"/>
      <line num="250" type="stmt" count="7"/>
      <line num="251" type="stmt" count="7"/>
      <line num="252" type="stmt" count="7"/>
      <line num="253" type="stmt" count="7"/>
      <line num="254" type="stmt" count="7"/>
      <line num="255" type="stmt" count="7"/>
      <line num="256" type="stmt" count="7"/>
      <line num="257" type="stmt" count="7"/>
      <line num="258" type="stmt" count="7"/>
      <line num="259" type="stmt" count="7"/>
      <line num="260" type="stmt" count="7"/>
      <line num="261" type="stmt" count="7"/>
      <line num="262" type="stmt" count="7"/>
      <line num="264" type="stmt" count="7"/>
      <line num="265" type="stmt" count="1"/>
      <line num="266" type="stmt" count="1"/>
      <line num="270" type="stmt" count="6"/>
      <line num="271" type="stmt" count="1"/>
      <line num="273" type="stmt" count="1"/>
      <line num="274" type="stmt" count="1"/>
      <line num="275" type="stmt" count="1"/>
      <line num="276" type="stmt" count="1"/>
      <line num="278" type="stmt" count="6"/>
      <line num="279" type="stmt" count="2"/>
      <line num="280" type="stmt" count="2"/>
      <line num="283" type="stmt" count="4"/>
      <line num="284" type="stmt" count="4"/>
      <line num="285" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="287" type="stmt" count="0"/>
      <line num="288" type="stmt" count="0"/>
      <line num="289" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="294" type="stmt" count="0"/>
      <line num="295" type="stmt" count="0"/>
      <line num="298" type="stmt" count="4"/>
      <line num="299" type="stmt" count="4"/>
      <line num="302" type="stmt" count="4"/>
      <line num="303" type="stmt" count="4"/>
      <line num="304" type="stmt" count="4"/>
      <line num="305" type="stmt" count="4"/>
      <line num="306" type="stmt" count="4"/>
      <line num="307" type="stmt" count="4"/>
      <line num="308" type="stmt" count="2"/>
      <line num="309" type="stmt" count="1"/>
      <line num="310" type="stmt" count="1"/>
      <line num="311" type="stmt" count="1"/>
      <line num="312" type="stmt" count="1"/>
      <line num="313" type="stmt" count="1"/>
      <line num="314" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="319" type="stmt" count="1"/>
      <line num="320" type="stmt" count="1"/>
      <line num="321" type="stmt" count="1"/>
      <line num="324" type="stmt" count="1"/>
      <line num="325" type="stmt" count="1"/>
      <line num="326" type="stmt" count="1"/>
      <line num="327" type="stmt" count="1"/>
      <line num="330" type="stmt" count="2"/>
      <line num="331" type="stmt" count="2"/>
      <line num="332" type="stmt" count="2"/>
      <line num="333" type="stmt" count="2"/>
      <line num="337" type="stmt" count="2"/>
      <line num="338" type="stmt" count="2"/>
      <line num="339" type="stmt" count="1"/>
      <line num="340" type="stmt" count="1"/>
      <line num="343" type="stmt" count="1"/>
      <line num="344" type="stmt" count="1"/>
      <line num="345" type="stmt" count="1"/>
      <line num="346" type="stmt" count="1"/>
      <line num="347" type="stmt" count="1"/>
      <line num="348" type="stmt" count="1"/>
      <line num="352" type="stmt" count="1"/>
      <line num="353" type="stmt" count="1"/>
      <line num="354" type="stmt" count="1"/>
      <line num="355" type="stmt" count="1"/>
      <line num="358" type="method" name="showExaminer" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="359" type="stmt" count="5"/>
      <line num="360" type="stmt" count="5"/>
      <line num="362" type="stmt" count="5"/>
      <line num="364" type="stmt" count="5"/>
      <line num="365" type="stmt" count="5"/>
      <line num="366" type="stmt" count="5"/>
      <line num="367" type="stmt" count="5"/>
      <line num="370" type="stmt" count="5"/>
      <line num="371" type="stmt" count="5"/>
      <line num="372" type="stmt" count="5"/>
      <line num="373" type="stmt" count="5"/>
      <line num="374" type="stmt" count="5"/>
      <line num="375" type="stmt" count="5"/>
      <line num="377" type="stmt" count="5"/>
      <line num="378" type="stmt" count="5"/>
      <line num="379" type="stmt" count="5"/>
      <line num="380" type="stmt" count="5"/>
      <line num="381" type="stmt" count="5"/>
      <line num="382" type="stmt" count="5"/>
      <line num="383" type="stmt" count="5"/>
      <line num="384" type="stmt" count="5"/>
      <line num="385" type="stmt" count="5"/>
      <line num="386" type="stmt" count="5"/>
      <line num="387" type="stmt" count="5"/>
      <line num="388" type="stmt" count="5"/>
      <line num="389" type="stmt" count="5"/>
      <line num="390" type="stmt" count="5"/>
      <line num="391" type="stmt" count="5"/>
      <line num="392" type="stmt" count="5"/>
      <line num="393" type="stmt" count="5"/>
      <line num="394" type="stmt" count="5"/>
      <line num="395" type="stmt" count="5"/>
      <line num="396" type="stmt" count="5"/>
      <line num="400" type="stmt" count="5"/>
      <line num="401" type="stmt" count="5"/>
      <line num="402" type="stmt" count="5"/>
      <line num="403" type="stmt" count="5"/>
      <line num="404" type="stmt" count="5"/>
      <line num="405" type="stmt" count="5"/>
      <line num="407" type="stmt" count="5"/>
      <metrics loc="411" ncloc="372" classes="1" methods="7" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="232" coveredstatements="161" elements="239" coveredelements="163"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewHistory.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewHistory" namespace="global">
        <metrics complexity="21" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="106" coveredstatements="92" elements="108" coveredelements="93"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" 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="43" type="method" name="show" visibility="public" complexity="20" crap="21.00" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="48" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="51" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="3"/>
      <line num="67" type="stmt" count="3"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="3"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" 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="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" 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="92" type="stmt" count="2"/>
      <line num="94" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="1"/>
      <line num="105" type="stmt" count="2"/>
      <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="113" type="stmt" count="2"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="120" type="stmt" count="2"/>
      <line num="121" type="stmt" count="2"/>
      <line num="122" type="stmt" count="2"/>
      <line num="123" type="stmt" count="2"/>
      <line num="124" type="stmt" count="2"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="2"/>
      <line num="137" type="stmt" count="2"/>
      <line num="138" type="stmt" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="141" type="stmt" count="2"/>
      <line num="142" type="stmt" count="2"/>
      <line num="143" type="stmt" count="2"/>
      <line num="144" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="146" type="stmt" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="148" type="stmt" count="2"/>
      <line num="149" type="stmt" count="2"/>
      <line num="150" type="stmt" count="2"/>
      <line num="151" type="stmt" count="2"/>
      <line num="152" type="stmt" count="2"/>
      <line num="154" type="stmt" count="2"/>
      <line num="155" type="stmt" count="2"/>
      <line num="156" type="stmt" count="2"/>
      <line num="157" type="stmt" count="2"/>
      <line num="158" type="stmt" count="2"/>
      <line num="159" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="162" type="stmt" count="2"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="168" type="stmt" count="2"/>
      <line num="169" type="stmt" count="2"/>
      <line num="170" type="stmt" count="2"/>
      <line num="171" type="stmt" count="2"/>
      <line num="172" type="stmt" count="2"/>
      <line num="173" type="stmt" count="2"/>
      <line num="175" type="stmt" count="2"/>
      <line num="176" type="stmt" count="2"/>
      <line num="177" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <metrics loc="181" ncloc="173" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="106" coveredstatements="92" elements="108" coveredelements="93"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewImport.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewImport" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="16" coveredelements="0"/>
      </class>
      <line num="11" type="method" name="show" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="12" type="stmt" count="0"/>
      <line num="13" type="stmt" count="0"/>
      <line num="14" type="stmt" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="18" 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="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <metrics loc="32" ncloc="29" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="16" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewList.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewList" namespace="global">
        <metrics complexity="41" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="238" coveredstatements="178" elements="242" coveredelements="179"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="16"/>
      <line num="41" type="stmt" count="16"/>
      <line num="42" type="stmt" count="16"/>
      <line num="48" type="method" name="show" visibility="public" complexity="27" crap="36.42" count="14"/>
      <line num="49" type="stmt" count="14"/>
      <line num="50" type="stmt" count="14"/>
      <line num="51" type="stmt" count="14"/>
      <line num="52" type="stmt" count="14"/>
      <line num="54" type="stmt" count="14"/>
      <line num="55" type="stmt" count="14"/>
      <line num="58" type="stmt" count="14"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="61" type="stmt" count="6"/>
      <line num="62" type="stmt" count="6"/>
      <line num="63" type="stmt" count="6"/>
      <line num="64" type="stmt" count="6"/>
      <line num="65" type="stmt" count="6"/>
      <line num="66" type="stmt" count="6"/>
      <line num="67" type="stmt" count="6"/>
      <line num="68" type="stmt" count="6"/>
      <line num="69" type="stmt" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="6"/>
      <line num="72" type="stmt" count="6"/>
      <line num="73" type="stmt" count="6"/>
      <line num="74" type="stmt" count="6"/>
      <line num="77" type="stmt" count="14"/>
      <line num="78" type="stmt" count="14"/>
      <line num="79" type="stmt" count="14"/>
      <line num="81" type="stmt" count="14"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="14"/>
      <line num="85" type="stmt" count="0"/>
      <line num="87" type="stmt" count="14"/>
      <line num="88" type="stmt" count="0"/>
      <line num="90" type="stmt" count="14"/>
      <line num="91" type="stmt" count="14"/>
      <line num="92" type="stmt" count="14"/>
      <line num="94" type="stmt" count="0"/>
      <line num="96" type="stmt" count="14"/>
      <line num="98" type="stmt" count="14"/>
      <line num="99" type="stmt" count="14"/>
      <line num="100" type="stmt" count="14"/>
      <line num="101" type="stmt" count="14"/>
      <line num="103" type="stmt" count="14"/>
      <line num="104" type="stmt" count="10"/>
      <line num="105" type="stmt" count="10"/>
      <line num="106" type="stmt" count="10"/>
      <line num="108" type="stmt" count="8"/>
      <line num="111" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <line num="115" type="stmt" count="14"/>
      <line num="117" type="stmt" count="14"/>
      <line num="118" type="stmt" count="0"/>
      <line num="121" type="stmt" count="14"/>
      <line num="122" type="stmt" count="14"/>
      <line num="124" type="stmt" count="14"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="129" type="stmt" count="14"/>
      <line num="130" type="stmt" count="14"/>
      <line num="133" type="stmt" count="14"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="142" type="stmt" count="14"/>
      <line num="145" type="stmt" count="2"/>
      <line num="146" type="stmt" count="2"/>
      <line num="149" type="stmt" count="14"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="14"/>
      <line num="152" type="stmt" count="0"/>
      <line num="155" type="stmt" count="14"/>
      <line num="157" type="stmt" count="2"/>
      <line num="158" type="stmt" count="2"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="2"/>
      <line num="162" type="stmt" count="0"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="187" type="stmt" count="2"/>
      <line num="188" type="stmt" count="1"/>
      <line num="189" type="stmt" count="1"/>
      <line num="193" type="stmt" count="14"/>
      <line num="194" type="stmt" count="14"/>
      <line num="195" type="stmt" count="14"/>
      <line num="196" type="stmt" count="14"/>
      <line num="197" type="stmt" count="14"/>
      <line num="198" type="stmt" count="14"/>
      <line num="199" type="stmt" count="14"/>
      <line num="200" type="stmt" count="14"/>
      <line num="201" type="stmt" count="14"/>
      <line num="202" type="stmt" count="14"/>
      <line num="209" type="method" name="showList" visibility="private" complexity="10" crap="10.89" count="14"/>
      <line num="210" type="stmt" count="14"/>
      <line num="211" type="stmt" count="14"/>
      <line num="212" type="stmt" count="14"/>
      <line num="213" type="stmt" count="14"/>
      <line num="214" type="stmt" count="14"/>
      <line num="215" type="stmt" count="14"/>
      <line num="216" type="stmt" count="14"/>
      <line num="218" type="stmt" count="14"/>
      <line num="219" type="stmt" count="14"/>
      <line num="220" type="stmt" count="14"/>
      <line num="221" type="stmt" count="14"/>
      <line num="222" type="stmt" count="14"/>
      <line num="224" type="stmt" count="14"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="236" type="stmt" count="14"/>
      <line num="237" type="stmt" count="14"/>
      <line num="238" type="stmt" count="14"/>
      <line num="239" type="stmt" count="14"/>
      <line num="240" type="stmt" count="14"/>
      <line num="241" type="stmt" count="14"/>
      <line num="242" type="stmt" count="14"/>
      <line num="243" type="stmt" count="14"/>
      <line num="244" type="stmt" count="14"/>
      <line num="245" type="stmt" count="14"/>
      <line num="246" type="stmt" count="14"/>
      <line num="250" type="stmt" count="14"/>
      <line num="252" type="stmt" count="14"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="259" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="271" type="stmt" count="14"/>
      <line num="272" type="stmt" count="14"/>
      <line num="273" type="stmt" count="14"/>
      <line num="274" type="stmt" count="14"/>
      <line num="275" type="stmt" count="14"/>
      <line num="276" type="stmt" count="14"/>
      <line num="277" type="stmt" count="14"/>
      <line num="278" type="stmt" count="14"/>
      <line num="279" type="stmt" count="14"/>
      <line num="280" type="stmt" count="14"/>
      <line num="281" type="stmt" count="14"/>
      <line num="282" type="stmt" count="14"/>
      <line num="284" type="stmt" count="14"/>
      <line num="285" type="stmt" count="14"/>
      <line num="286" type="stmt" count="14"/>
      <line num="287" type="stmt" count="14"/>
      <line num="288" type="stmt" count="14"/>
      <line num="289" type="stmt" count="14"/>
      <line num="290" type="stmt" count="14"/>
      <line num="291" type="stmt" count="14"/>
      <line num="292" type="stmt" count="14"/>
      <line num="293" type="stmt" count="14"/>
      <line num="294" type="stmt" count="14"/>
      <line num="295" type="stmt" count="14"/>
      <line num="297" type="stmt" count="14"/>
      <line num="298" type="stmt" count="10"/>
      <line num="299" type="stmt" count="10"/>
      <line num="300" type="stmt" count="10"/>
      <line num="301" type="stmt" count="10"/>
      <line num="302" type="stmt" count="10"/>
      <line num="303" type="stmt" count="10"/>
      <line num="304" type="stmt" count="10"/>
      <line num="305" type="stmt" count="10"/>
      <line num="306" type="stmt" count="10"/>
      <line num="308" type="stmt" count="10"/>
      <line num="309" type="stmt" count="10"/>
      <line num="310" type="stmt" count="10"/>
      <line num="311" type="stmt" count="10"/>
      <line num="312" type="stmt" count="10"/>
      <line num="313" type="stmt" count="10"/>
      <line num="314" type="stmt" count="0"/>
      <line num="316" type="stmt" count="10"/>
      <line num="317" type="stmt" count="10"/>
      <line num="318" type="stmt" count="10"/>
      <line num="319" type="stmt" count="10"/>
      <line num="320" type="stmt" count="10"/>
      <line num="321" type="stmt" count="10"/>
      <line num="322" type="stmt" count="10"/>
      <line num="325" type="stmt" count="14"/>
      <line num="326" type="stmt" count="14"/>
      <line num="327" type="stmt" count="14"/>
      <line num="328" type="stmt" count="14"/>
      <line num="329" type="stmt" count="14"/>
      <line num="330" type="stmt" count="14"/>
      <line num="331" type="stmt" count="14"/>
      <line num="333" type="stmt" count="14"/>
      <line num="334" type="stmt" count="14"/>
      <line num="335" type="stmt" count="14"/>
      <line num="336" type="stmt" count="14"/>
      <line num="337" type="stmt" count="14"/>
      <line num="338" type="stmt" count="14"/>
      <line num="339" type="stmt" count="14"/>
      <line num="340" type="stmt" count="14"/>
      <line num="342" type="stmt" count="14"/>
      <line num="343" type="stmt" count="14"/>
      <line num="344" type="stmt" count="14"/>
      <line num="345" type="stmt" count="14"/>
      <line num="351" type="method" name="showStatus" visibility="public" complexity="3" crap="4.86" count="14"/>
      <line num="352" type="stmt" count="14"/>
      <line num="353" type="stmt" count="14"/>
      <line num="354" type="stmt" count="14"/>
      <line num="355" type="stmt" count="14"/>
      <line num="356" type="stmt" count="14"/>
      <line num="357" type="stmt" count="14"/>
      <line num="358" type="stmt" count="14"/>
      <line num="359" type="stmt" count="14"/>
      <line num="362" type="stmt" count="14"/>
      <line num="363" type="stmt" count="0"/>
      <line num="364" type="stmt" count="0"/>
      <line num="366" type="stmt" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="368" type="stmt" count="0"/>
      <line num="369" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="371" type="stmt" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <metrics loc="381" ncloc="345" classes="1" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="238" coveredstatements="178" elements="242" coveredelements="179"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewRevert.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewRevert" namespace="global">
        <metrics complexity="31" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="209" coveredstatements="208" elements="216" coveredelements="214"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="17"/>
      <line num="51" type="stmt" count="17"/>
      <line num="53" type="stmt" count="17"/>
      <line num="54" type="stmt" count="17"/>
      <line num="60" type="method" name="show" visibility="public" complexity="6" crap="6" count="16"/>
      <line num="61" type="stmt" count="16"/>
      <line num="62" type="stmt" count="16"/>
      <line num="63" type="stmt" count="1"/>
      <line num="66" type="stmt" count="15"/>
      <line num="67" type="stmt" count="15"/>
      <line num="68" type="stmt" count="1"/>
      <line num="71" type="stmt" count="14"/>
      <line num="73" type="stmt" count="14"/>
      <line num="75" type="stmt" count="14"/>
      <line num="79" type="stmt" count="14"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="85" type="stmt" count="13"/>
      <line num="86" type="stmt" count="7"/>
      <line num="89" type="stmt" count="7"/>
      <line num="92" type="stmt" count="7"/>
      <line num="93" type="stmt" count="7"/>
      <line num="94" type="stmt" count="7"/>
      <line num="95" type="stmt" count="7"/>
      <line num="96" type="stmt" count="7"/>
      <line num="97" type="stmt" count="7"/>
      <line num="98" type="stmt" count="7"/>
      <line num="99" type="stmt" count="7"/>
      <line num="100" type="stmt" count="7"/>
      <line num="101" type="stmt" count="7"/>
      <line num="102" type="stmt" count="7"/>
      <line num="103" type="stmt" count="7"/>
      <line num="104" type="stmt" count="7"/>
      <line num="105" type="stmt" count="7"/>
      <line num="106" type="stmt" count="7"/>
      <line num="107" type="stmt" count="7"/>
      <line num="108" type="stmt" count="7"/>
      <line num="109" type="stmt" count="7"/>
      <line num="110" type="stmt" count="7"/>
      <line num="111" type="stmt" count="7"/>
      <line num="112" type="stmt" count="7"/>
      <line num="113" type="stmt" count="7"/>
      <line num="114" type="stmt" count="7"/>
      <line num="115" type="stmt" count="7"/>
      <line num="116" type="stmt" count="7"/>
      <line num="117" type="stmt" count="7"/>
      <line num="118" type="stmt" count="7"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="122" type="stmt" count="7"/>
      <line num="123" type="stmt" count="7"/>
      <line num="124" type="stmt" count="7"/>
      <line num="125" type="stmt" count="7"/>
      <line num="126" type="stmt" count="7"/>
      <line num="127" type="stmt" count="7"/>
      <line num="136" type="method" name="showRevertableActions" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="137" type="stmt" count="5"/>
      <line num="138" type="stmt" count="5"/>
      <line num="139" type="stmt" count="5"/>
      <line num="142" type="stmt" count="5"/>
      <line num="143" type="stmt" count="5"/>
      <line num="144" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="149" type="stmt" count="3"/>
      <line num="150" type="stmt" count="3"/>
      <line num="152" type="stmt" count="3"/>
      <line num="153" type="stmt" count="3"/>
      <line num="154" type="stmt" count="3"/>
      <line num="155" type="stmt" count="3"/>
      <line num="158" type="stmt" count="3"/>
      <line num="159" type="stmt" count="3"/>
      <line num="160" type="stmt" count="3"/>
      <line num="161" type="stmt" count="3"/>
      <line num="162" type="stmt" count="3"/>
      <line num="163" type="stmt" count="3"/>
      <line num="164" type="stmt" count="3"/>
      <line num="165" type="stmt" count="3"/>
      <line num="166" type="stmt" count="3"/>
      <line num="167" type="stmt" count="3"/>
      <line num="168" type="stmt" count="3"/>
      <line num="169" type="stmt" count="3"/>
      <line num="170" type="stmt" count="3"/>
      <line num="171" type="stmt" count="3"/>
      <line num="172" type="stmt" count="3"/>
      <line num="173" type="stmt" count="3"/>
      <line num="174" type="stmt" count="3"/>
      <line num="175" type="stmt" count="3"/>
      <line num="176" type="stmt" count="3"/>
      <line num="177" type="stmt" count="3"/>
      <line num="178" type="stmt" count="3"/>
      <line num="181" type="stmt" count="3"/>
      <line num="184" type="stmt" count="3"/>
      <line num="185" type="stmt" count="3"/>
      <line num="186" type="stmt" count="3"/>
      <line num="187" type="stmt" count="3"/>
      <line num="188" type="stmt" count="3"/>
      <line num="189" type="stmt" count="3"/>
      <line num="190" type="stmt" count="3"/>
      <line num="191" type="stmt" count="3"/>
      <line num="192" type="stmt" count="3"/>
      <line num="193" type="stmt" count="3"/>
      <line num="194" type="stmt" count="3"/>
      <line num="195" type="stmt" count="3"/>
      <line num="196" type="stmt" count="3"/>
      <line num="197" type="stmt" count="3"/>
      <line num="198" type="stmt" count="3"/>
      <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="209" type="stmt" count="3"/>
      <line num="216" type="method" name="doLookup" visibility="private" complexity="9" crap="9" count="11"/>
      <line num="217" type="stmt" count="11"/>
      <line num="220" type="stmt" count="11"/>
      <line num="222" type="stmt" count="11"/>
      <line num="224" type="stmt" count="11"/>
      <line num="225" type="stmt" count="11"/>
      <line num="228" type="stmt" count="11"/>
      <line num="230" type="stmt" count="11"/>
      <line num="231" type="stmt" count="2"/>
      <line num="233" type="stmt" count="11"/>
      <line num="234" type="stmt" count="2"/>
      <line num="238" type="stmt" count="11"/>
      <line num="239" type="stmt" count="11"/>
      <line num="241" type="stmt" count="11"/>
      <line num="242" type="stmt" count="11"/>
      <line num="243" type="stmt" count="11"/>
      <line num="244" type="stmt" count="11"/>
      <line num="245" type="stmt" count="11"/>
      <line num="246" type="stmt" count="11"/>
      <line num="247" type="stmt" count="11"/>
      <line num="248" type="stmt" count="11"/>
      <line num="249" type="stmt" count="11"/>
      <line num="250" type="stmt" count="11"/>
      <line num="251" type="stmt" count="11"/>
      <line num="252" type="stmt" count="11"/>
      <line num="253" type="stmt" count="11"/>
      <line num="254" type="stmt" count="11"/>
      <line num="255" type="stmt" count="11"/>
      <line num="256" type="stmt" count="11"/>
      <line num="257" type="stmt" count="11"/>
      <line num="258" type="stmt" count="11"/>
      <line num="259" type="stmt" count="11"/>
      <line num="262" type="stmt" count="11"/>
      <line num="264" type="stmt" count="11"/>
      <line num="265" type="stmt" count="11"/>
      <line num="266" type="stmt" count="9"/>
      <line num="267" type="stmt" count="9"/>
      <line num="268" type="stmt" count="9"/>
      <line num="269" type="stmt" count="9"/>
      <line num="272" type="stmt" count="9"/>
      <line num="273" type="stmt" count="9"/>
      <line num="274" type="stmt" count="9"/>
      <line num="277" type="stmt" count="9"/>
      <line num="278" type="stmt" count="9"/>
      <line num="279" type="stmt" count="9"/>
      <line num="280" type="stmt" count="9"/>
      <line num="281" type="stmt" count="9"/>
      <line num="282" type="stmt" count="9"/>
      <line num="283" type="stmt" count="9"/>
      <line num="284" type="stmt" count="9"/>
      <line num="285" type="stmt" count="9"/>
      <line num="286" type="stmt" count="9"/>
      <line num="287" type="stmt" count="9"/>
      <line num="288" type="stmt" count="9"/>
      <line num="289" type="stmt" count="9"/>
      <line num="290" type="stmt" count="9"/>
      <line num="294" type="stmt" count="11"/>
      <line num="297" type="method" name="attemptRevert" visibility="private" complexity="4" crap="4" count="13"/>
      <line num="298" type="stmt" count="13"/>
      <line num="299" type="stmt" count="13"/>
      <line num="300" type="stmt" count="13"/>
      <line num="301" type="stmt" count="7"/>
      <line num="304" type="stmt" count="7"/>
      <line num="305" type="stmt" count="7"/>
      <line num="306" type="stmt" count="7"/>
      <line num="307" type="stmt" count="7"/>
      <line num="310" type="stmt" count="7"/>
      <line num="311" type="stmt" count="7"/>
      <line num="312" type="stmt" count="7"/>
      <line num="313" type="stmt" count="7"/>
      <line num="314" type="stmt" count="7"/>
      <line num="315" type="stmt" count="7"/>
      <line num="316" type="stmt" count="7"/>
      <line num="317" type="stmt" count="7"/>
      <line num="319" type="stmt" count="7"/>
      <line num="328" type="method" name="getConsequence" visibility="private" complexity="5" crap="5.01" count="7"/>
      <line num="329" type="stmt" count="7"/>
      <line num="330" type="stmt" count="7"/>
      <line num="331" type="stmt" count="7"/>
      <line num="332" type="stmt" count="7"/>
      <line num="333" type="stmt" count="7"/>
      <line num="336" type="stmt" count="7"/>
      <line num="337" type="stmt" count="5"/>
      <line num="338" type="stmt" count="2"/>
      <line num="339" type="stmt" count="1"/>
      <line num="340" type="stmt" count="1"/>
      <line num="341" type="stmt" count="1"/>
      <line num="342" type="stmt" count="1"/>
      <line num="344" type="stmt" count="0"/>
      <line num="353" type="method" name="revertAction" visibility="private" complexity="2" crap="2" count="7"/>
      <line num="354" type="stmt" count="7"/>
      <line num="355" type="stmt" count="7"/>
      <line num="356" type="stmt" count="7"/>
      <line num="357" type="stmt" count="7"/>
      <line num="359" type="stmt" count="7"/>
      <line num="360" type="stmt" count="7"/>
      <line num="361" type="stmt" count="2"/>
      <line num="362" type="stmt" count="2"/>
      <line num="365" type="stmt" count="7"/>
      <line num="366" type="stmt" count="7"/>
      <metrics loc="369" ncloc="330" classes="1" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="209" coveredstatements="208" elements="216" coveredelements="214"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewTestBatch.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewTestBatch" namespace="global">
        <metrics complexity="33" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="192" coveredstatements="180" elements="196" coveredelements="182"/>
      </class>
      <line num="36" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="50" type="stmt" count="7"/>
      <line num="56" type="method" name="show" visibility="public" complexity="4" crap="4" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="65" type="stmt" count="6"/>
      <line num="72" type="stmt" count="6"/>
      <line num="73" type="stmt" count="6"/>
      <line num="74" type="stmt" count="6"/>
      <line num="75" type="stmt" count="6"/>
      <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="84" type="stmt" count="6"/>
      <line num="85" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <line num="89" type="stmt" count="6"/>
      <line num="91" type="stmt" count="6"/>
      <line num="92" type="stmt" count="6"/>
      <line num="93" type="stmt" count="6"/>
      <line num="94" type="stmt" count="6"/>
      <line num="95" type="stmt" count="6"/>
      <line num="96" type="stmt" count="6"/>
      <line num="97" type="stmt" count="6"/>
      <line num="98" type="stmt" count="6"/>
      <line num="99" type="stmt" 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="104" type="stmt" count="6"/>
      <line num="105" type="stmt" count="6"/>
      <line num="106" type="stmt" count="6"/>
      <line num="108" type="stmt" count="6"/>
      <line num="109" type="stmt" count="6"/>
      <line num="110" type="stmt" count="6"/>
      <line num="111" type="stmt" count="6"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="6"/>
      <line num="114" type="stmt" count="6"/>
      <line num="115" type="stmt" count="6"/>
      <line num="116" type="stmt" count="6"/>
      <line num="117" type="stmt" count="6"/>
      <line num="118" type="stmt" count="6"/>
      <line num="119" type="stmt" count="6"/>
      <line num="120" type="stmt" count="6"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" 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="128" type="stmt" 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="146" type="stmt" count="6"/>
      <line num="147" type="stmt" count="6"/>
      <line num="148" type="stmt" count="6"/>
      <line num="149" type="stmt" count="6"/>
      <line num="150" type="stmt" count="6"/>
      <line num="151" type="stmt" count="6"/>
      <line num="152" type="stmt" count="6"/>
      <line num="153" type="stmt" count="6"/>
      <line num="154" type="stmt" count="6"/>
      <line num="155" type="stmt" count="6"/>
      <line num="156" type="stmt" count="6"/>
      <line num="157" type="stmt" count="6"/>
      <line num="158" type="stmt" count="6"/>
      <line num="160" type="stmt" count="6"/>
      <line num="161" type="stmt" count="6"/>
      <line num="162" type="stmt" count="6"/>
      <line num="163" type="stmt" count="6"/>
      <line num="164" type="stmt" 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="176" type="method" name="doTest" visibility="public" complexity="23" crap="23.89" count="5"/>
      <line num="178" type="stmt" count="5"/>
      <line num="180" type="stmt" count="5"/>
      <line num="181" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="187" type="stmt" count="5"/>
      <line num="188" type="stmt" count="5"/>
      <line num="189" type="stmt" count="5"/>
      <line num="192" type="stmt" count="5"/>
      <line num="193" type="stmt" count="5"/>
      <line num="194" type="stmt" count="5"/>
      <line num="195" type="stmt" count="2"/>
      <line num="198" type="stmt" count="5"/>
      <line num="199" type="stmt" count="5"/>
      <line num="200" type="stmt" count="0"/>
      <line num="202" type="stmt" count="5"/>
      <line num="203" type="stmt" count="5"/>
      <line num="204" type="stmt" count="0"/>
      <line num="206" type="stmt" count="5"/>
      <line num="208" type="stmt" count="2"/>
      <line num="209" type="stmt" count="2"/>
      <line num="210" type="stmt" count="2"/>
      <line num="213" type="stmt" count="5"/>
      <line num="214" type="stmt" count="0"/>
      <line num="217" type="stmt" count="5"/>
      <line num="218" type="stmt" count="5"/>
      <line num="219" type="stmt" count="5"/>
      <line num="220" type="stmt" count="5"/>
      <line num="222" type="stmt" count="5"/>
      <line num="223" type="stmt" count="5"/>
      <line num="224" type="stmt" count="5"/>
      <line num="225" type="stmt" count="5"/>
      <line num="226" type="stmt" count="5"/>
      <line num="227" type="stmt" count="5"/>
      <line num="228" type="stmt" count="5"/>
      <line num="229" type="stmt" count="5"/>
      <line num="230" type="stmt" count="5"/>
      <line num="233" type="stmt" count="5"/>
      <line num="235" type="stmt" count="5"/>
      <line num="236" type="stmt" count="5"/>
      <line num="238" type="stmt" count="5"/>
      <line num="240" type="stmt" count="5"/>
      <line num="241" type="stmt" count="5"/>
      <line num="242" type="stmt" count="5"/>
      <line num="243" type="stmt" count="5"/>
      <line num="244" type="stmt" count="5"/>
      <line num="245" type="stmt" count="5"/>
      <line num="246" type="stmt" count="5"/>
      <line num="251" type="stmt" count="0"/>
      <line num="254" type="stmt" count="5"/>
      <line num="255" type="stmt" count="5"/>
      <line num="257" type="stmt" count="5"/>
      <line num="258" type="stmt" count="0"/>
      <line num="261" type="stmt" count="5"/>
      <line num="262" type="stmt" count="5"/>
      <line num="268" type="stmt" count="5"/>
      <line num="269" type="stmt" count="5"/>
      <line num="270" type="stmt" count="5"/>
      <line num="271" type="stmt" count="3"/>
      <line num="272" type="stmt" count="3"/>
      <line num="274" type="stmt" count="3"/>
      <line num="275" type="stmt" count="3"/>
      <line num="277" type="stmt" count="2"/>
      <line num="282" type="stmt" count="5"/>
      <line num="283" type="stmt" count="2"/>
      <line num="284" type="stmt" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="286" type="stmt" count="1"/>
      <line num="287" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="290" type="stmt" count="1"/>
      <line num="295" type="stmt" count="1"/>
      <line num="296" type="stmt" count="1"/>
      <line num="298" type="stmt" count="0"/>
      <line num="300" type="stmt" count="1"/>
      <line num="301" type="stmt" count="1"/>
      <line num="304" type="stmt" count="4"/>
      <line num="305" type="stmt" count="4"/>
      <line num="306" type="stmt" count="4"/>
      <line num="307" type="stmt" count="4"/>
      <line num="311" type="stmt" count="5"/>
      <line num="313" type="stmt" count="5"/>
      <line num="315" type="stmt" count="5"/>
      <line num="321" type="method" name="loadParameters" visibility="public" complexity="5" crap="5" count="6"/>
      <line num="322" type="stmt" count="6"/>
      <line num="324" type="stmt" count="6"/>
      <line num="326" type="stmt" count="6"/>
      <line num="327" type="stmt" count="6"/>
      <line num="328" type="stmt" count="6"/>
      <line num="330" type="stmt" count="1"/>
      <line num="331" type="stmt" count="1"/>
      <line num="332" type="stmt" count="1"/>
      <line num="333" type="stmt" count="1"/>
      <line num="334" type="stmt" count="1"/>
      <line num="335" type="stmt" count="1"/>
      <line num="336" type="stmt" count="1"/>
      <line num="337" type="stmt" count="1"/>
      <line num="338" type="stmt" count="1"/>
      <metrics loc="343" ncloc="305" classes="1" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="192" coveredstatements="180" elements="196" coveredelements="182"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/AbuseFilterViewTools.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewTools" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="1" elements="49" coveredelements="2"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="28" type="method" name="show" visibility="public" complexity="3" crap="12" 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="34" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="43" 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"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" 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="56" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" 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="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" 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="86" type="stmt" count="0"/>
      <metrics loc="90" ncloc="83" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="1" elements="49" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/View/HideAbuseLog.php">
      <class name="MediaWiki\Extension\AbuseFilter\View\HideAbuseLog" namespace="global">
        <metrics complexity="14" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="118" coveredstatements="26" elements="121" coveredelements="27"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="37" type="stmt" count="3"/>
      <line num="39" type="stmt" count="3"/>
      <line num="45" type="method" name="show" visibility="public" complexity="6" crap="16.44" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="54" type="stmt" count="2"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" 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="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" 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="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="144" type="method" name="saveHideForm" visibility="public" complexity="7" crap="56" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <metrics loc="204" ncloc="185" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="118" coveredstatements="26" elements="121" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Watcher/EmergencyWatcher.php">
      <class name="MediaWiki\Extension\AbuseFilter\Watcher\EmergencyWatcher" namespace="global">
        <metrics complexity="13" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="32" elements="59" coveredelements="34"/>
      </class>
      <line num="31" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="38" type="stmt" count="8"/>
      <line num="49" type="method" name="getFiltersToThrottle" visibility="public" complexity="8" crap="8.03" count="7"/>
      <line num="50" type="stmt" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="52" type="stmt" count="7"/>
      <line num="53" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="0"/>
      <line num="58" type="stmt" count="7"/>
      <line num="59" type="stmt" count="7"/>
      <line num="60" type="stmt" count="7"/>
      <line num="62" type="stmt" count="7"/>
      <line num="64" type="stmt" count="7"/>
      <line num="65" type="stmt" count="7"/>
      <line num="66" type="stmt" count="7"/>
      <line num="69" type="stmt" count="7"/>
      <line num="70" type="stmt" count="1"/>
      <line num="73" type="stmt" count="6"/>
      <line num="74" type="stmt" count="6"/>
      <line num="79" type="stmt" count="6"/>
      <line num="80" type="stmt" count="1"/>
      <line num="85" type="stmt" count="5"/>
      <line num="86" type="stmt" count="5"/>
      <line num="87" type="stmt" count="0"/>
      <line num="90" type="stmt" count="5"/>
      <line num="92" type="stmt" count="5"/>
      <line num="96" type="stmt" count="2"/>
      <line num="100" type="stmt" count="7"/>
      <line num="108" type="method" name="run" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="140" type="method" name="getEmergencyValue" visibility="private" complexity="1" crap="1" count="7"/>
      <line num="141" type="stmt" count="7"/>
      <line num="142" type="stmt" count="7"/>
      <line num="143" type="stmt" count="7"/>
      <line num="144" type="stmt" count="7"/>
      <line num="148" type="stmt" count="7"/>
      <line num="150" type="stmt" count="7"/>
      <line num="151" type="stmt" count="7"/>
      <metrics loc="154" ncloc="119" classes="1" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="32" elements="59" coveredelements="34"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Watcher/UpdateHitCountWatcher.php">
      <class name="MediaWiki\Extension\AbuseFilter\Watcher\UpdateHitCountWatcher" namespace="global">
        <metrics complexity="5" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="14" elements="17" coveredelements="17"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="26" type="method" name="run" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" 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="37" type="stmt" count="1"/>
      <line num="40" type="method" name="updateHitCounts" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="41" type="stmt" 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"/>
      <metrics loc="49" ncloc="42" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="14" elements="17" coveredelements="17"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/includes/Watcher/Watcher.php">
      <metrics loc="16" ncloc="8" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/AddMissingLoggingEntries.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\AddMissingLoggingEntries" namespace="global">
        <metrics complexity="11" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="145" ncloc="122" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/MigrateActorsAF.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\MigrateActorsAF" namespace="global">
        <metrics complexity="25" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="148" coveredstatements="0" elements="156" coveredelements="0"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="2" 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="41" type="method" name="getUpdateKey" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="48" type="method" name="doDBUpdates" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <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="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="66" type="method" name="doTable" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="77" type="method" name="makeNextCond" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="96" type="method" name="makeActorIdSubquery" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="124" type="method" name="addActorsForRows" visibility="private" complexity="9" crap="90" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="198" type="method" name="migrate" visibility="private" complexity="7" crap="56" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="219" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="223" type="stmt" count="0"/>
      <line num="224" type="stmt" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="246" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="250" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="260" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="273" type="stmt" count="0"/>
      <line num="274" type="stmt" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <metrics loc="291" ncloc="224" classes="1" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="148" coveredstatements="0" elements="156" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/MigrateESRefToAflTable.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\MigrateESRefToAflTable" namespace="global">
        <metrics complexity="21" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="114" coveredstatements="0" elements="116" coveredelements="0"/>
      </class>
      <line num="45" type="method" name="__construct" visibility="public" complexity="1" crap="2" 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="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" 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="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="73" type="method" name="execute" visibility="public" complexity="20" crap="420" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" 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="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <metrics loc="221" ncloc="191" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="114" coveredstatements="0" elements="116" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/PopulateAbuseFilterLogIPHex.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\PopulateAbuseFilterLogIPHex" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="46" elements="49" coveredelements="49"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="23" type="stmt" count="4"/>
      <line num="24" type="stmt" count="4"/>
      <line num="25" type="stmt" count="4"/>
      <line num="26" type="stmt" count="4"/>
      <line num="27" type="stmt" count="4"/>
      <line num="28" type="stmt" count="4"/>
      <line num="29" type="stmt" count="4"/>
      <line num="30" type="stmt" count="4"/>
      <line num="31" type="stmt" count="4"/>
      <line num="32" type="stmt" count="4"/>
      <line num="33" type="stmt" count="4"/>
      <line num="37" type="method" name="getUpdateKey" visibility="protected" complexity="1" crap="1" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="42" type="method" name="doDBUpdates" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="4"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <line num="68" type="stmt" count="3"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" 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="76" type="stmt" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="83" type="stmt" count="3"/>
      <line num="85" type="stmt" count="3"/>
      <line num="86" type="stmt" count="3"/>
      <metrics loc="94" ncloc="83" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="46" elements="49" coveredelements="49"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/PurgeOldLogData.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\PurgeOldLogData" namespace="global">
        <metrics complexity="9" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="82" coveredstatements="82" elements="86" coveredelements="86"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="22" type="stmt" count="3"/>
      <line num="23" type="stmt" count="3"/>
      <line num="24" type="stmt" count="3"/>
      <line num="25" type="stmt" count="3"/>
      <line num="26" type="stmt" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="29" type="stmt" count="3"/>
      <line num="35" type="method" name="execute" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="37" type="stmt" count="3"/>
      <line num="44" type="method" name="purgeIPs" visibility="private" complexity="2" crap="2" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <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="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="75" type="stmt" count="3"/>
      <line num="77" type="stmt" count="3"/>
      <line num="84" type="method" name="purgeProtectedVariables" visibility="private" complexity="5" crap="5" count="3"/>
      <line num="86" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="88" type="stmt" count="1"/>
      <line num="91" type="stmt" count="2"/>
      <line num="92" type="stmt" count="2"/>
      <line num="93" type="stmt" count="2"/>
      <line num="94" type="stmt" count="2"/>
      <line num="95" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="103" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="112" type="stmt" count="1"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="116" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="125" 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="130" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="136" type="stmt" count="1"/>
      <line num="137" type="stmt" count="1"/>
      <line num="138" type="stmt" count="1"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="141" type="stmt" count="1"/>
      <line num="142" type="stmt" count="1"/>
      <line num="144" type="stmt" count="2"/>
      <line num="146" type="stmt" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="149" type="stmt" count="2"/>
      <metrics loc="157" ncloc="134" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="82" coveredstatements="82" elements="86" coveredelements="86"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/PurgeOldLogIPData.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\PurgeOldLogIPData" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="9" coveredelements="9"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="28" type="method" name="execute" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <metrics loc="40" ncloc="32" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="9" coveredelements="9"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/RemoveProtectedFlagFromFilter.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\RemoveProtectedFlagFromFilter" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="29" elements="31" coveredelements="31"/>
      </class>
      <line num="33" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="34" 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"/>
      <line num="39" type="stmt" count="5"/>
      <line num="40" type="stmt" count="5"/>
      <line num="46" type="method" name="execute" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="49" type="stmt" count="5"/>
      <line num="50" type="stmt" count="5"/>
      <line num="51" type="stmt" count="5"/>
      <line num="52" type="stmt" count="5"/>
      <line num="53" type="stmt" count="5"/>
      <line num="54" type="stmt" count="5"/>
      <line num="55" type="stmt" count="5"/>
      <line num="56" type="stmt" count="5"/>
      <line num="58" type="stmt" count="5"/>
      <line num="59" type="stmt" count="1"/>
      <line num="62" type="stmt" count="4"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="75" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <metrics loc="86" ncloc="62" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="29" elements="31" coveredelements="31"/>
    </file>
    <file name="/workspace/src/extensions/AbuseFilter/maintenance/SearchFilters.php">
      <class name="MediaWiki\Extension\AbuseFilter\Maintenance\SearchFilters" namespace="global">
        <metrics complexity="16" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="59" coveredstatements="59" elements="62" coveredelements="62"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="23"/>
      <line num="19" type="stmt" count="23"/>
      <line num="20" type="stmt" count="23"/>
      <line num="21" type="stmt" count="23"/>
      <line num="22" type="stmt" count="23"/>
      <line num="23" type="stmt" count="23"/>
      <line num="24" type="stmt" count="23"/>
      <line num="25" type="stmt" count="23"/>
      <line num="26" type="stmt" count="23"/>
      <line num="27" type="stmt" count="23"/>
      <line num="28" type="stmt" count="23"/>
      <line num="29" type="stmt" count="23"/>
      <line num="30" type="stmt" count="23"/>
      <line num="31" type="stmt" count="23"/>
      <line num="32" type="stmt" count="23"/>
      <line num="33" type="stmt" count="23"/>
      <line num="34" type="stmt" count="23"/>
      <line num="35" type="stmt" count="23"/>
      <line num="36" type="stmt" count="23"/>
      <line num="38" type="stmt" count="23"/>
      <line num="44" type="method" name="execute" visibility="public" complexity="7" crap="7" count="23"/>
      <line num="47" type="stmt" count="23"/>
      <line num="48" type="stmt" count="2"/>
      <line num="52" type="stmt" count="21"/>
      <line num="53" type="stmt" count="21"/>
      <line num="54" type="stmt" count="21"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="stmt" count="20"/>
      <line num="61" type="stmt" count="20"/>
      <line num="62" type="stmt" count="10"/>
      <line num="63" type="stmt" count="10"/>
      <line num="66" type="stmt" count="10"/>
      <line num="73" type="method" name="getMatchingFilters" visibility="private" complexity="8" crap="8" count="20"/>
      <line num="74" type="stmt" count="20"/>
      <line num="75" type="stmt" count="20"/>
      <line num="76" type="stmt" count="20"/>
      <line num="77" type="stmt" count="20"/>
      <line num="79" type="stmt" count="20"/>
      <line num="80" type="stmt" count="20"/>
      <line num="81" type="stmt" count="20"/>
      <line num="82" type="stmt" count="20"/>
      <line num="83" type="stmt" count="20"/>
      <line num="84" type="stmt" count="8"/>
      <line num="86" type="stmt" count="20"/>
      <line num="87" type="stmt" count="6"/>
      <line num="88" type="stmt" count="2"/>
      <line num="90" type="stmt" count="4"/>
      <line num="93" type="stmt" count="20"/>
      <line num="94" type="stmt" count="8"/>
      <line num="95" type="stmt" count="2"/>
      <line num="96" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <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="105" type="stmt" count="6"/>
      <line num="108" type="stmt" count="20"/>
      <line num="110" type="stmt" count="20"/>
      <line num="111" type="stmt" count="20"/>
      <metrics loc="121" ncloc="111" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="59" coveredstatements="59" elements="62" coveredelements="62"/>
    </file>
    <metrics files="196" loc="30151" ncloc="23632" classes="161" methods="988" coveredmethods="755" conditionals="0" coveredconditionals="0" statements="11294" coveredstatements="8931" elements="12282" coveredelements="9686"/>
  </project>
</coverage>
