<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1791791747">
  <project timestamp="1791791747">
    <file name="/workspace/src/extensions/ConfirmEdit/includes/AbuseFilter/CaptchaConsequence.php">
      <class name="MediaWiki\Extension\ConfirmEdit\AbuseFilter\CaptchaConsequence" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="30" coveredstatements="30" elements="32" coveredelements="32"/>
      </class>
      <line num="33" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="9"/>
      <line num="39" type="stmt" count="9"/>
      <line num="40" type="stmt" count="9"/>
      <line num="43" type="method" name="execute" visibility="public" complexity="6" crap="6" count="8"/>
      <line num="44" type="stmt" count="8"/>
      <line num="45" type="stmt" count="8"/>
      <line num="46" type="stmt" count="8"/>
      <line num="48" type="stmt" count="8"/>
      <line num="49" type="stmt" count="8"/>
      <line num="51" type="stmt" count="8"/>
      <line num="52" type="stmt" count="8"/>
      <line num="53" type="stmt" count="8"/>
      <line num="54" type="stmt" count="8"/>
      <line num="55" type="stmt" count="1"/>
      <line num="58" type="stmt" count="7"/>
      <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="64" type="stmt" count="2"/>
      <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="74" type="stmt" count="5"/>
      <line num="75" type="stmt" count="4"/>
      <line num="76" type="stmt" count="4"/>
      <line num="82" type="stmt" count="5"/>
      <line num="83" type="stmt" count="5"/>
      <line num="84" type="stmt" count="1"/>
      <line num="87" type="stmt" count="4"/>
      <metrics loc="90" ncloc="75" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="30" coveredstatements="30" elements="32" coveredelements="32"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/AbuseFilterHooks.php">
      <class name="MediaWiki\Extension\ConfirmEdit\AbuseFilterHooks" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="10" coveredelements="10"/>
      </class>
      <line num="17" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="26" type="method" name="onAbuseFilterCustomActions" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <metrics loc="39" ncloc="37" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="8" elements="10" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Api/Rest/Handler/PostHCaptchaTokenForBlockHandler.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Api\Rest\Handler\PostHCaptchaTokenForBlockHandler" namespace="global">
        <metrics complexity="17" methods="9" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="88" elements="100" coveredelements="96"/>
      </class>
      <line num="32" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="40" type="stmt" count="11"/>
      <line num="46" type="method" name="run" visibility="public" complexity="5" crap="5" count="11"/>
      <line num="48" type="stmt" count="11"/>
      <line num="49" type="stmt" count="1"/>
      <line num="52" type="stmt" count="10"/>
      <line num="53" type="stmt" 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="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="66" type="stmt" count="9"/>
      <line num="67" type="stmt" count="9"/>
      <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="76" type="stmt" count="8"/>
      <line num="77" type="stmt" count="8"/>
      <line num="78" type="stmt" count="2"/>
      <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="97" type="method" name="dispatchRiskScore" visibility="private" complexity="2" crap="2" 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="107" 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="112" type="stmt" count="6"/>
      <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="121" type="stmt" count="2"/>
      <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"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="133" type="stmt" count="4"/>
      <line num="136" type="method" name="newNoContentResponse" visibility="private" complexity="1" crap="1" count="11"/>
      <line num="137" type="stmt" count="11"/>
      <line num="138" type="stmt" count="11"/>
      <line num="140" type="stmt" count="11"/>
      <line num="143" type="method" name="resolveBlocks" visibility="private" complexity="2" crap="2" count="8"/>
      <line num="144" type="stmt" count="8"/>
      <line num="145" type="stmt" count="8"/>
      <line num="146" type="stmt" count="1"/>
      <line num="149" type="stmt" count="7"/>
      <line num="153" type="method" name="getBodyParamSettings" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="154" type="stmt" count="11"/>
      <line num="155" type="stmt" count="11"/>
      <line num="156" type="stmt" count="11"/>
      <line num="157" type="stmt" count="11"/>
      <line num="158" type="stmt" count="11"/>
      <line num="159" type="stmt" count="11"/>
      <line num="160" type="stmt" count="11"/>
      <line num="161" type="stmt" count="11"/>
      <line num="162" type="stmt" count="11"/>
      <line num="163" type="stmt" count="11"/>
      <line num="164" type="stmt" count="11"/>
      <line num="165" type="stmt" count="11"/>
      <line num="166" type="stmt" count="11"/>
      <line num="167" type="stmt" count="11"/>
      <line num="168" type="stmt" count="11"/>
      <line num="169" type="stmt" count="11"/>
      <line num="170" type="stmt" count="11"/>
      <line num="173" type="method" name="getHCaptcha" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="174" type="stmt" count="6"/>
      <line num="175" type="stmt" count="6"/>
      <line num="181" type="method" name="setHCaptcha" visibility="public" complexity="2" crap="2.86" count="9"/>
      <line num="182" type="stmt" count="9"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="185" type="stmt" count="0"/>
      <line num="188" type="stmt" count="9"/>
      <line num="194" type="method" name="assertHasAccess" visibility="private" complexity="2" crap="2" count="10"/>
      <line num="195" type="stmt" count="10"/>
      <line num="196" type="stmt" count="10"/>
      <line num="197" type="stmt" count="10"/>
      <line num="199" type="stmt" count="10"/>
      <line num="200" type="stmt" count="1"/>
      <metrics loc="204" ncloc="186" classes="1" methods="9" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="88" elements="100" coveredelements="96"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Auth/CaptchaAuthenticationRequest.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Auth\CaptchaAuthenticationRequest" namespace="global">
        <metrics complexity="12" methods="7" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="50" elements="62" coveredelements="55"/>
      </class>
      <line num="36" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="37" type="stmt" count="6"/>
      <line num="38" type="stmt" count="6"/>
      <line num="42" type="method" name="getUniqueId" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="47" type="method" name="loadFromSubmission" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="48" type="stmt" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="54" type="stmt" 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="1"/>
      <line num="62" type="stmt" count="3"/>
      <line num="65" type="method" name="getActionForMessage" visibility="public" complexity="3" crap="4.68" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="5"/>
      <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="5"/>
      <line num="80" type="method" name="getFieldInfo" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="82" type="stmt" count="5"/>
      <line num="83" type="stmt" count="5"/>
      <line num="84" type="stmt" count="5"/>
      <line num="85" type="stmt" count="5"/>
      <line num="86" 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="110" type="method" name="getMetadata" 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"/>
      <line num="124" type="method" name="__set_state" visibility="public" complexity="2" crap="2" 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="129" type="stmt" count="1"/>
      <metrics loc="132" ncloc="104" classes="1" methods="7" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="50" elements="62" coveredelements="55"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Auth/CaptchaPreAuthenticationProvider.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Auth\CaptchaPreAuthenticationProvider" namespace="global">
        <metrics complexity="43" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="140" coveredstatements="127" elements="148" coveredelements="133"/>
      </class>
      <line num="21" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="38"/>
      <line num="25" type="stmt" count="38"/>
      <line num="28" type="method" name="getAuthenticationRequests" visibility="public" complexity="12" crap="13.22" count="15"/>
      <line num="29" type="stmt" count="15"/>
      <line num="31" type="stmt" count="15"/>
      <line num="32" type="stmt" count="15"/>
      <line num="33" type="stmt" count="15"/>
      <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="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="50" type="stmt" count="4"/>
      <line num="66" type="stmt" count="8"/>
      <line num="67" type="stmt" count="8"/>
      <line num="68" type="stmt" count="8"/>
      <line num="69" type="stmt" count="8"/>
      <line num="71" 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="77" type="stmt" count="4"/>
      <line num="78" type="stmt" count="4"/>
      <line num="79" type="stmt" count="4"/>
      <line num="80" type="stmt" 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="89" type="stmt" count="4"/>
      <line num="90" type="stmt" count="4"/>
      <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="102" type="stmt" count="4"/>
      <line num="106" type="stmt" count="15"/>
      <line num="107" type="stmt" count="6"/>
      <line num="109" type="stmt" count="9"/>
      <line num="114" type="method" name="testForAuthentication" visibility="public" complexity="14" crap="14.09" 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="118" 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="124" type="stmt" count="8"/>
      <line num="125" type="stmt" count="8"/>
      <line num="126" type="stmt" count="8"/>
      <line num="127" type="stmt" count="8"/>
      <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="6"/>
      <line num="134" type="stmt" count="6"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <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="152" type="stmt" count="8"/>
      <line num="153" type="stmt" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="158" type="stmt" count="8"/>
      <line num="159" type="stmt" count="3"/>
      <line num="162" type="stmt" count="5"/>
      <line num="163" type="stmt" count="3"/>
      <line num="168" type="stmt" count="2"/>
      <line num="172" type="method" name="testForAccountCreation" visibility="public" complexity="3" crap="3" count="8"/>
      <line num="173" type="stmt" count="8"/>
      <line num="175" type="stmt" count="8"/>
      <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="184" type="stmt" 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="188" type="stmt" count="6"/>
      <line num="189" type="stmt" count="6"/>
      <line num="190" type="stmt" count="6"/>
      <line num="191" type="stmt" count="6"/>
      <line num="192" type="stmt" count="5"/>
      <line num="195" type="stmt" count="3"/>
      <line num="199" type="method" name="postAuthentication" visibility="public" complexity="6" crap="6" count="2"/>
      <line num="200" type="stmt" count="2"/>
      <line num="201" type="stmt" count="2"/>
      <line num="202" type="stmt" count="2"/>
      <line num="203" type="stmt" count="2"/>
      <line num="204" type="stmt" count="2"/>
      <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="2"/>
      <line num="211" type="stmt" count="2"/>
      <line num="212" type="stmt" count="2"/>
      <line num="213" type="stmt" count="2"/>
      <line num="215" type="stmt" count="2"/>
      <line num="216" type="stmt" count="2"/>
      <line num="221" type="method" name="postAccountCreation" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="222" type="stmt" count="2"/>
      <line num="223" type="stmt" count="1"/>
      <line num="228" type="stmt" count="1"/>
      <line num="239" type="method" name="verifyCaptcha" visibility="protected" complexity="2" crap="2" count="13"/>
      <line num="241" type="stmt" count="13"/>
      <line num="242" type="stmt" count="13"/>
      <line num="243" type="stmt" count="13"/>
      <line num="244" type="stmt" count="13"/>
      <line num="245" type="stmt" count="13"/>
      <line num="246" type="stmt" count="13"/>
      <line num="247" type="stmt" count="3"/>
      <line num="249" type="stmt" count="10"/>
      <line num="257" type="method" name="makeError" visibility="protected" complexity="3" crap="3" count="10"/>
      <line num="258" type="stmt" count="10"/>
      <line num="259" type="stmt" count="10"/>
      <line num="260" type="stmt" count="2"/>
      <line num="261" type="stmt" count="1"/>
      <line num="264" type="stmt" count="1"/>
      <line num="266" type="stmt" count="8"/>
      <metrics loc="269" ncloc="226" classes="1" methods="8" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="140" coveredstatements="127" elements="148" coveredelements="133"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Auth/LoginAttemptCounter.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Auth\LoginAttemptCounter" namespace="global">
        <metrics complexity="20" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="0" elements="51" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="32" type="method" name="increaseBadLoginCounter" visibility="public" complexity="4" crap="20" 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="42" 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="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="59" type="method" name="resetBadLoginCounter" visibility="public" complexity="3" crap="12" 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="72" type="method" name="isBadLoginTriggered" visibility="public" complexity="3" crap="12" 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="89" type="method" name="isBadLoginPerUserTriggered" visibility="public" complexity="4" crap="20" 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="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="111" type="method" name="badLoginKey" visibility="private" complexity="2" crap="6" 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="117" type="stmt" count="0"/>
      <line num="127" type="method" name="badLoginPerUserKey" 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="131" type="stmt" count="0"/>
      <line num="132" 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"/>
      <metrics loc="140" ncloc="100" classes="1" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="0" elements="51" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Auth/LoginAttemptCounterFactory.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Auth\LoginAttemptCounterFactory" namespace="global">
        <metrics complexity="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="1" coveredstatements="1" elements="2" coveredelements="2"/>
      </class>
      <line num="19" type="method" name="newLoginAttemptCounter" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <metrics loc="23" 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/ConfirmEdit/includes/CaptchaTriggers.php">
      <class name="MediaWiki\Extension\ConfirmEdit\CaptchaTriggers" namespace="global">
        <metrics complexity="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
      </class>
      <metrics loc="35" ncloc="29" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/FancyCaptcha/ApiFancyCaptchaReload.php">
      <class name="MediaWiki\Extension\ConfirmEdit\FancyCaptcha\ApiFancyCaptchaReload" namespace="global">
        <metrics complexity="5" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="6" elements="9" coveredelements="6"/>
      </class>
      <line num="16" type="method" name="execute" visibility="public" complexity="2" crap="2.06" count="2"/>
      <line num="17" type="stmt" count="2"/>
      <line num="19" type="stmt" count="2"/>
      <line num="20" type="stmt" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="25" type="stmt" count="2"/>
      <line num="26" type="stmt" count="2"/>
      <line num="27" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <metrics loc="60" ncloc="40" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="6" elements="9" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/FancyCaptcha/FancyCaptcha.php">
      <class name="MediaWiki\Extension\ConfirmEdit\FancyCaptcha\FancyCaptcha" namespace="global">
        <metrics complexity="56" methods="18" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="250" coveredstatements="210" elements="268" coveredelements="224"/>
      </class>
      <line num="41" type="method" name="getBackend" visibility="public" complexity="3" crap="3" count="14"/>
      <line num="44" type="stmt" count="14"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="49" type="stmt" count="13"/>
      <line num="50" type="stmt" count="13"/>
      <line num="51" type="stmt" count="13"/>
      <line num="52" type="stmt" count="13"/>
      <line num="53" type="stmt" count="13"/>
      <line num="54" type="stmt" count="13"/>
      <line num="55" type="stmt" count="13"/>
      <line num="56" type="stmt" count="13"/>
      <line num="57" type="stmt" count="13"/>
      <line num="58" type="stmt" count="13"/>
      <line num="61" type="stmt" count="13"/>
      <line num="67" type="method" name="getCaptchaCount" visibility="public" complexity="1" crap="1" 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="73" type="stmt" count="3"/>
      <line num="79" type="method" name="getStorageDir" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="81" type="stmt" count="14"/>
      <line num="92" type="method" name="keyMatch" visibility="protected" complexity="2" crap="2" 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="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="103" type="stmt" count="2"/>
      <line num="105" type="stmt" count="1"/>
      <line num="106" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="116" type="method" name="addCaptchaAPI" visibility="protected" 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="1"/>
      <line num="120" type="stmt" count="1"/>
      <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="130" type="method" name="describeCaptchaType" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="131" type="stmt" count="2"/>
      <line num="132" type="stmt" count="2"/>
      <line num="133" type="stmt" count="2"/>
      <line num="134" type="stmt" count="2"/>
      <line num="138" type="method" name="getFormInformation" visibility="public" complexity="2" crap="2" 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="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="151" type="stmt" count="2"/>
      <line num="152" type="stmt" count="2"/>
      <line num="153" 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="161" 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="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="174" 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"/>
      <line num="180" type="stmt" count="2"/>
      <line num="181" type="stmt" count="2"/>
      <line num="182" type="stmt" count="2"/>
      <line num="183" type="stmt" count="2"/>
      <line num="184" type="stmt" count="2"/>
      <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="191" type="stmt" count="2"/>
      <line num="192" 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="197" type="stmt" count="2"/>
      <line num="199" type="stmt" count="2"/>
      <line num="200" type="stmt" count="2"/>
      <line num="201" type="stmt" count="2"/>
      <line num="203" type="stmt" count="2"/>
      <line num="204" type="stmt" count="2"/>
      <line num="211" type="method" name="pickImage" visibility="protected" complexity="1" crap="1" count="10"/>
      <line num="215" type="stmt" count="10"/>
      <line num="216" type="stmt" count="10"/>
      <line num="217" type="stmt" count="10"/>
      <line num="226" type="method" name="pickImageDir" visibility="protected" complexity="11" crap="110.06" count="10"/>
      <line num="227" type="stmt" count="10"/>
      <line num="229" type="stmt" count="10"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" 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="242" type="stmt" count="0"/>
      <line num="243" 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="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="260" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="266" 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="271" type="stmt" count="0"/>
      <line num="272" type="stmt" count="0"/>
      <line num="274" type="stmt" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="291" type="method" name="pickImageFromDir" visibility="protected" complexity="8" crap="8.23" count="10"/>
      <line num="292" type="stmt" count="10"/>
      <line num="293" type="stmt" count="10"/>
      <line num="295" type="stmt" count="10"/>
      <line num="296" type="stmt" count="10"/>
      <line num="297" type="stmt" count="10"/>
      <line num="298" type="stmt" count="10"/>
      <line num="299" type="stmt" count="10"/>
      <line num="302" type="stmt" count="10"/>
      <line num="303" type="stmt" count="10"/>
      <line num="305" type="stmt" count="10"/>
      <line num="306" type="stmt" count="10"/>
      <line num="307" type="stmt" count="8"/>
      <line num="308" type="stmt" count="8"/>
      <line num="310" type="stmt" count="0"/>
      <line num="311" type="stmt" count="0"/>
      <line num="314" type="stmt" count="10"/>
      <line num="315" type="stmt" count="8"/>
      <line num="317" type="stmt" count="10"/>
      <line num="320" type="stmt" count="10"/>
      <line num="322" type="stmt" count="2"/>
      <line num="323" type="stmt" count="2"/>
      <line num="326" type="stmt" count="8"/>
      <line num="327" type="stmt" count="8"/>
      <line num="328" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="333" type="stmt" count="8"/>
      <line num="342" type="method" name="pickImageFromList" visibility="protected" complexity="9" crap="9.80" count="8"/>
      <line num="345" type="stmt" count="8"/>
      <line num="347" type="stmt" count="0"/>
      <line num="350" type="stmt" count="8"/>
      <line num="351" type="stmt" count="8"/>
      <line num="354" type="stmt" count="8"/>
      <line num="356" type="stmt" count="8"/>
      <line num="357" type="stmt" count="8"/>
      <line num="358" type="stmt" count="8"/>
      <line num="359" type="stmt" count="8"/>
      <line num="360" type="stmt" count="8"/>
      <line num="361" type="stmt" count="8"/>
      <line num="363" type="stmt" count="2"/>
      <line num="364" type="stmt" count="2"/>
      <line num="365" type="stmt" count="2"/>
      <line num="366" type="stmt" count="2"/>
      <line num="367" type="stmt" count="2"/>
      <line num="369" type="stmt" count="2"/>
      <line num="371" type="stmt" count="0"/>
      <line num="374" type="stmt" count="8"/>
      <line num="375" type="stmt" count="0"/>
      <line num="378" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="383" type="stmt" count="8"/>
      <line num="384" type="stmt" count="8"/>
      <line num="385" type="stmt" count="8"/>
      <line num="386" type="stmt" count="8"/>
      <line num="387" type="stmt" count="8"/>
      <line num="392" type="stmt" count="0"/>
      <line num="398" type="method" name="showImage" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="399" 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="1"/>
      <line num="405" type="stmt" count="1"/>
      <line num="406" type="stmt" count="1"/>
      <line num="408" type="stmt" count="1"/>
      <line num="409" type="stmt" count="1"/>
      <line num="411" type="stmt" count="1"/>
      <line num="412" type="stmt" count="1"/>
      <line num="413" type="stmt" count="1"/>
      <line num="414" type="stmt" count="1"/>
      <line num="417" type="stmt" count="2"/>
      <line num="418" type="stmt" count="2"/>
      <line num="426" type="method" name="imagePath" visibility="public" complexity="2" crap="2.03" count="2"/>
      <line num="429" type="stmt" count="2"/>
      <line num="430" type="stmt" count="2"/>
      <line num="431" type="stmt" count="0"/>
      <line num="433" type="stmt" count="2"/>
      <line num="435" type="stmt" count="2"/>
      <line num="442" type="method" name="hashFromImageName" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="443" type="stmt" count="2"/>
      <line num="444" type="stmt" count="1"/>
      <line num="447" type="stmt" count="1"/>
      <line num="448" type="stmt" count="1"/>
      <line num="449" type="stmt" count="1"/>
      <line num="450" type="stmt" count="1"/>
      <line num="457" type="method" name="passCaptcha" visibility="protected" complexity="4" crap="4" count="3"/>
      <line num="460" type="stmt" count="3"/>
      <line num="461" type="stmt" count="1"/>
      <line num="465" type="stmt" count="2"/>
      <line num="466" type="stmt" count="2"/>
      <line num="468" type="stmt" count="2"/>
      <line num="469" type="stmt" count="1"/>
      <line num="470" type="stmt" count="1"/>
      <line num="471" type="stmt" count="1"/>
      <line num="474" type="stmt" count="2"/>
      <line num="483" type="method" name="getCaptcha" visibility="public" complexity="2" crap="2" count="7"/>
      <line num="484" type="stmt" count="7"/>
      <line num="485" type="stmt" count="7"/>
      <line num="486" type="stmt" count="1"/>
      <line num="488" type="stmt" count="6"/>
      <line num="496" type="method" name="getCaptchaInfo" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="497" type="stmt" count="2"/>
      <line num="498" type="stmt" count="2"/>
      <line num="507" type="method" name="onAuthChangeFormFields" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="511" type="stmt" count="2"/>
      <line num="512" type="stmt" count="2"/>
      <line num="513" type="stmt" count="2"/>
      <line num="514" type="stmt" count="2"/>
      <line num="515" type="stmt" count="2"/>
      <line num="516" type="stmt" count="2"/>
      <line num="517" type="stmt" count="2"/>
      <line num="518" type="stmt" count="1"/>
      <line num="522" type="stmt" count="1"/>
      <line num="524" type="stmt" count="1"/>
      <line num="525" type="stmt" count="1"/>
      <line num="526" type="stmt" count="1"/>
      <line num="527" type="stmt" count="1"/>
      <line num="528" type="stmt" count="1"/>
      <line num="529" type="stmt" count="1"/>
      <line num="530" type="stmt" count="1"/>
      <line num="531" type="stmt" count="1"/>
      <line num="532" type="stmt" count="1"/>
      <metrics loc="535" ncloc="417" classes="1" methods="18" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="250" coveredstatements="210" elements="268" coveredelements="224"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/FancyCaptcha/HTMLFancyCaptchaField.php">
      <class name="MediaWiki\Extension\ConfirmEdit\FancyCaptcha\HTMLFancyCaptchaField" namespace="global">
        <metrics complexity="6" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="46" elements="50" coveredelements="50"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="31" type="stmt" count="2"/>
      <line num="32" type="stmt" count="2"/>
      <line num="33" type="stmt" count="2"/>
      <line num="37" type="method" name="getInputHTML" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="44" 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="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="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="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="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="82" type="stmt" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="91" type="method" name="getLabel" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="99" type="method" name="getLabelHtml" visibility="public" complexity="2" crap="2" 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="105" type="stmt" count="1"/>
      <metrics loc="108" ncloc="85" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="46" coveredstatements="46" elements="50" coveredelements="50"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks" namespace="global">
        <metrics complexity="33" methods="14" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="95" coveredstatements="13" elements="109" coveredelements="19"/>
      </class>
      <line num="47" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="61" type="method" name="getInstance" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="74" type="method" name="getActiveCaptchas" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="75" 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="91" type="stmt" count="0"/>
      <line num="95" type="method" name="onEditFilterMergedContent" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="103" 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="113" type="method" name="onPageSaveComplete" visibility="public" complexity="3" crap="3" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="122" type="stmt" count="7"/>
      <line num="123" type="stmt" count="4"/>
      <line num="126" type="stmt" count="7"/>
      <line num="138" type="method" name="getCaptchaTriggerActionFromTitle" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="139" type="stmt" count="2"/>
      <line num="140" type="stmt" count="2"/>
      <line num="144" type="method" name="onEditPageBeforeEditButtons" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="149" type="method" name="onEditPage__showEditForm_fields" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="150" type="stmt" count="2"/>
      <line num="154" type="method" name="onEmailUserForm" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="159" type="method" name="onEmailUser" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="165" type="method" name="onAPIGetAllowedParams" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="179" type="method" name="onAuthChangeFormFields" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="185" 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="189" 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="196" type="stmt" count="0"/>
      <line num="210" type="method" name="onTitleReadWhitelist" visibility="public" complexity="3" crap="12" 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="214" type="stmt" count="0"/>
      <line num="232" type="method" name="onAlternateEditPreview" visibility="public" complexity="6" crap="42" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" 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="248" type="stmt" count="0"/>
      <line num="249" 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="259" type="stmt" count="0"/>
      <line num="260" 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="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="272" 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="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="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="297" type="stmt" count="0"/>
      <line num="298" type="stmt" count="0"/>
      <line num="300" type="stmt" count="0"/>
      <metrics loc="303" ncloc="242" classes="1" methods="14" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="95" coveredstatements="13" elements="109" coveredelements="19"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks/ConfirmEditBeforeForceShowCaptchaHook.php">
      <metrics loc="42" 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/ConfirmEdit/includes/Hooks/ConfirmEditCanUserSkipCaptchaHook.php">
      <metrics loc="26" 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/ConfirmEdit/includes/Hooks/ConfirmEditCaptchaClassHook.php">
      <metrics loc="61" 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/ConfirmEdit/includes/Hooks/ConfirmEditGetGlobalInstanceFromContextHook.php">
      <metrics loc="51" 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/ConfirmEdit/includes/Hooks/ConfirmEditHCaptchaRiskScoreRetrievedForBlocksHook.php">
      <metrics loc="39" 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/ConfirmEdit/includes/Hooks/ConfirmEditTriggersCaptchaHook.php">
      <metrics loc="54" 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/ConfirmEdit/includes/Hooks/Handlers/ActionModifyFormFieldsHookHandler.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks\Handlers\ActionModifyFormFieldsHookHandler" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="29" coveredelements="29"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="23" type="stmt" count="7"/>
      <line num="26" type="method" name="onActionModifyFormFields" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="27" type="stmt" count="7"/>
      <line num="28" type="stmt" count="2"/>
      <line num="31" type="stmt" count="5"/>
      <line num="32" type="stmt" count="5"/>
      <line num="33" type="stmt" count="5"/>
      <line num="35" type="stmt" count="5"/>
      <line num="36" type="stmt" count="2"/>
      <line num="38" type="stmt" count="3"/>
      <line num="39" type="stmt" count="1"/>
      <line num="41" type="stmt" count="2"/>
      <line num="43" 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="50" type="stmt" count="2"/>
      <line num="59" type="method" name="renderCaptchaField" visibility="private" complexity="1" crap="1" 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="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="2"/>
      <metrics loc="71" ncloc="61" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="26" elements="29" coveredelements="29"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks/Handlers/BeforePageDisplayHookHandler.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks\Handlers\BeforePageDisplayHookHandler" namespace="global">
        <metrics complexity="24" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="65" elements="71" coveredelements="68"/>
      </class>
      <line num="31" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="31"/>
      <line num="38" type="stmt" count="31"/>
      <line num="41" type="method" name="onBeforePageDisplay" visibility="public" complexity="10" crap="10.04" count="23"/>
      <line num="42" type="stmt" count="23"/>
      <line num="43" type="stmt" count="23"/>
      <line num="44" type="stmt" count="6"/>
      <line num="45" type="stmt" count="6"/>
      <line num="48" type="stmt" count="17"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="17"/>
      <line num="51" type="stmt" count="1"/>
      <line num="54" type="stmt" count="16"/>
      <line num="55" type="stmt" count="16"/>
      <line num="56" type="stmt" count="7"/>
      <line num="59" type="stmt" count="9"/>
      <line num="60" type="stmt" count="1"/>
      <line num="63" type="stmt" count="8"/>
      <line num="64" type="stmt" count="8"/>
      <line num="65" type="stmt" count="1"/>
      <line num="68" type="stmt" count="7"/>
      <line num="69" type="stmt" count="0"/>
      <line num="73" type="stmt" count="7"/>
      <line num="74" type="stmt" count="7"/>
      <line num="75" type="stmt" count="7"/>
      <line num="76" 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="7"/>
      <line num="82" type="stmt" count="7"/>
      <line num="92" type="method" name="maybeCollectAccountCreationRiskScore" visibility="private" complexity="7" crap="7" count="6"/>
      <line num="93" type="stmt" count="6"/>
      <line num="94" type="stmt" count="6"/>
      <line num="95" type="stmt" count="2"/>
      <line num="98" type="stmt" count="4"/>
      <line num="99" type="stmt" count="4"/>
      <line num="100" type="stmt" count="1"/>
      <line num="105" type="stmt" count="3"/>
      <line num="106" type="stmt" count="1"/>
      <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="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="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="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="144" type="method" name="getCreateAccountBlocksRequiringHCaptcha" visibility="private" complexity="6" crap="6" count="10"/>
      <line num="145" type="stmt" count="10"/>
      <line num="146" type="stmt" count="2"/>
      <line num="149" type="stmt" count="8"/>
      <line num="150" type="stmt" count="8"/>
      <line num="151" type="stmt" count="8"/>
      <line num="152" type="stmt" count="8"/>
      <line num="153" type="stmt" count="8"/>
      <line num="155" type="stmt" count="3"/>
      <line num="157" type="stmt" count="5"/>
      <line num="160" type="stmt" count="8"/>
      <metrics loc="163" ncloc="137" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="65" elements="71" coveredelements="68"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks/Handlers/MakeGlobalVariablesScriptHookHandler.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks\Handlers\MakeGlobalVariablesScriptHookHandler" namespace="global">
        <metrics complexity="19" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="36" elements="39" coveredelements="39"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="183"/>
      <line num="33" type="stmt" count="183"/>
      <line num="36" type="method" name="onMakeGlobalVariablesScript" visibility="public" complexity="15" crap="15" count="183"/>
      <line num="37" type="stmt" count="183"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="42" type="stmt" count="182"/>
      <line num="43" type="stmt" count="182"/>
      <line num="45" type="stmt" count="182"/>
      <line num="46" type="stmt" count="121"/>
      <line num="47" type="stmt" count="121"/>
      <line num="48" type="stmt" count="121"/>
      <line num="51" type="stmt" count="182"/>
      <line num="52" type="stmt" count="145"/>
      <line num="55" type="stmt" count="182"/>
      <line num="57" type="stmt" count="182"/>
      <line num="59" type="stmt" count="182"/>
      <line num="61" type="stmt" count="121"/>
      <line num="64" type="stmt" count="182"/>
      <line num="65" type="stmt" count="182"/>
      <line num="68" type="stmt" count="182"/>
      <line num="69" type="stmt" count="91"/>
      <line num="75" type="stmt" count="182"/>
      <line num="78" type="stmt" count="182"/>
      <line num="79" type="stmt" count="182"/>
      <line num="82" type="stmt" count="24"/>
      <line num="83" type="stmt" count="12"/>
      <line num="86" type="stmt" count="24"/>
      <line num="87" type="stmt" count="158"/>
      <line num="88" type="stmt" count="33"/>
      <line num="104" type="method" name="addHCaptchaModules" visibility="private" complexity="3" crap="3" count="57"/>
      <line num="109" type="stmt" count="57"/>
      <line num="111" type="stmt" count="57"/>
      <line num="112" type="stmt" count="32"/>
      <line num="113" type="stmt" count="32"/>
      <line num="115" type="stmt" count="32"/>
      <line num="116" type="stmt" count="32"/>
      <line num="119" type="stmt" count="32"/>
      <line num="122" type="stmt" count="57"/>
      <metrics loc="125" ncloc="100" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="36" elements="39" coveredelements="39"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks/Handlers/RLRegisterModulesHandler.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks\Handlers\RLRegisterModulesHandler" namespace="global">
        <metrics complexity="10" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="91" elements="94" coveredelements="94"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="24" type="stmt" count="7"/>
      <line num="32" type="method" name="onResourceLoaderRegisterModules" visibility="public" complexity="8" crap="8" count="7"/>
      <line num="33" type="stmt" count="7"/>
      <line num="34" type="stmt" count="7"/>
      <line num="37" type="stmt" count="7"/>
      <line num="39" type="stmt" count="7"/>
      <line num="40" type="stmt" count="7"/>
      <line num="41" type="stmt" count="7"/>
      <line num="42" type="stmt" count="7"/>
      <line num="43" type="stmt" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="50" type="stmt" count="7"/>
      <line num="52" type="stmt" count="2"/>
      <line num="56" type="stmt" count="7"/>
      <line num="57" type="stmt" count="7"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <line num="64" type="stmt" count="7"/>
      <line num="65" type="stmt" count="4"/>
      <line num="68" type="stmt" count="7"/>
      <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="7"/>
      <line num="73" type="stmt" count="7"/>
      <line num="74" type="stmt" count="7"/>
      <line num="77" type="stmt" count="7"/>
      <line num="78" type="stmt" count="6"/>
      <line num="79" type="stmt" count="6"/>
      <line num="80" type="stmt" count="6"/>
      <line num="83" type="stmt" count="7"/>
      <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="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="95" type="stmt" count="4"/>
      <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="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="109" type="stmt" count="4"/>
      <line num="110" type="stmt" count="4"/>
      <line num="111" type="stmt" count="4"/>
      <line num="112" type="stmt" count="4"/>
      <line num="113" type="stmt" count="4"/>
      <line num="114" type="stmt" count="4"/>
      <line num="115" type="stmt" count="4"/>
      <line num="116" type="stmt" count="4"/>
      <line num="117" type="stmt" count="4"/>
      <line num="118" type="stmt" count="4"/>
      <line num="119" type="stmt" 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="4"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="134" type="stmt" count="7"/>
      <line num="140" type="method" name="getHCaptchaConfig" visibility="public" complexity="1" crap="1" 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"/>
      <metrics loc="156" ncloc="140" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="91" coveredstatements="91" elements="94" coveredelements="94"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks/Handlers/UserGetRightsHookHandler.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks\Handlers\UserGetRightsHookHandler" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
      </class>
      <line num="12" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="15" type="stmt" count="2"/>
      <line num="22" type="method" name="onUserGetRights" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="23" type="stmt" count="2"/>
      <line num="24" type="stmt" count="2"/>
      <line num="25" type="stmt" count="2"/>
      <metrics loc="30" ncloc="25" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="6" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Hooks/HookRunner.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Hooks\HookRunner" namespace="global">
        <metrics complexity="7" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="33" elements="40" coveredelements="40"/>
      </class>
      <line num="44" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="45" type="stmt" count="6"/>
      <line num="48" type="method" name="onConfirmEditTriggersCaptcha" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="64" type="method" name="onConfirmEditCanUserSkipCaptcha" visibility="public" complexity="1" crap="1" 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="75" type="method" name="onConfirmEditCaptchaClass" visibility="public" complexity="1" crap="1" 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="86" type="method" name="onConfirmEditHCaptchaRiskScoreRetrievedForBlocks" visibility="public" complexity="1" crap="1" 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="method" name="onConfirmEditBeforeForceShowCaptcha" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="106" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="113" type="method" name="onConfirmEditGetGlobalInstanceFromContext" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <metrics loc="117" ncloc="88" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="33" coveredstatements="33" elements="40" coveredelements="40"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/QuestyCaptcha/QuestyCaptcha.php">
      <class name="MediaWiki\Extension\ConfirmEdit\QuestyCaptcha\QuestyCaptcha" namespace="global">
        <metrics complexity="10" methods="6" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="5" elements="51" coveredelements="6"/>
      </class>
      <line num="37" type="method" name="keyMatch" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="46" type="method" name="describeCaptchaType" visibility="public" complexity="1" crap="2" 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="54" type="method" name="getCaptcha" visibility="public" complexity="2" crap="2" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" 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="68" type="method" name="getFormInformation" visibility="public" complexity="2" crap="6" 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="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="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="92" type="stmt" count="0"/>
      <line num="100" type="method" name="getCaptchaInfo" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="110" type="method" name="onAuthChangeFormFields" visibility="public" complexity="2" crap="6" 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="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <metrics loc="128" ncloc="90" classes="1" methods="6" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="5" elements="51" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/ReCaptchaNoCaptcha/HTMLReCaptchaNoCaptchaField.php">
      <class name="MediaWiki\Extension\ConfirmEdit\ReCaptchaNoCaptcha\HTMLReCaptchaNoCaptchaField" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="5" elements="27" coveredelements="6"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="38" type="method" name="getInputHTML" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" 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="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="65" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <metrics loc="86" ncloc="70" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="5" elements="27" coveredelements="6"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/ReCaptchaNoCaptcha/Hooks.php">
      <class name="MediaWiki\Extension\ConfirmEdit\ReCaptchaNoCaptcha\Hooks" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="6" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="onResourceLoaderGetConfigVars" visibility="public" complexity="2" crap="6" 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"/>
      <metrics loc="27" ncloc="20" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="6" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/ReCaptchaNoCaptcha/ReCaptchaNoCaptcha.php">
      <class name="MediaWiki\Extension\ConfirmEdit\ReCaptchaNoCaptcha\ReCaptchaNoCaptcha" namespace="global">
        <metrics complexity="27" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="100" coveredstatements="1" elements="116" coveredelements="2"/>
      </class>
      <line num="34" type="method" name="getFormInformation" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" 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="54" type="stmt" count="0"/>
      <line num="59" 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="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="89" type="method" name="getCSPUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="96" type="method" name="logCheckError" visibility="protected" complexity="3" crap="12" 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="103" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="113" type="method" name="getCaptchaParamsFromRequest" visibility="protected" complexity="1" crap="2" 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="136" type="method" name="passCaptcha" visibility="protected" complexity="5" crap="30" count="0"/>
      <line num="139" 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="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" 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="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="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="175" type="method" name="addCaptchaAPI" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="183" type="method" name="describeCaptchaType" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="185" 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="189" type="stmt" count="0"/>
      <line num="199" type="method" name="getMessage" visibility="public" complexity="2" crap="6" 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="204" type="stmt" count="0"/>
      <line num="213" type="method" name="apiGetAllowedParams" visibility="public" complexity="3" crap="12" 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="220" type="stmt" count="0"/>
      <line num="224" type="method" name="getApiParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="225" type="stmt" count="1"/>
      <line num="229" type="method" name="getError" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="234" type="method" name="storeCaptcha" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="241" type="method" name="retrieveCaptcha" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="247" type="method" name="getCaptcha" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="255" type="method" name="createAuthenticationRequest" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="265" type="method" name="onAuthChangeFormFields" visibility="public" complexity="2" crap="6" 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="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="288" type="stmt" count="0"/>
      <line num="289" 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"/>
      <metrics loc="295" ncloc="222" classes="1" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="100" coveredstatements="1" elements="116" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/ReCaptchaNoCaptcha/ReCaptchaNoCaptchaAuthenticationRequest.php">
      <class name="MediaWiki\Extension\ConfirmEdit\ReCaptchaNoCaptcha\ReCaptchaNoCaptchaAuthenticationRequest" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="10" elements="13" coveredelements="13"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="16" type="stmt" count="3"/>
      <line num="20" type="method" name="loadFromSubmission" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="22" type="stmt" count="2"/>
      <line num="26" type="method" name="getFieldInfo" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="29" type="stmt" count="3"/>
      <line num="30" type="stmt" count="3"/>
      <line num="31" type="stmt" count="3"/>
      <line num="32" type="stmt" count="3"/>
      <line num="33" type="stmt" count="3"/>
      <line num="34" type="stmt" count="3"/>
      <line num="35" type="stmt" count="3"/>
      <metrics loc="38" ncloc="31" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="10" elements="13" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/ServiceWiring.php">
      <metrics loc="78" ncloc="73" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Services/CaptchaFactory.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Services\CaptchaFactory" namespace="global">
        <metrics complexity="24" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="53" elements="59" coveredelements="57"/>
      </class>
      <line num="50" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="19"/>
      <line num="55" type="stmt" count="19"/>
      <line num="67" type="method" name="getGlobalInstance" visibility="public" complexity="6" crap="6.01" count="19"/>
      <line num="68" type="stmt" count="19"/>
      <line num="69" type="stmt" count="19"/>
      <line num="72" type="stmt" count="19"/>
      <line num="73" type="stmt" count="19"/>
      <line num="74" type="stmt" count="3"/>
      <line num="76" type="stmt" count="19"/>
      <line num="78" type="stmt" count="19"/>
      <line num="80" type="stmt" count="19"/>
      <line num="82" type="stmt" count="19"/>
      <line num="85" type="stmt" count="19"/>
      <line num="86" type="stmt" count="19"/>
      <line num="87" type="stmt" count="0"/>
      <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="3"/>
      <line num="93" type="stmt" count="19"/>
      <line num="94" type="stmt" count="19"/>
      <line num="97" type="stmt" count="19"/>
      <line num="106" type="method" name="getGlobalInstanceFromContext" visibility="public" complexity="9" crap="9" count="13"/>
      <line num="107" type="stmt" count="13"/>
      <line num="108" type="stmt" count="13"/>
      <line num="109" type="stmt" count="13"/>
      <line num="111" type="stmt" count="13"/>
      <line num="113" type="stmt" count="12"/>
      <line num="114" type="stmt" count="12"/>
      <line num="116" type="stmt" count="2"/>
      <line num="118" type="stmt" count="10"/>
      <line num="119" type="stmt" count="10"/>
      <line num="121" type="stmt" count="6"/>
      <line num="122" type="stmt" count="6"/>
      <line num="124" type="stmt" count="4"/>
      <line num="125" type="stmt" count="4"/>
      <line num="127" type="stmt" count="2"/>
      <line num="128" type="stmt" count="2"/>
      <line num="129" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="135" type="stmt" count="13"/>
      <line num="143" type="method" name="getGlobalInstanceFromAuthenticationRequest" visibility="public" complexity="1" crap="1" 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="153" type="stmt" count="3"/>
      <line num="156" type="method" name="getActionForLogin" visibility="private" complexity="5" crap="5" count="7"/>
      <line num="157" type="stmt" count="7"/>
      <line num="158" type="stmt" count="7"/>
      <line num="159" type="stmt" count="7"/>
      <line num="161" type="stmt" count="7"/>
      <line num="162" type="stmt" count="7"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="5"/>
      <line num="166" type="stmt" count="1"/>
      <line num="168" type="stmt" count="4"/>
      <line num="170" type="stmt" count="7"/>
      <metrics loc="186" ncloc="147" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="54" coveredstatements="53" elements="59" coveredelements="57"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Services/LoadedCaptchasProvider.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Services\LoadedCaptchasProvider" namespace="global">
        <metrics complexity="7" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="15" coveredelements="15"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="26" type="stmt" count="7"/>
      <line num="35" type="method" name="getLoadedCaptchas" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="38" type="stmt" count="7"/>
      <line num="39" type="stmt" count="1"/>
      <line num="42" type="stmt" count="6"/>
      <line num="43" type="stmt" count="6"/>
      <line num="45" type="stmt" count="6"/>
      <line num="46" type="stmt" count="6"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="2"/>
      <line num="53" type="stmt" count="6"/>
      <line num="55" type="stmt" count="6"/>
      <line num="62" type="method" name="runningInTestContext" visibility="protected" complexity="2" crap="2" count="1"/>
      <line num="63" type="stmt" count="1"/>
      <metrics loc="66" ncloc="46" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="12" elements="15" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/SimpleCaptcha/SimpleCaptcha.php">
      <class name="MediaWiki\Extension\ConfirmEdit\SimpleCaptcha\SimpleCaptcha" namespace="global">
        <metrics complexity="172" methods="61" coveredmethods="38" conditionals="0" coveredconditionals="0" statements="504" coveredstatements="325" elements="565" coveredelements="363"/>
      </class>
      <line num="79" type="method" name="setAction" visibility="public" complexity="1" crap="1" count="18"/>
      <line num="80" type="stmt" count="18"/>
      <line num="86" type="method" name="setTrigger" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="87" type="stmt" count="12"/>
      <line num="95" type="method" name="getError" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="96" type="stmt" count="8"/>
      <line num="99" type="method" name="getName" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="100" type="stmt" count="3"/>
      <line num="109" type="method" name="getCaptcha" visibility="public" complexity="3" crap="3" count="13"/>
      <line num="110" type="stmt" count="13"/>
      <line num="111" type="stmt" count="13"/>
      <line num="115" type="stmt" count="13"/>
      <line num="119" type="stmt" count="13"/>
      <line num="120" type="stmt" count="13"/>
      <line num="121" type="stmt" count="13"/>
      <line num="130" type="method" name="getActivatedCaptchas" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="137" type="method" name="addCaptchaAPI" visibility="protected" complexity="1" crap="1" 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="154" type="method" name="getCaptchaApiData" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="155" type="stmt" count="1"/>
      <line num="156" type="stmt" count="1"/>
      <line num="158" type="stmt" count="1"/>
      <line num="169" type="method" name="describeCaptchaType" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="170" type="stmt" count="6"/>
      <line num="171" type="stmt" count="6"/>
      <line num="172" type="stmt" count="6"/>
      <line num="173" type="stmt" count="6"/>
      <line num="208" type="method" name="getFormInformation" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="210" 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="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="221" type="stmt" count="1"/>
      <line num="222" type="stmt" count="1"/>
      <line num="223" type="stmt" count="1"/>
      <line num="224" type="stmt" count="1"/>
      <line num="225" 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="232" type="stmt" count="1"/>
      <line num="233" type="stmt" count="1"/>
      <line num="234" type="stmt" count="1"/>
      <line num="235" type="stmt" count="1"/>
      <line num="236" type="stmt" count="1"/>
      <line num="237" type="stmt" count="1"/>
      <line num="243" type="method" name="getCSPUrls" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="244" type="stmt" count="1"/>
      <line num="254" type="method" name="addCSPSources" visibility="public" complexity="2" crap="3.19" count="1"/>
      <line num="255" type="stmt" count="1"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="268" type="method" name="addFormToOutput" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="269" type="stmt" count="1"/>
      <line num="279" type="method" name="addFormInformationToOutput" visibility="public" complexity="6" crap="6.73" count="1"/>
      <line num="280" type="stmt" count="1"/>
      <line num="282" type="stmt" count="1"/>
      <line num="283" type="stmt" count="0"/>
      <line num="285" type="stmt" count="1"/>
      <line num="286" type="stmt" count="1"/>
      <line num="288" type="stmt" count="1"/>
      <line num="289" type="stmt" count="0"/>
      <line num="291" type="stmt" count="1"/>
      <line num="292" type="stmt" count="1"/>
      <line num="294" type="stmt" count="1"/>
      <line num="295" type="stmt" count="0"/>
      <line num="304" type="method" name="getCaptchaInfo" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="305" type="stmt" count="4"/>
      <line num="313" type="method" name="showEditFormFields" visibility="public" complexity="3" crap="12" 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="317" type="stmt" count="0"/>
      <line num="318" 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="324" type="stmt" count="0"/>
      <line num="332" type="method" name="editShowCaptcha" visibility="public" complexity="3" crap="3" count="4"/>
      <line num="333" type="stmt" count="4"/>
      <line num="334" type="stmt" count="4"/>
      <line num="335" type="stmt" count="4"/>
      <line num="336" type="stmt" count="4"/>
      <line num="340" type="stmt" count="4"/>
      <line num="341" type="stmt" count="4"/>
      <line num="342" type="stmt" count="4"/>
      <line num="344" type="stmt" count="1"/>
      <line num="345" type="stmt" count="1"/>
      <line num="347" type="stmt" count="4"/>
      <line num="357" type="method" name="getMessage" visibility="public" complexity="2" crap="2" count="5"/>
      <line num="360" type="stmt" count="5"/>
      <line num="363" type="stmt" count="5"/>
      <line num="372" type="method" name="injectEmailUser" visibility="public" complexity="3" crap="12" 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="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="378" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="382" type="stmt" count="0"/>
      <line num="383" type="stmt" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="385" type="stmt" count="0"/>
      <line num="386" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="388" type="stmt" count="0"/>
      <line num="390" type="stmt" count="0"/>
      <line num="401" type="method" name="canIPBypassCaptcha" visibility="private" complexity="5" crap="5" count="40"/>
      <line num="403" type="stmt" count="40"/>
      <line num="405" type="stmt" count="40"/>
      <line num="406" type="stmt" count="1"/>
      <line num="409" type="stmt" count="39"/>
      <line num="410" type="stmt" count="39"/>
      <line num="411" type="stmt" count="3"/>
      <line num="412" type="stmt" count="3"/>
      <line num="413" type="stmt" count="1"/>
      <line num="417" type="stmt" count="38"/>
      <line num="426" type="method" name="getWikiIPBypassList" visibility="private" complexity="2" crap="2.00" count="3"/>
      <line num="427" type="stmt" count="3"/>
      <line num="428" type="stmt" count="3"/>
      <line num="430" type="stmt" count="3"/>
      <line num="431" type="stmt" count="3"/>
      <line num="432" type="stmt" count="0"/>
      <line num="437" type="stmt" count="3"/>
      <line num="438" type="stmt" count="3"/>
      <line num="439" type="stmt" count="3"/>
      <line num="443" type="stmt" count="3"/>
      <line num="445" type="stmt" count="3"/>
      <line num="459" type="method" name="buildValidIPs" visibility="private" complexity="3" crap="3" count="3"/>
      <line num="461" type="stmt" count="3"/>
      <line num="462" type="stmt" count="3"/>
      <line num="464" type="stmt" count="3"/>
      <line num="465" type="stmt" count="3"/>
      <line num="466" type="stmt" count="3"/>
      <line num="467" type="stmt" count="2"/>
      <line num="471" type="stmt" count="3"/>
      <line num="484" type="method" name="keyMatch" visibility="protected" complexity="1" crap="1" count="11"/>
      <line num="485" type="stmt" count="11"/>
      <line num="500" type="method" name="triggersCaptcha" visibility="public" complexity="7" crap="7" count="89"/>
      <line num="502" type="stmt" count="89"/>
      <line num="503" type="stmt" count="1"/>
      <line num="508" type="stmt" count="88"/>
      <line num="509" type="stmt" count="88"/>
      <line num="510" type="stmt" count="88"/>
      <line num="511" type="stmt" count="88"/>
      <line num="512" type="stmt" count="88"/>
      <line num="514" type="stmt" count="88"/>
      <line num="515" type="stmt" count="80"/>
      <line num="516" type="stmt" count="80"/>
      <line num="518" type="stmt" count="53"/>
      <line num="520" type="stmt" count="27"/>
      <line num="525" type="stmt" count="88"/>
      <line num="526" type="stmt" count="88"/>
      <line num="528" type="stmt" count="2"/>
      <line num="533" type="stmt" count="88"/>
      <line num="534" type="stmt" count="1"/>
      <line num="537" type="stmt" count="88"/>
      <line num="538" type="stmt" count="88"/>
      <line num="539" type="stmt" count="88"/>
      <line num="540" type="stmt" count="88"/>
      <line num="542" type="stmt" count="88"/>
      <line num="554" type="method" name="shouldCheck" visibility="public" complexity="27" crap="50.97" count="20"/>
      <line num="555" type="stmt" count="20"/>
      <line num="556" type="stmt" count="0"/>
      <line num="559" type="stmt" count="20"/>
      <line num="560" type="stmt" count="20"/>
      <line num="562" type="stmt" count="20"/>
      <line num="563" type="stmt" count="20"/>
      <line num="568" type="stmt" count="20"/>
      <line num="569" type="stmt" count="20"/>
      <line num="570" type="stmt" count="20"/>
      <line num="573" type="stmt" count="5"/>
      <line num="574" 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="585" type="stmt" count="15"/>
      <line num="586" type="stmt" count="2"/>
      <line num="589" type="stmt" count="13"/>
      <line num="590" type="stmt" count="10"/>
      <line num="592" type="stmt" count="10"/>
      <line num="594" type="stmt" count="0"/>
      <line num="596" type="stmt" count="10"/>
      <line num="599" type="stmt" count="3"/>
      <line num="600" type="stmt" count="3"/>
      <line num="603" type="stmt" count="13"/>
      <line num="605" type="stmt" count="6"/>
      <line num="607" type="stmt" count="6"/>
      <line num="608" type="stmt" count="6"/>
      <line num="609" type="stmt" count="6"/>
      <line num="610" type="stmt" count="6"/>
      <line num="611" type="stmt" count="6"/>
      <line num="613" type="stmt" count="6"/>
      <line num="614" type="stmt" count="6"/>
      <line num="615" type="stmt" count="6"/>
      <line num="616" type="stmt" count="6"/>
      <line num="617" type="stmt" count="6"/>
      <line num="619" type="stmt" count="0"/>
      <line num="624" type="stmt" count="0"/>
      <line num="625" type="stmt" count="0"/>
      <line num="626" type="stmt" count="0"/>
      <line num="629" type="stmt" count="6"/>
      <line num="630" type="stmt" count="6"/>
      <line num="631" type="stmt" count="6"/>
      <line num="633" type="stmt" count="6"/>
      <line num="634" type="stmt" count="5"/>
      <line num="635" type="stmt" count="5"/>
      <line num="636" type="stmt" count="5"/>
      <line num="637" type="stmt" count="5"/>
      <line num="638" type="stmt" count="5"/>
      <line num="640" type="stmt" count="5"/>
      <line num="641" type="stmt" count="5"/>
      <line num="643" type="stmt" count="5"/>
      <line num="647" type="stmt" count="5"/>
      <line num="648" type="stmt" count="5"/>
      <line num="649" type="stmt" count="5"/>
      <line num="650" type="stmt" count="1"/>
      <line num="652" type="stmt" count="4"/>
      <line num="655" type="stmt" count="5"/>
      <line num="659" type="stmt" count="8"/>
      <line num="661" type="stmt" count="5"/>
      <line num="662" type="stmt" count="5"/>
      <line num="663" type="stmt" count="5"/>
      <line num="664" type="stmt" count="5"/>
      <line num="665" type="stmt" count="5"/>
      <line num="666" type="stmt" count="5"/>
      <line num="669" type="stmt" count="3"/>
      <line num="671" type="stmt" count="0"/>
      <line num="672" type="stmt" count="0"/>
      <line num="673" type="stmt" count="0"/>
      <line num="674" type="stmt" count="0"/>
      <line num="675" type="stmt" count="0"/>
      <line num="676" type="stmt" count="0"/>
      <line num="680" type="stmt" count="3"/>
      <line num="681" type="stmt" count="2"/>
      <line num="682" type="stmt" count="2"/>
      <line num="683" type="stmt" count="2"/>
      <line num="684" type="stmt" count="2"/>
      <line num="688" type="stmt" count="1"/>
      <line num="689" type="stmt" count="0"/>
      <line num="690" type="stmt" count="0"/>
      <line num="691" type="stmt" count="0"/>
      <line num="692" type="stmt" count="0"/>
      <line num="695" type="stmt" count="0"/>
      <line num="697" type="stmt" count="0"/>
      <line num="698" type="stmt" count="0"/>
      <line num="699" type="stmt" count="0"/>
      <line num="700" type="stmt" count="0"/>
      <line num="701" type="stmt" count="0"/>
      <line num="703" type="stmt" count="0"/>
      <line num="705" type="stmt" count="0"/>
      <line num="706" type="stmt" count="0"/>
      <line num="707" type="stmt" count="0"/>
      <line num="708" type="stmt" count="0"/>
      <line num="709" type="stmt" count="0"/>
      <line num="710" type="stmt" count="0"/>
      <line num="711" type="stmt" count="0"/>
      <line num="712" type="stmt" count="0"/>
      <line num="713" type="stmt" count="0"/>
      <line num="714" type="stmt" count="0"/>
      <line num="720" type="stmt" count="1"/>
      <line num="723" type="method" name="isCaptchaSolved" visibility="public" complexity="1" crap="1" count="107"/>
      <line num="724" type="stmt" count="107"/>
      <line num="727" type="method" name="setCaptchaSolved" visibility="protected" complexity="1" crap="1" count="20"/>
      <line num="728" type="stmt" count="20"/>
      <line num="739" type="method" name="clearCaptchaSolved" visibility="public" complexity="1" crap="1" count="8"/>
      <line num="740" type="stmt" count="8"/>
      <line num="747" type="method" name="shouldForceShowCaptcha" visibility="public" complexity="1" crap="1" count="100"/>
      <line num="748" type="stmt" count="100"/>
      <line num="757" type="method" name="setForceShowCaptcha" visibility="public" complexity="1" crap="1" count="14"/>
      <line num="758" type="stmt" count="14"/>
      <line num="765" type="method" name="editFilterMergedContentHandlerAlreadyInvoked" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="766" type="stmt" count="0"/>
      <line num="773" type="method" name="setEditFilterMergedContentHandlerInvoked" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="774" type="stmt" count="0"/>
      <line num="781" type="method" name="setConfig" visibility="public" complexity="1" crap="1" count="40"/>
      <line num="782" type="stmt" count="40"/>
      <line num="788" type="method" name="getConfig" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="789" type="stmt" count="2"/>
      <line num="797" type="method" name="filterLink" visibility="private" complexity="6" crap="7.33" count="5"/>
      <line num="799" type="stmt" count="5"/>
      <line num="801" type="stmt" count="5"/>
      <line num="802" type="stmt" count="1"/>
      <line num="804" type="stmt" count="1"/>
      <line num="805" type="stmt" count="0"/>
      <line num="806" type="stmt" count="1"/>
      <line num="808" type="stmt" count="1"/>
      <line num="809" type="stmt" count="0"/>
      <line num="813" type="stmt" count="5"/>
      <line num="814" type="stmt" count="0"/>
      <line num="815" type="stmt" count="0"/>
      <line num="819" type="stmt" count="5"/>
      <line num="828" type="method" name="buildRegexes" visibility="private" complexity="11" crap="99.93" count="1"/>
      <line num="833" type="stmt" count="1"/>
      <line num="836" type="stmt" count="1"/>
      <line num="837" type="stmt" count="1"/>
      <line num="838" type="stmt" count="1"/>
      <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="853" 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="858" type="stmt" count="0"/>
      <line num="859" type="stmt" count="0"/>
      <line num="860" type="stmt" count="0"/>
      <line num="861" type="stmt" count="0"/>
      <line num="862" type="stmt" count="0"/>
      <line num="864" type="stmt" count="0"/>
      <line num="865" type="stmt" count="0"/>
      <line num="866" type="stmt" count="0"/>
      <line num="867" type="stmt" count="0"/>
      <line num="868" type="stmt" count="0"/>
      <line num="869" type="stmt" count="0"/>
      <line num="874" type="stmt" count="0"/>
      <line num="877" type="stmt" count="0"/>
      <line num="878" type="stmt" count="0"/>
      <line num="879" type="stmt" count="0"/>
      <line num="880" type="stmt" count="0"/>
      <line num="881" type="stmt" count="0"/>
      <line num="882" type="stmt" count="0"/>
      <line num="883" type="stmt" count="0"/>
      <line num="885" type="stmt" count="0"/>
      <line num="888" type="stmt" count="0"/>
      <line num="889" type="stmt" count="0"/>
      <line num="890" type="stmt" count="0"/>
      <line num="891" type="stmt" count="0"/>
      <line num="894" type="stmt" count="0"/>
      <line num="906" type="method" name="doConfirmEdit" visibility="private" complexity="4" crap="4.77" count="6"/>
      <line num="914" type="stmt" count="6"/>
      <line num="918" type="stmt" count="6"/>
      <line num="919" type="stmt" count="0"/>
      <line num="920" type="stmt" count="0"/>
      <line num="922" type="stmt" count="6"/>
      <line num="923" type="stmt" count="0"/>
      <line num="924" type="stmt" count="0"/>
      <line num="926" type="stmt" count="6"/>
      <line num="927" type="stmt" count="5"/>
      <line num="930" type="stmt" count="1"/>
      <line num="931" type="stmt" count="1"/>
      <line num="944" type="method" name="confirmEditMerged" visibility="public" complexity="5" crap="5.68" count="6"/>
      <line num="945" type="stmt" count="6"/>
      <line num="946" type="stmt" count="6"/>
      <line num="949" type="stmt" count="0"/>
      <line num="950" type="stmt" count="0"/>
      <line num="951" type="stmt" count="0"/>
      <line num="954" type="stmt" count="0"/>
      <line num="958" type="stmt" count="0"/>
      <line num="959" type="stmt" count="0"/>
      <line num="961" type="stmt" count="6"/>
      <line num="962" type="stmt" count="6"/>
      <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="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="1"/>
      <line num="981" type="method" name="getConfirmEditMergedFatalStatusMessageKey" visibility="protected" complexity="4" crap="4" count="5"/>
      <line num="982" type="stmt" count="5"/>
      <line num="987" type="stmt" count="5"/>
      <line num="989" type="stmt" count="5"/>
      <line num="990" type="stmt" count="5"/>
      <line num="994" type="stmt" count="3"/>
      <line num="995" type="stmt" count="3"/>
      <line num="996" type="stmt" count="3"/>
      <line num="997" type="stmt" count="3"/>
      <line num="1001" type="stmt" count="3"/>
      <line num="1002" type="stmt" count="1"/>
      <line num="1007" type="stmt" count="5"/>
      <line num="1017" type="method" name="needCreateAccountCaptcha" visibility="public" complexity="2" crap="2" count="12"/>
      <line num="1018" type="stmt" count="12"/>
      <line num="1019" type="stmt" count="10"/>
      <line num="1021" type="stmt" count="2"/>
      <line num="1033" type="method" name="confirmEmailUser" visibility="public" complexity="5" crap="30" 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="1042" type="stmt" count="0"/>
      <line num="1045" type="stmt" count="0"/>
      <line num="1046" type="stmt" count="0"/>
      <line num="1048" type="stmt" count="0"/>
      <line num="1049" type="stmt" count="0"/>
      <line num="1050" type="stmt" count="0"/>
      <line num="1051" type="stmt" count="0"/>
      <line num="1054" type="stmt" count="0"/>
      <line num="1061" type="method" name="isAPICaptchaModule" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="1062" type="stmt" count="0"/>
      <line num="1071" type="method" name="apiGetAllowedParams" visibility="public" complexity="2" crap="6" 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="1077" type="stmt" count="0"/>
      <line num="1078" type="stmt" count="0"/>
      <line num="1081" type="stmt" count="0"/>
      <line num="1095" type="method" name="getApiParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="1096" type="stmt" count="1"/>
      <line num="1107" type="method" name="passCaptchaLimitedFromRequest" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="1108" type="stmt" count="11"/>
      <line num="1109" type="stmt" count="11"/>
      <line num="1116" type="method" name="getCaptchaParamsFromRequest" visibility="protected" complexity="1" crap="1" count="11"/>
      <line num="1117" type="stmt" count="11"/>
      <line num="1118" type="stmt" count="11"/>
      <line num="1119" type="stmt" count="11"/>
      <line num="1132" type="method" name="passCaptchaLimited" visibility="public" complexity="3" crap="3.21" count="21"/>
      <line num="1134" type="stmt" count="21"/>
      <line num="1136" type="stmt" count="0"/>
      <line num="1137" type="stmt" count="0"/>
      <line num="1140" type="stmt" count="21"/>
      <line num="1141" type="stmt" count="4"/>
      <line num="1145" type="stmt" count="17"/>
      <line num="1146" type="stmt" count="17"/>
      <line num="1156" type="method" name="passCaptchaFromRequest" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="1157" type="stmt" count="0"/>
      <line num="1158" type="stmt" count="0"/>
      <line num="1169" type="method" name="passCaptcha" visibility="protected" complexity="5" crap="5.00" count="21"/>
      <line num="1172" type="stmt" count="21"/>
      <line num="1173" type="stmt" count="0"/>
      <line num="1176" type="stmt" count="21"/>
      <line num="1177" type="stmt" count="7"/>
      <line num="1179" type="stmt" count="7"/>
      <line num="1182" type="stmt" count="14"/>
      <line num="1183" type="stmt" count="14"/>
      <line num="1184" type="stmt" count="11"/>
      <line num="1185" type="stmt" count="4"/>
      <line num="1186" type="stmt" count="4"/>
      <line num="1187" type="stmt" count="4"/>
      <line num="1188" type="stmt" count="4"/>
      <line num="1190" type="stmt" count="7"/>
      <line num="1191" type="stmt" count="7"/>
      <line num="1192" type="stmt" count="7"/>
      <line num="1193" type="stmt" count="7"/>
      <line num="1196" type="stmt" count="3"/>
      <line num="1197" type="stmt" count="3"/>
      <line num="1205" type="method" name="log" visibility="protected" complexity="1" crap="1" count="21"/>
      <line num="1206" type="stmt" count="21"/>
      <line num="1207" type="stmt" count="21"/>
      <line num="1208" type="stmt" count="21"/>
      <line num="1209" type="stmt" count="21"/>
      <line num="1210" type="stmt" count="21"/>
      <line num="1211" type="stmt" count="21"/>
      <line num="1225" type="method" name="storeCaptcha" visibility="public" complexity="2" crap="2" count="21"/>
      <line num="1226" type="stmt" count="21"/>
      <line num="1228" type="stmt" count="13"/>
      <line num="1230" type="stmt" count="21"/>
      <line num="1231" type="stmt" count="21"/>
      <line num="1239" type="method" name="retrieveCaptcha" visibility="public" complexity="1" crap="1" count="23"/>
      <line num="1240" type="stmt" count="23"/>
      <line num="1248" type="method" name="clearCaptcha" visibility="public" complexity="1" crap="1" count="11"/>
      <line num="1249" type="stmt" count="11"/>
      <line num="1260" type="method" name="loadText" visibility="private" complexity="5" crap="30" count="0"/>
      <line num="1261" type="stmt" count="0"/>
      <line num="1262" type="stmt" count="0"/>
      <line num="1263" type="stmt" count="0"/>
      <line num="1265" type="stmt" count="0"/>
      <line num="1266" type="stmt" count="0"/>
      <line num="1270" type="stmt" count="0"/>
      <line num="1271" type="stmt" count="0"/>
      <line num="1272" type="stmt" count="0"/>
      <line num="1275" type="stmt" count="0"/>
      <line num="1276" type="stmt" count="0"/>
      <line num="1277" type="stmt" count="0"/>
      <line num="1278" type="stmt" count="0"/>
      <line num="1281" type="stmt" count="0"/>
      <line num="1290" type="method" name="findLinks" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="1291" type="stmt" count="0"/>
      <line num="1292" type="stmt" count="0"/>
      <line num="1293" type="stmt" count="0"/>
      <line num="1294" type="stmt" count="0"/>
      <line num="1295" type="stmt" count="0"/>
      <line num="1297" type="stmt" count="0"/>
      <line num="1305" type="method" name="showHelp" visibility="public" complexity="2" crap="2.06" count="2"/>
      <line num="1306" type="stmt" count="2"/>
      <line num="1307" type="stmt" count="2"/>
      <line num="1309" type="stmt" count="0"/>
      <line num="1312" type="stmt" count="2"/>
      <line num="1318" type="method" name="createAuthenticationRequest" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="1319" type="stmt" count="6"/>
      <line num="1320" type="stmt" count="6"/>
      <line num="1321" type="stmt" count="6"/>
      <line num="1331" type="method" name="onAuthChangeFormFields" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="1335" type="stmt" count="0"/>
      <line num="1336" type="stmt" count="0"/>
      <line num="1337" type="stmt" count="0"/>
      <line num="1338" type="stmt" count="0"/>
      <line num="1339" type="stmt" count="0"/>
      <line num="1340" type="stmt" count="0"/>
      <line num="1341" type="stmt" count="0"/>
      <line num="1344" type="stmt" count="0"/>
      <line num="1345" type="stmt" count="0"/>
      <line num="1346" type="stmt" count="0"/>
      <line num="1347" type="stmt" count="0"/>
      <line num="1348" type="stmt" count="0"/>
      <line num="1349" type="stmt" count="0"/>
      <line num="1357" type="method" name="canSkipCaptcha" visibility="public" complexity="4" crap="4" count="40"/>
      <line num="1358" type="stmt" count="40"/>
      <line num="1359" type="stmt" count="40"/>
      <line num="1360" type="stmt" count="6"/>
      <line num="1361" type="stmt" count="6"/>
      <line num="1363" type="stmt" count="40"/>
      <line num="1364" type="stmt" count="1"/>
      <line num="1365" type="stmt" count="1"/>
      <line num="1367" type="stmt" count="40"/>
      <line num="1368" type="stmt" count="2"/>
      <line num="1369" type="stmt" count="2"/>
      <line num="1372" type="stmt" count="40"/>
      <line num="1373" type="stmt" count="40"/>
      <line num="1374" type="stmt" count="40"/>
      <line num="1375" type="stmt" count="40"/>
      <line num="1377" type="stmt" count="40"/>
      <line num="1392" type="method" name="shouldSkipCaptcha" visibility="public" complexity="3" crap="3" count="10"/>
      <line num="1393" type="stmt" count="10"/>
      <line num="1394" type="stmt" count="8"/>
      <line num="1397" type="stmt" count="2"/>
      <line num="1411" type="method" name="joinURLs" visibility="private" complexity="8" crap="8.30" count="5"/>
      <line num="1412" type="stmt" count="5"/>
      <line num="1413" type="stmt" count="0"/>
      <line num="1416" type="stmt" 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="1421" type="stmt" count="5"/>
      <line num="1423" type="stmt" count="5"/>
      <line num="1424" type="stmt" count="5"/>
      <line num="1427" type="stmt" count="0"/>
      <line num="1430" type="stmt" count="5"/>
      <line num="1435" type="stmt" count="5"/>
      <line num="1436" type="stmt" count="1"/>
      <line num="1437" type="stmt" count="1"/>
      <line num="1440" type="stmt" count="5"/>
      <line num="1443" type="stmt" count="5"/>
      <line num="1445" type="stmt" count="0"/>
      <line num="1448" type="stmt" count="5"/>
      <metrics loc="1451" ncloc="952" classes="1" methods="61" coveredmethods="38" conditionals="0" coveredconditionals="0" statements="504" coveredstatements="325" elements="565" coveredelements="363"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Specials/SpecialCaptcha.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Specials\SpecialCaptcha" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="20" elements="22" coveredelements="22"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="18" type="stmt" count="5"/>
      <line num="22" type="method" name="execute" visibility="public" complexity="5" crap="5" count="5"/>
      <line num="23" type="stmt" count="5"/>
      <line num="26" type="stmt" count="5"/>
      <line num="28" type="stmt" count="5"/>
      <line num="31" type="stmt" count="3"/>
      <line num="32" type="stmt" count="3"/>
      <line num="35" type="stmt" count="2"/>
      <line num="37" type="stmt" count="2"/>
      <line num="38" type="stmt" count="2"/>
      <line num="40" type="stmt" count="2"/>
      <line num="41" type="stmt" count="1"/>
      <line num="44" 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="55" type="stmt" count="2"/>
      <metrics loc="59" ncloc="54" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="20" elements="22" coveredelements="22"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Store/CaptchaCacheStore.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Store\CaptchaCacheStore" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="16" coveredelements="16"/>
      </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="16" type="stmt" count="2"/>
      <line num="20" type="method" name="store" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="34" type="method" name="retrieve" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="39" type="method" name="clear" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="44" type="method" name="cookiesNeeded" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <metrics loc="48" ncloc="41" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="16" coveredelements="16"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Store/CaptchaHashStore.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Store\CaptchaHashStore" namespace="global">
        <metrics complexity="5" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="10" coveredelements="10"/>
      </class>
      <line num="12" type="method" name="store" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="13" type="stmt" count="1"/>
      <line num="17" type="method" name="retrieve" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="18" type="stmt" count="1"/>
      <line num="19" type="stmt" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="25" type="method" name="clear" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="30" type="method" name="cookiesNeeded" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <metrics loc="34" ncloc="29" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="6" elements="10" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Store/CaptchaSessionStore.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Store\CaptchaSessionStore" namespace="global">
        <metrics complexity="5" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="10" coveredelements="10"/>
      </class>
      <line num="10" type="method" name="__construct" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="12" type="stmt" count="1"/>
      <line num="16" type="method" name="store" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="17" type="stmt" count="1"/>
      <line num="21" type="method" name="retrieve" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="26" type="method" name="clear" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="31" type="method" name="cookiesNeeded" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <metrics loc="35" ncloc="30" classes="1" methods="5" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="10" coveredelements="10"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Store/CaptchaStore.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Store\CaptchaStore" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="10" elements="14" coveredelements="12"/>
      </class>
      <line num="49" type="method" name="get" visibility="public" complexity="3" crap="3" 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="4"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="stmt" count="4"/>
      <line num="62" type="method" name="unsetInstanceForTests" visibility="public" complexity="2" crap="2.15" count="5"/>
      <line num="63" type="stmt" count="5"/>
      <line num="64" type="stmt" count="0"/>
      <line num="66" type="stmt" count="5"/>
      <line num="72" type="method" name="__construct" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="73" type="stmt" count="3"/>
      <metrics loc="75" ncloc="45" classes="1" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="10" elements="14" coveredelements="12"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Turnstile/HTMLTurnstileField.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Turnstile\HTMLTurnstileField" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="0" elements="22" coveredelements="0"/>
      </class>
      <line num="27" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" 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="38" type="method" name="getInputHTML" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" 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="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"/>
      <metrics loc="61" ncloc="45" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="0" elements="22" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Turnstile/Hooks.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Turnstile\Hooks" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="6" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="onResourceLoaderGetConfigVars" visibility="public" complexity="2" crap="6" 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"/>
      <metrics loc="27" ncloc="20" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="6" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Turnstile/Turnstile.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Turnstile\Turnstile" namespace="global">
        <metrics complexity="27" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="96" coveredstatements="1" elements="112" coveredelements="2"/>
      </class>
      <line num="34" type="method" name="getFormInformation" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" 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="54" 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="65" type="method" name="getCSPUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="72" type="method" name="logCheckError" visibility="protected" complexity="3" crap="12" 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="79" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="89" type="method" name="getCaptchaParamsFromRequest" visibility="protected" complexity="1" crap="2" 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="112" type="method" name="passCaptcha" visibility="protected" complexity="5" crap="30" count="0"/>
      <line num="115" 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="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="131" 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="141" 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="147" type="stmt" count="0"/>
      <line num="151" type="method" name="addCaptchaAPI" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="157" type="method" name="describeCaptchaType" visibility="public" complexity="1" crap="2" 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="173" type="method" name="getMessage" visibility="public" complexity="2" crap="6" 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="178" type="stmt" count="0"/>
      <line num="187" type="method" name="apiGetAllowedParams" visibility="public" complexity="3" crap="12" 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="194" type="stmt" count="0"/>
      <line num="198" type="method" name="getApiParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="203" type="method" name="getError" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="208" type="method" name="storeCaptcha" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="213" type="method" name="retrieveCaptcha" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="219" type="method" name="getCaptcha" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="227" type="method" name="createAuthenticationRequest" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="237" type="method" name="onAuthChangeFormFields" visibility="public" complexity="2" crap="6" 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="248" type="stmt" count="0"/>
      <line num="249" 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"/>
      <metrics loc="267" ncloc="198" classes="1" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="96" coveredstatements="1" elements="112" coveredelements="2"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/Turnstile/TurnstileAuthenticationRequest.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Turnstile\TurnstileAuthenticationRequest" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="13" coveredelements="0"/>
      </class>
      <line num="14" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="15" type="stmt" count="0"/>
      <line num="19" type="method" name="loadFromSubmission" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="25" type="method" name="getFieldInfo" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <metrics loc="37" ncloc="31" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="13" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/GradeCBundleModule.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\GradeCBundleModule" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="32" coveredstatements="0" elements="35" coveredelements="0"/>
      </class>
      <line num="32" type="method" name="getScript" visibility="public" complexity="2" crap="6" 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"/>
      <line num="42" 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="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="56" type="method" name="getDefinitionSummary" visibility="public" complexity="1" crap="2" 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="70" type="method" name="getInputPathMap" visibility="private" complexity="2" crap="6" 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="80" type="stmt" count="0"/>
      <metrics loc="105" ncloc="81" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="32" coveredstatements="0" elements="35" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/HCaptcha.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\HCaptcha" namespace="global">
        <metrics complexity="118" methods="38" coveredmethods="34" conditionals="0" coveredconditionals="0" statements="337" coveredstatements="333" elements="375" coveredelements="367"/>
      </class>
      <line num="65" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="104"/>
      <line num="66" type="stmt" count="104"/>
      <line num="67" type="stmt" count="104"/>
      <line num="68" type="stmt" count="104"/>
      <line num="69" type="stmt" count="104"/>
      <line num="70" type="stmt" count="104"/>
      <line num="71" type="stmt" count="104"/>
      <line num="72" type="stmt" count="104"/>
      <line num="73" type="stmt" count="104"/>
      <line num="77" type="method" name="getFormInformation" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="78" type="stmt" count="6"/>
      <line num="79" type="stmt" count="1"/>
      <line num="82" type="stmt" count="6"/>
      <line num="83" type="stmt" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="88" type="method" name="getCSPUrls" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="89" type="stmt" count="1"/>
      <line num="93" type="method" name="addCSPSources" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="94" 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="102" type="method" name="logCheckError" visibility="protected" complexity="4" crap="4" count="11"/>
      <line num="109" type="stmt" count="11"/>
      <line num="110" type="stmt" count="5"/>
      <line num="111" type="stmt" count="5"/>
      <line num="112" type="stmt" count="6"/>
      <line num="113" type="stmt" count="1"/>
      <line num="115" type="stmt" count="5"/>
      <line num="118" type="stmt" count="11"/>
      <line num="119" type="stmt" count="11"/>
      <line num="120" type="stmt" count="11"/>
      <line num="121" type="stmt" count="11"/>
      <line num="122" type="stmt" count="11"/>
      <line num="123" type="stmt" count="11"/>
      <line num="124" type="stmt" count="11"/>
      <line num="125" type="stmt" count="11"/>
      <line num="126" type="stmt" count="11"/>
      <line num="127" type="stmt" count="11"/>
      <line num="131" type="method" name="getCaptchaParamsFromRequest" visibility="protected" complexity="1" crap="1" count="35"/>
      <line num="132" type="stmt" count="35"/>
      <line num="133" type="stmt" count="35"/>
      <line num="135" type="stmt" count="35"/>
      <line num="136" type="stmt" count="35"/>
      <line num="137" type="stmt" count="35"/>
      <line num="138" type="stmt" count="35"/>
      <line num="139" type="stmt" count="35"/>
      <line num="140" type="stmt" count="35"/>
      <line num="141" type="stmt" count="35"/>
      <line num="153" type="method" name="showEditFormFields" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="154" type="stmt" count="1"/>
      <line num="167" type="method" name="shouldForceShowCaptchaChallenge" visibility="private" complexity="5" crap="5" count="48"/>
      <line num="168" type="stmt" count="48"/>
      <line num="171" type="stmt" count="48"/>
      <line num="173" type="stmt" count="48"/>
      <line num="174" type="stmt" count="48"/>
      <line num="176" type="stmt" count="48"/>
      <line num="183" type="method" name="setForceShowCaptchaError" visibility="private" complexity="1" crap="1" count="8"/>
      <line num="184" type="stmt" count="8"/>
      <line num="185" type="stmt" count="8"/>
      <line num="186" type="stmt" count="8"/>
      <line num="187" type="stmt" count="8"/>
      <line num="188" type="stmt" count="8"/>
      <line num="189" type="stmt" count="8"/>
      <line num="201" type="method" name="retrieveRiskScore" visibility="public" complexity="4" crap="4" count="9"/>
      <line num="207" type="stmt" count="9"/>
      <line num="209" type="stmt" count="9"/>
      <line num="210" type="stmt" count="9"/>
      <line num="211" type="stmt" count="3"/>
      <line num="214" type="stmt" count="6"/>
      <line num="216" type="stmt" count="6"/>
      <line num="217" type="stmt" count="5"/>
      <line num="218" type="stmt" count="6"/>
      <line num="232" type="method" name="passCaptcha" visibility="protected" complexity="17" crap="17" count="48"/>
      <line num="233" type="stmt" count="48"/>
      <line num="234" type="stmt" count="48"/>
      <line num="235" type="stmt" count="48"/>
      <line num="236" type="stmt" count="4"/>
      <line num="237" type="stmt" count="4"/>
      <line num="240" type="stmt" count="46"/>
      <line num="241" type="stmt" count="4"/>
      <line num="248" type="stmt" count="42"/>
      <line num="249" type="stmt" count="2"/>
      <line num="250" type="stmt" count="2"/>
      <line num="253" type="stmt" count="40"/>
      <line num="255" type="stmt" count="40"/>
      <line num="256" type="stmt" count="11"/>
      <line num="263" type="stmt" count="30"/>
      <line num="264" type="stmt" count="30"/>
      <line num="265" type="stmt" count="30"/>
      <line num="266" type="stmt" count="30"/>
      <line num="268" type="stmt" count="2"/>
      <line num="269" type="stmt" count="2"/>
      <line num="270" type="stmt" count="2"/>
      <line num="273" type="stmt" count="28"/>
      <line num="274" type="stmt" count="2"/>
      <line num="275" type="stmt" count="2"/>
      <line num="278" type="stmt" count="26"/>
      <line num="279" type="stmt" count="26"/>
      <line num="280" type="stmt" count="10"/>
      <line num="286" type="stmt" count="16"/>
      <line num="288" type="stmt" count="16"/>
      <line num="289" type="stmt" count="16"/>
      <line num="291" type="stmt" count="1"/>
      <line num="293" type="stmt" count="16"/>
      <line num="295" type="stmt" count="26"/>
      <line num="297" type="stmt" count="26"/>
      <line num="312" type="method" name="callSiteVerify" visibility="private" complexity="3" crap="3" count="49"/>
      <line num="318" type="stmt" count="49"/>
      <line num="320" type="stmt" count="49"/>
      <line num="321" type="stmt" count="5"/>
      <line num="322" type="stmt" count="5"/>
      <line num="323" 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="328" 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="5"/>
      <line num="334" type="stmt" count="44"/>
      <line num="335" type="stmt" count="44"/>
      <line num="336" type="stmt" count="44"/>
      <line num="338" type="stmt" count="44"/>
      <line num="339" type="stmt" count="44"/>
      <line num="340" type="stmt" count="5"/>
      <line num="343" type="stmt" count="39"/>
      <line num="352" type="method" name="buildSiteVerifyRequestData" visibility="private" complexity="8" crap="8" count="44"/>
      <line num="357" type="stmt" count="44"/>
      <line num="358" type="stmt" count="44"/>
      <line num="359" type="stmt" count="44"/>
      <line num="360" type="stmt" count="44"/>
      <line num="361" type="stmt" count="44"/>
      <line num="362" type="stmt" count="44"/>
      <line num="363" type="stmt" count="1"/>
      <line num="369" type="stmt" count="44"/>
      <line num="370" type="stmt" count="24"/>
      <line num="371" type="stmt" count="22"/>
      <line num="376" type="stmt" count="22"/>
      <line num="377" type="stmt" count="22"/>
      <line num="379" type="stmt" count="1"/>
      <line num="382" type="stmt" count="24"/>
      <line num="383" type="stmt" count="16"/>
      <line num="387" type="stmt" count="44"/>
      <line num="388" type="stmt" count="44"/>
      <line num="389" type="stmt" count="44"/>
      <line num="390" type="stmt" count="44"/>
      <line num="391" type="stmt" count="44"/>
      <line num="393" type="stmt" count="44"/>
      <line num="394" type="stmt" count="44"/>
      <line num="395" type="stmt" count="1"/>
      <line num="398" type="stmt" count="44"/>
      <line num="399" type="stmt" count="44"/>
      <line num="409" type="method" name="executeSiteVerifyWithRetry" visibility="private" complexity="5" crap="5" count="44"/>
      <line num="416" type="stmt" count="44"/>
      <line num="417" type="stmt" count="44"/>
      <line num="418" type="stmt" count="44"/>
      <line num="419" type="stmt" count="44"/>
      <line num="420" type="stmt" count="7"/>
      <line num="421" type="stmt" count="7"/>
      <line num="422" type="stmt" count="7"/>
      <line num="423" type="stmt" count="7"/>
      <line num="424" type="stmt" count="7"/>
      <line num="425" type="stmt" count="7"/>
      <line num="426" type="stmt" count="7"/>
      <line num="427" type="stmt" count="7"/>
      <line num="428" type="stmt" count="7"/>
      <line num="429" type="stmt" count="7"/>
      <line num="430" type="stmt" count="7"/>
      <line num="433" type="stmt" count="44"/>
      <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="447" type="stmt" count="39"/>
      <line num="448" type="stmt" count="2"/>
      <line num="449" type="stmt" count="2"/>
      <line num="450" type="stmt" count="2"/>
      <line num="451" type="stmt" count="2"/>
      <line num="452" type="stmt" count="2"/>
      <line num="453" type="stmt" count="2"/>
      <line num="454" type="stmt" count="2"/>
      <line num="456" type="stmt" count="39"/>
      <line num="459" type="method" name="parseSiteVerifyResponse" visibility="private" complexity="3" crap="3" count="39"/>
      <line num="464" type="stmt" count="39"/>
      <line num="465" type="stmt" count="39"/>
      <line num="466" type="stmt" count="2"/>
      <line num="467" type="stmt" count="2"/>
      <line num="468" type="stmt" count="2"/>
      <line num="469" type="stmt" count="2"/>
      <line num="471" type="stmt" count="38"/>
      <line num="472" type="stmt" count="1"/>
      <line num="473" type="stmt" count="1"/>
      <line num="474" type="stmt" count="1"/>
      <line num="477" type="stmt" count="37"/>
      <line num="495" type="method" name="hasValidKey" visibility="private" complexity="7" crap="7" count="35"/>
      <line num="502" type="stmt" count="35"/>
      <line num="503" type="stmt" count="0"/>
      <line num="508" type="stmt" count="35"/>
      <line num="509" type="stmt" count="17"/>
      <line num="510" type="stmt" count="12"/>
      <line num="513" type="stmt" count="17"/>
      <line num="514" type="stmt" count="17"/>
      <line num="515" type="stmt" count="3"/>
      <line num="516" type="stmt" count="3"/>
      <line num="517" type="stmt" count="3"/>
      <line num="521" type="stmt" count="32"/>
      <line num="522" type="stmt" count="32"/>
      <line num="523" type="stmt" count="32"/>
      <line num="524" type="stmt" count="32"/>
      <line num="525" type="stmt" count="32"/>
      <line num="526" type="stmt" count="32"/>
      <line num="527" type="stmt" count="32"/>
      <line num="528" type="stmt" count="32"/>
      <line num="529" type="stmt" count="32"/>
      <line num="530" type="stmt" count="32"/>
      <line num="531" type="stmt" count="32"/>
      <line num="532" type="stmt" count="32"/>
      <line num="533" type="stmt" count="3"/>
      <line num="534" type="stmt" count="3"/>
      <line num="535" type="stmt" count="3"/>
      <line num="536" type="stmt" count="3"/>
      <line num="537" type="stmt" count="3"/>
      <line num="539" type="stmt" count="32"/>
      <line num="541" type="stmt" count="32"/>
      <line num="544" type="method" name="addHCaptchaScore" visibility="private" complexity="3" crap="3" count="32"/>
      <line num="545" type="stmt" count="32"/>
      <line num="546" type="stmt" count="32"/>
      <line num="548" type="stmt" count="5"/>
      <line num="560" type="method" name="isCaptchaSolved" visibility="public" complexity="5" crap="5" count="51"/>
      <line num="561" type="stmt" count="51"/>
      <line num="562" type="stmt" count="51"/>
      <line num="563" type="stmt" count="8"/>
      <line num="564" type="stmt" count="8"/>
      <line num="565" type="stmt" count="4"/>
      <line num="568" type="stmt" count="49"/>
      <line num="572" type="method" name="addCaptchaAPI" visibility="protected" complexity="1" crap="1" count="4"/>
      <line num="573" type="stmt" count="4"/>
      <line num="574" type="stmt" count="4"/>
      <line num="578" type="method" name="describeCaptchaType" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="579" type="stmt" count="4"/>
      <line num="580" type="stmt" count="4"/>
      <line num="581" type="stmt" count="4"/>
      <line num="582" type="stmt" count="4"/>
      <line num="583" type="stmt" count="4"/>
      <line num="587" type="method" name="getMessage" visibility="public" complexity="5" crap="5.03" count="5"/>
      <line num="588" type="stmt" count="5"/>
      <line num="589" type="stmt" count="3"/>
      <line num="590" type="stmt" count="3"/>
      <line num="591" type="stmt" count="0"/>
      <line num="593" type="stmt" count="3"/>
      <line num="595" type="stmt" count="3"/>
      <line num="599" type="stmt" count="2"/>
      <line num="600" type="stmt" count="1"/>
      <line num="603" type="stmt" count="1"/>
      <line num="607" type="method" name="getConfirmEditMergedFatalStatusMessageKey" visibility="protected" complexity="2" crap="2.15" count="2"/>
      <line num="608" type="stmt" count="2"/>
      <line num="609" type="stmt" count="0"/>
      <line num="615" type="stmt" count="2"/>
      <line num="619" type="method" name="isAPICaptchaModule" visibility="protected" complexity="2" crap="2" count="3"/>
      <line num="620" type="stmt" count="3"/>
      <line num="621" type="stmt" count="3"/>
      <line num="625" type="method" name="apiGetAllowedParams" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="626" type="stmt" count="3"/>
      <line num="628" type="stmt" count="3"/>
      <line num="629" type="stmt" count="2"/>
      <line num="630" type="stmt" count="2"/>
      <line num="631" type="stmt" count="2"/>
      <line num="632" type="stmt" count="2"/>
      <line num="635" type="stmt" count="3"/>
      <line num="639" type="method" name="getApiParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="640" type="stmt" count="1"/>
      <line num="644" type="method" name="getError" visibility="public" complexity="1" crap="1" count="45"/>
      <line num="645" type="stmt" count="45"/>
      <line num="666" type="method" name="storeSessionScore" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="667" type="stmt" count="6"/>
      <line num="668" type="stmt" count="6"/>
      <line num="669" type="stmt" count="6"/>
      <line num="670" type="stmt" count="6"/>
      <line num="671" type="stmt" count="6"/>
      <line num="672" type="stmt" count="6"/>
      <line num="673" type="stmt" count="6"/>
      <line num="686" type="method" name="retrieveSessionScore" visibility="public" complexity="3" crap="3" count="9"/>
      <line num="687" type="stmt" count="9"/>
      <line num="688" type="stmt" count="9"/>
      <line num="689" type="stmt" count="4"/>
      <line num="691" type="stmt" count="6"/>
      <line num="692" type="stmt" count="2"/>
      <line num="694" type="stmt" count="4"/>
      <line num="697" type="method" name="getScoreCacheKey" visibility="private" complexity="1" crap="1" count="6"/>
      <line num="698" type="stmt" count="6"/>
      <line num="722" type="method" name="createAuthenticationRequest" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="723" type="stmt" count="7"/>
      <line num="727" type="method" name="onAuthChangeFormFields" visibility="public" complexity="4" crap="4" count="7"/>
      <line num="731" type="stmt" count="7"/>
      <line num="732" type="stmt" count="7"/>
      <line num="733" type="stmt" count="7"/>
      <line num="734" type="stmt" count="7"/>
      <line num="735" type="stmt" count="7"/>
      <line num="736" type="stmt" count="7"/>
      <line num="737" type="stmt" count="1"/>
      <line num="742" type="stmt" count="6"/>
      <line num="743" type="stmt" count="6"/>
      <line num="744" type="stmt" count="6"/>
      <line num="745" type="stmt" count="6"/>
      <line num="746" type="stmt" count="6"/>
      <line num="748" type="stmt" count="6"/>
      <line num="749" type="stmt" count="6"/>
      <line num="750" type="stmt" count="6"/>
      <line num="752" type="stmt" count="6"/>
      <line num="753" type="stmt" count="6"/>
      <line num="754" type="stmt" count="6"/>
      <line num="755" type="stmt" count="6"/>
      <line num="756" type="stmt" count="6"/>
      <line num="757" type="stmt" count="6"/>
      <line num="764" type="stmt" count="6"/>
      <line num="765" type="stmt" count="6"/>
      <line num="766" type="stmt" count="6"/>
      <line num="767" type="stmt" count="6"/>
      <line num="768" type="stmt" count="6"/>
      <line num="769" type="stmt" count="6"/>
      <line num="770" type="stmt" count="2"/>
      <line num="775" type="method" name="showHelp" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="776" type="stmt" count="0"/>
      <line num="790" type="method" name="getSiteKeyForAction" visibility="public" complexity="2" crap="2" count="24"/>
      <line num="791" type="stmt" count="24"/>
      <line num="792" type="stmt" count="24"/>
      <line num="793" type="stmt" count="10"/>
      <line num="796" type="stmt" count="24"/>
      <line num="804" type="method" name="executeSiteVerifyRequest" visibility="private" complexity="4" crap="4" count="44"/>
      <line num="809" type="stmt" count="44"/>
      <line num="811" type="stmt" count="44"/>
      <line num="812" type="stmt" count="44"/>
      <line num="813" type="stmt" count="44"/>
      <line num="815" type="stmt" count="44"/>
      <line num="817" type="stmt" count="44"/>
      <line num="818" type="stmt" count="44"/>
      <line num="819" type="stmt" count="44"/>
      <line num="820" type="stmt" count="44"/>
      <line num="822" type="stmt" count="44"/>
      <line num="823" type="stmt" count="39"/>
      <line num="826" type="stmt" count="44"/>
      <line num="843" type="method" name="getAllowedSiteKeysForCurrentAction" visibility="private" complexity="3" crap="3" count="48"/>
      <line num="846" type="stmt" count="48"/>
      <line num="847" type="stmt" count="15"/>
      <line num="848" type="stmt" count="15"/>
      <line num="849" type="stmt" count="7"/>
      <line num="856" type="stmt" count="41"/>
      <line num="867" type="method" name="getAllSiteKeysForCurrentAction" visibility="private" complexity="1" crap="1" count="43"/>
      <line num="868" type="stmt" count="43"/>
      <line num="869" type="stmt" count="43"/>
      <line num="870" type="stmt" count="43"/>
      <line num="871" type="stmt" count="43"/>
      <line num="872" type="stmt" count="43"/>
      <line num="874" type="stmt" count="43"/>
      <line num="886" type="method" name="getPrimarySiteKey" visibility="private" complexity="2" crap="2" count="57"/>
      <line num="887" type="stmt" count="57"/>
      <line num="888" type="stmt" count="33"/>
      <line num="890" type="stmt" count="57"/>
      <line num="891" type="stmt" count="1"/>
      <line num="894" type="stmt" count="56"/>
      <line num="903" type="method" name="getAlwaysChallengeSiteKey" visibility="private" complexity="3" crap="3" count="64"/>
      <line num="905" type="stmt" count="64"/>
      <line num="906" type="stmt" count="64"/>
      <line num="908" type="stmt" count="21"/>
      <line num="910" type="stmt" count="43"/>
      <metrics loc="913" ncloc="666" classes="1" methods="38" coveredmethods="34" conditionals="0" coveredconditionals="0" statements="337" coveredstatements="333" elements="375" coveredelements="367"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/HCaptchaAuthenticationRequest.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\HCaptchaAuthenticationRequest" namespace="global">
        <metrics complexity="5" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="16" 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="17" type="method" name="loadFromSubmission" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="23" type="method" name="getFieldInfo" visibility="public" complexity="3" crap="12" 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="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="39" type="stmt" count="0"/>
      <metrics loc="42" ncloc="38" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="16" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/HTMLHCaptchaField.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\HTMLHCaptchaField" namespace="global">
        <metrics complexity="5" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="13" elements="16" coveredelements="16"/>
      </class>
      <line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="12"/>
      <line num="27" type="stmt" count="12"/>
      <line num="28" type="stmt" count="12"/>
      <line num="30" type="stmt" count="12"/>
      <line num="31" type="stmt" count="12"/>
      <line num="33" type="stmt" count="12"/>
      <line num="41" type="method" name="validate" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="4"/>
      <line num="46" type="stmt" count="1"/>
      <line num="50" type="method" name="getInputHTML" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="51" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="7"/>
      <line num="56" type="stmt" count="7"/>
      <line num="58" type="stmt" count="7"/>
      <metrics loc="61" ncloc="45" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="13" elements="16" coveredelements="16"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/Services/HCaptchaBlocksLookup.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\Services\HCaptchaBlocksLookup" namespace="global">
        <metrics complexity="20" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="19" elements="28" coveredelements="20"/>
      </class>
      <line num="38" type="method" name="getBlocksRequiringHCaptcha" visibility="public" complexity="9" crap="9" count="15"/>
      <line num="42" type="stmt" count="15"/>
      <line num="43" type="stmt" count="3"/>
      <line num="46" type="stmt" count="12"/>
      <line num="48" type="stmt" count="12"/>
      <line num="49" type="stmt" count="5"/>
      <line num="50" type="stmt" count="4"/>
      <line num="53" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="7"/>
      <line num="56" type="stmt" count="6"/>
      <line num="61" type="stmt" count="12"/>
      <line num="72" type="method" name="hasBlocksRequiringHCaptcha" visibility="public" complexity="8" crap="18.97" count="4"/>
      <line num="73" type="stmt" count="4"/>
      <line num="74" type="stmt" count="1"/>
      <line num="77" type="stmt" count="3"/>
      <line num="78" type="stmt" count="3"/>
      <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="88" type="stmt" count="0"/>
      <line num="98" type="method" name="appliesToCurrentPage" visibility="private" complexity="3" crap="3.07" count="17"/>
      <line num="100" type="stmt" count="17"/>
      <line num="101" type="stmt" count="2"/>
      <line num="104" type="stmt" count="16"/>
      <line num="105" type="stmt" count="16"/>
      <line num="108" type="stmt" count="0"/>
      <metrics loc="111" ncloc="73" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="19" elements="28" coveredelements="20"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/Services/HCaptchaEnterpriseHealthChecker.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\Services\HCaptchaEnterpriseHealthChecker" namespace="global">
        <metrics complexity="8" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="44" elements="48" coveredelements="48"/>
      </class>
      <line num="54" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="61" type="stmt" count="5"/>
      <line num="71" type="method" name="incrementSiteVerifyApiErrorCount" visibility="public" complexity="1" crap="1" 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="87" type="method" name="isAvailable" visibility="public" complexity="5" crap="5" 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="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <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="103" 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="113" type="stmt" count="3"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="116" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="124" type="stmt" count="2"/>
      <line num="125" type="stmt" count="4"/>
      <line num="126" type="stmt" count="4"/>
      <line num="127" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" type="stmt" count="4"/>
      <line num="133" type="stmt" count="4"/>
      <line num="134" type="stmt" count="4"/>
      <line num="137" type="method" name="recordFailover" visibility="private" complexity="1" crap="1" 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"/>
      <metrics loc="145" ncloc="94" classes="1" methods="4" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="44" coveredstatements="44" elements="48" coveredelements="48"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/Services/HCaptchaOutput.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\Services\HCaptchaOutput" namespace="global">
        <metrics complexity="28" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="126" coveredstatements="126" elements="133" coveredelements="133"/>
      </class>
      <line num="82" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="34"/>
      <line num="88" type="stmt" count="34"/>
      <line num="101" type="method" name="addHCaptchaToForm" visibility="public" complexity="9" crap="9" count="28"/>
      <line num="103" type="stmt" count="28"/>
      <line num="104" type="stmt" count="28"/>
      <line num="105" type="stmt" count="28"/>
      <line num="106" type="stmt" count="28"/>
      <line num="107" type="stmt" count="28"/>
      <line num="108" type="stmt" count="28"/>
      <line num="110" type="stmt" count="28"/>
      <line num="111" type="stmt" count="28"/>
      <line num="112" type="stmt" count="28"/>
      <line num="113" type="stmt" count="28"/>
      <line num="114" type="stmt" count="28"/>
      <line num="115" type="stmt" count="28"/>
      <line num="116" type="stmt" count="28"/>
      <line num="117" type="stmt" count="28"/>
      <line num="123" type="stmt" count="28"/>
      <line num="124" type="stmt" count="2"/>
      <line num="126" type="stmt" count="28"/>
      <line num="127" type="stmt" count="3"/>
      <line num="129" type="stmt" count="28"/>
      <line num="131" type="stmt" count="28"/>
      <line num="132" type="stmt" count="28"/>
      <line num="133" type="stmt" count="28"/>
      <line num="134" type="stmt" count="18"/>
      <line num="135" type="stmt" count="18"/>
      <line num="136" type="stmt" count="18"/>
      <line num="137" type="stmt" count="18"/>
      <line num="138" type="stmt" count="18"/>
      <line num="143" type="stmt" count="28"/>
      <line num="144" type="stmt" count="28"/>
      <line num="146" type="stmt" count="28"/>
      <line num="147" type="stmt" count="7"/>
      <line num="150" type="stmt" count="28"/>
      <line num="151" 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="159" type="stmt" count="28"/>
      <line num="160" type="stmt" count="28"/>
      <line num="161" type="stmt" count="28"/>
      <line num="162" type="stmt" count="28"/>
      <line num="163" type="stmt" count="28"/>
      <line num="164" type="stmt" count="28"/>
      <line num="165" type="stmt" count="28"/>
      <line num="166" type="stmt" count="28"/>
      <line num="167" type="stmt" count="28"/>
      <line num="168" type="stmt" count="28"/>
      <line num="171" type="stmt" count="2"/>
      <line num="173" type="stmt" count="28"/>
      <line num="180" type="method" name="isDarkMode" visibility="private" complexity="2" crap="2" count="28"/>
      <line num="181" type="stmt" count="28"/>
      <line num="182" type="stmt" count="28"/>
      <line num="183" type="stmt" count="25"/>
      <line num="185" type="stmt" count="3"/>
      <line num="192" type="method" name="getHCaptchaApiUrl" visibility="public" complexity="5" crap="5" count="31"/>
      <line num="193" type="stmt" count="31"/>
      <line num="195" type="stmt" count="31"/>
      <line num="196" type="stmt" count="31"/>
      <line num="197" type="stmt" count="20"/>
      <line num="199" type="stmt" count="11"/>
      <line num="200" type="stmt" count="11"/>
      <line num="201" type="stmt" count="11"/>
      <line num="202" type="stmt" count="11"/>
      <line num="203" type="stmt" count="11"/>
      <line num="204" type="stmt" count="3"/>
      <line num="205" type="stmt" count="3"/>
      <line num="206" type="stmt" count="3"/>
      <line num="211" type="stmt" count="31"/>
      <line num="212" type="stmt" count="23"/>
      <line num="213" type="stmt" count="22"/>
      <line num="214" type="stmt" count="23"/>
      <line num="217" type="stmt" count="31"/>
      <line num="226" type="method" name="shouldEmitGradeCBootstrap" visibility="private" complexity="5" crap="5" count="10"/>
      <line num="227" type="stmt" count="10"/>
      <line num="228" type="stmt" count="10"/>
      <line num="229" type="stmt" count="5"/>
      <line num="231" type="stmt" count="5"/>
      <line num="232" type="stmt" count="5"/>
      <line num="238" type="method" name="addGradeCBootstrap" visibility="private" complexity="4" crap="4" count="7"/>
      <line num="242" type="stmt" count="7"/>
      <line num="243" type="stmt" count="7"/>
      <line num="244" type="stmt" count="7"/>
      <line num="245" type="stmt" 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="249" 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="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="4"/>
      <line num="263" type="stmt" count="3"/>
      <line num="264" type="stmt" count="1"/>
      <line num="267" type="stmt" count="7"/>
      <line num="268" type="stmt" count="7"/>
      <line num="269" type="stmt" count="7"/>
      <line num="270" type="stmt" count="7"/>
      <line num="271" type="stmt" count="7"/>
      <line num="272" type="stmt" count="7"/>
      <line num="273" type="stmt" count="7"/>
      <line num="274" type="stmt" count="7"/>
      <line num="275" type="stmt" count="7"/>
      <line num="276" type="stmt" count="7"/>
      <line num="277" type="stmt" count="7"/>
      <line num="278" type="stmt" count="7"/>
      <line num="279" type="stmt" count="7"/>
      <line num="280" type="stmt" count="7"/>
      <line num="284" type="stmt" count="7"/>
      <line num="285" type="stmt" count="7"/>
      <line num="288" type="stmt" count="7"/>
      <line num="289" type="stmt" count="7"/>
      <line num="290" type="stmt" count="7"/>
      <line num="291" type="stmt" count="7"/>
      <line num="292" type="stmt" count="7"/>
      <line num="293" type="stmt" count="7"/>
      <line num="294" type="stmt" count="7"/>
      <line num="295" type="stmt" count="7"/>
      <line num="296" type="stmt" count="7"/>
      <line num="298" type="stmt" count="7"/>
      <line num="304" type="method" name="getGradeCMessages" visibility="private" complexity="2" crap="2" 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="309" type="stmt" count="7"/>
      <metrics loc="312" ncloc="245" classes="1" methods="7" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="126" coveredstatements="126" elements="133" coveredelements="133"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/includes/hCaptcha/Services/RiskScoreCrawlerFilter.php">
      <class name="MediaWiki\Extension\ConfirmEdit\hCaptcha\Services\RiskScoreCrawlerFilter" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="13" coveredelements="13"/>
      </class>
      <line num="25" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="26" type="stmt" count="5"/>
      <line num="27" type="stmt" count="5"/>
      <line num="33" type="method" name="isExcludedCrawler" visibility="public" complexity="3" crap="3" count="5"/>
      <line num="34" type="stmt" count="5"/>
      <line num="35" type="stmt" count="1"/>
      <line num="38" type="stmt" count="4"/>
      <line num="39" type="stmt" count="4"/>
      <line num="40" type="stmt" count="1"/>
      <line num="43" type="stmt" count="3"/>
      <line num="44" type="stmt" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <metrics loc="49" ncloc="39" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="13" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/maintenance/CountFancyCaptchas.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Maintenance\CountFancyCaptchas" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="16" elements="19" coveredelements="17"/>
      </class>
      <line num="48" type="method" name="__construct" visibility="public" complexity="1" crap="1" 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"/>
      <line num="55" type="stmt" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="60" type="method" name="execute" visibility="public" complexity="3" crap="3.02" 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="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="71" type="stmt" count="0"/>
      <line num="74" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <metrics loc="83" ncloc="51" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="16" elements="19" coveredelements="17"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/maintenance/DeleteOldFancyCaptchas.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Maintenance\DeleteOldFancyCaptchas" namespace="global">
        <metrics complexity="9" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="44" elements="50" coveredelements="45"/>
      </class>
      <line num="49" type="method" name="__construct" 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="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="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="67" type="method" name="execute" visibility="public" complexity="8" crap="8.11" 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="72" type="stmt" count="1"/>
      <line num="76" type="stmt" count="2"/>
      <line num="78" type="stmt" count="0"/>
      <line num="81" type="stmt" count="2"/>
      <line num="82" type="stmt" count="2"/>
      <line num="84" type="stmt" count="2"/>
      <line num="85" type="stmt" count="2"/>
      <line num="87" type="stmt" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="90" 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="1"/>
      <line num="99" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="106" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="123" type="stmt" count="1"/>
      <metrics loc="131" ncloc="99" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="48" coveredstatements="44" elements="50" coveredelements="45"/>
    </file>
    <file name="/workspace/src/extensions/ConfirmEdit/maintenance/GenerateFancyCaptchas.php">
      <class name="MediaWiki\Extension\ConfirmEdit\Maintenance\GenerateFancyCaptchas" namespace="global">
        <metrics complexity="26" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="199" coveredstatements="161" elements="202" coveredelements="162"/>
      </class>
      <line num="56" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="57" 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="75" type="stmt" count="6"/>
      <line num="76" type="stmt" count="6"/>
      <line num="77" type="stmt" count="6"/>
      <line num="78" type="stmt" count="6"/>
      <line num="80" type="stmt" count="6"/>
      <line num="83" type="method" name="execute" visibility="public" complexity="24" crap="28.00" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <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="1"/>
      <line num="96" type="stmt" count="5"/>
      <line num="98" type="stmt" count="0"/>
      <line num="101" type="stmt" count="5"/>
      <line num="103" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="106" type="stmt" count="5"/>
      <line num="107" type="stmt" count="4"/>
      <line num="108" type="stmt" count="4"/>
      <line num="109" type="stmt" count="4"/>
      <line num="112" type="stmt" count="5"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="117" type="stmt" count="4"/>
      <line num="118" type="stmt" count="4"/>
      <line num="119" type="stmt" count="0"/>
      <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"/>
      <line num="128" type="stmt" count="4"/>
      <line num="129" type="stmt" count="4"/>
      <line num="130" type="stmt" count="4"/>
      <line num="131" 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="137" type="stmt" count="4"/>
      <line num="138" type="stmt" count="4"/>
      <line num="139" type="stmt" count="4"/>
      <line num="143" type="stmt" count="4"/>
      <line num="144" type="stmt" count="4"/>
      <line num="146" type="stmt" count="4"/>
      <line num="147" type="stmt" count="4"/>
      <line num="148" type="stmt" count="1"/>
      <line num="149" 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="157" 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="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="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="177" type="stmt" count="3"/>
      <line num="178" type="stmt" count="3"/>
      <line num="180" type="stmt" count="3"/>
      <line num="181" type="stmt" count="2"/>
      <line num="182" type="stmt" count="0"/>
      <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="188" 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="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="199" type="stmt" count="3"/>
      <line num="200" type="stmt" count="3"/>
      <line num="202" type="stmt" count="3"/>
      <line num="203" type="stmt" count="1"/>
      <line num="204" type="stmt" count="1"/>
      <line num="205" type="stmt" count="2"/>
      <line num="206" type="stmt" count="1"/>
      <line num="209" type="stmt" count="2"/>
      <line num="210" type="stmt" count="2"/>
      <line num="211" type="stmt" count="1"/>
      <line num="212" type="stmt" count="1"/>
      <line num="213" type="stmt" count="1"/>
      <line num="221" type="stmt" count="1"/>
      <line num="222" type="stmt" count="0"/>
      <line num="225" 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="230" type="stmt" count="1"/>
      <line num="233" type="stmt" count="2"/>
      <line num="234" type="stmt" count="2"/>
      <line num="235" type="stmt" count="2"/>
      <line num="237" type="stmt" count="2"/>
      <line num="239" type="stmt" count="2"/>
      <line num="240" type="stmt" count="2"/>
      <line num="241" type="stmt" count="2"/>
      <line num="242" type="stmt" count="2"/>
      <line num="243" type="stmt" count="2"/>
      <line num="244" type="stmt" count="2"/>
      <line num="245" type="stmt" count="2"/>
      <line num="246" type="stmt" count="2"/>
      <line num="247" type="stmt" count="2"/>
      <line num="248" type="stmt" count="2"/>
      <line num="249" type="stmt" count="2"/>
      <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="256" type="stmt" count="2"/>
      <line num="257" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="260" type="stmt" count="2"/>
      <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="269" 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="277" type="stmt" count="2"/>
      <line num="278" type="stmt" count="1"/>
      <line num="279" type="stmt" count="1"/>
      <line num="280" type="stmt" count="1"/>
      <line num="281" 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="286" type="stmt" count="1"/>
      <line num="287" 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="292" type="stmt" count="1"/>
      <line num="293" type="stmt" count="1"/>
      <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="301" type="stmt" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <line num="303" type="stmt" count="0"/>
      <line num="304" type="stmt" count="0"/>
      <line num="305" type="stmt" count="0"/>
      <line num="309" type="stmt" count="2"/>
      <line num="310" type="stmt" count="2"/>
      <line num="311" type="stmt" count="2"/>
      <line num="313" type="stmt" count="2"/>
      <line num="314" type="stmt" count="2"/>
      <line num="315" type="stmt" count="2"/>
      <line num="316" type="stmt" count="2"/>
      <line num="317" type="stmt" count="2"/>
      <line num="318" type="stmt" count="2"/>
      <line num="319" type="stmt" count="2"/>
      <line num="330" type="method" name="generateFancyCaptchas" visibility="protected" complexity="1" crap="2" 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="334" type="stmt" count="0"/>
      <line num="335" type="stmt" count="0"/>
      <metrics loc="343" ncloc="294" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="199" coveredstatements="161" elements="202" coveredelements="162"/>
    </file>
    <metrics files="53" loc="8166" ncloc="6070" classes="45" methods="303" coveredmethods="193" conditionals="0" coveredconditionals="0" statements="2829" coveredstatements="2065" elements="3132" coveredelements="2258"/>
  </project>
</coverage>
